Skip to content

Die IoT Top 10, #1: Unsichere Weboberflächen, Teil 5

Die Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT geht weiter. In der Liste der Top IoT Vulnerabilities von OWASP sind wir immer noch bei Platz 1, dem "Insecure Web Interface". Aber wenigstens sind wir beim zweiten der von OWASP für die IoT-Weboberflächen für relevant gehaltenen Punkte der OWASP Top 10 der Webschwachstellen: A3 - Cross-Site Scripting (XSS).

OWASP Web Top 10 A3: Cross-Site Scripting (XSS)

Dieser Punkt wird kurz, denn zu XSS habe ich ja schon einiges geschrieben. Und alles, was für Webanwendungen allgemein gilt, gilt natürlich auch für die Weboberflächen der IoT-Geräte. Darum verweise ich an dieser Stelle nur auf die entsprechenden Einträge:

Womit wir zum dritten und letzten der von OWASP für die IoT-Weboberflächen als relevant eingestuften Punkte der Web-Top-10-Liste kommen: A8 - Cross-Site Request Forgery (CSRF).

OWASP Web Top 10 A8: Cross-Site Request Forgery (CSRF)

Während beim XSS das Vertrauen des Benutzers in eine Webseite ausgenutzt wird, wird beim CSRF das Vertrauen einer Webanwendung in den Benutzer ausgenutzt: Bestimmte Aktionen werden durch den Aufruf eines bestimmten URL ausgelöst und dabei im Kontext des eingeloggten Benutzers ausgeführt. Bei einem CSRF-Angriff wird das Opfer dazu gebracht, einen präparierten HTTP-Request abzuschicken, der dann eine Aktion in seinem Namen ausführt. Werden dabei Informationen über eine gültige Session des Opfers verwendet, spricht man manchmal auch von Session-Riding.

CSRF - Ein alter Hut?

Die Probleme, die sich durch das Vertrauen einer Anwendung in einen Benutzer ergeben, wurden erstmals bereits 1988 unter dem Namen "Confused Debuty" von Norm Hardy beschrieben. 2000 wurde eine entsprechende Schwachstelle in ZOPE gefunden, 2001 von Peter Watkins der Begriff "Cross-Site-Request-Forgery" geprägt. Der Begriff "Session-Riding" wurde 2004 von Thomas Schreiber das erste Mal verwendet (PDF).

Wie funktioniert CSRF?

Webanwendungen, die eine Authentifizierung erfordern, fragen i.d.R. nicht bei jedem HTTP-Request das Passwort ab, sondern merken sich den Status des Benutzers mit Hilfe von Token wie Session-Cookies oder der HTTP-Basic-Authentication. Diese Token werden vom Browser bei jedem HTTP-Request mitgeschickt. Auch, wenn dieser Request nicht vom Benutzer, sondern von eingeschleusten Schadcode ausgelöst wird.

Als einfachstes Beispiel wird häufig das Abmelden eines Benutzers bei einer Webanwendung genannt. Dazu soll als Beispiel folgender URL verwendet werden:

http://www.server.example/user/index.php?aktion=abmelden

Der Benutzer soll dabei durch einen Session-ID-Cookie erkannt werden. Klickt ein angemeldeter Benutzer diesen Link an, wird er dadurch abgemeldet. Den benötigten Cookie sendet der Webbrowser automatisch mit. Angenommen, die Webanwendung ist eine Forensoftware, die das Speichern von Links erlaubt. Dann könnte der Angreifer z.B. einen Eintrag wie folgenden hinterlassen:

Für eine kostenlose Dose Spam
<a href="http://www.server.example/user/index.php?aktion=abmelden">hier</a>
klicken.

Klickt ein Benutzer den Link an, bekommt er keinen kostenlosen Spam, sondern ist im Forum abgemeldet.

Dieses Beispiel hat einen schwerwiegenden Nachteil: Der Benutzer muss den präparierten Link anklicken. Das ganze geht aber auch ohne Aktion des Benutzers, das Laden einer präparierten Webseite reicht. Wie, erkläre ich in der nächsten Folge.

Ich wünsche Ihnen allen ein frohes Fest und besinnliche Feiertage!

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Die IoT Top 10, #1: Unsichere Weboberflächen, Teil 6

Vorschau anzeigen
Bei der Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT gemäß den Top IoT Vulnerabilities von OWASP sind wir immer noch bei Platz 1, dem &quot;Insecure Web Interface&quot;. Aber wenigstens sind wir beim dritten (und

Dipl.-Inform. Carsten Eilers am : Die IoT Top 10, #1: Unsichere Weboberflächen, Teil 7

Vorschau anzeigen
Die Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT gemäß den Top IoT Vulnerabilities von OWASP geht weiter. Wir sind zwar immer noch bei Platz 1, dem &quot;Insecure Web Interface&quot;, darin aber wenigstens beim d

Dipl.-Inform. Carsten Eilers am : Die IoT Top 10, #6: Unsichere Cloud-Interfaces

Vorschau anzeigen
Bei der Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT gemäß den Top IoT Vulnerabilities von OWASP sind wir bei Punkt 6 angekommen: &quot;Insecure Cloud Interface&quot;. Oder auf deutsch: Unsichere Cloud-Int