Datenschleuder des tages

Datenschleuder des tages ist die lufthansa:

Am vergangenen Montag konnten Miles-and-More-Kunden zeitweise vertrauliche Daten anderer, zeitgleich im Portal eingeloggter Kunden sehen

Wie kriegt man es nur hin, so zu verkacken! Kunde max mustermann meldet sich an und kriegt eine eindeutige sitzungs-ID zugewiesen und als cookie gesetzt, über die er bei jedem weiteren zugriff identifiziert wird. Offenbar haben es irgendwelche kwalitätsprogger geschafft, nicht zu testen, ob eine solche ID schon vergeben ist — und dann wurde halt mal der andere kunde sichtbar, der die gleiche ID erhalten hat. Aber selbst das erklärt nicht das ganze ausmaß des verkackens, denn so eine ID wird ja wohl mindestens 64 bit haben, besser mehr, so dass es kaum zu kollisjonen kommen kann. Und trotzdem prüft man kurz, um einfach eine andere ID zu erzeugen, wenn eine ID schon vergeben wurde. Jedenfalls, wenn man ein sorgfältiger progger ist.

Ich vermute, die verwenden einen pseudozufallszahlengenerator für ihre IDs, und der wurde mit einem nicht besonders sicheren wert (zum beispiel die uhrzeit des seitenaufrufs) initialisiert, so dass in der gleichen sekunde alle anmeldungen auf die gleiche ID führen. Im testsystem mit den üblichen test-cases hat das niemand bemerkt, aber als dann die ungleich größere last eines produkzjonssystems mit ihren unmengen von anmeldevorgängen kam, ist den proggern die verkackte, dumme entscheidung um die ohren geflogen. Davon, dass so etwas auch eine einladung an cräcker ist, die mit leichtigkeit andere sitzungen übernehmen können, fange ich gar nicht erst an.

Wie ich darauf komme? So einen fehler (PRNG mit time(), auflösung ist eine sekunde, initialisiert und daraus sitzungs-IDs gemacht) habe ich vor langer zeit mal in der webseit eines großen deutschen vereins gefunden, die übrigens in einer kleinen unternehmung von einem azubi geproggt wurde, aber deshalb natürlich nicht als von einem azubi geproggt abgerechnet wurde. Die vorstellung, dass im moment so eine ähnliche „kwalität“ — die PHP-kwelltexte bei dem projekt, an das ich mich erinnere, kamen direkt aus dem gruseligsten ring der hölle — bei der lufthansa im einsatz sein könnte, finde ich sehr erheiternd. Das wird dann nämlich richtig teuer. Und der datenschutzbeauftragte wird in den nächsten monaten immer wieder mal zu tun kriegen. Aber so ist das halt, wenn billig geproggt wird. Dann wird halt später teuer gezahlt. Und oft von jemanden anders, der schon zu viel fürs billige proggen bezahlt hat.

Wie gesagt, es ist auszuschließen, dass so ein fehler einem guten, sorgfältig vorgehenden progger passiert. Ich meine jetzt keinen guru, sondern einen durchschnitts-entwickler oder fortgeschrittenen amatör, der meistens weiß, was er tut. Der macht schon in der datenbank einen UNIQUE KEY, damit der UPDATE mit einer nicht-eindeutigen sitzungs-ID fehlschlägt. Das muss dann nur noch erkannt und abgefangen werden, indem man eine neue ID generiert und es nochmal probiert, bis es klappt; so schwer schreibt sich ein repeat-until-block nicht.

Eine Antwort zu “Datenschleuder des tages

  1. Da arbeiten Menschen. Und die machen Fehler.
    Machinelearning,ai ist für die Gewinnoptimierung aka Abzocke da! Nicht das Menschen unterstützt werden,pffffff.
    Die arme notleidende Lufthansa kann sich keine unnötigen fehlervermeidende Vorrichtungen leisten,hab doch Mitleid,harharhar..har.
    Diese Pappnasen.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.