<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE FL_Course SYSTEM "https://www.flane.de/dtd/fl_course095.dtd"><?xml-stylesheet type="text/xsl" href="https://portal.flane.ch/css/xml-course.xsl"?><course productid="36451" language="de" source="https://portal.flane.ch/swisscom/xml-course/cydrill-asip" lastchanged="2025-10-29T08:55:14+01:00" parent="https://portal.flane.ch/swisscom/xml-courses"><title>API security in Python</title><productcode>ASIP</productcode><vendorcode>CY</vendorcode><vendorname>Cydrill</vendorname><fullproductcode>CY-ASIP</fullproductcode><version>1.0</version><objective>&lt;ul&gt;
&lt;li&gt;Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit&lt;/li&gt;&lt;li&gt;Verst&amp;auml;ndnis von API-Sicherheitsfragen&lt;/li&gt;&lt;li&gt;Detaillierte Analyse der OWASP API Security Top Ten Elemente&lt;/li&gt;&lt;li&gt;API-Sicherheit in den Kontext von Python stellen&lt;/li&gt;&lt;li&gt;&amp;Uuml;ber die niedrig h&amp;auml;ngenden Fr&amp;uuml;chte hinausgehen&lt;/li&gt;&lt;li&gt;Verwaltung von Schwachstellen in Komponenten von Drittanbietern&lt;/li&gt;&lt;li&gt;Ans&amp;auml;tze und Grunds&amp;auml;tze der Eingabevalidierung&lt;/li&gt;&lt;/ul&gt;</objective><essentials>&lt;p&gt;Allgemeine Python-Entwicklung&lt;/p&gt;</essentials><audience>&lt;p&gt;Python-API-Entwickler&lt;/p&gt;</audience><contents>&lt;h4&gt;Tag 1&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Grundlagen der Cybersicherheit
&lt;ul&gt;
&lt;li&gt;Was ist Sicherheit?&lt;/li&gt;&lt;li&gt;Bedrohung und Risiko&lt;/li&gt;&lt;li&gt;Arten von Cybersicherheitsbedrohungen - die CIA-Triade&lt;/li&gt;&lt;li&gt;Folgen von unsicherer Software&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;OWASP API-Sicherheit Top Ten
&lt;ul&gt;
&lt;li&gt;OWASP API-Sicherheit Top 10 2023&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API1 - Gebrochene Autorisierung auf Objektebene
&lt;ul&gt;
&lt;li&gt;Verwirrter Abgeordneter&lt;/li&gt;&lt;li&gt;Unsichere direkte Objektreferenz (IDOR)&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Unsichere direkte Objektreferenz&lt;/li&gt;&lt;li&gt;Berechtigungsumgehung durch benutzergesteuerte Schl&amp;uuml;ssel&lt;/li&gt;&lt;li&gt;Fallbeispiel - Fern&amp;uuml;bernahme von Nexx Garagentoren und Alarmanlagen&lt;/li&gt;&lt;li&gt;Labor - Horizontale Genehmigung&lt;/li&gt;&lt;li&gt;Hochladen von Dateien&lt;/li&gt;&lt;li&gt;Uneingeschr&amp;auml;nkter Datei-Upload&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken&lt;/li&gt;&lt;li&gt;Labor - Uneingeschr&amp;auml;nkter Datei-Upload&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API2 - Fehlerhafte Authentifizierung
&lt;ul&gt;
&lt;li&gt;Grundlagen der Authentifizierung&lt;/li&gt;&lt;li&gt;Multi-Faktor-Authentifizierung (MFA)&lt;/li&gt;&lt;li&gt;Fallstudie - Der InfinityGauntlet-Angriff&lt;/li&gt;&lt;li&gt;Passwortlose L&amp;ouml;sungen&lt;/li&gt;&lt;li&gt;Zeitbasierte Einmal-Passw&amp;ouml;rter (TOTP)&lt;/li&gt;&lt;li&gt;Schwachstellen bei der Authentifizierung&lt;/li&gt;&lt;li&gt;Spoofing im Internet&lt;/li&gt;&lt;li&gt;Passwortverwaltung&lt;/li&gt;&lt;li&gt;Speichern von Kontopassw&amp;ouml;rtern&lt;/li&gt;&lt;li&gt;Passwort im Transit&lt;/li&gt;&lt;li&gt;Labor - Reicht das Hashing von Passw&amp;ouml;rtern aus?&lt;/li&gt;&lt;li&gt;W&amp;ouml;rterbuchangriffe und Brute-Forcing&lt;/li&gt;&lt;li&gt;Salzen&lt;/li&gt;&lt;li&gt;Adaptive Hash-Funktionen f&amp;uuml;r die Passwortspeicherung&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung adaptiver Hash-Funktionen in Python&lt;/li&gt;&lt;li&gt;Verwendung von Tools zum Knacken von Passw&amp;ouml;rtern&lt;/li&gt;&lt;li&gt;Passwortknacken unter Windows&lt;/li&gt;&lt;li&gt;Passwort &amp;auml;ndern&lt;/li&gt;&lt;li&gt;Probleme bei der Passwortwiederherstellung&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Verfahren zur Passwortwiederherstellung&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Schwachstelle beim Zur&amp;uuml;cksetzen des Passworts&lt;/li&gt;&lt;li&gt;Fallstudie - &amp;Uuml;bernahme eines Facebook-Kontos &amp;uuml;ber einen Wiederherstellungscode&lt;/li&gt;&lt;li&gt;Fallstudie - &amp;Uuml;bernahme eines GitLab-Kontos&lt;/li&gt;&lt;li&gt;Anti-Automatisierung&lt;/li&gt;&lt;li&gt;Passwort-Politik&lt;/li&gt;&lt;li&gt;NIST-Authentifikator-Anforderungen f&amp;uuml;r gespeicherte Geheimnisse&lt;/li&gt;&lt;li&gt;Passwort-H&amp;auml;rtung&lt;/li&gt;&lt;li&gt;Verwendung von Passphrasen&lt;/li&gt;&lt;li&gt;Migration der Passwort-Datenbank&lt;/li&gt;&lt;li&gt;(Fehl-)Handhabung Keine Passw&amp;ouml;rter&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Tag 2&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;API3 - Gebrochene Objekt-Eigenschaftsebene-Autorisierung
&lt;ul&gt;
&lt;li&gt;Informationsexposition&lt;/li&gt;&lt;li&gt;Offenlegung durch extrahierte Daten und Aggregation&lt;/li&gt;&lt;li&gt;Fallstudie - Strava-Datenexposition&lt;/li&gt;&lt;li&gt;Durchsickern von Systeminformationen&lt;/li&gt;&lt;li&gt;Auslaufende Systeminformationen&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken der Informationsexposition&lt;/li&gt;&lt;li&gt;Verwaltung von Geheimnissen&lt;/li&gt;&lt;li&gt;Fest kodierte Passw&amp;ouml;rter&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken&lt;/li&gt;&lt;li&gt;Labor - Hartkodiertes Passwort&lt;/li&gt;&lt;li&gt;Schutz sensibler Informationen im Speicher&lt;/li&gt;&lt;li&gt;Herausforderungen beim Schutz der Erinnerung&lt;/li&gt;&lt;li&gt;Fallstudie - Diebstahl geheimer Microsoft-Schl&amp;uuml;ssel &amp;uuml;ber Dump-Dateien&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API4 - Uneingeschr&amp;auml;nkter Ressourcenverbrauch
&lt;ul&gt;
&lt;li&gt;Denial of Service&lt;/li&gt;&lt;li&gt;&amp;Uuml;berschwemmungen&lt;/li&gt;&lt;li&gt;Ersch&amp;ouml;pfung der Ressourcen&lt;/li&gt;&lt;li&gt;Nachhaltiges Kundenengagement&lt;/li&gt;&lt;li&gt;Unendliche Schleifen&lt;/li&gt;&lt;li&gt;Wirtschaftliche Verweigerung der Nachhaltigkeit (EDoS)&lt;/li&gt;&lt;li&gt;Fragen der algorithmischen Komplexit&amp;auml;t&lt;/li&gt;&lt;li&gt;Denial of Service mit regul&amp;auml;ren Ausdr&amp;uuml;cken (ReDoS)&lt;/li&gt;&lt;li&gt;Labor - ReDoS&lt;/li&gt;&lt;li&gt;Der Umgang mit ReDoS&lt;/li&gt;&lt;li&gt;Fallstudie - ReDoS-Schwachstellen in Python&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API5 - Gebrochene Autorisierung auf Funktionsebene
&lt;ul&gt;
&lt;li&gt;Autorisierung&lt;/li&gt;&lt;li&gt;Grundlagen der Zugangskontrolle&lt;/li&gt;&lt;li&gt;Arten der Zugangskontrolle&lt;/li&gt;&lt;li&gt;Fehlende oder unzul&amp;auml;ssige Genehmigung&lt;/li&gt;&lt;li&gt;Vers&amp;auml;umnis, den URL-Zugang zu beschr&amp;auml;nken&lt;/li&gt;&lt;li&gt;Cross-Site Request Forgery (CSRF)&lt;/li&gt;&lt;li&gt;Labor - Cross-Site Request Forgery&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte CSRF-Verfahren&lt;/li&gt;&lt;li&gt;CSRF-Verteidigung in der Tiefe&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - CSRF-Schutz mit Token&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API6 - Uneingeschr&amp;auml;nkter Zugang zu sensiblen Gesch&amp;auml;ftsfl&amp;uuml;ssen
&lt;ul&gt;
&lt;li&gt;Sicherheit durch Design&lt;/li&gt;&lt;li&gt;Das STRIDE-Modell der Bedrohungen&lt;/li&gt;&lt;li&gt;Sichere Gestaltungsprinzipien von Saltzer und Schroeder&lt;/li&gt;&lt;li&gt;Wirtschaftlichkeit des Mechanismus&lt;/li&gt;&lt;li&gt;Ausfallsichere Standardwerte&lt;/li&gt;&lt;li&gt;Vollst&amp;auml;ndige Mediation&lt;/li&gt;&lt;li&gt;Open design&lt;/li&gt;&lt;li&gt;Trennung der Privilegien&lt;/li&gt;&lt;li&gt;Geringstes Privileg&lt;/li&gt;&lt;li&gt;Am wenigsten verbreiteter Mechanismus&lt;/li&gt;&lt;li&gt;Psychologische Akzeptanz&lt;/li&gt;&lt;li&gt;Protokollierung und &amp;Uuml;berwachung&lt;/li&gt;&lt;li&gt;Grunds&amp;auml;tze der Protokollierung und &amp;Uuml;berwachung&lt;/li&gt;&lt;li&gt;Unzureichende Protokollierung&lt;/li&gt;&lt;li&gt;Fallstudie - Klartext-Passw&amp;ouml;rter bei Facebook&lt;/li&gt;&lt;li&gt;Baumstammf&amp;auml;lschung&lt;/li&gt;&lt;li&gt;Web-Log-F&amp;auml;lschung&lt;/li&gt;&lt;li&gt;Labor - Baumstammf&amp;auml;lschung&lt;/li&gt;&lt;li&gt;Protokollf&amp;auml;lschung - bew&amp;auml;hrte Verfahren&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken der Protokollierung&lt;/li&gt;&lt;li&gt;&amp;Uuml;berwachung bew&amp;auml;hrter Verfahren&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API7 - Server Side Request Forgery
&lt;ul&gt;
&lt;li&gt;Server-seitige Anforderungsf&amp;auml;lschung (SSRF)&lt;/li&gt;&lt;li&gt;Fallbeispiel - SSRF in Ivanti Connect Secure&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API8 - Fehlkonfiguration der Sicherheit
&lt;ul&gt;
&lt;li&gt;Offenlegung von Informationen durch Fehlermeldungen&lt;/li&gt;&lt;li&gt;Informationsleck &amp;uuml;ber Fehlerseiten&lt;/li&gt;&lt;li&gt;Labor - Informationsleck im Kolben&lt;/li&gt;&lt;li&gt;Fallstudie - Informationslecks durch Fehler in Apache Superset&lt;/li&gt;&lt;li&gt;Cookie-Sicherheit&lt;/li&gt;&lt;li&gt;Cookie-Attribute&lt;/li&gt;&lt;li&gt;Politik der gleichen Herkunft&lt;/li&gt;&lt;li&gt;Einfacher Antrag&lt;/li&gt;&lt;li&gt;Preflight-Anfrage&lt;/li&gt;&lt;li&gt;Ursprungs&amp;uuml;bergreifende Ressourcennutzung (CORS)&lt;/li&gt;&lt;li&gt;Labor - Demo zur Politik des gleichen Herkunftslandes&lt;/li&gt;&lt;li&gt;Konfigurieren von XML-Parsern&lt;/li&gt;&lt;li&gt;DTD und die Entit&amp;auml;ten&lt;/li&gt;&lt;li&gt;Erweiterung der Entit&amp;auml;t&lt;/li&gt;&lt;li&gt;Angriff auf externe Entit&amp;auml;ten (XXE)&lt;/li&gt;&lt;li&gt;Einbeziehung von Dateien mit externen Stellen&lt;/li&gt;&lt;li&gt;Server-Side Request Forgery mit externen Entit&amp;auml;ten&lt;/li&gt;&lt;li&gt;Labor - Angriff einer externen Einheit&lt;/li&gt;&lt;li&gt;Verhinderung von XXE&lt;/li&gt;&lt;li&gt;Labor - Verbot der DTD&lt;/li&gt;&lt;li&gt;Fallstudie - XXE-Schwachstelle in Ivanti-Produkten&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Tag 3&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;API9 - Unsachgem&amp;auml;sse Bestandsverwaltung
&lt;ul&gt;
&lt;li&gt;Blinde Flecken in der Dokumentation&lt;/li&gt;&lt;li&gt;Blinde Flecken im Datenfluss&lt;/li&gt;&lt;li&gt;Verwendung anf&amp;auml;lliger Komponenten&lt;/li&gt;&lt;li&gt;Import von nicht vertrauensw&amp;uuml;rdigen Funktionen&lt;/li&gt;&lt;li&gt;B&amp;ouml;sartige Pakete in Python&lt;/li&gt;&lt;li&gt;Fallstudie - Der Angriff auf die Lieferkette von Polyfill.io&lt;/li&gt;&lt;li&gt;Management von Schwachstellen&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Auffinden von Schwachstellen in Komponenten von Drittanbietern&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API10 - Unsicherer Verbrauch von APIs
&lt;ul&gt;
&lt;li&gt;&amp;Uuml;berpr&amp;uuml;fung der Eingaben&lt;/li&gt;&lt;li&gt;Input-Validierungsprinzipien&lt;/li&gt;&lt;li&gt;Denylisten und Zulassungslisten&lt;/li&gt;&lt;li&gt;Fallstudie - Denylist-Fehler in urllib.parse.urlparse()&lt;/li&gt;&lt;li&gt;Was zu validieren ist - die Angriffsfl&amp;auml;che&lt;/li&gt;&lt;li&gt;Wo soll validiert werden - Verteidigung in der Tiefe&lt;/li&gt;&lt;li&gt;Wann validieren - Validierung vs. Umwandlung&lt;/li&gt;&lt;li&gt;Bereinigung der Ausgabe&lt;/li&gt;&lt;li&gt;Herausforderungen bei der Kodierung&lt;/li&gt;&lt;li&gt;Unicode-Herausforderungen&lt;/li&gt;&lt;li&gt;Validierung mit Regex&lt;/li&gt;&lt;li&gt;Einspritzung&lt;/li&gt;&lt;li&gt;Injektionsprinzipien&lt;/li&gt;&lt;li&gt;Injektionsangriffe&lt;/li&gt;&lt;li&gt;SQL-Einschleusung&lt;/li&gt;&lt;li&gt;Grundlagen der SQL-Injektion&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - SQL-Injektion&lt;/li&gt;&lt;li&gt;Angriffsmethoden&lt;/li&gt;&lt;li&gt;Inhaltsbasierte blinde SQL-Injektion&lt;/li&gt;&lt;li&gt;Zeitbasierte blinde SQL-Injektion&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken zur SQL-Einschleusung&lt;/li&gt;&lt;li&gt;&amp;Uuml;berpr&amp;uuml;fung der Eingaben&lt;/li&gt;&lt;li&gt;Parametrisierte Abfragen&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung vorbereiteter Erkl&amp;auml;rungen&lt;/li&gt;&lt;li&gt;Datenbankverteidigung in der Tiefe&lt;/li&gt;&lt;li&gt;Fallstudie - SQL-Injection gegen US-Flughafensicherheit&lt;/li&gt;&lt;li&gt;Code-Einspritzung&lt;/li&gt;&lt;li&gt;Code-Injektion &amp;uuml;ber input()&lt;/li&gt;&lt;li&gt;OS-Befehlsinjektion&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Befehlsinjektion&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken zur Injektion von OS-Befehlen&lt;/li&gt;&lt;li&gt;Vermeidung von Befehlseingaben mit den richtigen APIs&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Bew&amp;auml;hrte Praktiken der Befehlsinjektion&lt;/li&gt;&lt;li&gt;Fallstudie - Shellshock&lt;/li&gt;&lt;li&gt;Labor - Shellshock&lt;/li&gt;&lt;li&gt;Fallstudie - Befehlsinjektion in Ivanti-Sicherheitsanwendungen&lt;/li&gt;&lt;li&gt;Offene Umleitungen und Weiterleitungen&lt;/li&gt;&lt;li&gt;Offene Umleitungen und Weiterleitungen - bew&amp;auml;hrte Verfahren&lt;/li&gt;&lt;li&gt;Dateien und Datenstr&amp;ouml;me&lt;/li&gt;&lt;li&gt;Pfad&amp;uuml;berquerung&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Pfad&amp;uuml;berquerung&lt;/li&gt;&lt;li&gt;Zus&amp;auml;tzliche Herausforderungen in Windows&lt;/li&gt;&lt;li&gt;Fallstudie - Dateispoofing in WinRAR&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Verfahren zur Pfad&amp;uuml;berquerung&lt;/li&gt;&lt;li&gt;Labor - Kanonisierung von Pfaden&lt;/li&gt;&lt;li&gt;Einpacken&lt;/li&gt;&lt;li&gt;Grunds&amp;auml;tze der sicheren Kodierung&lt;/li&gt;&lt;li&gt;Grunds&amp;auml;tze der robusten Programmierung von Matt Bishop&lt;/li&gt;&lt;li&gt;Sichere Gestaltungsprinzipien von Saltzer und Schroeder&lt;/li&gt;&lt;li&gt;Und was nun?&lt;/li&gt;&lt;li&gt;Quellen zur Softwaresicherheit und weiterf&amp;uuml;hrende Literatur&lt;/li&gt;&lt;li&gt;Python-Ressourcen&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</contents><outline>&lt;ul&gt;
&lt;li&gt;Grundlagen der Cybersicherheit&lt;/li&gt;&lt;li&gt;OWASP API-Sicherheit Top Ten&lt;/li&gt;&lt;li&gt;API1 - Gebrochene Autorisierung auf Objektebene&lt;/li&gt;&lt;li&gt;API2 - Defekte Authentifizierung&lt;/li&gt;&lt;li&gt;API3 - Gebrochene Objekt-Eigenschaftsebene-Autorisierung&lt;/li&gt;&lt;li&gt;API4 - Uneingeschr&amp;auml;nkter Ressourcenverbrauch&lt;/li&gt;&lt;li&gt;API5 - Gebrochene Autorisierung auf Funktionsebene&lt;/li&gt;&lt;li&gt;API6 - Uneingeschr&amp;auml;nkter Zugang zu sensiblen Gesch&amp;auml;ftsfl&amp;uuml;ssen&lt;/li&gt;&lt;li&gt;API7 - Server Side Request Forgery&lt;/li&gt;&lt;li&gt;API8 - Fehlkonfiguration der Sicherheit&lt;/li&gt;&lt;li&gt;API9 - Unsachgem&amp;auml;sse Bestandsverwaltung&lt;/li&gt;&lt;li&gt;API10 - Unsicherer Verbrauch von APIs&lt;/li&gt;&lt;li&gt;Einpacken&lt;/li&gt;&lt;/ul&gt;</outline><comments>&lt;p&gt;&lt;em&gt;Dieser Text wurde automatisiert &amp;uuml;bersetzt. Um den englischen Originaltext anzuzeigen, klicken Sie bitte &lt;span class=&quot;cms-link-marked&quot;&gt;&lt;a class=&quot;fl-href-prod&quot; href=&quot;/swisscom/en/course/cydrill-asip&quot;&gt;&lt;svg role=&quot;img&quot; aria-hidden=&quot;true&quot; focusable=&quot;false&quot; data-nosnippet class=&quot;cms-linkmark&quot;&gt;&lt;use xlink:href=&quot;/css/img/icnset-linkmarks.svg#linkmark&quot;&gt;&lt;/use&gt;&lt;/svg&gt;hier&lt;/a&gt;&lt;/span&gt;.&lt;/em&gt;&lt;/p&gt;</comments><objective_plain>- Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit
- Verständnis von API-Sicherheitsfragen
- Detaillierte Analyse der OWASP API Security Top Ten Elemente
- API-Sicherheit in den Kontext von Python stellen
- Über die niedrig hängenden Früchte hinausgehen
- Verwaltung von Schwachstellen in Komponenten von Drittanbietern
- Ansätze und Grundsätze der Eingabevalidierung</objective_plain><essentials_plain>Allgemeine Python-Entwicklung</essentials_plain><audience_plain>Python-API-Entwickler</audience_plain><contents_plain>Tag 1


- Grundlagen der Cybersicherheit

- Was ist Sicherheit?
- Bedrohung und Risiko
- Arten von Cybersicherheitsbedrohungen - die CIA-Triade
- Folgen von unsicherer Software
- OWASP API-Sicherheit Top Ten

- OWASP API-Sicherheit Top 10 2023
- API1 - Gebrochene Autorisierung auf Objektebene

- Verwirrter Abgeordneter
- Unsichere direkte Objektreferenz (IDOR)
- Übung - Unsichere direkte Objektreferenz
- Berechtigungsumgehung durch benutzergesteuerte Schlüssel
- Fallbeispiel - Fernübernahme von Nexx Garagentoren und Alarmanlagen
- Labor - Horizontale Genehmigung
- Hochladen von Dateien
- Uneingeschränkter Datei-Upload
- Bewährte Praktiken
- Labor - Uneingeschränkter Datei-Upload
- API2 - Fehlerhafte Authentifizierung

- Grundlagen der Authentifizierung
- Multi-Faktor-Authentifizierung (MFA)
- Fallstudie - Der InfinityGauntlet-Angriff
- Passwortlose Lösungen
- Zeitbasierte Einmal-Passwörter (TOTP)
- Schwachstellen bei der Authentifizierung
- Spoofing im Internet
- Passwortverwaltung
- Speichern von Kontopasswörtern
- Passwort im Transit
- Labor - Reicht das Hashing von Passwörtern aus?
- Wörterbuchangriffe und Brute-Forcing
- Salzen
- Adaptive Hash-Funktionen für die Passwortspeicherung
- Übung - Verwendung adaptiver Hash-Funktionen in Python
- Verwendung von Tools zum Knacken von Passwörtern
- Passwortknacken unter Windows
- Passwort ändern
- Probleme bei der Passwortwiederherstellung
- Bewährte Verfahren zur Passwortwiederherstellung
- Übung - Schwachstelle beim Zurücksetzen des Passworts
- Fallstudie - Übernahme eines Facebook-Kontos über einen Wiederherstellungscode
- Fallstudie - Übernahme eines GitLab-Kontos
- Anti-Automatisierung
- Passwort-Politik
- NIST-Authentifikator-Anforderungen für gespeicherte Geheimnisse
- Passwort-Härtung
- Verwendung von Passphrasen
- Migration der Passwort-Datenbank
- (Fehl-)Handhabung Keine Passwörter
Tag 2


- API3 - Gebrochene Objekt-Eigenschaftsebene-Autorisierung

- Informationsexposition
- Offenlegung durch extrahierte Daten und Aggregation
- Fallstudie - Strava-Datenexposition
- Durchsickern von Systeminformationen
- Auslaufende Systeminformationen
- Bewährte Praktiken der Informationsexposition
- Verwaltung von Geheimnissen
- Fest kodierte Passwörter
- Bewährte Praktiken
- Labor - Hartkodiertes Passwort
- Schutz sensibler Informationen im Speicher
- Herausforderungen beim Schutz der Erinnerung
- Fallstudie - Diebstahl geheimer Microsoft-Schlüssel über Dump-Dateien
- API4 - Uneingeschränkter Ressourcenverbrauch

- Denial of Service
- Überschwemmungen
- Erschöpfung der Ressourcen
- Nachhaltiges Kundenengagement
- Unendliche Schleifen
- Wirtschaftliche Verweigerung der Nachhaltigkeit (EDoS)
- Fragen der algorithmischen Komplexität
- Denial of Service mit regulären Ausdrücken (ReDoS)
- Labor - ReDoS
- Der Umgang mit ReDoS
- Fallstudie - ReDoS-Schwachstellen in Python
- API5 - Gebrochene Autorisierung auf Funktionsebene

- Autorisierung
- Grundlagen der Zugangskontrolle
- Arten der Zugangskontrolle
- Fehlende oder unzulässige Genehmigung
- Versäumnis, den URL-Zugang zu beschränken
- Cross-Site Request Forgery (CSRF)
- Labor - Cross-Site Request Forgery
- Bewährte CSRF-Verfahren
- CSRF-Verteidigung in der Tiefe
- Übung - CSRF-Schutz mit Token
- API6 - Uneingeschränkter Zugang zu sensiblen Geschäftsflüssen

- Sicherheit durch Design
- Das STRIDE-Modell der Bedrohungen
- Sichere Gestaltungsprinzipien von Saltzer und Schroeder
- Wirtschaftlichkeit des Mechanismus
- Ausfallsichere Standardwerte
- Vollständige Mediation
- Open design
- Trennung der Privilegien
- Geringstes Privileg
- Am wenigsten verbreiteter Mechanismus
- Psychologische Akzeptanz
- Protokollierung und Überwachung
- Grundsätze der Protokollierung und Überwachung
- Unzureichende Protokollierung
- Fallstudie - Klartext-Passwörter bei Facebook
- Baumstammfälschung
- Web-Log-Fälschung
- Labor - Baumstammfälschung
- Protokollfälschung - bewährte Verfahren
- Bewährte Praktiken der Protokollierung
- Überwachung bewährter Verfahren
- API7 - Server Side Request Forgery

- Server-seitige Anforderungsfälschung (SSRF)
- Fallbeispiel - SSRF in Ivanti Connect Secure
- API8 - Fehlkonfiguration der Sicherheit

- Offenlegung von Informationen durch Fehlermeldungen
- Informationsleck über Fehlerseiten
- Labor - Informationsleck im Kolben
- Fallstudie - Informationslecks durch Fehler in Apache Superset
- Cookie-Sicherheit
- Cookie-Attribute
- Politik der gleichen Herkunft
- Einfacher Antrag
- Preflight-Anfrage
- Ursprungsübergreifende Ressourcennutzung (CORS)
- Labor - Demo zur Politik des gleichen Herkunftslandes
- Konfigurieren von XML-Parsern
- DTD und die Entitäten
- Erweiterung der Entität
- Angriff auf externe Entitäten (XXE)
- Einbeziehung von Dateien mit externen Stellen
- Server-Side Request Forgery mit externen Entitäten
- Labor - Angriff einer externen Einheit
- Verhinderung von XXE
- Labor - Verbot der DTD
- Fallstudie - XXE-Schwachstelle in Ivanti-Produkten
Tag 3


- API9 - Unsachgemässe Bestandsverwaltung

- Blinde Flecken in der Dokumentation
- Blinde Flecken im Datenfluss
- Verwendung anfälliger Komponenten
- Import von nicht vertrauenswürdigen Funktionen
- Bösartige Pakete in Python
- Fallstudie - Der Angriff auf die Lieferkette von Polyfill.io
- Management von Schwachstellen
- Übung - Auffinden von Schwachstellen in Komponenten von Drittanbietern
- API10 - Unsicherer Verbrauch von APIs

- Überprüfung der Eingaben
- Input-Validierungsprinzipien
- Denylisten und Zulassungslisten
- Fallstudie - Denylist-Fehler in urllib.parse.urlparse()
- Was zu validieren ist - die Angriffsfläche
- Wo soll validiert werden - Verteidigung in der Tiefe
- Wann validieren - Validierung vs. Umwandlung
- Bereinigung der Ausgabe
- Herausforderungen bei der Kodierung
- Unicode-Herausforderungen
- Validierung mit Regex
- Einspritzung
- Injektionsprinzipien
- Injektionsangriffe
- SQL-Einschleusung
- Grundlagen der SQL-Injektion
- Übung - SQL-Injektion
- Angriffsmethoden
- Inhaltsbasierte blinde SQL-Injektion
- Zeitbasierte blinde SQL-Injektion
- Bewährte Praktiken zur SQL-Einschleusung
- Überprüfung der Eingaben
- Parametrisierte Abfragen
- Übung - Verwendung vorbereiteter Erklärungen
- Datenbankverteidigung in der Tiefe
- Fallstudie - SQL-Injection gegen US-Flughafensicherheit
- Code-Einspritzung
- Code-Injektion über input()
- OS-Befehlsinjektion
- Übung - Befehlsinjektion
- Bewährte Praktiken zur Injektion von OS-Befehlen
- Vermeidung von Befehlseingaben mit den richtigen APIs
- Übung - Bewährte Praktiken der Befehlsinjektion
- Fallstudie - Shellshock
- Labor - Shellshock
- Fallstudie - Befehlsinjektion in Ivanti-Sicherheitsanwendungen
- Offene Umleitungen und Weiterleitungen
- Offene Umleitungen und Weiterleitungen - bewährte Verfahren
- Dateien und Datenströme
- Pfadüberquerung
- Übung - Pfadüberquerung
- Zusätzliche Herausforderungen in Windows
- Fallstudie - Dateispoofing in WinRAR
- Bewährte Verfahren zur Pfadüberquerung
- Labor - Kanonisierung von Pfaden
- Einpacken
- Grundsätze der sicheren Kodierung
- Grundsätze der robusten Programmierung von Matt Bishop
- Sichere Gestaltungsprinzipien von Saltzer und Schroeder
- Und was nun?
- Quellen zur Softwaresicherheit und weiterführende Literatur
- Python-Ressourcen</contents_plain><outline_plain>- Grundlagen der Cybersicherheit
- OWASP API-Sicherheit Top Ten
- API1 - Gebrochene Autorisierung auf Objektebene
- API2 - Defekte Authentifizierung
- API3 - Gebrochene Objekt-Eigenschaftsebene-Autorisierung
- API4 - Uneingeschränkter Ressourcenverbrauch
- API5 - Gebrochene Autorisierung auf Funktionsebene
- API6 - Uneingeschränkter Zugang zu sensiblen Geschäftsflüssen
- API7 - Server Side Request Forgery
- API8 - Fehlkonfiguration der Sicherheit
- API9 - Unsachgemässe Bestandsverwaltung
- API10 - Unsicherer Verbrauch von APIs
- Einpacken</outline_plain><comments_plain>Dieser Text wurde automatisiert übersetzt. Um den englischen Originaltext anzuzeigen, klicken Sie bitte hier.</comments_plain><duration unit="d" days="3">3 Tage</duration><pricelist><price country="DE" currency="EUR">2250.00</price><price country="SI" currency="EUR">2250.00</price><price country="AT" currency="EUR">2250.00</price><price country="SE" currency="EUR">2250.00</price><price country="CH" currency="CHF">2250.00</price></pricelist><miles/></course>