Korrigendum: Huch, wir sind ja schon bei Nummer FÜNF angekommen. Danke, Shift, für den Hinweis.
Hinweis: Es ist – wie immer wenn es um die Sicherheit von Partyguide geht – übertrieben, von einem Hack zu sprechen. Viel eher handelt es sich um ein Datenleck, durch das mit minimalsten Kenntnissen von Web-Programmierung vertrauliche Daten von Benutzern des Portals eingesehen werden konnten.
Das Problem wurde mittlerweile beseitigt, weshalb ich keine Bedenken mehr habe, das Leck öffentlich zu machen.
Wie immer: Geschwätzig!
Das Leck offenbarte sich im angesprochenen Fall über das PHP-Script, das Staff-Mitglieder mit Foto anzeigt:
Irgend ein spielerisch veranlagter Zeitgenossen war vor einiger Zeit auf die Idee gekommen, eine beliebige Benutzer-ID in die URL einzufügen. Und siehe da – das Script frass die neue ID ohne Überprüfung, ob es sich beim angefragten User tatsächlich um ein Staff-Mitglied handelte. Nicht weiter schlimm, mag man denken – doch blöderweise stand auf der ausgelieferten HTML-Seite auch der reale Namen des Users.
Obwohl die Macher hinter Partyguide erst kürzlich in einem grossen Schweizer Wochenmagazin behaupteten, seit dem „Hackerangriff vom letzten Sommer“ Sicherheit einen höheren Stellenwert zu geben, scheint von diesem Vorhaben nicht viel in Praxis umgesetzt worden zu sein. Auch weiterhin galt bei diesem Script (wie wohl auch bei Dutzend anderem auf dem Server) das Motto: „Wir trauen jeglichen Anfragen, die von Besuchern unserer Seite eintreffen.“ Tragisch, aber wahr.
Data Mining
Natürlich reizt dieser Datenfundus, um mit statistischen Methoden Untersuchungen anzustellen. Nachfolgend zwei interessante Entdeckungen:
Hauptkritikpunkt: Registration nur mit plausiblen Angaben? Nicht bei uns!
Bei Partyguide kann Mitglied werden, wessen Namen „. .“ lautet. Dies öffnet Tor und Riegel, um sich in Kürze unzählige Fake-Accounts zuzulegen. Als positiver Nebeneffekt kann sich Partyguide dann damit brüsten, so und soviele hunderttausend Benutzer registriert zu haben.
Der Beweis für die Laxheit der Überprüfung von Formular-Angaben mit einer Auflistung von komischen Benutzerangaben (die Zeichenlänge von Vor- und Nachnamen beträgt maximal 8 Zeichen):
1. | 89 | A B |
2. | 20 | M S |
3. | 18 | Ich Du |
4. | 15 | Ale Ela |
5. | 14 | John Doe |
6. | 13 | X Y |
7. | 13 | Marco |
8. | 12 | Patrick |
9. | 12 | A S |
10. | 11 | M G |
11. | 11 | S M |
12. | 10 | A M |
13. | 9 | Stefan |
14. | 9 | D B |
15. | 9 | Sandra |
16. | 9 | Jenny |
17. | 9 | Daniel |
18. | 8 | M B |
19. | 8 | Nadine |
20. | 8 | Laura |
21. | 8 | M W |
22. | 8 | S F |
23. | 8 | M K |
24. | 7 | Vanessa |
25. | 7 | Nadja |
26. | 7 | Michael |
27. | 7 | A D |
28. | 7 | Mike |
29. | 7 | S B |
30. | 6 | P G |
31. | 6 | Sarah |
32. | 6 | R F |
33. | 6 | Pascal |
34. | 6 | Nicole |
35. | 6 | F S |
36. | 6 | Abc Def |
37. | 6 | Lisa |
38. | 6 | N Z |
39. | 6 | P M |
40. | 6 | M A |
41. | 6 | Sabrina |
42. | 6 | M R |
43. | 6 | Dsf Sdf |
44. | 5 | A H |
45. | 5 | Nina |
46. | 5 | Asd Asdf |
47. | 5 | Adrian |
48. | 5 | Melanie |
49. | 5 | J W |
50. | 5 | Don Juan |
Das andere Problem ist, dass eine Registrierung auch dann zugelassen wird, wenn man in das Feld für Vor- und Nachnamen dieselben Angaben eingibt:
1. | 243 | – – |
2. | 94 | A A |
3. | 78 | Asdf Asdf |
4. | 51 | … … |
5. | 45 | . . |
6. | 42 | D D |
7. | 38 | X X |
8. | 32 | S S |
9. | 32 | Bla Bla |
10. | 31 | Xxx Xxx |
11. | 23 | H H |
12. | 21 | Asd Asd |
13. | 20 | F F |
14. | 20 | M M |
15. | 18 | Dd Dd |
16. | 18 | .. .. |
17. | 16 | Test Test |
18. | 15 | R R |
19. | 14 | L L |
20. | 13 | Hans Hans |
21. | 13 | Xx Xx |
22. | 12 | Anonym Anonym |
23. | 12 | * * |
24. | 12 | Sdf Sdf |
25. | 12 | Lala Lala |
26. | 11 | Xy Xy |
27. | 10 | T T |
28. | 10 | B B |
29. | 10 | J J |
30. | 10 | Marco Marco |
31. | 9 | Ss Ss |
32. | 9 | Tom Tom |
33. | 9 | Mike Mike |
34. | 9 | Lol Lol |
35. | 9 | Asdasd Asdasd |
36. | 9 | …. …. |
37. | 9 | Gg Gg |
38. | 9 | K K |
39. | 8 | W W |
40. | 8 | Ff Ff |
41. | 8 | Hallo Hallo |
42. | 8 | Crazy Crazy |
43. | 8 | Toni Toni |
44. | 8 | G G |
45. | 7 | Muster Muster |
46. | 7 | Alex Alex |
47. | 7 | ??? ??? |
48. | 7 | E E |
49. | 7 | Unbekannt Unbekannt |
50. | 7 | Sam Sam |
Ratschläge
Die Daten liegen zu euren Füssen – säubert die Benutzer-Tabelle doch endlich mal! Mit ein paar Zeilen PHP-Code lässt sich die ganze Chose automatisieren.
Im gleichen Anlauf fände ich eine noch porentiefere Säuberung sinnvoll: Benutzer, die sich seit x Monaten nicht mehr eingeloggt haben, wird ein Mail gesendet, das sie auffordert, sich in den nächsten x Tagen einzuloggen. Ist die Mail-Adresse ungültig oder geschieht bis zum angedrohten Termin kein Login, wird der Account gelöscht.
In Zukunft bitte ich euch, eine anständige Plausibilitätsprüfung bei Neuanmeldungen durchzuführen.
Und last, but not least: Der Sicherheitsaudit wäre immer noch fällig. Solche Datenlecks dürfen einfach nicht auftreten!
Für die Konkurrenz
Bei ca. 30% der untersuchten Accounts wurde kein Namen zurückgeliefert (unter der angefragten User-ID scheinen keine Daten mehr vorhanden zu sein). Vermutlich handelt es sich hierbei um gelöschte Benutzer.
Wissenswertes
Die häufigsten Familiennamen der Schweizer Jugend resp. der Partyguide-Benutzer? Seht selbst:
1. | Müller |
2. | Meier |
3. | Schmid |
4. | Gerber |
5. | Keller |
6. | Schneider |
7. | Weber |
8. | Moser |
9. | Meyer |
10. | Berger |
Und hier dasselbe mit den Vornamen:
1. | Michael |
2. | Daniel |
3. | Thomas |
4. | Marco |
5. | Stefan |
6. | Patrick |
7. | Sandra |
8. | Marc |
9. | Simon |
10. | Pascal |
Es scheint symptomatisch für Partyguide zu sein, dass unter den zehn häufigsten Vornamen nur gerade ein weiblicher Name auftaucht …