{"course":{"productid":36438,"modality":1,"active":true,"language":"de","title":"Code responsibly with generative AI in C++","productcode":"CRWGAIC++","vendorcode":"CY","vendorname":"Cydrill","fullproductcode":"CY-CRWGAIC++","courseware":{"has_ekit":false,"has_printkit":true,"language":""},"url":"https:\/\/portal.flane.ch\/course\/36438","objective":"<ul>\n<li>Das Wesentliche der verantwortungsvollen KI verstehen<\/li><li>Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit<\/li><li>Korrekte Implementierung verschiedener Sicherheitsmerkmale<\/li><li>Ermittlung von Schwachstellen und deren Folgen<\/li><li>Lernen Sie die besten Sicherheitspraktiken in C++<\/li><li>Verwaltung von Schwachstellen in Komponenten von Drittanbietern<\/li><li>Ans&auml;tze und Grunds&auml;tze der Eingabevalidierung<\/li><li>All dies im Kontext von GitHub Copilot<\/li><\/ul><h4>Einpacken<\/h4><ul>\n<li>Grunds&auml;tze der sicheren Kodierung\n<ul>\n<li>Grunds&auml;tze der robusten Programmierung von Matt Bishop<\/li><li>Sichere Gestaltungsprinzipien von Saltzer und Schroeder<\/li><\/ul><\/li><li>Und was nun?<\/li><li>Quellen zur Softwaresicherheit und weiterf&uuml;hrende Literatur\n<ul>\n<li>C- und C++-Ressourcen<\/li><li>Verantwortungsvolle KI-Prinzipien in der Softwareentwicklung<\/li><li>Generative AI - Ressourcen und zus&auml;tzliche Anleitungen<\/li><\/ul><\/li><\/ul>","essentials":"<p>Allgemeine C++- und C-Entwicklung<\/p>","audience":"<p>C\/C++-Entwickler, die Copilot oder andere GenAI-Tools verwenden<\/p>","contents":"<h4>Tag 1<\/h4>\n<h4>Verantwortungsbewusst kodieren mit GenAI<\/h4><ul>\n<li>Was ist verantwortungsvolle KI?<\/li><li>Was ist Sicherheit?<\/li><li>Bedrohung und Risiko<\/li><li>Arten von Cybersicherheitsbedrohungen - die CIA-Triade<\/li><li>Arten von Cybersicherheitsbedrohungen - das STRIDE-Modell<\/li><li>Folgen von unsicherer Software<\/li><li>Sicherheit und verantwortungsvolle KI in der Softwareentwicklung<\/li><li>GenAI-Werkzeuge f&uuml;r die Kodierung: Copilot, Codeium und andere<\/li><\/ul>\n<h4>Schwachstellen in der Speicherverwaltung<\/h4><ul>\n<li>Montagegrundlagen und Aufrufkonventionen\n<ul>\n<li>x64 assembly essentials<\/li><li>Register und Adressierung<\/li><li>H&auml;ufigste Anweisungen<\/li><li>Aufruf von Konventionen auf x64<\/li><li>Einberufung von Kongressen - was es damit auf sich hat<\/li><li>Aufrufkonvention auf x64<\/li><\/ul><\/li><li>Der Stapelrahmen<\/li><li>Gestapelte Funktionsaufrufe<\/li><li>Puffer&uuml;berlauf\n<ul>\n<li>Speicherverwaltung und Sicherheit<\/li><li>Puffersicherheitsprobleme<\/li><li>Puffer&uuml;berlauf auf dem Stack<\/li><li>Puffer&uuml;berlauf auf dem Stack - Stack Smashing<\/li><li>Ausbeutung - Entf&uuml;hrung des Kontrollflusses<\/li><li>&Uuml;bung - Puffer&uuml;berlauf 101, Wiederverwendung von Code<\/li><li>Ausnutzung - Willk&uuml;rliche Codeausf&uuml;hrung<\/li><li>Einschleusen von Shellcode<\/li><li>&Uuml;bung - Code-Injektion, Ausbeutung mit Shellcode<\/li><li>Fallstudie - Stack BOF in FriendlyName Handhabung des Wemo Smart Plug<\/li><\/ul><\/li><li>Zeiger-Manipulation\n<ul>\n<li>Modifikation von Sprungtabellen<\/li><li>&Uuml;berschreiben von Funktionszeigern<\/li><li>Bew&auml;hrte Verfahren und einige typische Fehler<\/li><\/ul><\/li><li>Unsichere Funktionen\n<ul>\n<li>Umgang mit unsicheren Funktionen<\/li><li>&Uuml;bung - Behebung eines Puffer&uuml;berlaufs (Erkundung mit Copilot)<\/li><\/ul><\/li><li>Verwendung von std::string in C++\n<ul>\n<li>Manipulation von C-&auml;hnlichen Zeichenketten in C++<\/li><li>B&ouml;sartige Beendigung von Zeichenketten<\/li><li>Labor - Verwirrung bei der Terminierung von Zeichenketten (Erkundung mit Copilot)<\/li><li>Fehler bei der Berechnung der Stringl&auml;nge<\/li><\/ul><\/li><\/ul><h4>Tag 2<\/h4><h4>H&auml;rtung der Speicherverwaltung<\/h4><ul>\n<li>Absicherung der Toolchain\n<ul>\n<li>Absicherung der Toolchain in C++<\/li><li>Verwendung von FORTIFY_SOURCE<\/li><li>Labor - Auswirkungen von FORTIFY<\/li><\/ul><\/li><li>Adress-Sanitizer (ASan)\n<ul>\n<li>AddressSanitizer (ASan) verwenden<\/li><li>&Uuml;bung - AddressSanitizer verwenden<\/li><\/ul><\/li><li>Schutz vor Stapelzerschlagung\n<ul>\n<li>Erkennung von BoF mit einem Stack Canary<\/li><li>Klonen von Argumenten<\/li><li>Schutz vor Stapelzerst&ouml;rung auf verschiedenen Plattformen<\/li><li>SSP-&Auml;nderungen des Prologs und Epilogs<\/li><li>Labor - Auswirkungen des Stapelzerst&ouml;rungsschutzes<\/li><\/ul><\/li><li>Laufzeit-Schutzmassnahmen\n<ul>\n<li>Laufzeit-Instrumentierung<\/li><li>Adressraum-Layout-Randomisierung (ASLR)\n<ul>\n<li>ASLR auf verschiedenen Plattformen<\/li><li>Labor - Auswirkungen von ASLR<\/li><li>Umgehung von ASLR - NOP-Schlitten<\/li><li>Umgehung von ASLR - Speicherlecks<\/li><\/ul><\/li><\/ul><\/li><li>Nicht ausf&uuml;hrbare Speicherbereiche\n<ul>\n<li>Das NX-Bit<\/li><li>Schreiben XOR Ausf&uuml;hren (W^X)<\/li><li>NX auf verschiedenen Plattformen<\/li><li>Labor - Auswirkungen von NX<\/li><li>NX-Umgehung - Angriffe durch Wiederverwendung von Code<\/li><li>Return-to-libc \/ Bogeninjektion<\/li><li>R&uuml;ckgabeorientierte Programmierung (ROP)<\/li><li>Schutz vor ROP<\/li><\/ul><\/li><li>Fallstudie - Systematische Ausnutzung eines MediaTek-Puffer&uuml;berlaufs<\/li><\/ul><h4>Tag 3<\/h4><h4>H&auml;ufige Sicherheitsl&uuml;cken in Software<\/h4><ul>\n<li>Sicherheitsmerkmale\n<ul>\n<li>Authentifizierung<\/li><li>Passwortverwaltung\n<ul>\n<li>Verwaltung eingehender Passw&ouml;rter<\/li><li>Speichern von Kontopassw&ouml;rtern<\/li><li>Passwort im Transit<\/li><li>Labor - Reicht das Hashing von Passw&ouml;rtern aus?<\/li><li>W&ouml;rterbuchangriffe und Brute-Forcing<\/li><li>Salzen<\/li><li>Adaptive Hash-Funktionen f&uuml;r die Passwortspeicherung<\/li><li>Passwort-Politik<\/li><li>NIST-Authentifikator-Anforderungen f&uuml;r gespeicherte Geheimnisse<\/li><li>Migration der Passwort-Datenbank<\/li><\/ul><\/li><\/ul><\/li><li>Code quality\n<ul>\n<li>Codequalit&auml;t und Sicherheit<\/li><\/ul><\/li><li>Umgang mit Daten\n<ul>\n<li>Typ-Fehlanpassung<\/li><li>Labor - Typeninkongruenz (Erkundung mit Copilot)<\/li><li>Initialisierung und Bereinigung\n<ul>\n<li>Konstrukteure und Destrukteure<\/li><li>Initialisierung von statischen Objekten<\/li><li>&Uuml;bung - Initialisierungszyklen (Erkundung mit Copilot)<\/li><\/ul><\/li><li>Unver&ouml;ffentlichte Ressource<\/li><li>Array-Verf&uuml;gung in C++<\/li><li>&Uuml;bung - Mischen von delete und delete[] (Erkundung mit Copilot)<\/li><\/ul><\/li><li>Fallstricke der objektorientierten Programmierung\n<ul>\n<li>Zug&auml;nglichkeitsmodifikatoren<\/li><li>Sind Zug&auml;nglichkeitsmodifikatoren ein Sicherheitsmerkmal?<\/li><li>Vererbung und Objektaufteilung<\/li><li>Implementierung des Kopieroperators<\/li><li>Der Kopieroperator und die Ver&auml;nderbarkeit<\/li><li>Ver&auml;nderlichkeit<\/li><li>Objekte mit ver&auml;nderlicher Pr&auml;dikatsfunktion<\/li><li>Lab - Objekt mit ver&auml;nderlicher Pr&auml;dikatsfunktion<\/li><\/ul><\/li><\/ul>\n<h4>Verwendung anf&auml;lliger Komponenten<\/h4><ul>\n<li>Sicherheit von KI-generiertem Code<\/li><li>Praktische Angriffe auf Tools zur Codegenerierung<\/li><li>Abh&auml;ngigkeits-Halluzination durch generative KI<\/li><li>Fallstudie - Eine Geschichte der Schw&auml;chen von GitHub Copilot (bis Mitte 2024)<\/li><\/ul><p>\n[\/list]<\/p>","outline":"<ul>\n<li>Verantwortungsbewusst kodieren mit GenAI<\/li><li>Schwachstellen in der Speicherverwaltung<\/li><li>H&auml;rtung der Speicherverwaltung<\/li><li>H&auml;ufige Sicherheitsl&uuml;cken in Software<\/li><li>Verwendung anf&auml;lliger Komponenten<\/li><li>Einpacken<\/li><\/ul>","comments":"<p><em>Dieser Text wurde automatisiert &uuml;bersetzt. Um den englischen Originaltext anzuzeigen, klicken Sie bitte <span class=\"cms-link-marked\"><a class=\"fl-href-prod\" href=\"\/swisscom\/en\/course\/36438\"><svg role=\"img\" aria-hidden=\"true\" focusable=\"false\" data-nosnippet class=\"cms-linkmark\"><use xlink:href=\"\/css\/img\/icnset-linkmarks.svg#linkmark\"><\/use><\/svg>hier<\/a><\/span>.<\/em><\/p>","summary":"<p>Generative KI ver&auml;ndert die Softwarebranche. Mit Tools wie GitHub Copilot und Codeium k&ouml;nnen Entwickler ein noch nie dagewesenes Mass an Effizienz erreichen. Dies ist ein spannender Fortschritt, der aber auch wichtige Bedenken aufwirft und die Beteiligten dazu anh&auml;lt, diese Technologien mit Vorsicht zu geniessen. Den aktuellen KI-Tools mangelt es oft an einem nuancierten Verst&auml;ndnis, das notwendig ist, um subtile, aber kritische Aspekte der Softwareentwicklung anzugehen, insbesondere im Bereich der Sicherheit.<\/p>\n<p>Dieser Kurs bietet einen umfassenden Einblick in den verantwortungsvollen Einsatz von generativer KI in der Programmierung. Die Teilnehmer befassen sich mit Themen der Softwareentwicklung, die am ehesten durch den unvorsichtigen Einsatz von generativer KI beeintr&auml;chtigt werden k&ouml;nnen, darunter Authentifizierung, Autorisierung und Kryptografie. Der Lehrplan umfasst auch eine Analyse der Art und Weise, wie KI-Tools wie Copilot sichere Kodierungspraktiken im Zusammenhang mit den wichtigsten Schwachstellen der OWASP Top Ten, wie z. B. Path Traversal, SQL Injection oder Cross-Site Scripting, handhaben.<\/p>\n<p>Durch praktisches Lernen und Experimentieren erhalten die Teilnehmer ein solides Verst&auml;ndnis sowohl der St&auml;rken als auch der Grenzen der KI-gest&uuml;tzten Entwicklung. Dar&uuml;ber hinaus zeigen Fallstudien zu realen Vorf&auml;llen die Folgen von unsicherem Code und verdeutlichen die doppelte Natur der generativen KI als Ressource und potenzielles Risiko.<\/p>\n<p>Am Ende des Kurses werden die Entwickler mit dem Wissen und den F&auml;higkeiten ausgestattet sein, KI-Tools verantwortungsvoll in den Lebenszyklus der Softwareentwicklung zu integrieren und die Effizienz zu steigern, ohne die Sicherheit oder die Produktqualit&auml;t zu beeintr&auml;chtigen.<\/p>","objective_plain":"- Das Wesentliche der verantwortungsvollen KI verstehen\n- Vertrautmachen mit grundlegenden Konzepten der Cybersicherheit\n- Korrekte Implementierung verschiedener Sicherheitsmerkmale\n- Ermittlung von Schwachstellen und deren Folgen\n- Lernen Sie die besten Sicherheitspraktiken in C++\n- Verwaltung von Schwachstellen in Komponenten von Drittanbietern\n- Ans\u00e4tze und Grunds\u00e4tze der Eingabevalidierung\n- All dies im Kontext von GitHub Copilot\nEinpacken\n\n\n- Grunds\u00e4tze der sicheren Kodierung\n\n- Grunds\u00e4tze der robusten Programmierung von Matt Bishop\n- Sichere Gestaltungsprinzipien von Saltzer und Schroeder\n- Und was nun?\n- Quellen zur Softwaresicherheit und weiterf\u00fchrende Literatur\n\n- C- und C++-Ressourcen\n- Verantwortungsvolle KI-Prinzipien in der Softwareentwicklung\n- Generative AI - Ressourcen und zus\u00e4tzliche Anleitungen","essentials_plain":"Allgemeine C++- und C-Entwicklung","audience_plain":"C\/C++-Entwickler, die Copilot oder andere GenAI-Tools verwenden","contents_plain":"Tag 1\n\n\nVerantwortungsbewusst kodieren mit GenAI\n\n\n- Was ist verantwortungsvolle KI?\n- Was ist Sicherheit?\n- Bedrohung und Risiko\n- Arten von Cybersicherheitsbedrohungen - die CIA-Triade\n- Arten von Cybersicherheitsbedrohungen - das STRIDE-Modell\n- Folgen von unsicherer Software\n- Sicherheit und verantwortungsvolle KI in der Softwareentwicklung\n- GenAI-Werkzeuge f\u00fcr die Kodierung: Copilot, Codeium und andere\n\nSchwachstellen in der Speicherverwaltung\n\n\n- Montagegrundlagen und Aufrufkonventionen\n\n- x64 assembly essentials\n- Register und Adressierung\n- H\u00e4ufigste Anweisungen\n- Aufruf von Konventionen auf x64\n- Einberufung von Kongressen - was es damit auf sich hat\n- Aufrufkonvention auf x64\n- Der Stapelrahmen\n- Gestapelte Funktionsaufrufe\n- Puffer\u00fcberlauf\n\n- Speicherverwaltung und Sicherheit\n- Puffersicherheitsprobleme\n- Puffer\u00fcberlauf auf dem Stack\n- Puffer\u00fcberlauf auf dem Stack - Stack Smashing\n- Ausbeutung - Entf\u00fchrung des Kontrollflusses\n- \u00dcbung - Puffer\u00fcberlauf 101, Wiederverwendung von Code\n- Ausnutzung - Willk\u00fcrliche Codeausf\u00fchrung\n- Einschleusen von Shellcode\n- \u00dcbung - Code-Injektion, Ausbeutung mit Shellcode\n- Fallstudie - Stack BOF in FriendlyName Handhabung des Wemo Smart Plug\n- Zeiger-Manipulation\n\n- Modifikation von Sprungtabellen\n- \u00dcberschreiben von Funktionszeigern\n- Bew\u00e4hrte Verfahren und einige typische Fehler\n- Unsichere Funktionen\n\n- Umgang mit unsicheren Funktionen\n- \u00dcbung - Behebung eines Puffer\u00fcberlaufs (Erkundung mit Copilot)\n- Verwendung von std::string in C++\n\n- Manipulation von C-\u00e4hnlichen Zeichenketten in C++\n- B\u00f6sartige Beendigung von Zeichenketten\n- Labor - Verwirrung bei der Terminierung von Zeichenketten (Erkundung mit Copilot)\n- Fehler bei der Berechnung der Stringl\u00e4nge\nTag 2\n\nH\u00e4rtung der Speicherverwaltung\n\n\n- Absicherung der Toolchain\n\n- Absicherung der Toolchain in C++\n- Verwendung von FORTIFY_SOURCE\n- Labor - Auswirkungen von FORTIFY\n- Adress-Sanitizer (ASan)\n\n- AddressSanitizer (ASan) verwenden\n- \u00dcbung - AddressSanitizer verwenden\n- Schutz vor Stapelzerschlagung\n\n- Erkennung von BoF mit einem Stack Canary\n- Klonen von Argumenten\n- Schutz vor Stapelzerst\u00f6rung auf verschiedenen Plattformen\n- SSP-\u00c4nderungen des Prologs und Epilogs\n- Labor - Auswirkungen des Stapelzerst\u00f6rungsschutzes\n- Laufzeit-Schutzmassnahmen\n\n- Laufzeit-Instrumentierung\n- Adressraum-Layout-Randomisierung (ASLR)\n\n- ASLR auf verschiedenen Plattformen\n- Labor - Auswirkungen von ASLR\n- Umgehung von ASLR - NOP-Schlitten\n- Umgehung von ASLR - Speicherlecks\n- Nicht ausf\u00fchrbare Speicherbereiche\n\n- Das NX-Bit\n- Schreiben XOR Ausf\u00fchren (W^X)\n- NX auf verschiedenen Plattformen\n- Labor - Auswirkungen von NX\n- NX-Umgehung - Angriffe durch Wiederverwendung von Code\n- Return-to-libc \/ Bogeninjektion\n- R\u00fcckgabeorientierte Programmierung (ROP)\n- Schutz vor ROP\n- Fallstudie - Systematische Ausnutzung eines MediaTek-Puffer\u00fcberlaufs\nTag 3\n\nH\u00e4ufige Sicherheitsl\u00fccken in Software\n\n\n- Sicherheitsmerkmale\n\n- Authentifizierung\n- Passwortverwaltung\n\n- Verwaltung eingehender Passw\u00f6rter\n- Speichern von Kontopassw\u00f6rtern\n- Passwort im Transit\n- Labor - Reicht das Hashing von Passw\u00f6rtern aus?\n- W\u00f6rterbuchangriffe und Brute-Forcing\n- Salzen\n- Adaptive Hash-Funktionen f\u00fcr die Passwortspeicherung\n- Passwort-Politik\n- NIST-Authentifikator-Anforderungen f\u00fcr gespeicherte Geheimnisse\n- Migration der Passwort-Datenbank\n- Code quality\n\n- Codequalit\u00e4t und Sicherheit\n- Umgang mit Daten\n\n- Typ-Fehlanpassung\n- Labor - Typeninkongruenz (Erkundung mit Copilot)\n- Initialisierung und Bereinigung\n\n- Konstrukteure und Destrukteure\n- Initialisierung von statischen Objekten\n- \u00dcbung - Initialisierungszyklen (Erkundung mit Copilot)\n- Unver\u00f6ffentlichte Ressource\n- Array-Verf\u00fcgung in C++\n- \u00dcbung - Mischen von delete und delete[] (Erkundung mit Copilot)\n- Fallstricke der objektorientierten Programmierung\n\n- Zug\u00e4nglichkeitsmodifikatoren\n- Sind Zug\u00e4nglichkeitsmodifikatoren ein Sicherheitsmerkmal?\n- Vererbung und Objektaufteilung\n- Implementierung des Kopieroperators\n- Der Kopieroperator und die Ver\u00e4nderbarkeit\n- Ver\u00e4nderlichkeit\n- Objekte mit ver\u00e4nderlicher Pr\u00e4dikatsfunktion\n- Lab - Objekt mit ver\u00e4nderlicher Pr\u00e4dikatsfunktion\n\nVerwendung anf\u00e4lliger Komponenten\n\n\n- Sicherheit von KI-generiertem Code\n- Praktische Angriffe auf Tools zur Codegenerierung\n- Abh\u00e4ngigkeits-Halluzination durch generative KI\n- Fallstudie - Eine Geschichte der Schw\u00e4chen von GitHub Copilot (bis Mitte 2024)\n\n[\/list]","outline_plain":"- Verantwortungsbewusst kodieren mit GenAI\n- Schwachstellen in der Speicherverwaltung\n- H\u00e4rtung der Speicherverwaltung\n- H\u00e4ufige Sicherheitsl\u00fccken in Software\n- Verwendung anf\u00e4lliger Komponenten\n- Einpacken","comments_plain":"Dieser Text wurde automatisiert \u00fcbersetzt. Um den englischen Originaltext anzuzeigen, klicken Sie bitte hier.","summary_plain":"Generative KI ver\u00e4ndert die Softwarebranche. Mit Tools wie GitHub Copilot und Codeium k\u00f6nnen Entwickler ein noch nie dagewesenes Mass an Effizienz erreichen. Dies ist ein spannender Fortschritt, der aber auch wichtige Bedenken aufwirft und die Beteiligten dazu anh\u00e4lt, diese Technologien mit Vorsicht zu geniessen. Den aktuellen KI-Tools mangelt es oft an einem nuancierten Verst\u00e4ndnis, das notwendig ist, um subtile, aber kritische Aspekte der Softwareentwicklung anzugehen, insbesondere im Bereich der Sicherheit.\n\nDieser Kurs bietet einen umfassenden Einblick in den verantwortungsvollen Einsatz von generativer KI in der Programmierung. Die Teilnehmer befassen sich mit Themen der Softwareentwicklung, die am ehesten durch den unvorsichtigen Einsatz von generativer KI beeintr\u00e4chtigt werden k\u00f6nnen, darunter Authentifizierung, Autorisierung und Kryptografie. Der Lehrplan umfasst auch eine Analyse der Art und Weise, wie KI-Tools wie Copilot sichere Kodierungspraktiken im Zusammenhang mit den wichtigsten Schwachstellen der OWASP Top Ten, wie z. B. Path Traversal, SQL Injection oder Cross-Site Scripting, handhaben.\n\nDurch praktisches Lernen und Experimentieren erhalten die Teilnehmer ein solides Verst\u00e4ndnis sowohl der St\u00e4rken als auch der Grenzen der KI-gest\u00fctzten Entwicklung. Dar\u00fcber hinaus zeigen Fallstudien zu realen Vorf\u00e4llen die Folgen von unsicherem Code und verdeutlichen die doppelte Natur der generativen KI als Ressource und potenzielles Risiko.\n\nAm Ende des Kurses werden die Entwickler mit dem Wissen und den F\u00e4higkeiten ausgestattet sein, KI-Tools verantwortungsvoll in den Lebenszyklus der Softwareentwicklung zu integrieren und die Effizienz zu steigern, ohne die Sicherheit oder die Produktqualit\u00e4t zu beeintr\u00e4chtigen.","version":"1.0","duration":{"unit":"d","value":3,"formatted":"3 Tage"},"pricelist":{"List Price":{"DE":{"country":"DE","currency":"EUR","taxrate":19,"price":2250},"SI":{"country":"SI","currency":"EUR","taxrate":20,"price":2250},"AT":{"country":"AT","currency":"EUR","taxrate":20,"price":2250},"SE":{"country":"SE","currency":"EUR","taxrate":25,"price":2250},"CH":{"country":"CH","currency":"CHF","taxrate":8.1,"price":2250}}},"lastchanged":"2025-10-29T08:42:31+01:00","parenturl":"https:\/\/portal.flane.ch\/swisscom\/json-courses","nexturl_course_schedule":"https:\/\/portal.flane.ch\/swisscom\/json-course-schedule\/36438","source_lang":"de","source":"https:\/\/portal.flane.ch\/swisscom\/json-course\/36438"}}