Sicherheit

DHBW Mannheim: 5 Jahre mit einem ungefixten eval()-Exploit

Posted in DHBW, Sicherheit, Webdevelopment on January 16th, 2011 by admin – 3 Comments

<update>
Inzwischen habe ich eine Antwort der DH bekommen, dass das Thema im nächsten IT-Ausschuss (was und wann auch immer das ist) besprochen wird. Auch wurde mir getwittert, dass die Noten für die Zeugnisse in einer sicheren Datenbank liegen, also Änderungen keine Zeugnisse verfälscht haben.
</update>

In unserem aktuellen Semester an der DHBW Mannheim war die Vorlesung “IT-Security” mit einem entsprechenden Projekt gekoppelt. Unsere Gruppe entschied sich, die eGroupware der DHBW Mannheim (über die die Noten und Mails der Semester 2008 und älter verwaltet wurden) einem Sicherheitscheck zu unterziehen.

Da wir verständlicherweise nicht direkt am DH-System testen durften, haben wir uns aus dem SVN der Entwickler die verwendete Version ausgecheckt und diese auf einem Testserver installiert. Dass wir irgendwas finden würden, war schnell klar: Die verwendete Version war 6 Jahre alt und wurde nie aktualisiert.

Wir vermuteten, ein paar SQL-Injections und ein paar XSS-Lücken zu finden. Unsere Erwartungen wurde jedoch übertroffen: Durch einfaches Str+F in dem Commit-Log der Entwickler konnte wir einen Fix finden, der mit “Critical” und “Security” getaggt war. Wenig später war klar, dass es sich um einen Exploit in der Library “XMLRPC for PHP” handelte, der bereits 2005 gefixt wurde und es Angreifern erlaubte, beliebigen PHP-Code via eval() auszuführen.

Höflich, wie wir sind, haben wir das Rechenzentrum der DH in einer E-Mail darauf hingewiesen. Die erste Mail wurde ignoriert, die zweite (zwei Wochen später) relativ schnell beantwortet: Ein Admin teilte mir mit, dass die betroffene Datei entfernt wurde und somit das akute Sicherheitsloch geschlossen sei. Es sei also wieder alles in Ordnung.

WTF? Welcher verantwortungslose Admin lässt ein 5 Jahre lang sperrangelweit offenes System einfach so weiterlaufen? Das System ist doch zu 95% bereits kompromittiert. Wir sind doch nicht die ersten Studenten der DH, die Commit-Logs durchsuchen können!

Ich werfe zur weiteren Erheiterung mal ein paar Fakten in den Raum:

  • Es wurden 5 Jahre lang keine Updates eingespielt, nicht mal ein “CRITICAL security update” wie das betreffende 1.0.0.009-2.
  • Die eGroupware verwaltete E-Mails von tausenden Studenten und somit personenbezogene Daten nach §3 BdsG. Das alleine ist ausreichend für den Gesetzgeber besondere Sorgfalt bei der Sicherheit zu verlangen. Ich bin kein Jurist, aber ich lese das Ganze so: Laut §42 (a) müssen die Betroffenen (also hier die Studenten) informiert werden. Laut §43 drohen bei Versäumnis Bußgelder bis 300.000 €.
  • Die Noten aller Studenten <= 2008 wurden über dieses System ausgelesen. Es konnte also irgendeine PHP-Routine die Noten anfordern und somit konnte es auch ein Angreifer.
  • Ob man damit Noten verändern konnte und — wenn ja — ob diese dann Grundlage für das Zeugnis waren, lässt sich nicht sagen (Siehe Update). Bei all der Schlamperei würde es mich aber nicht wundern.
  • Die Passwörter der eGroupware-Benutzer werden auch für andere System der DHBW (wie Moodle, das WLAN und das neuere E-Mail-System) verwendet. Um an diese Passwörter zu kommen, reicht es, einen simplen Form-Logger in den Login-Prozess einzubauen oder (wenn der Angreifer das nötige Know-How hatte) diese mit Rainbow-Tables und dem einfach auszulesenden Security-Salt via Amazon ECS für ca. 1$/Passwort errechnen zu lassen. (Siehe dazu c’t 2/2011, Seite 151)
  • In den meisten E-Mail-Postfächern werden wohl noch die Zugangsdaten für MSDNAA gelegen haben. Microsoft würde sich freuen, wen sie erführen, dass Angreifer dadurch Zugriff auf tausende von Lizenzkeys hatten.

Fazit: Es wurde ordentlich bei der IT-Sicherheit geschlampt und in Folge dessen war es 5 Jahre lang möglich, Mails von DHBW-Studenten zu lesen, fremde Noten abzufragen, eventuell Noten zu verändern, Lizenzen für Microsoft-Produkte anzufordern und das Benutzerpasswort der Studenten auszulesen. Nebenbei könnte die ganze Situation für die DH sogar rechtliche Folgen nach sich ziehen.

Inzwischen ist der eGroupware-Server abgeschaltet. Betreffend meiner zweiten, etwas direkteren Mail warte ich immer noch auf Antwort. Es bleibt also nur folgende Frage zu klären: Wie um alles in der Welt kann ein Haufen Admins in Hörweite zu IT-Security Vorlesungen es 5 Jahre lang versäumen, eine kritische Webanwendung mit Updates zu versorgen? Habt ihr euer Fachwissen im Lotto gewonnen?

Sehr geehrter Internet Explorer 6 Benutzer,

Posted in Blog, Google, Sicherheit, Webdevelopment on October 13th, 2010 by admin – 1 Comment

wie Ihnen inzwischen vielleicht schon aufgefallen ist, sehen viele meiner Webseiten in ihrem Browser nicht besonders schön aus, funktionieren nicht oder beschweren sich über ominöse Script-Fehler. Ich möchte Ihnen hiermit den Grund mitteilen, woher diese Probleme kommen:

Ihr Browser gehört zu den ältesten noch anzutreffenden Versionen und stammt aus dem Jahr 2001. Die aktuelle Ausgabe trägt die Versionsnummer 8 und der Hersteller Microsoft ist kurz davor die Version 9 fertigzustellen. Aus diesem Grund werden viele Techniken und Standarts, auf die das heutige Internet aufbaut von diesem alten Browser nicht unterstützt. Schlimmer noch: Der Internet Explorer 6 ist in der Vergangenheit eines der offensten Einfallstore für Viren und Trojaner gewesen, zeitweise wurde sogar von Regierungsebene davor gewarnt ihn einzusetzten.

Leider ist die diese alte Version auch heute noch der Standardbrowser vieler Benutzer, den er ist Teil des Windows XP Betriebssystems – Viele innovative Entwickungen wurden in den letzten Jahren durch die noch zu große Verbreitung der 6er Version erschwert. Viele Webentwickler und Firmen, unter anderem YouTube und einige Google Dienst, sind inzwischen dazu übergegangen, den Internet Explorer 6 nicht mehr zu unterstüzzene. Auch ich habe mich entschlossen, in der 6er Version nicht mehr zu testen, den viele Fehler sind meistens schwer zu lokalisieren und erfordern einen enormen Zeitaufwand sie zu beheben.

Ich bitte Sie daher, sich kurz die Zeit zu nehmen (wir sprechen hier von nur zirka 5 Minuten) um Ihren Browser zu updaten. Wollen sie bei einer Microsoft-Entwicklung bleiben, können sie hier den Internet Explorer 8 downloaden. Vielleicht kann ich Sie aber auch davon überzeugen, sich eine der (in vielerlei Hinsicht dem Microsoft Produkt überlegenen) Alternativen Mozilla Firefox oder Google Chrome anzuschauen – Sie werden bald feststellen, dass das Surfen im Internet auf einmal viel schneller, prakischer und angenehmer sein kann. Alle drei Browser sind kostenfrei verfügbar und sorgen beim Installieren dafür, dass ihre Lesezeichen automatisch übernommen werden.

Sollten Sie Fragen oder Bedenken haben, können Sie sich jederzeit gerne an mich wenden. Ich helfe ihnen auch gerne bei jedglichen Problem, die durch den Umstieg entstehen sollten. Meine E-Mail-Adresse ist: mail@marekventur.de

Mit freundlichen Grüßen,
Marek Ventur

Paranoia für Linux-Admins

Posted in Development, Linux, Sicherheit, Webdevelopment on September 13th, 2010 by admin – Be the first to comment

Heute: Welche Programme lauschen an welchen Ports?

netstat -anp|grep LISTEN

netstat -anp|grep LISTEN

Software von schlechten Eltern: TOPSIM General Management II

Posted in DHBW, Sicherheit, Software from hell on September 13th, 2010 by admin – 8 Comments

TOPSIM General Management IIIm Rahmen meines bisherigen Studiums wurde ich schon zwei mal mit Planspielen von TOPSIM konfrontiert. Während ich das Prinzip an sich sehr interessant finde, musst ich doch schnell feststellen, dass die (manchmal) den Studenten ausgeteilte Planspiel-Software ein krasses Beispiel schlechter Software ist. Nicht nur, dass es gefühlte 100 Jahre alt ist, es macht auch das Planspiel an sich kaputt. Warum? Darum:

Erstens. Der Client hat einen Simulationsmodus (“Planungsmodell”>”Planungsmodell 1″). Damit kann man bis auf einige Nachkommastellen und mit ein wenig Überlegung den unternehmensinternen Teil des Ergebnisses vorherberechnen. Besser als jede Lösung via Excel, man braucht sich keine Gedanken über irgendwelche Formeln zu machen, das Programm errechnet alles alleine. Es ist so möglich, sich über beliebig vielen trial-and-error-Versuche dem idealen Ergebnis anzunähern – ohne Gefahr zu laufen, dass irgendwas in der internen Planung nicht richtig bedacht wurde.

Reset

Normalerweise kostet so einen Simulation virtuelles Geld, aber wen interessiert das schon, wenn man die Software einfach zurücksetzten und die Ausgangsdaten neu einladen kann? (Jeder, der das Handbuch lesen kann wird dort lesen können, dass das “Passwort” welches bei “Datei”>”4 Reset (Programm wird beendet)” abgefragt wird stupiderweise “reset” lautet)
Diese Lücke ist zu einem gewissen Teil prinzipbedingt – wenn man einen Simulationsmodus in die Teilnehmersoftware einbaut kann man nie verhindern, dass dieser unbemerkt eingesetzt wird (spätestens in einer VM geht sowieso Alles). Was aber auffällig ist, dass es so einfach ist hier zu tricksen, dass es einem als Programmierer schon fast weh tut beim darüber Nachdenken.

Ich dachte erst, dass nach so einem dicken Problem das Programm eigentlich keine größeren Lücken mehr enthalten kann. Die Damen und Herren von TOPSIM haben mich aber eines Besseren belehrt:

Zweitens. Neben den nun nicht mehr interessanten innerbetrieblichen Themen hat das Planspiel auch eine strategische Komponente; Es ist wichtig, sich der Konkurrenz und dem Markt anzupassen. Dementsprechend sollte es daher unmöglich sein an die Periodendaten der “Zukunft” zu gelangen oder die internen Daten der Mitbewerber auszulesen. Richtig?

TOP-DateienBlöd nur, dass die Software das anders sieht: Am Anfang und nach jeder Runde gibt es vom Spielleiter neue Spieldaten. Dies wurden bei uns auf einem USB-Stick verteilt und bestanden aus 3 Dateien: Einer TOP.UNT (1 Byte), einer TOPconfg.cfg(einige hundert Byte) und einer TOPData.zip (~85Kb).

Es mag an mir liegen, aber ich persönlich würde als Programmierer sensible Daten nicht so benennen, dass man sofort Art und Type des Inhalts erraten kann. Hier scheint es aber jemand darauf angelegt zu haben jedem mitteilen zu wollen, dass sich hinter den Dateien die Spielgruppe, die Configs und die Daten verstecken. Ein Hexeditor verrät jedem sehr schnell, dass es wohl kein Zufall sein kann, dass das einzige Byte der TOP.UNT der Unternehmensnummer entspricht. Ändern man es nämlich auf ein anderes Byte (nicht Char!), z.B. “1″ und läd die Daten neu ein, so sieht man alle internen Berichte der Gruppe 1.

TOPSIM Periodendaten

Treibt einen die Neugier dann zu der TOPData.zip (Hey, man hätte wenigstens die Dateiendung wechseln können, dann wäre ich wohl nicht auf die Idee gekommen, wie sie zu öffnen wäre…) so findet man in den Dateien TOP0SZN.001 bis *.008 die Informationen zu allen Perioden im Klartext – inklusive aller Marktzahlen.
Man mag sich jetzt natürlich fragen, warum die Daten aller Gruppen alle Informationen enthalten, sowohl über die Konkurrenz als auch über die zukünftige Ereignisse, wenn dies eigentlich gar nicht nötig ist. Warum werden nicht bei Erzeugung der Spielerdaten nur die relevanten Werte abgelegt? Ich tippe mal darauf, dass hier unerfahrene Programmier am Werk waren, anders lassen sich diese offensichtlichen Lücken nicht erklären.

Warum schreibe ich das jetzt hier so detailiert hin? Weil einige dieser Spiele (so wie bei uns) bewertet werden. Warum sollte also jemand einen schlechtere Note bekommen, nur weil er sich nicht auf die technische, sondern nur auf die wirtschaftliche Seite des Spiels konzentriert? Da das Planspiel dank unbegrenzter Simulationen und Perioden- und Konkurrenzdaten sowieso reizlos geworden ist, braucht man mit “Unfair!” auch gar nicht mehr anzufangen; Irgendeine Gruppe findet sowas immer heraus – und spätestens dann wird das theoretisch interessante Planspiel nur noch zur Zeitverschwendung.

PS.: Einige Studenten scheinen immer noch mitbekommen zu haben, wie Google funktioniert. Anders kann ich mir wirklich nicht erklären, wie man noch ernsthaft über die Periodenszenarien überrascht sein kann.