Generatieve AI zorgt voor een ommekeer in de software-industrie, met tools zoals Claude Code, GitHub Copilot en andere, waardoor ontwikkelaars een ongekend niveau van efficiëntie kunnen bereiken. Hoewel dit een opwindende ontwikkeling is, roept het ook belangrijke zorgen op, waardoor belanghebbenden worden aangemoedigd om deze technologieën met de nodige voorzichtigheid te benaderen. Huidige AI-tools missen vaak het genuanceerde inzicht dat nodig is om subtiele, maar cruciale aspecten van softwareontwikkeling aan te pakken, met name op het gebied van beveiliging.
Deze cursus biedt een uitgebreid inzicht in het verantwoord gebruik van generatieve AI bij het programmeren. Deelnemers verdiepen zich in onderwerpen binnen softwareontwikkeling die het meest waarschijnlijk worden beïnvloed door onzorgvuldig gebruik van generatieve AI, waaronder authenticatie, autorisatie en cryptografie. Het curriculum omvat ook een analyse van hoe Claude Code, GitHub Copilot en andere tools omgaan met veilige programmeerpraktijken met betrekking tot belangrijke kwetsbaarheden die zijn beschreven in de OWASP Top Ten, zoals path traversal, SQL-injectie of cross-site scripting.
Door middel van praktijkgericht leren en experimenteren krijgen deelnemers een gedegen inzicht in zowel de sterke punten als de beperkingen van AI-ondersteunde ontwikkeling. Daarnaast illustreren casestudy’s van incidenten uit de praktijk de gevolgen van onveilige code en tonen ze de tweeledige aard van generatieve AI aan: enerzijds een hulpmiddel, anderzijds een potentieel risico.
Aan het einde van de cursus beschikken ontwikkelaars over de kennis en vaardigheden om AI-tools op verantwoorde wijze te integreren in de levenscyclus van softwareontwikkeling, waardoor de efficiëntie wordt verhoogd zonder dat dit ten koste gaat van de beveiliging of de productkwaliteit.

Deze variant van de Python-beveiligingscursus gaat uitgebreid in op de manier waarop GenAI omgaat met bepaalde beveiligingsproblemen in code. Via een aantal praktische oefeningen doen deelnemers uit eerste hand ervaring op met het verantwoord gebruik van GenAI en leren ze hoe ze het systeem kunnen aansturen om de meest veilige code te genereren. In sommige gevallen is dit eenvoudig, maar in de meeste gevallen is dat niet zo; en in weer andere gevallen is het in feite onmogelijk. Tegelijkertijd bieden de oefeningen algemene ervaring met het gebruik van GenAI in de dagelijkse programmeerpraktijk – wat je ervan kunt verwachten en op welke gebieden je er beter niet op kunt vertrouwen.

PRAKTISCHE INFORMATIE

  • Als training op locatie niet haalbaar is, kunnen we een live, interactieve online (virtuele) of hybride training aanbieden. Het standaardprogramma met een inhoud van 3 dagen kan ook in 5 halve dagen worden gegeven (van maandag tot vrijdag).
  • Benieuwd hoe je de return-on-investment (ROI) van secure coding-trainingen kunt kwantificeren? Bekijk dan dit artikel.

Leerdoelen

  • De essentie van verantwoorde AI begrijpen

  • Vertrouwd raken met essentiële cyberbeveiligingsconcepten

  • Beveiligingsproblemen van webtoepassingen begrijpen

  • Gedetailleerde analyse van de OWASP-top tien

  • Beveiliging van webtoepassingen in de context van Python

  • Verder gaan dan het laaghangende fruit

  • Omgaan met kwetsbaarheden in componenten van derden

  • Benaderingen en principes voor invoervalidatie.

Doelgroep

Python-ontwikkelaars die GenAI-tools gebruiken.

Paraatheid:

Algemene Python- en webontwikkeling.

Delivery In-company (op locatie of online)
Duur 3 consecutive days
Groepsgrootte Maximaal 12 deelnemers
Aanpassing De training kan worden aangepast aan uw organisatie, context en leerdoelen.
Taal Engels
Investment Op aanvraag
Brochure downloaden

Programma

Dag 1

Verantwoord programmeren met GenAI

Wat is beveiliging?

Bedreiging en risico

Soorten cyberbeveiligingsbedreigingen – de CIA-triade

Gevolgen van onveilige software

Wat is verantwoorde AI?

Beveiliging en verantwoorde AI in softwareontwikkeling

De OWASP Top Ten 2025

A01 - Gebrekkige toegangscontrole

· Basisprincipes van toegangscontrole

· Casestudy – Storing in het autorisatiesysteem van het FIFA-platform tijdens het WK 2026

· Verwarde hulpsheriff

o Onveilige verwijzing naar een lijdend voorwerp (IDOR)

o Paddoorloop

o Lab – Onveilige verwijzing naar een direct object

o Aanbevolen werkwijzen voor het doorlopen van paden

o Lab – Experimenteren met het doorlopen van paden in GenAI

o Omzeiling van autorisatie via door de gebruiker beheerde sleutels

o Casestudy – Overname op afstand van Nexx-garagedeuren en -alarmen

o Lab – Horizontale autorisatie

o Bestanden uploaden zonder beperkingen

o Goede praktijken

o Lab – Bestanden uploaden zonder beperkingen

· Server-side Request Forgery (SSRF)

o Casestudy – SSRF in Ivanti Connect Secure

A02 - Verkeerde beveiligingsconfiguratie

· Configuratiebeginselen

· Aanbevolen werkwijzen voor Python-configuratie

o Flask configureren

· Problemen met de configuratie van de webbeveiliging

o Beleid inzake inhoudsbeveiliging

o Fetch-richtlijnen

o Toelatingslijst voor bronnen

o Strikte CSP: gebruik van nonces en hashes

o Best practices voor CSP

· Beveiliging van cookies

o Koekje-attributen

· Beheer van vertrouwelijke informatie

o Vast geprogrammeerde wachtwoorden

o Beste praktijken

o Lab – Vastgelegd wachtwoord

· XML-entiteiten

o DTD en de entiteiten

o Uitbreiding van entiteiten

o Aanval via externe entiteit (XXE)

- Het opnemen van bestanden met externe entiteiten

- Server-Side Request Forgery met externe entiteiten

- Lab – Aanval door een externe entiteit

- XXE voorkomen

- Lab – DTD verbieden

- Casestudy – XXE-kwetsbaarheid in Ivanti-producten

- Lab – Experimenteren met XXE in GenAI

Dag 2

De OWASP Top Ten 2025

A03 - Storingen in de softwaretoeleveringsketen

· Gebruik van kwetsbare componenten

· De omgeving beoordelen

· Verharding

· Import van niet-vertrouwde functionaliteit

· Kwaadaardige pakketten in Python

· Beveiliging van de toeleveringsketen en de Software Bill of Materials (SBOM)

· Voorbeelden van SBOM’s

· Casestudy – De aanval op de toeleveringsketen van Polyfill.io

· Beheer van kwetsbaarheden

o Patchbeheer

o Beheer van kwetsbaarheden

o Databanken met kwetsbaarheden

o Lab – Kwetsbaarheden opsporen in componenten van derden

o DevOps, het CI/CD-bouwproces en Software Composition Analysis

o Controle op afhankelijkheden in Python

o Lab – Kwetsbare componenten opsporen

· Beveiliging van door AI gegenereerde code

o Praktische aanvallen op tools voor codegeneratie

o Hallucinaties door afhankelijkheid via generatieve AI

o Casestudie – Een overzicht van de zwakke punten van GitHub Copilot (tot medio 2025)

o Casestudie – Agentische codering en codebeveiliging (vanaf medio 2025)

A05 - Injectie

· Validatie van invoer

o Beginselen voor de validatie van invoer

o Blokkeerlijsten en toelatingslijsten

o Casestudie – Fout in de blokkeerlijst bij `urllib.parse.urlparse()`

o Wat moet worden gecontroleerd – het aanvalsoppervlak

o Waar moet er worden gecontroleerd – meerlaagse beveiliging

o Wanneer moet er worden gevalideerd – validatie versus transformaties

· SQL-injectie

o Basisprincipes van SQL-injectie

o Lab – SQL-injectie

o Aanvalstechnieken

o Inhoudsgebaseerde blinde SQL-injectie

o Tijdgebaseerde blinde SQL-injectie

o Aanbevolen werkwijzen voor SQL-injectie

- Invoercontrole

- Geparametriseerde query's

- Lab – Gebruik van voorbereide instructies

- Casestudie – SQL-injectie gericht tegen de beveiliging van een Amerikaanse luchthaven

· Code-injectie

o Code-injectie via input()

o OS-opdrachtinjectie

- Lab – Commando-injectie

- Aanbevolen werkwijzen voor het voorkomen van OS-command-injectie

- Command-injectie voorkomen met de juiste API’s

- Lab – Aanbevolen werkwijzen voor commando-injectie

- Lab – Experimenteren met commando-injectie in GenAI

- Casestudy – Shellshock

- Lab - Shellshock

- Casestudy – Command-injectie in Ivanti-beveiligingsapparaten

· HTML-injectie – Cross-site scripting (XSS)

o Basisprincipes van cross-site scripting

o Soorten cross-site scripting

- Aanhoudende cross-site scripting

- Gereflecteerd cross-site scripting

- Cross-site scripting aan de clientzijde (op basis van DOM)

o Lab – Opgeslagen XSS

o Lab – XSS via reflectie

o Casestudy – Van XSS naar RCE in Teltonika-routers

o Aanbevolen werkwijzen voor XSS-beveiliging

- Beschermingsbeginselen - ontsnappen

- Lab – XSS-oplossing / opgeslagen

- Lab – XSS-oplossing / gereflecteerd

- Casestudy – XSS-kwetsbaarheden in DrayTek Vigor-routers

Dag 3

De OWASP Top Ten 2025

A06 - Onveilig ontwerp

· Het STRIDE-model voor bedreigingen

· Beveiligingsontwerpprincipes van Saltzer en Schroeder

o Mechanisme-efficiëntie

o Veilige standaardinstellingen

o Volledige bemiddeling

o Open ontwerp

o Scheiding van bevoegdheden

o Minimaal bevoegdheidsniveau

o Het minst voorkomende mechanisme

o Psychologische aanvaardbaarheid

· Beveiliging aan de kant van de gebruiker

o Sandboxing van frames

- Cross-Frame Scripting (XFS)-aanvallen

- Lab – Clickjacking

- Aanbevolen werkwijzen voor bescherming tegen clickjacking

- Lab – CSP gebruiken om clickjacking te voorkomen

A07 - Fouten bij authenticatie

· Authenticatie

o Basisprincipes van authenticatie

o Meervoudige authenticatie (MFA)

o Casestudy – De InfinityGauntlet-aanval

· Wachtwoordbeheer

o Wachtwoorden van accounts opslaan

o Wachtwoord tijdens verzending

o Lab – Is het hashen van wachtwoorden alleen voldoende?

o Woordenboekaanvallen en brute-force-aanvallen

o Zouten

o Adaptieve hashfuncties voor het opslaan van wachtwoorden

o Lab – Adaptieve hashfuncties gebruiken in Python

o Lab – Experimenteren met adaptieve hashfuncties in GenAI

· Wachtwoordbeleid

o NIST-vereisten voor authenticatiemiddelen voor opgeslagen geheime gegevens

o Migratie van de wachtwoorddatabase

A08 - Storingen in de integriteit van software en gegevens

· Integriteit van subbronnen

o JavaScript importeren

o Lab – JavaScript importeren

o Casestudy – Het datalek bij British Airways

· Onveilige deserialisatie

o Uitdagingen op het gebied van serialisatie en deserialisatie

o Integriteit – deserialiseren van onbetrouwbare streams

o Deserialisatie met pickle

o Lab – Deserialiseren met Pickle

o Casestudy – De beveiliging van de toeleveringsketen voor machine learning

o Casestudy – De eerste golf van aanvallen op de toeleveringsketen: RCE via ‘pickle’ (2022)

o Casestudie – Inbreuk op de Hugging Face Hub-repository

o Integriteit – aanbevolen werkwijzen voor deserialisatie

A10 - Onjuiste aanpak van uitzonderlijke omstandigheden

· Beginselen voor het afhandelen van fouten en uitzonderingen

· Foutafhandeling

o Een misleidende statuscode retourneren

o Openbaarmaking van informatie via foutmeldingen

- Informatielekken via foutpagina's

- Lab – Informatielek bij de kolf

- Casestudie – Informatielekken door fouten in Apache Superset

· Afhandeling van uitzonderingen

o In het `except`-blok. En wat nu?

o Leeg, behalve het blok

o Lab – Een puinhoop bij het afhandelen van uitzonderingen

Samenvatting

Principes voor veilig programmeren

· Principes van robuuste programmering door Matt Bishop

En wat nu?

· Bronnen over softwarebeveiliging en aanvullende literatuur

· Python-bronnen

· Generatieve AI – Bronnen en aanvullende richtlijnen.

Methodiek

Een blended learning-traject: live training onder begeleiding van een instructeur met laboefeningen in een eersteklas e-learningsysteem. Je houdt tot 3 maanden na de training toegang tot het e-learningsysteem om de laboefeningen en het materiaal opnieuw te bekijken.

29 praktijkoefeningen en 19 casestudies.

Normen en referenties:
OWASP, CWE en Fortify Taxonomy

Certificering

Na het volgen van deze training ontvangen deelnemers een certificaat van High Tech Institute.