Samstag, Juli 08, 2006

Partyguide Strikes Back


Partyguide Strikes Back I
Originally uploaded by emeidi.

Partyguide Strikes Back II
Originally uploaded by emeidi.

Gestern Donnerstag, kurz nach Mitternacht, muss es Jason und den Argonauten endgültig den Nuggi rausgejagt haben. Wenige Tage vor dem siebenjährigen Geburtstag der (in den letzten sechs Monaten wohl am häufigsten gehacktenTM) schweizerischen Party-Community blies man nun zum Gegenschlag gegen den so verhassten think eMeidi.

Die Verantwortlichen entdeckten - ob durch Hinweis eines Dritten Mitstreiters sei dahingestellt - meine Arbeiten am vierten Partyguide-Hack (JavaScript-Injection, später dazu mehr - dank an Anonymous für den ursprünglichen Tipp).

Nach stundenlangen Beratungen im Tipi des Häuptling Jasons kamen die geistreichen Argonauten zum Schluss, mit geballter Feuerkraft zurückzuschiessen. Für was verfügt man denn über genug Bandbreite und eine Vielzahl an Servern (zum Teil gar durch Gönner mitfinanziert)?

So wurde mein Debian-Server kurz nach 00:00 Uhr Ziel einer stümperhaften DoS-Attacke, die erst heute Nachmittag kurz vor 16:00 Uhr abbrach. Wie man es den beiden cacti-Graphen ansieht, äusserten sich die geballten Aufrufe meines Scriptleins, das Usernamen und Passwort-Hashes (aus dem Cookie) in Empfang nahm, sowohl in einem konstanten ein- und ausgehenden Traffic auf eth0 sowie einer stark erhöhten Load Average auf meiner schmalbrüstigen Pentium III-CPU (600MHz).

Fazit

Ein access.log, das fünfmal so schwer wiegt wie sonst:

ALPHA:/var/log/apache2# ls -l
total 44808
-rw-r--r-- 1 root adm  29612337 2006-07-08 01:01 access.log
-rw-r--r-- 1 root adm   5789490 2006-07-02 06:24 access.log.1

... und uns auch noch etwas über die Technik von Partyguide erzählt:

217.150.245.77 - - [07/Jul/2006:15:50:27 +0200] "GET /b.gif?i=84455&p=ab5c62bbb11b644fdcecd91e89acd768 HTTP/1.1" 302 - "-" "curl/7.12.1 (i686-pc-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.6m zlib/1.2.2"

... sowie auch die IP des mutmasslichen "Täters" freigibt:

84.72.129.186 - - [07/Jul/2006:00:06:25 +0200] "GET /b.gif?i=100&p=1234 HTTP/1.1" 302 20 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"

217.150.245.77 - - [07/Jul/2006:00:29:04 +0200] "GET /b.gif?i=196828 HTTP/1.1" 302 700 "-" "curl/7.12.1 (i686-pc-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.6m zlib/1.2.2"

84.72.129.186 - - [07/Jul/2006:00:30:05 +0200] "GET /b.gif HTTP/1.1" 302 224 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"

84.72.129.186 - - [07/Jul/2006:00:30:24 +0200] "GET /b.gif?i=196828 HTTP/1.1" 302 218 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"

Eine MySQL-Tabelle mit knapp 110'000 Records, die allesamt vom Partyguide-Server aus kamen:

mysql> SELECT COUNT( * )  FROM  `xss`  WHERE ip =  '217.150.245.77';
+------------+
| COUNT( * ) |
+------------+
|     109342 |
+------------+
1 row in set (0.47 sec)

Und nicht zuletzt ein Beweis, wie robust Debian Linux mit Apache 2.0.55, PHP 4.4.2 und MySQL 4.1.15 ist.

Fehler von meiner Seite

Das nächste Mal schalte ich E_ALL in solch sensitiven Verzeichnissen wieder aus:

[Fri Jul 07 00:29:04 2006] [error] [client 217.150.245.77] PHP Notice:  Undefined index:  p in /var/www/pg-search/xss.php on line 12

Leider Gottes ein zu guter Ansatzpunkt für potentielle PG-Hacker ...

Zu guter Letzt noch dies ...

Es tut mir wirklich leid, das sagen zu müssen: Anstelle eure Energie an einem kleinen Fisch wie mir zu verschwenden, unterzieht ihr all eure PHP-Scripts einmal einem richtig gründlichen Security-Audit.

Labels: ,

7 Kommentare | neuen Kommentar verfassen

Kommentare

neuen Kommentar verfassen

Anonymous Oli um 08.07.2006 12:02:00 Uhr

Sali Mario

Wir haben uns entschlossen die Absichten dieses Gegenangriffs nochmals zu erläutern, denn es war unter keinen Umständen eine DoS Attacke. Das Ziel war es, eventuell ergatterte Hash Werte zu überschreiben. Deshalb entschieden wir uns, dein Skript ein paar Tausend mal mit gefakten Daten aufzurufen. Hätten wir eine DoS Attacke durchführen wollen, hätten wir bestimmt nicht ein Delay in das Skript eingebaut. Des weiteren hätten wir wohl auch mehrere Server und auf keinen Fall pg server dazu verwendet. Ob die ganze Aktion erfolgreich verlaufen ist, können wir natürlich nicht sagen.
Anscheinend sind wir dieses mal von der gleichen Quelle über das, inzwischen geschlossene, Sicherheitsloch informiert worden. Jedoch mussten wir wieder einmal mehr feststellen, mit welchen bösartigen Absichten du pg gegenüber stehst. Während ein verantwortungsbewusster Mensch auf die Lücke hingewiesen hätte, musstest Du diese natürlich schamlos ausnutzen. So konnten wir insgesamt 9 Blogs von Dir mit schädlichem Code aufspüren. Da dies die einzigen Einträge mit schädlichem Code waren, erübrigt sich wohl ein weiterer Kommentar.

Obwohl ich für pg tätig bin, stand ich eine lange Zeit auf Deiner Seite, was das Aufdecken von Sicherheitslöchern betraf. Im letzten Monat bist Du aber definitiv zu weit gegangen. Deine Böswilligkeit kommt immer mehr zum Vorschein und dass Du dich noch als Opfer darstellst finde ich weit weg von allem. Es würde mich wirklich interessieren, wie die Person hinter diesem Blog aussieht. Mein Nachhilfeunterricht in Ethik und Moral hat bis jetzt anscheinend nichts bewirkt. Ich denke sowieso, dass Dir das Gebiet bekannt sein sollte. Übrigens, diese Aktion von Dir entspricht eher einer DoS Attacke.

Zum Schluss möchte ich noch anbringen, dass ich Deine persönlichen Angriffe in deinen Blogs (welche vor allem gegen Jason gerichtet sind) völlig daneben finde.

Deine Stellungnahme dazu würde mich Interessieren.

Gruess

Oli (einer der Argonauten)

Blogger eMeidi um 08.07.2006 14:24:00 Uhr

Lieber Oli

Zuerst: Sprichst du im Namen von Partyguide, oder gibst du hier deine eigene Meinung wieder?

Ich vermisse in der ganzen Diskussion eine öffentliche Stellungnahme von Partyguide zu den in letzter Zeit vorgefallenen "Hacks" (In Anführungszeichen, denn "Hacks" kann man dem nun wirklich nicht sagen).

Wir haben uns entschlossen die Absichten dieses Gegenangriffs nochmals zu erläutern,

Nochmals? Habe ich etwas verpasst?

Deshalb entschieden wir uns, dein Skript ein paar Tausend mal mit gefakten Daten aufzurufen.

Das waren nicht ein "paar", sondern 110-tausend Male ...

Jedoch mussten wir wieder einmal mehr feststellen, mit welchen bösartigen Absichten du pg gegenüber stehst.

Und ich musste ein weiteres Mal feststellen, wie fahrlässig Partyguide mit den persönlichen Daten seiner Benutzer umgeht:

"Personendaten müssen durch angemessene technische und organisatorische Massnahmen gegen unbefugtes Bearbeiten geschützt werden."

DSG, Art. 7 Datensicherheit

Frage: Erachtet Partyguide den Sicherheitsstandard seiner Community-Software zur Zeit als genügend?

Während ein verantwortungsbewusster Mensch auf die Lücke hingewiesen hätte, musstest Du diese natürlich schamlos ausnutzen.

Erachtet es als einen Proof-Of-Concept.

Habt ihr die Benutzer über die Lücke informiert? Falls nein, wieso nicht?

und dass Du dich noch als Opfer darstellst finde ich weit weg von allem.

Verstehe mich nicht falsch, aber wieso macht sich Partyguide die Mühe, ein Tool zu schreiben, dass meine Datenbank vollspamt, anstelle die Energie dafür einzusetzen, endlich einen Code-Audit durchzuführen? Die Hacks der letzten Zeit zeigen, dass jedes Script-Kiddie eine Lücke in eurem Produkt findet, sucht man nur lange genug danach.

Völlig unverständlich ist mir zudem, wieso das Blog-Feature nicht mit Sicherheit an oberster Stelle implementiert wurde. Schliesslich war zu dem Zeitpunkt der erste und dritte Partyguide-Hack längst veröffentlicht.

Zum Schluss möchte ich noch anbringen, dass ich Deine persönlichen Angriffe in deinen Blogs (welche vor allem gegen Jason gerichtet sind) völlig daneben finde.

Jason ist als Geschäftsführer diejenige Person, die a) die Verantwortung für seine Unternehmung trägt und b) - gemäss ungenannten Quellen - als diejenige Person gilt, die den Grossteil der Applikation programmiert hat.

Wem sonst als Jason sollte ich ans Bein pinkeln? Ist auch dieser Hack wieder ein "unvorhersehbarer Betriebsunfall", mit dem eure Nutzer leben müssen?

Was würdest du machen, würde ein Bank solche eklatante Sicherheitsmängel aufweisen? Wäre auch der Hacker der Böse, weil er es gewagt hat, das Produkt auf Schwachstellen zu testen?

Wem gibst du die Schuld, wenn auf Grund eines voraussehbaren Materialfehlers ein Autounfall passiert? Dem Hersteller oder dem Fahrer?

Ich denke es wäre an der Zeit, dass Partyguide offiziell Stellung bezieht und - ähnlich wie Microsoft damals, als man mit der Entwicklung von Service Pack 2 für Windows XP begann. Anstelle immer neuen Code in seine Bloatware einzubauen, durchsuchten die Programmierer für mehrere Monate den Code nach Schwachstellen. Wieso macht ihr nichts?

Und kommt mir nicht, dass es sich dabei um ein Freizeit-Projekt handelt. Partyguide ist kommerziell tätig und ist mit über 200'000 (teilweise gefakten) Usern längst kein "Hinterhof-Projekt" mehr.

Wann übernehmt ihr endlich die Verantwortung?

Anonymous Anonym um 08.07.2006 19:38:00 Uhr

Wollte mich eigentlich nicht mehr einer Diskussion stellen, aber
Deine selbstherrliche Arroganz zwingt mich wieder dazu, eine schon lange
überfällige Frage los zu werden:

Liest Du eigentlich auch Tageszeitungen? - oder nur Lokales oder die grossen fünf Buchstaben auf Rot?

Anders kann ich es mir nicht vorstellen dass Du als als eingefleischter "Scenenbeobachter"
den "Lapsus" vor 2 Wochen von Coop resp. Swisscard in Deinem Blog nicht kommentiert hast.

Hier hättest Du als "kleiner Fisch" mal einem richtig Grossen die Leviten lesen können.
Hier ist ein wirklich "grosses" Datenschutzvergehen passiert.
Hier konnte jedermann mit etwas Phantasie an ziemlich brisante, persönliche Daten gelangen, ohne irgendwelche Scripts, Attacken etc., nur etwas logisches Denken war gefragt.

Eigentlich schade dass Du dies nicht entdeckt hast. Diese Liste hätte sich sicher gut verkaufen lassen - oder aber Deine Popularität wäre erheblich gestiegen, und vielleicht sogar ein Bericht in einer grossen Tageszeitung ??

Oder war dir der Fisch dann doch zu gross oder einfach nicht Deine "Liga".

so das war's eigentlich schon von mir, aber das brannte jetzt unter den Nägeln...
Möchte meine Freizeit sinnvoller nutzen.

Dass ich wieder als Anonymous geschrieben habe tut mir leid, (ich bin übrigens nicht der Martin),aber Du wirst sicher noch mehr von mir erfahren, spätestens wenn der "kleine Fisch" selber
Verantwortung übernehmen muss.

(Dein Zitat):Wann übernehmt ihr endlich die Verantwortung?

In diesem Sinn - auf gutes Gelingen

Anonymous Anonym um 09.07.2006 00:31:00 Uhr

Hallo anonymer Mensch. Dann schreiben wohl alle PG-Leute "Du" und "Dein" gross? Komisch...

Anonymous Anonym um 09.07.2006 11:45:00 Uhr

Sehr interessant diese Diskussion als Aussenstehender mitzuverfolgen. Aber zur Sache mit Coop und Swisscard: dies war ein einmaliger Fehler, und kein generell systembedingtes Sicherheitsrisiko, wie es bei euch anzunehmen ist. Da gibt es auch nichts zu bloggen: Coop hat den Fehler erkannt und behoben. Zudem ist z.B. in der NZZ meines Wissens nie dazu etwas gesagt worden, was ich doch relevanter finde, als ein Artikel im Blick.
Ausserdem: schön, dass ihr emeidi zur Verantwortung ziehen wollt, aber da müsst ihr zur Selbstjustiz greifen (was ja in euren Kreisen gang und gäbe ist). Wenn ihr die Rechtsprechung zu ähnlich gelagerten Fällen in der Schweiz untersucht, werdet ihr schnell herausfinden, dass bei solchen Fällen IHR das Problem zu verantworten habt.

Anonymous Anonym um 09.07.2006 12:46:00 Uhr

Das "Du" und "Ihr" hat mit alter Schule oder "Höflichkeit" zu tun und nichts mit PartyGuide. Keine Stellungsnahme zu meinem Kommentar?
@Anonymous
Was heisst hier systembedingt ?? wohl nicht viel Ahnung von der Materie. Dies war auf keinen Fall Systembedingt, sondern eine "grober" "vielleicht einmaliger" Programmierfehler (Mario würde sicher auch hier Sichrheitslücken finden!), der von jedem (wie sagt Mario so schön: Script-Kiddie) geknackt werden konnte - OHNE langes Suchen!! Zudem wurde der Artikel halbseitig im Tages-Anzeiger publiziert - "wer" auch immer dies dem TA gemeldet hat; ich vermute kaum Coop!
Bist Du nun Aussenstehender oder kennst Du "unsere Kreise" doch besser. Wohl den Begriff Selbstjustiz nicht ganz begriffen. Das Vorgehen von Partyguide hat alles andere
als damit zu tun.
Das mit der Verantwortung lassen wir mal andere klären.

Blogger Shift um 09.07.2006 14:26:00 Uhr

[Lösungsvorschlag]


An: Die Betroffenen
Von: Shift
Problem: Sicherheitslücke

Anstatt euch Seitenweise über die Schuldfrage und Problematik dieser Situation den Kopf zu zerbrechen, könnte Partyguide, die Sicherheitslücke decken [oder sonst irgend jemand der sich dazu berufen fühlt].
Den durch euer geblogge wird sich nichts grundlegendes am Problem selbst ändern. Durch eure, durchwegs differenzierte, Analyse erhält man genug informationen um nochmals einen Angriff starten zu können. Man muss sich nur an eure Anleitung halten.

Regards
Shift

Zitierungen dieses Artikels