<?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="36417" language="de" source="https://portal.flane.ch/swisscom/xml-course/cydrill-crwgaij" lastchanged="2025-10-29T08:38:39+01:00" parent="https://portal.flane.ch/swisscom/xml-courses"><title>Code responsibly with generative AI in Java</title><productcode>CRWGAIJ</productcode><vendorcode>CY</vendorcode><vendorname>Cydrill</vendorname><fullproductcode>CY-CRWGAIJ</fullproductcode><version>1.0</version><objective>&lt;ul&gt;
&lt;li&gt;Die Grundlagen der verantwortungsvollen KI verstehen&lt;/li&gt;&lt;li&gt;Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit&lt;/li&gt;&lt;li&gt;Verstehen, wie Kryptographie die Sicherheit unterst&amp;uuml;tzt&lt;/li&gt;&lt;li&gt;Lernen, wie man kryptografische APIs in Java richtig verwendet&lt;/li&gt;&lt;li&gt;Verst&amp;auml;ndnis von Sicherheitsfragen bei Webanwendungen&lt;/li&gt;&lt;li&gt;Detaillierte Analyse der OWASP Top Ten Elemente&lt;/li&gt;&lt;li&gt;Die Sicherheit von Webanwendungen im Kontext von Java&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;All dies im Kontext von GitHub Copilot&lt;/li&gt;&lt;/ul&gt;</objective><essentials>&lt;p&gt;OWASP, SEI CERT, CWE und Fortify Taxonomien&lt;/p&gt;</essentials><audience>&lt;p&gt;Java-Entwickler, die Copilot oder andere GenAI-Tools verwenden&lt;/p&gt;</audience><contents>&lt;h4&gt;Tag 1
&lt;/h4&gt;&lt;h4&gt;Verantwortungsbewusst kodieren mit GenAI&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Was ist verantwortungsvolle KI?&lt;/li&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;li&gt;Sicherheit und verantwortungsvolle KI in der Softwareentwicklung&lt;/li&gt;&lt;li&gt;GenAI-Werkzeuge f&amp;uuml;r die Kodierung: Copilot, Codeium und andere&lt;/li&gt;&lt;li&gt;Die OWASP Top Ten aus der Sicht von Copilot
&lt;ul&gt;
&lt;li&gt;Die OWASP Top Ten 2021
&lt;ul&gt;
&lt;li&gt;A01 - Defekte Zugangskontrolle
&lt;ul&gt;
&lt;li&gt;Grundlagen der Zugangskontrolle&lt;/li&gt;&lt;li&gt;Fallstudie - Fehlerhaftes authn/authz in Apache OFBiz&lt;/li&gt;&lt;li&gt;Verwirrter Abgeordneter&lt;/li&gt;&lt;li&gt;Unsichere direkte Objektreferenz (IDOR)&lt;/li&gt;&lt;li&gt;Pfad&amp;uuml;berquerung&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Unsichere direkte Objektreferenz&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Verfahren zur Pfad&amp;uuml;berquerung&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Experimentieren mit der Pfadverfolgung in Copilot&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 (Erkundung mit Copilot)&lt;/li&gt;&lt;li&gt;Hochladen von Dateien
&lt;ul&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;&amp;Uuml;bung - Uneingeschr&amp;auml;nkter Datei-Upload (Erkundung mit Copilot)&lt;/li&gt;&lt;li&gt;Fallstudie - Sicherheitsl&amp;uuml;cke beim Hochladen von Dateien in Netflix Genie&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A02 - Kryptographische Ausf&amp;auml;lle
&lt;ul&gt;
&lt;li&gt;Kryptographie f&amp;uuml;r Entwickler&lt;/li&gt;&lt;li&gt;Grundlagen der Kryptographie&lt;/li&gt;&lt;li&gt;Die kryptografische Java-Architektur (JCA) in K&amp;uuml;rze&lt;/li&gt;&lt;li&gt;Elementare Algorithmen&lt;/li&gt;&lt;li&gt;Hashing
&lt;ul&gt;
&lt;li&gt;Grundlagen des Hashings&lt;/li&gt;&lt;li&gt;Hashing in Java&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Hashing in JCA (Erkundung mit Copilot)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Erzeugung von Zufallszahlen
&lt;ul&gt;
&lt;li&gt;Pseudo-Zufallszahlengeneratoren (PRNGs)&lt;/li&gt;&lt;li&gt;Kryptografisch sichere PRNGs&lt;/li&gt;&lt;li&gt;Schwache und starke PRNGs in Java&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung von Zufallszahlen in Java (Erkundung mit Copilot)&lt;/li&gt;&lt;li&gt;Fallstudie - Equifax-Kontosperrung&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Schutz der Vertraulichkeit
&lt;ul&gt;
&lt;li&gt;Symmetrische Verschl&amp;uuml;sselung
&lt;ul&gt;
&lt;li&gt;Blockchiffren&lt;/li&gt;&lt;li&gt;Betriebsarten&lt;/li&gt;&lt;li&gt;Betriebsarten und IV - bew&amp;auml;hrte Verfahren&lt;/li&gt;&lt;li&gt;Symmetrische Verschl&amp;uuml;sselung in Java&lt;/li&gt;&lt;li&gt;Symmetrische Verschl&amp;uuml;sselung in Java mit Streams&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Symmetrische Verschl&amp;uuml;sselung in JCA (Erkundung mit Copilot)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Asymmetrische Verschl&amp;uuml;sselung&lt;/li&gt;&lt;li&gt;Kombination von symmetrischen und asymmetrischen Algorithmen&lt;/li&gt;&lt;li&gt;Schl&amp;uuml;sselaustausch und Vereinbarung
&lt;ul&gt;
&lt;li&gt;Austausch von Schl&amp;uuml;sseln&lt;/li&gt;&lt;li&gt;Diffie-Hellman-Schl&amp;uuml;sselvereinbarungsalgorithmus&lt;/li&gt;&lt;li&gt;Die wichtigsten Fallstricke beim Austausch und bew&amp;auml;hrte Verfahren&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Tag 2&lt;/h4&gt;&lt;h4&gt;Die OWASP Top Ten aus der Sicht von Copilot&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;A03 - Injektion
&lt;ul&gt;
&lt;li&gt;Injektionsprinzipien&lt;/li&gt;&lt;li&gt;Injektionsangriffe
&lt;ul&gt;
&lt;li&gt;SQL-Einschleusung
&lt;ul&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;ul&gt;
&lt;li&gt;Inhaltsbasierte blinde SQL-Injektion&lt;/li&gt;&lt;li&gt;Zeitbasierte blinde SQL-Injektion&lt;/li&gt;&lt;/ul&gt;&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;&amp;Uuml;bung - Experimentieren mit SQL-Injection in Copilot&lt;/li&gt;&lt;li&gt;Datenbankverteidigung in der Tiefe&lt;/li&gt;&lt;li&gt;Fallstudie - SQL-Injektion in Fortra FileCatalyst&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Code-Einspritzung
&lt;ul&gt;
&lt;li&gt;OS-Befehlsinjektion&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken der OS-Befehlsinjektion&lt;/li&gt;&lt;li&gt;Verwendung von Runtime.exec()&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 VMware Aria&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;HTML-Injektion - Cross-Site-Scripting (XSS)
&lt;ul&gt;
&lt;li&gt;Grundlagen des Cross-Site-Scripting&lt;/li&gt;&lt;li&gt;Cross-Site-Scripting-Typen
&lt;ul&gt;
&lt;li&gt;Anhaltendes Cross-Site-Scripting&lt;/li&gt;&lt;li&gt;Reflektiertes Cross-Site-Scripting&lt;/li&gt;&lt;li&gt;Client-seitiges (DOM-basiertes) Cross-Site-Scripting&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Gespeicherte XSS&lt;/li&gt;&lt;li&gt;Labor - Reflektiertes XSS&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken zum Schutz vor XSS&lt;/li&gt;&lt;li&gt;Schutzprinzipien - Flucht&lt;/li&gt;&lt;li&gt;XSS-Schutz-APIs in Java&lt;/li&gt;&lt;li&gt;Lab - XSS fix / gespeichert (Erkundung mit Copilot)&lt;/li&gt;&lt;li&gt;Labor - XSS-Behebung / reflektiert (Erkundung mit Copilot)&lt;/li&gt;&lt;li&gt;Zus&amp;auml;tzliche Schutzschichten - Verteidigung in der Tiefe&lt;/li&gt;&lt;li&gt;Fallstudie - XSS-Schwachstellen in DrayTek Vigor-Routern&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A04 - Unsicheres Design
&lt;ul&gt;
&lt;li&gt;Das STRIDE-Modell der Bedrohungen&lt;/li&gt;&lt;li&gt;Sichere Gestaltungsprinzipien von Saltzer und Schroeder
&lt;ul&gt;
&lt;li&gt;Wirtschaftlichkeit des Mechanismus&lt;/li&gt;&lt;li&gt;Ausfallsichere Voreinstellungen&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;/ul&gt;&lt;/li&gt;&lt;li&gt;Client-seitige Sicherheit&lt;/li&gt;&lt;li&gt;Rahmen-Sandboxing&lt;/li&gt;&lt;li&gt;Cross-Frame-Scripting-Angriffe (XFS)&lt;/li&gt;&lt;li&gt;Labor - Clickjacking&lt;/li&gt;&lt;li&gt;Clickjacking geht &amp;uuml;ber die Entf&amp;uuml;hrung eines Klicks hinaus&lt;/li&gt;&lt;li&gt;Bew&amp;auml;hrte Praktiken zum Schutz vor Clickjacking&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung von CSP zur Verhinderung von Clickjacking (Erkundung mit Copilot)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A05 - Fehlkonfiguration der Sicherheit
&lt;ul&gt;
&lt;li&gt;Grunds&amp;auml;tze der Konfiguration&lt;/li&gt;&lt;li&gt;XML-Entit&amp;auml;ten
&lt;ul&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;li&gt;Labor - Experimentieren mit XXE in Copilot&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;


&lt;h4&gt;Tag 3&lt;/h4&gt;

&lt;h4&gt;Die OWASP Top Ten aus der Sicht von Copilot&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;A06 - Anf&amp;auml;llige und veraltete Komponenten
&lt;ul&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;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;li&gt;Sicherheit von KI-generiertem Code&lt;/li&gt;&lt;li&gt;Praktische Angriffe auf Tools zur Codegenerierung&lt;/li&gt;&lt;li&gt;Abh&amp;auml;ngigkeits-Halluzination durch generative KI&lt;/li&gt;&lt;li&gt;Fallstudie - Eine Geschichte der Schw&amp;auml;chen von GitHub Copilot (bis Mitte 2024)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A07 - Fehler bei der Identifizierung und Authentifizierung
&lt;ul&gt;
&lt;li&gt;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;/ul&gt;&lt;/li&gt;&lt;li&gt;Passwortverwaltung
&lt;ul&gt;
&lt;li&gt;Verwaltung eingehender Passw&amp;ouml;rter&lt;/li&gt;&lt;li&gt;Speichern von Kontopassw&amp;ouml;rtern&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 JCA&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung adaptiver Hash-Funktionen in Copilot&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;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A08 - Fehler in der Software und Datenintegrit&amp;auml;t
&lt;ul&gt;
&lt;li&gt;Schutz der Integrit&amp;auml;t
&lt;ul&gt;
&lt;li&gt;Nachrichten-Authentifizierungs-Code (MAC)&lt;/li&gt;&lt;li&gt;MAC-Berechnung in Java&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - MAC-Berechnung in JCA&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Digitale Unterschrift
&lt;ul&gt;
&lt;li&gt;Elliptische Kurven Kryptographie&lt;/li&gt;&lt;li&gt;ECC-Grundlagen&lt;/li&gt;&lt;li&gt;Digitale Unterschrift mit ECC&lt;/li&gt;&lt;li&gt;Digitale Unterschrift in Java&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Digitale Signatur mit ECDSA in JCA&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Integrit&amp;auml;t der Subressource
&lt;ul&gt;
&lt;li&gt;JavaScript importieren&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - JavaScript importieren (mit Copilot erkunden)&lt;/li&gt;&lt;li&gt;Fallstudie - Die Datenschutzverletzung bei British Airways&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Unsichere Deserialisierung
&lt;ul&gt;
&lt;li&gt;Herausforderungen bei Serialisierung und Deserialisierung&lt;/li&gt;&lt;li&gt;Integrit&amp;auml;t - Deserialisierung nicht vertrauensw&amp;uuml;rdiger Datenstr&amp;ouml;me&lt;/li&gt;&lt;li&gt;Integrit&amp;auml;t - bew&amp;auml;hrte Verfahren zur Deserialisierung&lt;/li&gt;&lt;li&gt;Vorausschauende Deserialisierung&lt;/li&gt;&lt;li&gt;Eigenschaftsorientiertes Programmieren (POP)&lt;/li&gt;&lt;li&gt;Erstellen einer POP-Nutzlast&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Erstellen einer POP-Nutzlast&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Verwendung der POP-Nutzlast&lt;/li&gt;&lt;li&gt;Fallstudie - Deserialisierungs-RCEs in NextGen Mirth Connect&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A09 - Fehler bei der Sicherheitsprotokollierung und -&amp;uuml;berwachung
&lt;ul&gt;
&lt;li&gt;Grunds&amp;auml;tze der Protokollierung und &amp;Uuml;berwachung&lt;/li&gt;&lt;li&gt;Rundholz f&amp;auml;lschen&lt;/li&gt;&lt;li&gt;Protokollf&amp;auml;lschung - bew&amp;auml;hrte Verfahren&lt;/li&gt;&lt;li&gt;Fallstudie - Log-Interpolation in log4j&lt;/li&gt;&lt;li&gt;Fallstudie - Die Log4Shell-Schwachstelle (CVE-2021-44228)&lt;/li&gt;&lt;li&gt;Fallstudie - Log4Shell-Folgemassnahmen (CVE-2021-45046, CVE-2021-45105)&lt;/li&gt;&lt;li&gt;&amp;Uuml;bung - Log4Shell&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A10 - Server-seitige Anforderungsf&amp;auml;lschung (SSRF)
&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;Einpacken
&lt;ul&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;Und was nun?&lt;/li&gt;&lt;li&gt;Quellen zur Softwaresicherheit und weiterf&amp;uuml;hrende Literatur&lt;/li&gt;&lt;li&gt;Java-Ressourcen&lt;/li&gt;&lt;li&gt;Verantwortungsvolle KI-Prinzipien in der Softwareentwicklung&lt;/li&gt;&lt;li&gt;Generative AI - Ressourcen und zus&amp;auml;tzliche Anleitungen&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</contents><outline>&lt;p&gt;Verantwortungsbewusst kodieren mit GenAI
Die OWASP Top Ten aus der Sicht von Copilot
Einpacken&lt;/p&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-crwgaij&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>- Die Grundlagen der verantwortungsvollen KI verstehen
- Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit
- Verstehen, wie Kryptographie die Sicherheit unterstützt
- Lernen, wie man kryptografische APIs in Java richtig verwendet
- Verständnis von Sicherheitsfragen bei Webanwendungen
- Detaillierte Analyse der OWASP Top Ten Elemente
- Die Sicherheit von Webanwendungen im Kontext von Java
- Über die niedrig hängenden Früchte hinausgehen
- Verwaltung von Schwachstellen in Komponenten von Drittanbietern
- All dies im Kontext von GitHub Copilot</objective_plain><essentials_plain>OWASP, SEI CERT, CWE und Fortify Taxonomien</essentials_plain><audience_plain>Java-Entwickler, die Copilot oder andere GenAI-Tools verwenden</audience_plain><contents_plain>Tag 1


Verantwortungsbewusst kodieren mit GenAI


- Was ist verantwortungsvolle KI?
- Was ist Sicherheit?
- Bedrohung und Risiko
- Arten von Cybersicherheitsbedrohungen - die CIA-Triade
- Folgen von unsicherer Software
- Sicherheit und verantwortungsvolle KI in der Softwareentwicklung
- GenAI-Werkzeuge für die Kodierung: Copilot, Codeium und andere
- Die OWASP Top Ten aus der Sicht von Copilot

- Die OWASP Top Ten 2021

- A01 - Defekte Zugangskontrolle

- Grundlagen der Zugangskontrolle
- Fallstudie - Fehlerhaftes authn/authz in Apache OFBiz
- Verwirrter Abgeordneter
- Unsichere direkte Objektreferenz (IDOR)
- Pfadüberquerung
- Übung - Unsichere direkte Objektreferenz
- Bewährte Verfahren zur Pfadüberquerung
- Übung - Experimentieren mit der Pfadverfolgung in Copilot
- Berechtigungsumgehung durch benutzergesteuerte Schlüssel
- Fallbeispiel - Fernübernahme von Nexx Garagentoren und Alarmanlagen
- Labor - Horizontale Genehmigung (Erkundung mit Copilot)
- Hochladen von Dateien

- Uneingeschränkter Datei-Upload
- Bewährte Praktiken
- Übung - Uneingeschränkter Datei-Upload (Erkundung mit Copilot)
- Fallstudie - Sicherheitslücke beim Hochladen von Dateien in Netflix Genie
- A02 - Kryptographische Ausfälle

- Kryptographie für Entwickler
- Grundlagen der Kryptographie
- Die kryptografische Java-Architektur (JCA) in Kürze
- Elementare Algorithmen
- Hashing

- Grundlagen des Hashings
- Hashing in Java
- Übung - Hashing in JCA (Erkundung mit Copilot)
- Erzeugung von Zufallszahlen

- Pseudo-Zufallszahlengeneratoren (PRNGs)
- Kryptografisch sichere PRNGs
- Schwache und starke PRNGs in Java
- Übung - Verwendung von Zufallszahlen in Java (Erkundung mit Copilot)
- Fallstudie - Equifax-Kontosperrung
- Schutz der Vertraulichkeit

- Symmetrische Verschlüsselung

- Blockchiffren
- Betriebsarten
- Betriebsarten und IV - bewährte Verfahren
- Symmetrische Verschlüsselung in Java
- Symmetrische Verschlüsselung in Java mit Streams
- Übung - Symmetrische Verschlüsselung in JCA (Erkundung mit Copilot)
- Asymmetrische Verschlüsselung
- Kombination von symmetrischen und asymmetrischen Algorithmen
- Schlüsselaustausch und Vereinbarung

- Austausch von Schlüsseln
- Diffie-Hellman-Schlüsselvereinbarungsalgorithmus
- Die wichtigsten Fallstricke beim Austausch und bewährte Verfahren

Tag 2

Die OWASP Top Ten aus der Sicht von Copilot


- A03 - Injektion

- 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
- Übung - Experimentieren mit SQL-Injection in Copilot
- Datenbankverteidigung in der Tiefe
- Fallstudie - SQL-Injektion in Fortra FileCatalyst
- Code-Einspritzung

- OS-Befehlsinjektion
- Bewährte Praktiken der OS-Befehlsinjektion
- Verwendung von Runtime.exec()
- Fallstudie - Shellshock
- Labor - Shellshock
- Fallstudie - Befehlsinjektion in VMware Aria
- HTML-Injektion - Cross-Site-Scripting (XSS)

- Grundlagen des Cross-Site-Scripting
- Cross-Site-Scripting-Typen

- Anhaltendes Cross-Site-Scripting
- Reflektiertes Cross-Site-Scripting
- Client-seitiges (DOM-basiertes) Cross-Site-Scripting
- Übung - Gespeicherte XSS
- Labor - Reflektiertes XSS
- Bewährte Praktiken zum Schutz vor XSS
- Schutzprinzipien - Flucht
- XSS-Schutz-APIs in Java
- Lab - XSS fix / gespeichert (Erkundung mit Copilot)
- Labor - XSS-Behebung / reflektiert (Erkundung mit Copilot)
- Zusätzliche Schutzschichten - Verteidigung in der Tiefe
- Fallstudie - XSS-Schwachstellen in DrayTek Vigor-Routern
- A04 - Unsicheres Design

- Das STRIDE-Modell der Bedrohungen
- Sichere Gestaltungsprinzipien von Saltzer und Schroeder

- Wirtschaftlichkeit des Mechanismus
- Ausfallsichere Voreinstellungen
- Vollständige Mediation
- Open design
- Trennung der Privilegien
- Geringstes Privileg
- Am wenigsten verbreiteter Mechanismus
- Psychologische Akzeptanz
- Client-seitige Sicherheit
- Rahmen-Sandboxing
- Cross-Frame-Scripting-Angriffe (XFS)
- Labor - Clickjacking
- Clickjacking geht über die Entführung eines Klicks hinaus
- Bewährte Praktiken zum Schutz vor Clickjacking
- Übung - Verwendung von CSP zur Verhinderung von Clickjacking (Erkundung mit Copilot)
- A05 - Fehlkonfiguration der Sicherheit

- Grundsätze der Konfiguration
- XML-Entitäten

- 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
- Labor - Experimentieren mit XXE in Copilot



Tag 3



Die OWASP Top Ten aus der Sicht von Copilot




- A06 - Anfällige und veraltete Komponenten

- Verwendung anfälliger Komponenten
- Import von nicht vertrauenswürdigen Funktionen
- Fallstudie - Der Angriff auf die Lieferkette von Polyfill.io
- Management von Schwachstellen
- Übung - Auffinden von Schwachstellen in Komponenten von Drittanbietern
- Sicherheit von KI-generiertem Code
- Praktische Angriffe auf Tools zur Codegenerierung
- Abhängigkeits-Halluzination durch generative KI
- Fallstudie - Eine Geschichte der Schwächen von GitHub Copilot (bis Mitte 2024)
- A07 - Fehler bei der Identifizierung und Authentifizierung

- Authentifizierung

- Grundlagen der Authentifizierung
- Multi-Faktor-Authentifizierung (MFA)
- Fallstudie - Der InfinityGauntlet-Angriff
- Passwortverwaltung

- Verwaltung eingehender Passwörter
- Speichern von Kontopasswörtern
- 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 JCA
- Übung - Verwendung adaptiver Hash-Funktionen in Copilot
- Passwort-Politik
- NIST-Authentifikator-Anforderungen für gespeicherte Geheimnisse
- A08 - Fehler in der Software und Datenintegrität

- Schutz der Integrität

- Nachrichten-Authentifizierungs-Code (MAC)
- MAC-Berechnung in Java
- Übung - MAC-Berechnung in JCA
- Digitale Unterschrift

- Elliptische Kurven Kryptographie
- ECC-Grundlagen
- Digitale Unterschrift mit ECC
- Digitale Unterschrift in Java
- Übung - Digitale Signatur mit ECDSA in JCA
- Integrität der Subressource

- JavaScript importieren
- Übung - JavaScript importieren (mit Copilot erkunden)
- Fallstudie - Die Datenschutzverletzung bei British Airways
- Unsichere Deserialisierung

- Herausforderungen bei Serialisierung und Deserialisierung
- Integrität - Deserialisierung nicht vertrauenswürdiger Datenströme
- Integrität - bewährte Verfahren zur Deserialisierung
- Vorausschauende Deserialisierung
- Eigenschaftsorientiertes Programmieren (POP)
- Erstellen einer POP-Nutzlast
- Übung - Erstellen einer POP-Nutzlast
- Übung - Verwendung der POP-Nutzlast
- Fallstudie - Deserialisierungs-RCEs in NextGen Mirth Connect
- A09 - Fehler bei der Sicherheitsprotokollierung und -überwachung

- Grundsätze der Protokollierung und Überwachung
- Rundholz fälschen
- Protokollfälschung - bewährte Verfahren
- Fallstudie - Log-Interpolation in log4j
- Fallstudie - Die Log4Shell-Schwachstelle (CVE-2021-44228)
- Fallstudie - Log4Shell-Folgemassnahmen (CVE-2021-45046, CVE-2021-45105)
- Übung - Log4Shell
- A10 - Server-seitige Anforderungsfälschung (SSRF)

- Server-seitige Anforderungsfälschung (SSRF)
- Fallbeispiel - SSRF in Ivanti Connect Secure
- Einpacken

- Grundsätze der sicheren Kodierung
- Grundsätze der robusten Programmierung von Matt Bishop
- Und was nun?
- Quellen zur Softwaresicherheit und weiterführende Literatur
- Java-Ressourcen
- Verantwortungsvolle KI-Prinzipien in der Softwareentwicklung
- Generative AI - Ressourcen und zusätzliche Anleitungen</contents_plain><outline_plain>Verantwortungsbewusst kodieren mit GenAI
Die OWASP Top Ten aus der Sicht von Copilot
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>