CAS Information Security & Risk Management 2018: OWASP Top 10 2017: Änderungen, Anwendungsmöglichkeiten

Back-to-School: Aus dem Klassenzimmer des CAS Information Security & Risk Management. Basis für diesen Lehrgang ist das BSI-Grundschutzhandbuch, und die Teilnehmenden bereiten sich begleitend auf die CISSP-Prüfung vor. Ein weiterer Teil des 15-tägigen Lehrgangs ist es, ein CISSP- oder BSI-Fachthema als Blogpost aufzubereiten:

OWASP Top 10 2017: Änderungen, Anwendungsmöglichkeiten

Alle drei bis vier Jahre veröffentlicht das Open Web Application Security Project (OWASP) eine Liste der zehn grössten Risiken für Webapplikationen. Diese Liste ist ein gutes Awareness-Dokument für die Sicherheit von Webapplikationen und wurde von einer grossen Community, die Sicherheitsexperten aus aller Welt umfasst, erarbeitet. Die aktuelle Liste stammt aus dem Jahr 2017.

Das Ziel der OWASP Top 10 Liste ist es, Entwickler, Designer, Architekten und Organisationen über die Gefahren und Konsequenzen der am weitest verbreiteten Sicherheitsschwachstellen aufzuklären. Die Liste kann als Entwicklungsrichtlinie gelten und bei der Vergabe von Entwicklungsaufträgen kann die Einhaltung dieser Richtlinie gefordert werden.

Neben den aufgelisteten Gefahren gibt es natürlich noch hunderte weitere Aspekte, welche die Sicherheit von Webapplikationen gefährden können. Mit der Vermeidung der aufgelisteten Schwachstellen, lässt sich aber eine Basissicherheit erreichen.

Seit der letzten Version der Liste aus dem Jahr 2013 sind drei neue Risiken hinzugekommen und zwei der Risiken wurden zusammengefasst.

Bildquelle: www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf

Neue Gefahren

A4: XML External Entities (XXE)

XXE nutzt schlecht konfigurierte XML-Parser, um Daten von einem Server zu extrahieren. Der Angriff beruht auf referenzierten Identitäten, die sich ausserhalb des XML-Dokuments befinden. Der XML-Parser öffnet diese externe Ressource und gibt deren Inhalt aus oder fällt einem Denial of Service (DOS) Angriff zum Opfer.

Beispiel
Ein Angreifer erstellt ein XML-Dokument, das eine externe Entität enthält, in diesem Fall den Pfad zu einer sensitiven Datei. Der Angreifer sendet dieses Dokument an den Server und der XML-Parser des Servers ersetzt die Referenz auf die Entität mit dem Inhalt dieser Entität. Dadurch wird der Inhalt des referenzierten Dokuments für den Angreifer sichtbar.

So lässt es sich vermeiden
Andere Datenformate wie YAML oder JSON sind durch XXE-Angriffe nicht gefährdet. Wo die Verwendung des XML-Formats unbedingt nötig ist, soll die Funktionalität der externen Entitäten im XML-Parser deaktiviert werden. Alternativ können sämtliche XML-Dateien vor der Weitergabe an den Parser bereinigt werden.

A8: Insecure Deserialization

Serialisierung ist der Prozess des Konvertierens von Daten im Arbeitsspeicher in ein Format zur Speicherung oder Übermittlung. Eine Webapplikation serialisiert beispielsweise eine Benutzersession, um sie auf der Festplatte abzuspeichern und zu verfolgen. Das Gegenteil ist die Deserialisierung, bei der gespeicherte Daten in ein Objekt zurückgeladen werden. Bei der unsicheren Deserialisierung sendet der Angreifer ein serialisiertes Objekt an den Server und lässt es deserialisieren, um beliebigen Code auf dem Server auszuführen oder einen Denial of Service (DOS) Angriff zu starten.

Beispiel
Eine Webapplikation verfolgt Benutzersessions, indem sie eine ID serialisiert und an den Browser des Benutzers sendet. Wenn der Benutzer die Webseite öffnet, wird diese ID deserialisiert und der Benutzer wird automatisch angemeldet, wenn die ID gültig ist. Ein Angreifer kann die im Browser gespeicherte ID durch eigenen Code ersetzen. Wenn der Angreifer nun die Webseite öffnet, wird das Objekt vom Server deserialisiert und der eingefügte Code ausgeführt.

So lässt es sich vermeiden
Der sicherste Weg ist die Serialisierung vollständig zu vermeiden und ein reines Datenformat wie XML oder JSON zu verwenden. Falls die Serialisierung unbedingt notwendig ist, müssen Überprüfungen der Datentypen vorgenommen werden, bevor die Daten deserialisiert werden.

A10: Insufficient Logging and Monitoring

Protokolldateien und Monitoring Tools werden oft als Sicherheitswerkzeuge unterschätzt. Sie verhindern zwar nicht aktiv Angriffe, bieten aber Einblicke in Fehler, ungewöhnliche Verhalten und Leistungsveränderungen. Ein effektives Monitoring kann über Angriffe informieren, noch während sie geschehen. Weil die Protokollierung oft schlecht oder gar nicht implementiert ist, können Angreifer leicht unentdeckt bleiben.

Beispiel
Ein Angreifer versucht sich mit der Brute-Force-Methode mit einem automatisierten Programm auf einer Webseite anzumelden. Die hohe und konstante Rate an Versuchen lastet die Ressourcen des Webservers vollständig aus. Da der Server nicht überwacht wird, bleibt dieser erhöhte Ressourcenverbrauch unentdeckt und weil fehlerhafte Anmeldeversuche nicht protokolliert werden, bleiben auch die tausenden von fehlgeschlagenen Anmeldeversuchen unentdeckt.

So lässt es sich vermeiden
In den meisten Programmiersprachen sind Protokollierungsmechanismen vorhanden. Diese sollten entsprechend genutzt werden. Mit einem zentralisierten Log Management lassen sich Protokollinformationen aggregieren und nach auffälligen Aktivitäten untersuchen. Bestimmte Muster können dann einen Alarm auslösen.


Blogpost wurde erstellt von Andreas Lingg
im Rahmen vom CAS Information Security & Risk Management.

Dozenten in diesem sehr praxisorientierten Lehrgang sind:
Lukas Fässler (FSDZ Rechtsanwälte & Notariat AG)
Rainer Kessler (Governance Concept GmbH),
Andreas Wisler (goSecurity GmbH)

Beim nächsten CAS live dabei sein?
Hier der Link zur Ausschreibung CAS Information Security & Risk Management
Der CAS findet in der Regel zweimal im Jahr statt. Starttermine: März & September

Persönliche Beratung für den Lehrgang gewünscht?
Einfach Prof. Martina Dalla Vecchia ein E-Mail schreiben und einen Termin vorschlagen.

Hinterlasse eine Antwort

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

Captcha loading...