blog.darkstar.work - a simple url encoder/decoder

 a simple url encoder/decoder
 http://blog.darkstar.work

Labels

Wirtschaft (150) Pressefreiheit (125) Österreich (120) IT (95) code (60) Staatsschulden (37) EZB (27) Pensionssystem (16)

2012-09-12

Die Leistungsgesellschaftslüge

Es gibt ein par konservative und liberale Hardliner, die immer noch - besonders in Deutschland - auf ein rein leistungsgerechtes Pensionssystem pochen. Zum Glück scheint in Österreich der Ausgleichsrichtsatz bei Pensionen, sobald man die 15 Jahre Anrechnungszeit hat und alt genug ist, im Moment nicht in Frage zu stehen. In Österreich sehe ich auch Bemühungen starke ungerechtfertigte Nachteile zum Beispiel für Mütter durch Anrechnen der Karenz- und Betreuungszeit auszugleichen. Allerdings gerecht ist das System dann noch lange nicht, denn ich bekomme meinen Wehrdienst noch angerechnet, ein etwas jüngerer nicht mehr. Es ist gut ein System gerechter zu machen, aber ich will jetzt einmal die Idee des total leistungsgerechten Systems prinzipiell dekonstruieren:

Die Idee eines leistungsgerechten Systems ist die, dass die Leute, die viel Pensionsversicherung einzahlen, nachher noch das entsprechende mehr im Verhältnis zurückbekommen. In Deutschland gibt es die Ideologie, dass es die Leistungsgesellschaft zerstört, wenn der wenig Einzahlende, eine höhere Ausgleichsrente bekäme.
Wenn ich so neo-liberal leistungsorientiert bin, dann kann ich doch auch nur eine rein private nicht-staatliche Rentenversorgung schaffen. Jeder ist dann verantwortlich dafür, wie viel er sich zurücklegt und der geschickte Investor bekommt aufgrund seiner geschickten Investionsleistung gleich viel mehr zurück, als der ungeschickte und unkluge Investor. Das ist den Bürgern und Bürgerinnen hier aber zu unsicher, sie möchten die absolut sichere leistungsorientierte Rente ...und das ist das erste Problem.
Das zweite Problem ist, dein Gehalt hat am wenigsten mit deiner Leistung zu tun, sondern hauptsächlich in welchem Land du bei welcher Firma arbeitest, wie gut diese gerade aufgestellt ist und wie die reale Wirtschaftslage aussieht. Deine Firma kann gezwungen sein durch globale Ereignisse auf Kurzarbeit umzustellen oder dich zu entlasten. Somit stimmt die Leistung zwar, aber es zählt nicht mehr die Leistungsbereitschaft und wirklich leistungsgerecht werden das auch die wenigsten empfinden. Bei staatlichen oder staatsnahen Betrieben kommt es auf die Freizügigkeit des zuständigen Ministers und Aktionismus der dort vorherrschenden Partei an, welches Gehalt du bekommst und welche Pensionsversicherungsbeiträge du jetzt gerade zahlst. Wenn eine strenge Maria Fekter gerade Finanzministerin ist oder die Banken gerettet werden müssen oder der € Beitritt gerade im Gange ist, sind das weitere Einflussfaktoren, die unabhängig von deiner individuellen Leistung vorliegen.

Am wenigsten zählt überhaupt deine individuelle Leistung im angeblich so leistungsgerechten Pensionssystem. 

Im perversesten Fall bekommt derjenige / diejenige eine hohe Pension, die in einem staatsnahen Betrieb arbeitete, wo der Minister äußerst verschwendungssüchtig mit dem Geld umging, der Finanzminister eher sehr freizügig bei der Verteilung war und die Republik gerade viele neue hohe Schulden aufgenommen hatte.
In einem Privatunternehmen im Konjunkturtief, während der €uro Krise wirst du nie soviel wegen Kurzarbeit und unternehmerischen Einsparungen, die nötig sind, um das Unternehmen fit zu halten, leisten können.

Und da ich schon in sehr vielen staatlichen, staatsnahen, privatwirtschaftlichen Betrieben und als Freelancer gearbeitet habe, ist mir leider folgendes widerfahren: Das beste Gehalt bekam ich mit eher wenig KnowHow mit durchschnittlicher Leistung.
Die Idee des leistungsgerechten Pensionssystem stammt noch aus einer Zeit der Hochkonjunktur ohne Generation Praktikum und 1€ Jobs, wo der Gehalt im Alter stets konstant wuchs und fast kein größeres Unternehmen Insolvenz anmelden musste. Ein Wechsel führte damals auch nie zu wesentlichen Gehaltseinbußen. Dieses System basiert im eigentlichen Sinne auf einer sozialistischen Planwirtschaft, die gewaltsam nicht liberalisierte, aber auch nicht gebändigt und reguliert wurde.
Konjunkturzyklen wurden im Tief nicht durch Kurzarbeit, sondern durch Neuaufnahme von Staatsschulden und Subventionierungen einfach plattgewalzt.

Gerade das pervertiert die leistungsgerechte Pension komplett, weil die Leistung durch vom Staat subventionierten Geldern und neuen Staatsschulden geleistet wurde.

Weiters werden oft Angestellte von der Wirtschaft (teilweise zu recht) kritisiert, wenn sie nicht zu Einbußen auf sehr hohen Niveau bereit sind. (besonders dumm, wenn das Unternehmen dadurch leichter gegen den Sturm gerüstet wäre und eine Schieflage und das Kentern am Riff des Konkurs leichter vermieden werden könnte) Wenn dann die unternehmerisch Klarschiff machende Mannschaft dann in der Pension bestraft wird, die in Untiefen oder aufs Riff steuernde Mannschaft dagegen belohnt wird, halte ich das für ziemlich ungerecht!

Und bitte vergesst nicht:
Das Pensionssystem war auch immer eine soziale Maßnahme um Altersarmut, wie sie in der Zwischenkriegszeit herrschte, für zukünftige Generationen zu vermeiden.
Selbst im neoliberalen Amerika gibt es Armenhäuser für Alte vom Staat oder reformierten Kirchen.
Ein System ohne Mindestrente und ohne dieser sozialen Institutionen ist antisozial.
An alle rein Neoliberalen: Das Rentnerehepaar mit 1500€ Rente gibt das ganze Geld in der Wirtschaft aus, der Pensionist mit 2600€ hortet weiter, beschneide ich die kleinen Renten, fehlt das Geld der Wirtschaft!

2012-09-08

Sendung mit der Maus - die € Krise

Heute mit einem Professor, den Lobbyisten, einer Schlagengrube, eurer Zukunft und natürlich mit der Maus und dem Elefant.
Das ist Professor Hans Werner Sinn und das sind wir, die Piraten. Wir haben ganz oft andere Meinungen als er, der Professor hält uns vielleicht für Kommunisten, aber wir wissen, das mit dem Kommunismus hat nicht so geklappt, deswegen sind wir für ein bedingungsloses Grundeinkommen. Wenn jemand mehr Geld haben will, dann muss er arbeiten gehen. Das will wahrscheinlich jeder, außer er ist alt oder krank, da sind wir halt anderer Meinung, aber egal.
Jetzt warnt der Professor schon seit Jahren, dass Deutschland nicht immer mehr Kredite aufnehmen soll.  Das wissen wir, Kredite muss man zurückzahlen. Wenn nicht, dann bekommt man kein Geld mehr geborgt und hat nichts mehr. Wenn das Deutschland passiert, dann bekommt die Feuerwehr, die Polizei, die Rettung und Tante Angela auch kein Geld mehr, das ist nicht gut.
Nur Deutschland nimmt sich immer höhere Kredite auf und wer muss die später zurückzahlen? Alle Deutschen, also ihr. und davor warnt der Professor. Es verstehen alle, auch wir Piraten, auch wenn wir manchmal berauscht sind. Aber, wenns dann praktisch ist, dann haben wir alle es wieder vergessen und nehmen doch lieber wieder einen Kredit auf.
Jetzt sind wir in der €-Krise und das ist die EZB in Frankfurt am Main. Die kann den Leitzins bestimmen. ist er hoch dann bekommt man viel Geld fürs Sparen, muss aber auch viel mehr Geld zurückzahlen, wenn man Kredite hat. Ist er nieder, dann muss man nicht so viel dazu beim Kredit zurückzahlen, kriegt aber auch weniger beim Sparen. Soweit klar [Wiederholung der Erklärung]
Jetzt haben nicht nur wir viel Kredite sondern auch Griechenland, Frankreich, Spanien - die haben sogar noch mehr. Deswegen hat die EZB den Leitzins ganz niedrig gemacht, damit wir alle das wieder leichter das zurückzahlen können.
Das ist Herr Otto und Herr Karl. Die haben als brave Deutsche immer viel gespart und möchten jetzt hohe Sparzinsen. Für sie ist der niedere Leitzins nicht gut. Aber sie kennen einen Lobbyisten. Das ist jemand, dem man zahlt und er schreibt dafür in der Zeitung, das was man will. Deswegen nennen wir Piraten die Zeitungen Schlangengruben, weil da nicht mehr die Wahrheit steht, sondern eine Schlangengeschichte. Jetzt sagen Herr Otto und Herr Karl, der Lobbyist soll schreiben, dass der niedere Leitzins schlecht für die Sparer ist. Das ist diesmal sogar die Wahrheit. Jetzt haben viele Leute gespart, lesen das und sind besorgt. So versuchen Herr Otto und Herr Karl Tante Angela nervös zu machen, damit sie nach Frankfurt telefoniert, weil wenn sie was sagt, wird das meistens gemacht oder wenn nicht dann zahlt sie auch einen Lobbyist, der schreibt dann eine Schlangengeschichte, kennen wir ja schon.
Jetzt bekommen die deutschen Banken auch immer Geld von Griechenland als Kreditzinsen, die haben aber keines, deswegen müssen wir ihnen Geld borgen. Klingt komisch, ist aber so.
Damit nicht alle immer mehr Geld herumschaufeln und immer teurere Kredite aufnehmen, die ihr dann zahlen müsst schlagen Leute einen Schuldenschnitt vor da müssen sie nicht alles zahlen oder sagen Griechenland soll auf die Drachme umsteigen, weil dann können sie das leichter zurückzahlen.
Das ist Herr Draghi, er ist Chef der EZB. Herr Draghi war früher im Bankhaus zum Goldenen Sachsen angestellt und bei dem hat Griechenland auch ganz viele Schulden. Da Herr Draghi gerne mit seinem früheren Chef später auch wieder mal in die Kneipe gehen will, schaut er, dass sein Chef auch alles zurückbekommt und wir noch mehr Kredite aufnehmen. Vielleicht ist das aber auch nur wieder eine Schlangengeschichte, die die deutsche Bank ins Leben gerufen hat, damit wir nicht draufkommen, dass sie in Wirklichkeit alles zurück haben wollen, weil Griechenland doch bei der Deutschen Bank noch viel mehr Schulden hat.

Schulden machen mögen viele Deutsche nicht, Amerika macht es genauso, wieso? Ganz einfach die Amerikaner sparen nichts, die haben entweder nichts oder investieren in Firmen. Wenn sie dann zu viel Schulden haben drucken sie Geld. Die Firmen sind dann noch immer da. Die Deutschen investieren wenig in deutsche Firmen, sondern geben das Geld lieber auf die Bank. Die investiert es aber oft lieber dort, wo mehr Geld zu machen ist, also nicht in Deutschland. Jetzt wenn wir € drucken wird das ganze Geld weniger wert, die Schulden wachsen aber nicht so schnell aber trotzdem. Das möchte Herr Professor Sinn sagen, das hört aber niemand gerne.
Jetzt könnten wir alle in Europa gemeinsam die Schulden von allen übernehmen, weil wir alle so brav gespart haben und es würde sich nichts zwischen arm und reich hier ändern, weil egal ob unsere Länder das ganze oder nur einen Teil zurückzahlen, das Verhältnis bleibt gleich.
Das möchte aber die Konservativen nicht, weil sie wollen, dass die Reichen woanders mehr Geld bekommen und ihr dafür dann mehr zahlen und länger und härter arbeiten müsst. Bei den Linken habe ich Angst, dass sie mehr Schulden machen. Spart lieber was auf Eure Rente. Tschüss bis zum nächsten Mal.

2012-09-04

Die Wettbewerbsfähigkeit in Hinsicht auf individuelle Probleme

Während seit 2 Jahren draußen der rauhe Wind der €-Krise mit teilweise sturm- oder orkanartigen Böhen tobt, heißt das Gebot jeder Stunde: "Die Südländer, die Wirtschaft und eigentlich Europa als ganzes muss wieder wettbewerbsfähiger werden, allerdings haben wir einserseits zu hohe Ansprüche und Kosten und können daher nicht mit Billigproduzenten mit geringeren Auflagen konkurieren. Da wir sehr hohe Qualitätsstandards haben, liegt es auf der Hand, dass wir mit Qualität, Klasse und Service im internationalen Wettbewerb behaupten, da wir ja auch hier bereits viel KnowHow aufgebaut haben. Weiters wird die breite oft zu theoretische Forschung auf reine Grundlagenforschung in 6 Kernindustriebereichen umgestellt, z.b. Medizinische Technik, Nanotechnologie, u.s.w. Dennoch muss eines klar sein: Teilweise müssen die Preise für manche Produkte auch sinken, was nur mit Senkung der Löhne (mit Ausnahme des Mindestlohns) realisiert werden kann und es wird wahrscheinlich generell mit leichtem Wertverlust zu rechnen sein."

Ich verstehe den Sinn und stimme einmal prinzipiell zu, denn ich ich erlebte als Angestellter diese Situation aus meinem Leben bereits 2x und sah einmal die falsche und einmal die richtige Entscheidung:

  1. Die Geschichte der falschen Entscheidungen und Maßnahmen ist schnell erzählt:
    Im Jahr 2001 war ich in der Luft- und Raumfahrtbranche für ein Großprojekt für eine zwecks Maastrichtkriterien entstaatlichte Holding angestellt. Der Bruttolohn für mich als Administrator war exorbitant hoch mit 2620,-€ Einstiegsgehalt mit Verhandlungsspielraum nach 1 Jahr. Datenbankspezialisten bekamen dort 5500,-€. Untere Projektmanager etwas mehr als jeder Techniker und von den höheren mag ich mir gar keine Vorstellung machen. Die Anzahl von Empfangssdamen und Assistentinnen (alles ausnahmslos nach patriarchalen Prinzip besetzt) war eher ungewöhnlich groß im Vergleich zum Durchschnittsunternehmen. Controlling funktionierte erst wieder, als eine solide weibliche erfahrene Controllerin den Finance- und Controllingbereich übernahm, die fast nicht genommen wäre, da ihre Gehaltsvorstellung unter der des Datenbankexperten lag. Leider war zu diesem Zeitpunkt bereits Hopfen und Malz komplett verloren und das Unternehmen jedes Monat am Rande der Insolvenz. Nach dem 2. Mal Aussetzen der Gehaltszahlung verließ ich das Unternehmen, obwohl alle anderen meinten: "Das hat noch Chancen!"
    Ich entgegnete: "Der Insolvenzausgleichsfonds zahlt nur bei nicht Mitwisserschaft und unter der Voraussetzung, dass für den Angestellten die drohende Insolvenzgefahr absolut nicht erkennbar war!"
  2. In der jüngeren Geschichte war ich bei einer Firma angestellt, wo eine geplante Neuausrichtung an zwei hintereinander unverlässlichen oder zu wenig kompetenten Partnern scheiterte, ein Manager mit Kernkomptenzbereich ein extrem lukratives Angebot eines international agierenden Unternehmens bekam und annahm und ein sicherer Auftrag aufgrund des nicht vorhersehbaren arabischen Frühlings sich um unbestimmte Zeit verzögerte. Dennoch wurde von Chef und Chefin effiziente aber nicht unmenschliche Sparmaßnahmen realisiert, mit besonderer Berücksichtigung der sozial Schwächeren Angestellten. Selbst für die wenig aus persönlichen Gründen leistungswilligen wurden sinnvolle Übergangsmaßnahmen getroffen. Die Situation war angespannt und ich zeigte mich damals auch wirklich von meiner schwierigsten zwischenmenschlichen Seite (Aggression gegenüber Vorgesetzten Projektmanagern) dennoch war der gemeinsame Wille doch aller noch auftretenden Probleme und Differenzen, die Sache zum glücklichen Ende zu führen, letztendlich ausschlaggebend. Das lag vor allem daran, dass trotz der kumuliert auftretenden Hiobskatastrophen die Bedürfnisse der einzelnen Personen nicht komplett ignoriert wurden und an der Vorbildhaften Wirkung der Geschäftsführung, aber auch daran, dass alle Personen doch im Prinzip grundkonservativ ihren persönlichen Haushalt führten und auch das Unternehmen nicht am Schuldenlimit belastet war. So stellten die potentiellen theoretischen Gehaltseinfrierungen, die dann aber gar nicht stattgefunden mussten, kein Problem dar.
    Weiters verhielt sich keiner nach den Gesetzten der Neidgesellschaft und beschwerte sich über die fehlenden Sparmaßnahmen bei den sozial Schwachen.
Das Problem an der Geschichte Nr.2 ist, dass sie nicht auf alle Unternehmen in der EU anwendbar ist. Früher wurde die höhere Risikobereitschaft von Unternehmern verlangt, bei allen Eignungstests kam bei mir immer heraus, ich wäre zu zögerlich höhere Kredite für Wachstum aufzunehmen und in diesem Punkt als Unternehmer kaum geeignet. Weiters waren die beiden GFs waren planungstechnische Meisterstrategen, was nicht jeder Unternehmer sein kann.
Auch Angestellte können ihre Finanzplanung eher nah am limit gestaltetet haben und dann ist für diese so eine Maßnahme allein durch die jährliche Inflation nicht durchführbar. 
Jemanden der dann seinen Häuslbauerkredit nicht mehr zahlen kann und der von der Bank enteignet wird mit Eigenverantwortung zu kommen, erzeugt wahrscheinlich bei dieser Einzelperson hohen Unmut und große Wutbürgerbereitschaft. Wie dieses Problem gelöst werden soll, weiß ich nicht, ich mache nur einmal drauf aufmerksam.





2012-08-19

LAN: Innovation, BASE-Schreibweise und Ethernet-Varianten




Jahr

Innovation LAN
IEEE-Gruppe
BASE
Medium
1960
Studien und Forschungsarbeiten zu Paktenetzen, die LAN-tauglich sind
1969
Das ARPANET stimuliert die Forschungsarbeiten für Subnetze, die sich später zum Internet verbinden werden
1973
Beginn der Idee eines universellen "Ethernet". Vater des Ethernet ist Robert Metcalfe (Xerox). Einige Vorläufer/Prototypen waren bereits gebaut worden, Ethernet entstand aus den Verbesserungen, die in diesen Tests herausgefunden wurden.
1974
IBM definiert die "Systems Network Architecture", "SNA". SNA ist ein umfassendes hierachisches Netzwerksystem, das ursprünglich für Großrechner und "dumme" Terminals entwickelt wurde und später mit "peer-to-peer" Fähigkeiten erweitert wurde.
1976
Die CCITT definiert X.25 vulgo Datex-P, ein paketschaltendes WAN. Ethernet wird patentiert.
1979
Ethernet wird zum ersten Mal implementiert – eigentlicher Beginn der Geschichte der LANs
1980
Beginn des IEEE 802
1981
Token Ring wird erfunden
1984
Das OSI 7 Schichten Modell wird erfunden
1985

IEEE definiert die Normen 802.3 (aufbauend auf Ethernet) und 802.5 (aufbauend auf Token Ring)
802.3
10BASE-5, 10BASE-2
KoAx
1986
Erweiterung des 802.3 auf Telefonverkabelung
1987
802.3d
FOIRL
MMF
1990
FDDI
802.3I
10BASE-T
TP Cat-3
1992
DQDB
1993
ATM
802.3j
10BASE-F
MMF
1995
100 Mbps Ethernet
802.3u
100BASE-T4
100BASE-TX
100BASE-FX

TP Cat-3
TP Cat-5
MMF

1997
802.3y
100BASE-T2
TP Cat-3
1998
1.000 Mbps Ethernet
802.3z
1000BASE-SX
1000BASE-LX
1000BASE-CX

MMF
SMF
TP Cat-7 (?)
1999
802.3ab
1000BASE-T
TP Cat-7 (?)
2001
10.000 Mbps Ethernet
2002
802.3ae
10GBASE-LX
10GBASE-SR
10GBASE-LR
10GBASE-ER
10GBASE-LW
10GBASE-EW
1310nm auf SMF mit WDM
850nm auf MMF
qqq

Daher steht zB 10

2012-08-02

Sharing on public postings in Google+ is crossposting?

Sharing on public postings in Google+ has sometimes the same bad  effects as crossposting to many newsgroups on different servernodes in good old usenet.

Question: Might it be better to link to other public postings instead of sharing it?

Animated gif below illustrates a real sharing usecase:
 wrotes the first start posting, after some discussion  reshared it. than I wrote a followup to Serafinas reshared posting and somebody other rereshared Serafinas reshared posting.

Url to the real sharing usecase:
https://plus.google.com/u/0/107864812147929920439/posts/cYVhC4bjcYb



2012-06-09

Intransparentes Ausspionieren geht auf Rechnung der anderen

Durch geheime Spionage in Bezug auf immaterielle Rechtsgüter entstanden Kleinunternehmen bereits Kosten bzw. ein potentielles Risiko von externen ausspioniert zu werden! Warum das so ist, zeigt folgende tatsächliche Begebenheit:


In meiner letzten Firma installierte ich mir die Synchronisationssoftware  für mein privates Smartphone am Arbeitsplatz-PC. Das war legal und genehmigt. Nach der Installation passierten eigenartige Dinge. Ich hatte Grund zur Annahme, dass der IIS gepacht wurde. Mit Sicherheit konnte ich feststellen, dass eine Kommunikationsverbindung nach außen vom FirmenPC aufgemacht wurde und Daten übertragen wurden. Ich berichtete das alles sofort, machte ein Backup des eigenartigen Systemzustands und führte im Anschluss eine Systemwiederherstellung vor dem Zeitpunkt der Softwareinstallation durch. Ich postete diese Tatsachen in Google Buzz. Da sah ich, einige andere Leuten hatten zu diesem Thema schon detailliertere Beiträge mit besseren Analysen verfasst. Bevor das weitere Kreise ziehen konnte, meldete sich die asiatische Herstellerfirma sofort zu Wort: 


"Aufgrund von Digital Rights Management und den für Europa und USA rechtlichen Exportbestimmungen, die man erst zu spät erkannte, hatte wir ein System entwickeln müssen, dass Kopien von geschützten immateriellen Rechtsgütern, konkret Musik und Videos protokolliert."
"Wir als Hersteller hatten die Richtung Smartphone -> PC zuerst nicht für nötig gehalten, unsere Juristen sahen das aber anders. Aufgrund des Zeitdrucks kurz vor dem Launch ist Qualität etwas zu kurz gekommen und wir haben das Standard MFC Icon auf der Programmdatei  belassen, was auch natürlich von NO-Name  Firmen, Hobbybastlern oder Hackern auch oft so praktiziert wird. Man hat die Datei schnell in den Installer dazukopiert ohne vorhandene Signatur."


Da inzwischen auch sehr clevere/gescheite Leute das Programm analysiert hatten und sie das Statement vollkommen untermauerten, wurde plötzlich aus der bedrohlichen Chimäre des spionierenden asiatischen Smartphone- Herstellers, ein alltägliches IT-Missverständnis. Viele IT-ler egal ob GF, Manager, Programmierer, Tester oder Sysadmins hatten in ihrem Berufsleben schon einmal eine ähnliche Situationen erlebt und die Reaktion gegenüber dem Hersteller war allgemeines Verständnis. 
Nichts desto trotz gibt es schwarze Schafe unter den Firmen, die Kunden ausspionieren. 
Wo und wie viele das sind kann ich nicht sagen, dazu müsste ich in die Kristallkugel schauen. Die Kosten für die ganze Aktion trug mein damaliger Chef, dem ich auch noch weitere Nerven kostete, als ich später eine verbalen emotionalen Disput mit aggressiver halbstarker Rhetorik mit einer Hackergruppe anfing. Ich rechne ihm die beiden zugedrückten Augen hoch an und auch der Hackergruppe ihre richtige Einschätzung der Situation. (Ich war einfach etwas daneben)


P.S.: Im Nachhinein stellte sich noch dazu heraus, dass diese Protokollierung gar nie als Import/Export Bestimmung gefordert war, die Firmenjuristen hatten eine Interpretation herangezogen, die jeden Einwand, der auf ein Exportverbot abzielen könnte, sofort 100% widerlegen würde. 
P.P.S.: In der nächsten Softwareversion des Herstellers war dieses leidige Programm auch nicht mehr vorhanden.
P.P.P.S.: Es ist super wenn der Geschäftsführer eines Kleinunternehmens die Wahl zwischen: Ich lass mich ausspionieren bzw. die Jungs und Mädels untersuchen das auf meine Kosten hat, oder?

2012-06-07

Dekompilieren von Software um Spionage zu entdecken ist strafbar!?

Eigentlich ist bei closed source Ausspionieren von Kunden mittels der eigenen Software relativ gefahrloser, als bei OpenSource. Um Spionage-Routinen des Programms / der Bibliothek zu erkennen und zu beweisen muss man in vielen Fällen die vorhandene Software dekompilieren.


Das Untersuchen eines Programms auf vorhandene Spionage-Routinen einer gemieteten / geleasten / gekauften Software würde ich nicht unbedingt als die Schaffung interoperabler Schnittstellen sehen.
Also ist Dekompilieren auch zum Zweck der Sicherheit per Urheberrecht in Deutschland und Österreich verboten und kriminell, siehe:
http://dejure.org/gesetze/UrhG/69e.html 
http://www.jusline.at/40e_Dekompilierung_UrhG.html


Du als Kunde hast somit nicht das Recht gelieferte Software auf Ausspähroutinen per dekompilieren  zu untersuchen, daher die Frage:
Ist tracen des Netzwerktraffics eines Programmes auch bei Aufbrechen von SSL zur Analyse eigentlich gestattet?

2012-05-17

Too heavy optimization could trigger unwanted dangerous effects

All random occasional events, that occur from time to time, 
might imply a certain discrepancy between 
the estimated / preditcted / anticipated / expected system state.
and the real system state.

"A system is optimized too heavy, when a random occasional event might produce heavy damage or trigger a partial system collapse."

"A system is optimized to death, when any little random occasional event could trigger a total systemwide collapse."

2012-05-16

Simple Html Injection Detection for MS-SQL

A very simple prototype how html injection detection can be made on Microsoft SQLServer.
Please notice, that a full content injection detection is much more complex...

If Exists(Select Top 1 object_id 
  From tempdb.sys.tables Where name = '##InjWatch'
)
  Delete From ##InjWatch
Else
  Create Table ##InjWatch(
    ctext varchar(max), tab varchar(768), col varchar(768)
  );
GO 

Set TRANSACTION ISOLATION LEVEL read uncommitted;

Declare
 CheckHtmlInjectCursor Cursor FAST_FORWARD READ_ONLY For 
  Select
    'Cast([' + c.name + '] As nvarchar(Max))' As c_cast,
    c.name As c_name, '' +
    s.name + '.[' +T.name + ']' As sT_name
  From sys.tables T
  Inner Join sys.columns c On c.object_id = T.object_id
    And c.max_length > 16
    And c.system_type_id In (
      Select system_type_id From sys.types Where name In (     
      -- TODO: check XML, 'user defined' string & binary types :(
        'varchar''nvarchar''char''nchar''text''ntext'   
      )
    ) 
  Inner Join sys.schemas s On s.schema_id = T.schema_id

Declare @c_cast varchar(1024),
        @c_name varchar(768), @sT_name varchar(768)
Open CheckHtmlInjectCursor
  Fetch Next From CheckHtmlInjectCursor 
    Into @c_cast, @c_name, @sT_name

  While
 (@@FETCH_STATUS = 0)
  Begin
    Declare @execSQL nvarchar(max
    Set @execSQL = 
    'Insert Into ##InjWatch(ctext, tab, col) ' + 
    'Select ' + @c_cast + ' As ctext, ''' + 
                @sT_name + ''' As tab, ''' +
                @c_name + ''' As col ' + 
    'From   ' + @sT_name + ' ' 
    'Where (' + @c_cast + ' Like ''%<%'' And + 
                @c_cast + Like  ''%>%'') ' + 
    '  Or   ' + @c_cast + Like  ''%script:%''+ 
    '  Or   ' + @c_cast + ' Like ''%://%''' + 
    '  Or   ' + @c_cast + ' Like ''%href%''' 
    '  Or   ' + @c_cast + ' Like ''%return%'''   

    Execute sp_executesql @execSQL; 
  
    Fetch Next From CheckHtmlInjectCursor 
      Into @c_cast, @c_name, @sT_name 
  End 

Close CheckHtmlInjectCursor 
Deallocate CheckHtmlInjectCursor 


Select Distinct * From ##InjWatch 
GO

Mysql Sample:
/* CREATE TEMPORARY TABLE Test.HtmlSQLInjection (
 Content Varchar(1024) NULL
    , TableName VARCHAR(512) NOT NULL
    , ColumnName VARCHAR(512) NOT NULL
    , SchemaName VARCHAR(512) NOT NULL
); */


USE test;
DELIMITER $$
DROP PROCEDURE IF EXISTS  cursor_proc $$
CREATE PROCEDURE cursor_proc()
BEGIN

DECLARE v_done INTEGER DEFAULT 0;
DECLARE v_s VARCHAR(512) DEFAULT '';
DECLARE v_t VARCHAR(512) DEFAULT '';
DECLARE v_c VARCHAR(512) DEFAULT '';
DECLARE v_queryString VARCHAR(1024) DEFAULT '';
DECLARE CheckHtmlInjectCursor CURSOR FOR 
 select  
  information_schema.TABLES.TABLE_SCHEMA, 
        information_schema.TABLES.TABLE_NAME,
        information_schema.COLUMNS.COLUMN_NAME
 From information_schema.TABLES CALL `test`.`cursor_proc`();
CALL `test`.`cursor_proc`();

 inner join information_schema.COLUMNS 
  on information_schema.TABLES.TABLE_NAME = information_schema.COLUMNS.TABLE_NAME
where information_schema.TABLES.TABLE_SCHEMA = information_schema.COLUMNS.TABLE_SCHEMA
 and information_schema.COLUMNS.DATA_TYPE in 
 ('char', 'varchar', 'binary', 'varbinary', 'blob', 'longblob', 'text', 'mediumtext', 'longtext')
    and information_schema.COLUMNS.CHARACTER_MAXIMUM_LENGTH > 15;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1;

OPEN CheckHtmlInjectCursor;

read_loop: LOOP
  FETCH CheckHtmlInjectCursor INTO v_s, v_t, v_c;
 IF v_done = 1 THEN
      LEAVE read_loop;
      CLOSE CheckHtmlInjectCursor;
 END IF;
    SELECT v_c,  v_s, v_t;
    
   'SELECT ', v_c, ' FROM ', v_s, '.', v_t, '.', v_c, ' WHERE ', v_c, ' like ''%'' '));
    SET @queryString = (
  SELECT CONCAT(
   'SELECT ', v_c, '.',  v_s, '.', v_t, ' FROM ', v_t));
 PREPARE stmt FROM @queryString;
 EXECUTE stmt;
 DEALLOCATE PREPARE stmt; 
 */

END LOOP read_loop;
/* CLOSE CheckHtmlInjectCursor; */

END $$
 
DELIMITER ;


Google Groups shows NNTP-Posting-Host public for everyone

"Google Mail" shows original SMTP-Header only to account owner,
GoogleShowYouTheOrigSMTPMessage.png

but "Google Groups" shows NNTP-Posting-Host public for everyone (anonymous):

flex - fast lexical analyzer generator sample


Who remember flex: fast lexical analyzer generator? 

I have written a short mail logfile scanner sample long time ago under gnu linux with gcc and flex. MailScanner.yy  is a win32 port using gnuwin32 flex and getoptwin:


%option noyywrap

%{
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "getopt.h"
#include <string.h> 
#define MAXLEN 1024
#define OUT (void)printf


int i, j, idx, len, mode = 0;
char tmps[MAXLEN], reverse[MAXLEN];

%}
SEGA  [2][5][0-5]
SEGB  [2][0-4][0-9]
SEGC  [1][0-9]{2}
SEGD  [1-9][0-9]{0,1}
SEG   {SEGA}|{SEGB}|{SEGC}|{SEGD}
IP    {SEG}["."]{SEG}["."]{SEG}["."]{SEG}

HOSTDOMAINSEGMENT [0-9a-zA-Z_"\-"]+["."]
TOPLEVELDOMAIN [a-zA-Z]{2,7}
HOSTNAME {HOSTDOMAINSEGMENT}+{TOPLEVELDOMAIN}
USER [0-9A-Za-z_"\-""."]+

EMAIL1 {USER}"@"{HOSTNAME}
EMAIL2 {USER}"@"{IP}

URIPROTOCOL [a-zA-Z]{2,10}"://"
URISUFFIX [^ \t\n\r"@"","">""<""("")""{""}"]
URL1   {URIPROTOCOL}{HOSTNAME}{URISUFFIX}*
URL2   {URIPROTOCOL}{IP}{URISUFFIX}*

%%
<<EOF>> {
        exit(1);
    }

{EMAIL1} |
{EMAIL2} {
    
  if (strchr(yytext, '@') != (char *)NULL) 
  {
  switch((mode % 16))
    {
      case 0: 
        strcpy(tmps, yytext); 
        break;
case 1: 
        strcpy(tmps, strchr(yytext, (int)'@'));
        break;
case 2: 
        strcpy(tmps, &strchr(yytext, (int)'@')[1]);
        break;
  case 4:
        strcpy(tmps, &strchr(yytext, (int)'@')[1]);
len = strlen(tmps); 
for (j = 0, idx = 0; ((j < len) && (j < MAXLEN-1)); j++) 
{
if (tmps[j] == '.'
{
for (i = idx; i <= j; 
reverse[(len-j) + (i-idx)] = tmps[i++]);
 idx = j + 1;
}
}
for (i = idx; i <= j; i++)
{
          reverse[(len-j) + (i-idx)] = (i < len) ? tmps[i] : '.';
} 
reverse[len + 1] = '\0';
strcpy(tmps, reverse);
break;
case 8: 
        strcpy(tmps, &strrchr(yytext, (int)'.')[1]);
        break;
default:
        strcpy(tmps, yytext);
        break;
  }
  OUT("%s\n", tmps);
  }
}

{URL1} |
{URL2} {
  if (mode < 16) 
{
  switch((mode % 16)) 
  {
  case 0:
        strcpy(tmps, yytext);
        break;
  case 1:
        strcpy(tmps, strchr(yytext, (int)'/'));
        break;
  case 2:
        strcpy(tmps, &strrchr(yytext, (int)'/')[1]);      
        break;
  case 4:
        strcpy(tmps, &strrchr(yytext, (int)'/')[1]);
        len = strlen(tmps);
        for (j = 0, idx = 0; ((j < len) && (j < MAXLEN-1)); j++)
        {
          if (tmps[j] == '.'
          {
            for (i = idx; i <= j; reverse[(len-j) + (i-idx)] = tmps[i++]);
            idx = j + 1;
          }
        }
        for (i = idx; i <= j; i++)
{ 
          reverse[(len-j) + (i-idx)] = (i < len) ? tmps[i] : '.';
        }
        reverse[len + 1] = '\0';
        strcpy(tmps, reverse);
        break;
      case 8:
        strcpy(tmps, &strrchr(yytext, (int)'.')[1]);
        break;
      default:
        strcpy(tmps, yytext);
        break;
    }
    OUT("%s\n", tmps);
  }  

^[\n;] { ; }

[\r\n]+ { ; }

. { ; }

%%
void yyerror() { exit(1); }

void usage(const char *cmd) 
{
  OUT("Usage: %s [-f file] [-a ] [ -r ] [ -u ]\n", cmd);
  OUT("\tsimple email address and uri lexer reads from stdin \n");
  OUT("\t-a,--noat   \tprints FQDN email (chars left of \'@\')\n");
  OUT("\t-u,--nouser \tprints email without username \n");
  OUT("\t-t,--top    \tprints topleveldomain with option -a|-u\n");
  OUT("\t-n,--nouris \tprints only email address and not URIs\n");
  OUT("\t-r,--reverse\treverses FQDB/IP address segments\n");
  exit(0);
}

int _tmain(int argc, TCHAR** argv)
{
  static int verbose_flag;
  int c;

  while(1)
  {
  static struct option long_options[] =
    {
      {_T("help"), ARG_NONE, 0, _T('h')},
      {_T("noat"), ARG_NONE, 0, _T('a')},
      {_T("nouser"), ARG_NONE, 0, _T('u')},
      {_T("top"), ARG_NONE, 0, _T('t')},
      {_T("nouris"), ARG_NONE, 0, _T('n')},
      {_T("reverse"),     ARG_NONE, 0, _T('r')},
      { ARG_NULL,         ARG_NULL, ARG_NULL, ARG_NULL}
    }; 

    int option_index = 0;
    c = getopt_long(argc, argv, _T("hautnr:"), long_options, &option_index);
    if (c == -1) 
      break;
    switch (c) // Handle options
    {
      case 0: // If this option set a flag, do nothing else now.   
        if (long_options[option_index].flag != 0)
  break;
        _tprintf (_T("option %s"), long_options[option_index].name);
        if (optarg)
          _tprintf (_T(" with arg %s"), optarg);
        _tprintf (_T("\n"));
        break;
      case _T('u'): mode = 1;
        break
      case _T('a'): mode = 2;  
        break
      case _T('r'): mode = 4;  
        break;
      case _T('h'): usage(argv[0]);  
        break;
      case _T('t'): mode = 8;  
        break;
      case _T('n'): mode += 16;  
        break;  
      case '?': // getopt_long already printed an error message.  
        break
      defaultabort();
    }
  }
  (void) fflush(stdout);
  yyin = stdin;
  yylex();
  exit(0);
}


Files: [MailScanner.yy] [lex.yy.c]

VPN Security or secure instant linux


Howto increase VPN security, when you only need remote desktop or remote login sessions? 

When your OS at office is Win2008, 
VPN clients on bootable write protected memory sticks/ CDs/ DVDs with a special prepared linux OS can enhance security. (You can easy clone or customize a live cd and change the certificate / password all 2 months) 
You might even prepare a live cd for android or boot a special image from sdcard, but remember, that an image on sdcard isn't write protected.
USB Memory Stick with write protection