Skip to content

Dankeschön, Sony!

KabelfreakSchwarzseherSpielkind PSN h4x0r3d. Kundendaten, Kreditkarteninformationen, alles in freier Wildbahn. IHR STÜMPER!

"Ja, das kommt zur Zeit gehäuft vor, dass Kunden der Firma Sony ihre Karte sperren lassen wollen. Ich lasse Ihnen eine neue zuschicken, die ist etwa in einer Woche in Ihrem Briefkasten. Ich wünsche noch einen schönen Abend."


Nachtrag, 17. Mai 2011: Den folgenden Kommentar zu "Details zum “Willkommen Zurück” Programm für SCEE User" (fehlende Bindestriche: sic!) hat die Moderation des Playstation-Blogs nicht freigeschaltet (…und ich habe Verständnis dafür, dass viele Mitbürger das als "Zensur" bezeichnen würden, aber es handelt sich natürlich nur um "zensurähnliche Zustände"), was mich zu der Vermutung bringt, dass so viele negative Kommentare eingehen, dass nur ein Bruchteil davon freigeschaltet wird, damit die versöhnlicheren Kommentare nicht gänzlich untergehen:

"Na, das ist doch mal eine angemessene Entschädigung dafür, dass Sony meine Daten in der Welt verteilt hat. Ein paar Uralt-Spiele werden natürlich jeden Schaden ausgleichen, der bereits entstanden ist und noch entstehen wird. Besonders dankbar bin ich der Sony-Geschäftsleitung dafür, dass sie uns nicht auf einen Schlag mit der nackten Wahrheit konfrontiert hat, sondern sie uns schön scheibchenweise beigebracht hat. Schon dafür verdient Sony in Zukunft mein ungetrübtes Vertrauen."


Die einzige Form der Wiedergutmachung, die demonstrieren würde, dass Sony tatsächlich was verstanden hat, wäre die Reaktivierung von "Other OS".

Facebook scheißt auf Sicherheit

Kabelfreak Wenn man sich bei Facebook registriert und dabei Javascript eingeschaltet hat, werden die eingegebenen persönlichen Daten — darunter Mailadresse, Geburtsdatum und das gewählte Facebook-Passwort — im Klartext quer durch das Netz geschickt.

Eine Abhilfe scheint zu sein, Javascript vor dem Aufruf der Facebook-Seite abzuschalten, dann wird die FORM per https abgeschickt.

Das Ende ist nah! Die Synflut kommt!

Kabelfreak Mehrere Wochen lang war ein von mir gepflegter Webserver Ziel einer verteilten SYN-Flood. Sie führte mehrfach zu (teilweise massiven) Problemen bei der Auslieferung der Daten. Das fand ich… überraschend. Eigentlich hätte ich davon nämlich nichts merken dürfen.

Jede TCP-Verbindung beginnt mit einem Handshake: Rechner A schickt ein SYN-Paket ("Haage! Jemand za hage?") an Rechner B. Wenn sich auf Rechner B ein Programm bereit erklärt hat, auf dem gewünschten Port Verbindungen anzunehmen, antwortet Rechner B mit SYNACK ("Haage! Jajaja! Jemand za hage?"). Rechner A bestätigt das wiederum mit einem ACK-Paket ("Jajaja!") — und schon steht die Verbindung und die Nutzdaten (meist Spam oder Schweinegifs) können fließen.

Bei einer SYN-Flood (die Schreibung hab ich aus der Wikipedia, ich hatte mich eigentlich an "Synflood" gewöhnt) schickt der Angreifer eine Menge SYN-Pakete, ohne sich um die Antworten zu scheren. Der angegriffene Server reagiert auf jedes SYN mit einem SYNACK und steckt die "halb offene" Verbindung in eine Warteschlange, wo sie eine Weile auf das abschließende ACK wartet. Kommt das nicht, wird sie schließlich entsorgt. Das Ziel des Angreifers ist, diese Warteschlange zum Überlaufen zu bringen, damit der Server keine neuen Verbindungen mehr annehmen kann. In der Fachsprache bezeichen wir das als "clogging teh tubez".

Gegen eine SYN-Flood gibt es in der Theorie eine einfache Abhilfe: SYN-Cookies. Die werden automatisch eingesetzt, sobald die Warteschlange für halb offene Verbindungen voll ist: statt sich in der Warteschlange zu merken, dass er sich mit einer Gegenstelle mitten im Handshake befindet, markiert der Server das SYNACK-Paket so, dass er an der Antwort, am ACK-Paket, erkennen kann, dass es sich um einen gültigen Handshake handelt.

In der Praxis funktionierte das bei mir auch immer. Bis zu diesem Angriff auf diesen Server. War die Warteschlange voll, kamen nur noch vereinzelte Verbindungen beim Webserver an, es wurden kaum noch Daten ausgeliefert und die Serverlast ging gegen null. — "Er hat Jehova gesagt! Er hat Jehova gesagt! Jeder weiß doch, dass SYN-Cookies funktionieren müssen!" — Nein, ich hatte nicht bloß vergessen, sie anzuschalten:

TcpExt:
190431 SYN cookies sent
159509 SYN cookies received
233521 invalid SYN cookies received


Die nächste Seltsamkeit war mein Unvermögen, die Warteschlange zu verlängern. Egal an welchen Rädchen ich drehte und wie heftig der Angriff gerade lief, "netstat" behauptete stur, dass ich während der Spitzen des Angriffs nicht mehr als 512 Verbindungen im Zustand "SYN_RECV" hatte. Ich bin schließlich bei folgenden Einstellungen angelangt, die zumindest nicht zu einer Verschlechterung der Situation führten (Linux-Kernel 2.6.x, 2 GB RAM):

echo 5000 >/proc/sys/net/core/netdev_max_backlog
echo 4096 >/proc/sys/net/ipv4/tcp_max_syn_backlog
echo 2048 >/proc/sys/net/core/somaxconn
echo "389952 519936 779904" > /proc/sys/net/ipv4/tcp_mem
echo 131072 > /proc/sys/net/netfilter/nf_conntrack_max


Im Angesicht meines Unvermögens, die Warteschlange zu verlängern, musste ich dafür sorgen, dass 1) weniger halbfertige Verbindungen in die Warteschlange eingestellt wurden, dass 2) die Verbindungen, die zum Angriff gehörten, schneller weggeräumt wurden und/oder dass 3) legitime, vollständig aufgebaute Verbindungen schneller vom Webserver angenommen wurden.

Den ersten Punkt löste ich durch das Filtern der aktiveren Teilnehmer des verteilten Angriffs: wer mir mehr als hundert SYNs in zehn Sekunden schickt, kann es nicht gut mit mir meinen und wird erst mal für eine Weile ignoriert. Vermutlich wäre es elegant gewesen, das mit "iptables --limit" zu lösen, aber es entstand bei mir quasi aus der Diagnose heraus und passierte daher im gleichen Shellskript, das mich permanent über den Verlauf des Angriffs informierte und dazu eh schon die Verbindungen durchzählte. Natürlich macht das den Server angreifbar für Spoofing: wenn ein Angreifer die SYN-Pakete nicht mit seiner eigenen IP als Absender losschickt, sondern mit der IP eines Nachbarn (und der Provider das nicht erkennt und filtert), sperrt dieser Mechanismus den Falschen. Pech für den Nachbarn, aber das Wohl der Vielen wiegt mehr als das Wohl der Wenigen oder des Einzelnen.

Das beschleunigte Weggräumen von halbfertigen Verbindungen, die nicht schnell genug fertig aufgebaut werden, und die dadurch in den Verdacht geraten, Teil der Attacke zu sein, besorgt der Kernel nach dem Herabsetzen von tcp_synack_retries auf 1 oder, wenn das nicht reicht, auf 0. Der Nachteil hieran ist, dass wohl auch die ein oder andere legitime Verbindung von einer trägen Gegenstelle über die Klinge springen muss. Aber das Wohl der Vielen…

Den dritten Schritt, der nach den ersten beiden Schritten vermutlich überflüssig gewesen wäre, hab ich leider als erstes getan — davon ausgehend, dass SYN-Cookies funktionieren müssen, suchte ich den Flaschenhals zuerst beim Webserver.

Der angegriffene Server bekam auch schon im Normalfall sehr viele Verbindungen ab, weil er den gesamten statischen Content (hauptsächlich Bilder) für eine Reihe von anderen Sites ausliefert. Der bisher dahin dafür eingesetzte thttpd schien überfordert, lief (auf einer Maschine mit zwei Doppelkern-CPUs) single-threaded und bot kein KeepAlive.

Vielleicht hätte sich als Alternative lighttpd angeboten, aber mir schien der Zeitpunkt nicht wirklich geeignet für erste Experimente mit einem neuen Webserver, also griff ich auf Apache2 mit dem Worker-MPM zurück. Das Vergnügen hatte ich bisher nicht so oft, dank PHP bin ich praktisch überall auf das Prefork-MPM festgenagelt, das einen Pool von Prozessen verwaltet, die die Requests entgegennehmen, bearbeiten und dann für den nächsten Request frei sind. Das Worker-MPM arbeitet im Vergleich dazu mit einem zweistufigen System: es startet einen relativ kleinen Pool von Prozessen, die unentwegt Requests annehmen und dann jeweils in Threads abarbeiten. Beim Ausliefern statischer Dateien sollte das im Vergleich zum Prefork-MPM sowohl die Verzögerung beim Annehmen einer Verbindung als auch den Speicherverbrauch verringern.

Nach einigem Rumprobieren bin ich bei folgenden Einstellungen für das Worker-MPM angelangt, die ich vorher auch für übertrieben gehalten hätte:

StartServers 16
MaxClients 6400
ServerLimit 256
MinSpareThreads 25
MaxSpareThreads 6400
ThreadsPerChild 25
MaxRequestsPerChild 0


MaxSpareThreads auf MaxClients zu setzen führt übrigens dazu, dass ein einmal gestarteter Thread nie mehr weggeräumt wird. Wenn die Stärke des Angriffs zunahm, kamen die gültigen (!) Requests ab und an in heftigen Wellen, die es dann blitzschnell entgegenzunehmen galt, da wurden dann auch mal ein paar Tausend Threads losgetreten (während im "Normalbetrieb" ein paar Hundert ausreichen) — die nächste Welle wurde aber entsprechend leicht verdaut, weil die Threads bereits existierten und nur noch angeschubst werden mussten.

Der Angriff hält immer noch an, hat aber keine praktischen Auswirkungen mehr, im Gegenteil: durch die Umstellung auf den Apache (und das Einschalten von KeepAlive — natürlich nur auf ein paar Sekunden, ich will ja nur alle Bildchen, Javascripte und Stylesheets eines Seitenzugriffs in einer Verbindung abfackeln, für den nächsten Klick kann gerne 'ne neue kommen) liefern wir jetzt noch zackiger aus als vor dem Angriff. Interessant wird's erst wieder, wenn der Angreifer noch 'nen Zahl zulegt, sprich: wenn er die SYNs von mehr Absendern, also aus einem größeren Botnet, schickt, oder die Bandbreite des Angriffs massiv erhöht.

Onlineshopping leicht gemacht: Scheiß doch auf Sicherheit! (mit Nachtrag)

KabelfreakMedienjunkie Nach einigen Jahren Abstinenz hab ich eben, nach einer DVD von Magnolia Pictures fahndend, einen kanadischen Webshop (dvdboxoffice.com) besucht, bei dem ich früher mal aufgrund seiner kundenfreundlichen Geschäftspraktiken sehr gern bestellt hab: die DVDs kamen versandkostenfrei und per Remailing aus der EU, was mir das umständliche Rumgefuddel mit dem Zoll ersparte.

Die gesuchte DVD (interessanterweise eine Dokumentation über die Machenschaften von Kreditkartenfirmen, "Maxed Out") war im Angebot, mein vergessenes Passwort bekam ich nach Eingabe meiner Mailadresse binnen Sekunden zugeschickt, ich gab meine aktuellen Kreditkartendaten ein und bestellte. Dann wollte ich mein Passwort wechseln, aber ich fand im neuen, bunten Webshopsystem keine entsprechende Funktion.

Auf Anfrage teilte mir der Kundenservice mit, dass ich mein Passwort nicht selbst ändern könne — ich solle mein gewünschtes neues Passwort doch einfach per Mail an den Service schicken, es würde dann für mich geändert. Das war fischig genug, um bei mir das Bedürfnis zu wecken, meine Kreditkarteninformationen in diesem Laden nicht permanent gespeichert zu sehen. Natürlich war es nicht möglich, die einmal eingebenen Daten selbst zu löschen.

Misstrauisch, wie ich nun mal bin, ging ich mal testweise einen weiteren Bestellvorgang durch und kam bis zur Meldung "Click to complete your order", ohne dass ich nach dem CVV2 gefragt wurde, dem "Sicherheitscode", der, zumindest nach den Richtlinien der Kreditkarteninstitute, zur Sicherheit des Kunden eben nicht gespeichert werden soll.

Will ich, dass jeder, der die unverschlüsselte Mail mit meinem Passwort einsehen konnte, bei diesem Laden auf meine Kosten DVDs, Spiele oder auch 'ne PS3 bestellt? Das war für mich Paranoiker Grund genug, die Karte präventiv sperren zu lassen. Meine Bank und den Kreditkartensperrdienst haben die genauen Umstände nicht interessiert, die heften den Kartentausch einfach unter "Missbrauchsverdacht" ab und schicken mir binnen einiger Tage 'ne frische Karte.

Ich hab die Kreditkartengesellschaft auch mal direkt angeschrieben — ein Kontaktformular kann man sich auf der deutschen MasterCard-Seite leider nicht leisten, drum hab ich mich an die Mailadresse gewandt, die im Impressum versteckt war. Mal sehen, ob und wo Mail an "frankfurt@mastercard.com" ankommt und ob die Sicherheitsbemühungen der Kreditkartenhaie bloße Augenwischerei sind oder ob sie ihre selbst festgesetzten Sicherheitsregeln auch tatsächlich durchsetzen.

Ja, natürlich kann ich mir das auch selbst beantworten: der Payment Card Industry Data Security Standard (PCI DSS, verlinkt im Wikipedia-Eintrag zu CVV2) untersagt die Speicherung des Sicherheitscodes ausdrücklich, aber trotzdem muss ich ihn bei Blizzard nicht jeden Monat frisch eingeben, obwohl ich monatlich für WoW zahle. QED.

Nachtrag, 22. Februar 2008: (zu Franks Hinweis, wie sorglos er mit seiner Kreditkarte umgeht) Ich benutze meine Kreditkarte ausschließlich im Internet, ich hab sie ja extra dafür angeschafft. Im echten Leben bezahle ich, wenn irgend möglich, in bar, in Notfällen mit der EC-Karte — wobei ich dabei schon ein maues Gefühl habe: die modernen Kassen- und Warenwirtschaftssysteme sammeln so schon genug Informationen über mein Einkaufsverhalten, diese Daten müssen nicht auch noch personalisiert werden.

Wenn ich mal das gute, alte "Juden im Dritten Reich verstecken"-Beispiel heranziehen darf: falls ich nach der Revolution zu der Gruppe von Menschen gehöre, die aus Mitgefühl einem Manager eines DAX-Unternehmens in ihrem Keller Asyl gewähren, wäre es schade, wenn die Behörden das bloß durch Abgleich von Lebensmitteleinkäufen feststellen könnten. Solange man sich nicht schon durch die bloße Benutzung von Bargeld verdächtig macht, verzichte ich gern darauf, aktiv zur Sammlung von Daten über mich beizutragen...

Hmmm, ja, okay, das ist etwas schizophren, da die postrevolutionären Sicherheitsbehörden ja bloß nach "DAX-Manager im Keller" googeln müssten, um mich zu finden... aber dass ich paranoid bin, heißt ja noch lange nicht, dass ich nicht auch schizophren sein darf.

MasterCard hat übrigens sehr freundlich und kompetent geantwortet und das Fehlen eines Kontaktformulars damit erklärt, dass der Ansprechpartner des Kunden in den meisten Fällen die kartenausgebende Bank, bzw. der als "Karteninhaberservice" oder "Kundenservice" auftretende "Prozessor" ist. Zum Speichern des CVV2 schreibt das "MasterCard Europe Team":

Die Abfrage der Kartenprüfnummer erhöht die Sicherheit von sogenannten "card-not-present" Kreditkartentransaktionen. In der Tat fordert MasterCard von den Akzeptanzstellen, dass diese die Kartenprüfnummer nicht speichern dürfen. Die Kartenprüfnummer ist jedoch kein geheimes Sicherheitsmerkmal wie die PIN, welches vom Karteninhaber vertraulich zu halten ist und hat somit auch keinen Einfluss auf Ihre Rückbelastungsrechte als Kunde im Falle von Kreditkartenmißbrauch.


Sprich: den CVV2 im Rahmen einer Transaktion auf einer Webseite einzugeben gilt an sich noch nicht als Verletzung der Sorgfaltspflicht, man muss als Kunde also nicht schon aus Prinzip in vollem Umfang für daraus folgenden Missbrauch haften, sondern die Haftung beschränkt sich auf die übliche "Selbstbeteiligung" (in meinem Fall €50 pro Missbrauch).

Das hätte ich auch nicht anders erwartet, die Aussage lässt aber offen, wie es sich mit der Haftung des Kunden verhält, wenn eine "Akzeptanzstelle" (also z.B. ein Onlineshop, der Kartenzahlung akzeptiert) den CVV2 — entgegen der Vorgaben der Kreditkartenunternehmen — speichert, die Daten in falsche Hände geraten und so Missbrauch stattfinden kann, der ohne CVV2 nicht möglich gewesen wäre.

Hafte ich dann für jeden Missbrauchsfall mit €50 bis sie mir auf dem Kontoauszug auffallen? Bis dahin könnte sich ja schon einiges an Transaktionen angesammelt haben...

Verzweifelte Versuche (mit Nachträgen)

KabelfreakMedienjunkieSchwarzseher Morgen, am Super Tuesday, wird voraussichtlich entschieden, wer der "demokratische" Präsidentschaftskandidat wird. Grinsekatze John Edwards, mit dem Versprechen angetreten, die Macht der Konzerne und Lobbyisten zu brechen, ist bereits aus dem Rennen. Hillary führt mit Abstand. Drei Dutzend Musik- und Medienmillionäre haben sich zusammen getan, um noch mal schnell die Werbetrommel für Barack Obama zu rühren — und wenn ich nicht im Hinterkopf hätte, wie verlogen der ganze Wahlzirkus ist, könnte ich 'ne Gänsehaut kriegen und für viereinhalb Minuten davon träumen, dass die Supermacht, die in meinem Teil der Welt die Richtung vorgibt, von einem visionären Idealisten zum Wohle der Menschheit geführt wird: "Yes We Can" bei dipdive.com oder YouYube.

Und jetzt stell Dir das mal mit Dieter Bohlen, Herbert Grönemeyer, Nena, Sarah Connor und einer Merkel-Rede vor.

PS: Meine Vorhersage: John McCain wird gegen Hillary Clinton antreten und es wird total egal sein, wer im November gewinnt, weil beide für's Weitermachen stehen.

Nachtrag, 14. Februar 2008: Nur wenige Tage nach meiner Prophezeiung scheint sie sich schon als falsch zu erweisen: Obamania sweeps the nation! Falls Obama nicht nur ein Schaumschläger ist, stellt sich natürlich die spannende Frage, ob er seine erste Amtszeit überlebt...

Nachtrag, 26. Februar 2008: Dank eines Softwarefehlers der in den USA eingesetzten Diebold-Wahlmaschinen wurde das Wahlergebnis vorzeitig bekannt: "...and she'll act surprised."

Nachtrag, 5. November 2008: Ob ich mich freue, wurde ich gefragt. Freuen? Über Obama? Warum?