2018-09-13 4 Minuten

Enumeration oder: wenn dein Drogenbefund im Internet verfügbar ist

#420

Es gibt Dinge, die sollten irgendwie nicht an die Öffentlichkeit gelangen. Drogentests sind eines davon.

Das mag jetzt ein wenig random klingen, aber vor mehreren Tagen wurde entdeckt, dass ein Drogenlabor in Wien die Befunde auf der Webseite öffentlich als PDFs gespeichert hatte.

Der Artikel liest sich wie ein schlechter Film. Wenn ich in dem Datensatz wäre, ich würd denen die Hölle heiß machen, DSGVO und alles.

Was ist passiert?

Der jeweilige Befund wird mit einer 8-stelligen “Zufalls”-Zahl benannt. Diese Zahl wird dem Kunden via E-Mail zugesandt und kann auf einer Ergebnisse-Seite eingegeben werden. Dann erhält man seinen eigenen Befund als PDF.

Nur war diese Zahl anscheinend nicht zufällig, sondern aufsteigend. Weil laut derstandard.at “aufgrund eines Fehlers im Zahlengenerator” die Zahlen nicht zufällig genug waren.

I call Bullshit. Das ist eine Ausrede.

Mein Problem damit:

Zufallszahlen sind generell eine schlechte Security-Maßnahme

Security through Obfuscation heißt diese Worst-Practice. Es ist das “wird schon keiner draufkommen” des Internets.

Ob ich ausgehend vom Befund 49158245.pdf 1 dazu- oder wegzählen muss, um auf den nächsten Befund zu kommen, oder ob ich alle Möglichkeiten durchprobiere ist in der IT egal. Ein automatisiertes Skript läuft halt dann vielleicht eine Stunde, und ich habe alle Daten die ich brauche.

In der Fachsprache heißt das Enumeration. Der Gedanke dahinter ist folgender:

Auf Basis einer ID oder berechenbaren Mustern kann auf Daten zugegriffen oder Informationen gefunden werden, die so nicht öffentlich sein sollten.

Enumeration

Der Gedanke kam schon einmal auf diesem Blog vor. Das WordPress-Sicherheits-Tool wpscan verwendet Enumeration, um auf einer Webseite herauszufinden welche

  • Plugins
  • Themes
  • User

existieren. Es probiert einfach alle Möglichkeiten durch. Dieser “schauen wir, wo wir was finden” ist im Hacking oftmals sehr aufschlussreich:

Einsatzgebiete von Enumeration

Webseiten abtesten

Wie im wpscan-Artikel bereits beschrieben, kann ein Angreifer via Enumeration ein komplettes Bild einer Webseite erhalten. Und dann damit weiterarbeiten.

Spamming-Netzwerke analysieren

In meinem Artikel über ein Spamming-Netzwerk habe ich einen Link gefunden, der mit dem Parameter offer_id, also einer Affiliate-ID, gesteuert wird. Die war damals „478“.

Via Enumeration konnte ich herausfinden, wie viele andere Angebote in diesem Netzwerk noch existieren. Ich hab einfach alle Zahlen von 1-200 (wollte es nicht übertreiben) durchprobiert.

Alte Backups finden

Jeder kennt es. Dateien mit dem Namen:

BA_Martin_Haunschmid_V3_final_wtf_final.docx

Menschen haben die Tendenz, bei Sicherungen einfach ein paar Buchstaben an eine Datei anzuhängen. Das ist im Webdevelopment zum Beispiel oftmals fahrlässig:

Wie oft ich auf (nicht meinen 💪) Webservern komplette Backups von Webseiten finde, die einfach mit _backup benannt wurden. Findet ein Angreifer so eine Datei, besitzt er deine Webseite. So einfach ist das.

Die Klassiker sind hier:

  • _old
  • .txt an den Dateinamen anhängen
  • _ vor den Dateinamen

Und die IT-Security-Branche hat das natürlich in Tools verpackt. Alles was es braucht, ist eine Liste an Erweiterungen, die man durchprobieren kann. Wordlist nennt man so etwas. Gibt es zuhauf im Internet.

Dateien lesen, die eigentlich nur für User mit Login gedacht sind

In WordPress ist alles, was man via Mediathek hochlädt, frei im Internet verfügbar. Wenn man den jeweiligen Link hat.

Bei einer Webseite, die ich betreue, waren zum Beispiel nur für zahlende Mitglieder verfügbare PDFs mit einer Google-Suche mit site:xyz.com filetype:pdf im Internet zu finden. Das ist zwar im Prinzip keine Enumeration – es kann aber trotzdem auf unerlaubte Inhalte zurückgegriffen werden.

Was kann man dagegen tun?

Ich möchte natürlich nicht nur böse sein. Was hätte unser Drogenlabor also tun können?

Keine Lösung: automatisierten Zugriff verhindern

Laut dem Artikel im Standard war die Seite “gegen massenhafte Abfragen” geschützt. Da würde ich gerne wissen, wie das gelöst ist.

Fakt: fast jedes Online-Voting und fast jede Anti-Skript Maßnahme kann mit genug Aufwand umgangen werden.

  • Bei zu vielen Zugriffen wird meine IP gesperrt? Gibt es Proxies dafür, wo jeder Zugriff eine neue IP erhält.
  • Ein Cookie wird gesetzt? Inkognito-Modus im Browser
  • Technische Abfragen nach User-Agent o.Ä.? Leicht zu faken.
  • Zeitliche Sperre? Schläft das Skript eben mal für eine Stunde und versuchts dann wieder.

Das ist also eine Ausrede, die am Thema vorbeigeht.

Ignorieren?

hahahahahhaha. Leider sind die Kosten fürs Krisenmanagement oft wirklich niedriger, als in sichere IT zu investieren. Immerhin hat daran die DSGVO etwas geändert.

Zugriff nur mit zweitem Faktor

Solche Inhalte müssen mit einem zweiten Faktor geschützt werden. Ob das nun ein User-Account, ein PIN oder ein Passwort ist, der Dateiname alleine darf in so einem Fall nicht ausreichen. Egal ob wirklich zufällig oder aufsteigend.

Auf jeden Fall kann aber auch versteckt werden, ob sich hinter einem Link überhaupt eine Datei verbirgt (Also alle Ergebnisse verlangen ein Passwort, egal ob eine PDF dahinter existiert oder nicht). Das alleine vervielfacht die Zeit, die ein Angreifer benötigt, um auch nur einen Befund zu finden.

Wo ist die DSGVO?

Wenn ich seit Mai einen Fall für die Datenschutzbehörde gesehen habe, dann diesen. Die Befunde so zu “schützen” ist nicht “Stand der Technik”. Auch die Auswirkungen auf einzelne Personen sind nicht gerade beruhigend. Vom Identitätsdiebstahl bis zum persönlichen Druckmittel ist alles drin.

Immerhin ist das Ding im Moment nicht mehr online:


Ich weiß nicht wie es dir geht, aber ich möchte nicht jedes Angebot, das ich nutze, auf die IT-Sicherheit testen. Aber wenn man solche Geschichten liest, wäre das vielleicht eine gute Idee.

Von Hackern, Wordpress, SEO & Co

  • Wo kommt mein Spam her?
  • Wie leicht ist es, eine Wordpress Seite zu hacken?
  • Wie Umzugsfirmen ihre Gaunereien mit SEO umsetzen

...wöchentlich in deiner Inbox! 🚀

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.