Skip to content

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

Die Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT geht weiter. Auf der Liste mit den Top IoT Vulnerabilities von OWASP steht auf Platz 1 das "Insecure Web Interface". Die ersten dort aufgeführten Schwachstellen werden auf der Liste der OWASP Top 10 Webschwachstellen unter dem Punkt A1, Injection zusammengefasst. Einen Teil davon habe ich bereits behandelt: SQL Injection, LDAP Injection und XPath Injection sowie NoSQL Injection und OS Injection / OS Command Injection. In dieser Folge geht es um zwei weitere der noch fehlenden Schwachstellen bzw. Angriffe.

OWASP Web Top 10 A1: Injection

6. SMTP Injection

SMTP, das Simple Mail Transfer Protocol, ist für das Versenden bzw. den Transport von E-Mails zuständig. Werden die verwendeten Parameter nicht geprüft, kann ein Angreifer darüber eigene Befehle einschleusen: Es gibt eine SMTP Injection oder SMTP Header Injection. Je nachdem, wo der Schadcode eingeschleust wird, kann der Angreifer zusätzliche Empfänger hinzufügen und/oder den Betreff und/oder den Inhalt der Mail manipulieren. Unter Umständen ist auch das Einschleusen kompletter E-Mails mit vom Angreifer bestimmten Empfänger, Subject und Inhalt möglich.

SMTP Injection oder SMTP Header Injection ist im wesentlichen ein Server-Problem, denn Sie wissen ja: "Traue nie dem Client". Es schadet nicht, wenn auch die IoT-Geräte die Parameter, die sie für den Versand einer E-Mail verwenden, prüfen, die eigentliche Prüfung muss aber immer auf dem Server erfolgen. Der muss darauf achten, dass eine E-Mail, die er im Auftrag eines IoT-Geräts verschickt, keine unerwünschten Nebenwirkungen hat.

Wie immer gilt: Um die Angriffe zu verhindern, müssen die Eingaben geprüft und ggf. gefiltert oder verworfen werden:

  • Parameter für E-Mail-Adressen dürfen nur E-Mail-Adressen enthalten
  • Weder im Subject noch in den Mail-Adressen dürfen Zeilenumbrüche enthalten sein
  • Werden Parameter, insbesondere der Nachrichteninhalt, direkt in die SMTP-Kommunikation übernommen, dürfen sie keine Zeile, die nur aus einem einzelnen . besteht, enthalten

7. XML Injection

XML ist ein beliebtes Format zum Austausch von Daten oder zur Speicherung von Konfigurationsinformationen und wird deshalb im IoT des öfteren verwendet. Werden XML-Daten vor ihrer Auswertung nicht geprüft, kann ein Angreifer darüber eigenen XML-Code einschleusen. Meist kommt es dann zu XML External Entity (XXE) Angriffen. Diese sind möglich, wenn XML-Daten von einem XML-Prozessor verarbeitet werden, der eine External Entity auflöst.

Eine External Entity erlaubt den Zugriff auf lokale oder entfernte Daten über einen deklarierten System-Identifier. Diese Identifier sind im Allgemeinen ein URL, auf den der XML-Prozessor beim Verarbeiten der XML-Daten zugreifen kann. Die External Entity wird dann durch den Inhalt des dereferenzierten URL ersetzt.

Ein Angreifer kann den System-Identifier so manipulieren, dass darüber auf vertrauliche Daten zugegriffen oder anderweitig Schaden angerichtet wird. Unter Umständen bis zur Ausführung eingeschleusten Codes, wenn über den XXE-Angriff eine entsprechende Schwachstelle ausgenutzt werden kann.

Für einen Angriff müssen mehrere Bedingungen erfüllt sein:

  • Der Angreifer muss seinen Code in den System-Identifier-Teil einer External Entity in der DTD einfügen können.
  • Der XML-Prozessor muss so konfiguriert sein, dass er die DTD verarbeitet und auswertet.
  • Der XML-Prozessor muss so konfiguriert sein, dass er External Entities in der DTD auflöst.

Zum Schutz vor XXE-Angriffen sollte die Auswertung von External Entities ausgeschaltet werden. Alternativ kann auch die Verwendung von externen DTDs (egal ob als Teil der XML-Datei oder darin referenziert) verboten werden.

Auf der Server-Seite sollte die Prüfung sämtlicher XML-Eingaben einem darauf spezialisierten Gateway übertragen werden, so dass nur eindeutig harmlose XML-Daten die Anwendung auf den Server erreichen.

In der nächsten Folge werden die letzten beiden Injection-Schwachstellen vorgestellt.

Carsten Eilers

Trackbacks

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

Vorschau anzeigen
Die Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT zieht sich zugegebenermaßen etwas hin. Was daran liegt, dass auf der Liste der Top IoT Vulnerabilities von OWASP auf Platz 1 das "Insecure Web Interface" st

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: "Insecure Cloud Interface". Oder auf deutsch: Unsichere Cloud-Int