Sicherheit für OAuth und OpenID Connect

Single Sign-On (SSO) Verfahren gehören zu den wichtigsten Internet-Technologien und werden von vielen Applikationen eingesetzt. Sie ermöglichen es die Registrierung und das Login für Benutzer möglichst einfach zu gestalten und Applikationen an soziale Netzwerke anzubinden. OAuth und OpenID Connect haben sich heute als Standard etabliert. In den letzten Jahren wurden allerdings schwerwiegende Angriffe auf SSO Verfahren entdeckt. Die Angriffe nutzen die Komplexität der zugrundeliegenden Standards, sowie Implementierungsfehler, aus und ermöglichen es Angreifern sich als beliebiger Benutzer zu authentisieren oder auf vertrauliche Daten der Benutzer zuzugreifen. Hierbei können die Daten ausgelesen, manipuliert oder gelöscht werden.

In dieser Schulung geben wir einen detaillierten Überblick über das Single Sign-On Konzept und vertiefen das Fachwissen der Teilnehmer in dem Einsatz der etablierten Standards OAuth und OpenID Connect. Anhand von Beispielen werden unzählige Angriffe ausführlich vorgestellt und mit den Teilnehmern diskutiert. Um das bestmögliche Verständnis zu erlangen, bekommen die Teilnehmer die Möglichkeit unterschiedliche Angriffe in einer von uns vorbereiteten virtuellen Maschine selbst durchzuführen. Hierfür werden verschiedene Tools zur Analyse von SSO Verfahren vorgestellt und kommen anschließend praktisch zum Einsatz. Die virtuelle Maschine ist offline nutzbar und steht den Teilnehmern nach der Schulung weiterhin zur internen Weiterbildung zur Verfügung. Abschließend werden Techniken und Konzepte behandelt, welche die Sicherheit von SSO Verfahren verstärken und die bekannten Angriffe verhindern.

Durch die kritische Funktion, die SSO Verfahren bei dem Betrieb einer Applikation übernehmen, ist es wichtig, die Probleme dieser Technologien im Detail zu verstehen und zu adressieren. In der Schulung werden unter anderem die nachfolgenden Fragen beantwortet:

  • Wann sollte OAuth verwenden werden, wann OpenID Connect?
  • Worin unterscheiden sich die verschiedenen OpenID Connect Flows?
  • Welche Angriffe auf SSO Flows gibt es und wie kann man diese verhindern?

Schulungsinhalte:

  • Einführung in Single Sign-On
  • OAuth und OpenID Connect Flows
    • Code Flow
    • Implicit Flow
    • Hybrid Flow
  • Generische Angriffe auf SSO Verfahren
    • XSS, Clickjacking, CSRF, Open/Covert Redirects
  • Erste OAuth und OpenID Connect spezifische Angriffe
  • ID Token
    • Details & Angriffe
  • Single-Phase Angriffe
    • ID Spoofing Angriffe
    • Signature Bypasses
  • Mögliche weitere Themen (werden mit Teilnehmen während der Schulung abgesprochen)
    • Cross-Phase Angriffe
    • Session-Management
    • Proof Key for Code Exchange by OAuth Public Clients
    • Device Flow
    • Native Apps
    • Single-Page Applications

Trainer und Dozenten

Dr.-Ing. Christian Mainka

Christian Mainka hat 2017 über die Themen Webservices und Single Sign-On promoviert. Er beschäftigt sich seit 2009 mit Sicherheitsaspekten die durch den Einsatz von Datenbeschreibungssprachen, wie JSON und XML, entstehen und ist Entwickler der Penetrationstesttools WS-Attacker und der Single Sign-On Burpsuite Extension EsPReSSO. In seiner Dissertation „On Message- Level Security“ analysiert er zudem die Sicherheit moderner Single Sign-On Verfahren wie SAML, OAuth und OpenID Connect und deckte zahlreiche Sicherheitslücken auf.

Dr.-Ing. Vladislav Mladenov

Vladislav Mladenov arbeitet seit 2012 als Sicherheitsforscher am Lehrstuhl für Netz- und Datensicherheit an der Ruhr-Universität Bochum. Im Rahmen seiner Dissertation analysierte er die Sicherheit von Single Sign-On Protokollen, wie SAML 2.0, OpenID, OpenID Connect und OAuth und deckte zahlreiche Sicherheitslücken auf. Nach seiner Dissertation arbeitet Vladislav Mladenov als PostDoc und widmet seine Aufmerksamkeit zusätzlich den Themen wie die Sicherheit von Datenbeschreibungssprachen, z.B. JSON, XML, PostScript und PDF.

Beide Trainer sind für die Hackmanit GmbH tätig, welche sich mit Penetrationstests, Schulungen und Sicherheitsanalysen im Bereich IT-Sicherheit beschäftigt.

Voraussetzungen

  • Grundwissen HTTP & HTML
  • Die Schulung ist sowohl für Entwickler als auch für Penetrationstester geeignet

Inhalt

Grundlagen SSO mit OAuth + OpenID Connect

Allgemeine Ziele:

  • Sie erhalten ein detailliertes Verständnis des OAuth Frameworks und des OpenID Connect Protokolls
  • Lernen Sie den Unterschied zwischen Authentifizierung und Autorisierung kennen (AuthN vs. AuthZ)
  • Sie können SSO Protokollnachrichten analysieren, Schwachstellen identifizieren und Angriffe selbständig durchführen

Die Teilnehmer können am Ende folgende Fragen beantworten:

  • Was ist Single Sign-On und wo sollte man es einsetzen?
  • Wie genau funktioniert OpenID Connect?
  • Welche OpenID Connect Flows gibt es und worin unterscheiden sich diese?
  • Wann sollte man OAuth verwenden und wann OpenID Connect?
  • Was ist das Besondere an einer Consent-Page?
  • Wie kann ein Angreifer bekannte Web-Angriffe in SSO Flows einsetzen?
    • Cross-Site Scripting (XSS)
    • Cross-Site-Request Forgery (CSRF)
    • uvm.
  • Welche weiteren Bedrohungen gibt es?

OAuth + OpenID Connect Sicherheit

Allgemeine Ziele:

  • Erlernen Sie weitere Angriffe auf OAuth und OpenID Connect
  • Sie arbeiten mit einem neuen Konzept - dem Bösartiger IdP („Malicious IdP“) - um SSO Protokolle noch genauer zu analysieren
  • Sie untersuchen Native Apps und lernen einzigartige Probleme und Lösungen hierzu kennen

Die Teilnehmer können am Ende folgende Fragen beantworten:

  • Wie funktioniert ein id_token in OpenID Connect?
  • Welche Angriffe auf den id_token gibt es?
  • Wie wird eine Vertrauensbeziehung zwischen Client und IdP erstellt?
  • Was sind malicious IdPs und wie kann man diese für die Protokollanalyse einsetzen?
  • Welche Gefahren gehen von einem malicious IdP aus?
  • Was sind Single-Phase Angriffe und was sind Cross-Phase Angriffe?
  • Was sind Native Apps und was muss man bei diesen besonders beachten?
  • Welche weiteren Bedrohungen müssen berücksichtigt werden?

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.