Veilig programmeren in C/C++ Training Cursus
Het schrijven van veilige code in C en C++ vereist een rigoureuze aanpak om misbruik, geheugenbeschadiging en het ontwijken van inputvalidatie te voorkomen. In deze cursus komen verschillende kwetsbaarheden aan bod, zoals bufferoverloop, gebruik na vrijgave van geheugen, integer-overflow en typeconfusie. Deelnemers leren hoe ze veiligheidsrichtlijnen, statische analyse-instrumenten en verdedigingsmechanismen toepassen om zwakheden te elimineren, inputcorrectie af te dwingen en robuuste software te ontwikkelen die bestand is tegen cyberaanvallen.
Cursusaanbod
- Veelvoorkomende programmeerfouten in C/C++
- Grondprincipes van beveiliging
- Inputvalidatie
- Ongeldige verwerking van fouten en uitzonderingen
- Bufferoverloop
- Stack-overflow
- Heap-overflow
- Bescherming tegen stack-overflow
- Adresseruimte-randomisatie (ASLR)
- Bronnen voor veilig programmeren
Vereisten
Basiskennis van C/C++
Voor open trainingen is een minimum aantal van 5 deelnemers vereist
Veilig programmeren in C/C++ Training Cursus - Boeking
Veilig programmeren in C/C++ Training Cursus - Navraag
Getuigenissen (6)
Ervaring delen, de kennis en waarde van de docent.
Carey Fan - Logitech
Cursus - C/C++ Secure Coding
Automatisch vertaald
het evenwicht tussen voordrachten en praktijk, het ritme, de kennis van de trainer en de didactische vaardigheden
Armando Pinto - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
De trainer heeft actuele informatie en waardevolle referenties en hulpmiddelen geleverd.
Jose Vicente - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
om veel goede informatie te krijgen over het onderwerp van de cursus
Paulo Pereira - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
De trainer heeft solide kennis en ervaring, mooie presentaties, goede voorbeelden.
Celso Almeida - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
Algemene cursusinformatie
Paulo Gouveia - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
Voorlopige Aankomende Cursussen
Gerelateerde cursussen
Geavanceerd C++
35 UrenDeze training onder leiding van een docent in België (online of op locatie) is bedoeld voor ontwikkelaars die geavanceerde C++-programmeermethoden willen gebruiken om complexe, veilige en hoogperformante systemen en applicaties te creëren.
Na afloop van deze training zullen deelnemers kunnen:
- Een ontwikkelomgeving opzetten waarin alle relevante C++-bibliotheken, pakketten en frameworks aanwezig zijn.
- De eigenschappen, componenten en basisprincipes van C++ begrijpen.
- Complexe C++-applicaties ontwikkelen met behulp van geavanceerde programmeertechnieken.
- Inzicht krijgen in het schrijven van leesbare, snelle en veilige code in C++.
- De veelvoorkomende beveiligingsproblemen in C++ herkennen en oplossingen kennen.
- Teststrategieën implementeren om de kwaliteit en veiligheid van code te waarborgen.
- Diagnose- en debuggeerinstrumenten binnen C++-ontwikkeling effectief benutten.
Netwerkbeveiliging en veilige communicatie
21 UrenHet implementeren van een beveiligde netwerkapplicatie kan lastig zijn, zelfs voor ontwikkelaars die eerder met verschillende cryptografische elementen (zoals versleuteling en digitale handtekeningen) hebben gewerkt. Om deelnemers vertrouwd te maken met het nut en gebruik van deze cryptografische bouwstenen, wordt eerst een solide basis gelegd wat betreft de belangrijkste vereisten voor veilige communicatie: betrouwbare bevestiging, integriteit, vertrouwelijkheid, verificatie op afstand en anonimiteit. Ook worden typische problemen beschreven die deze eisen kunnen ondermijnen, samen met praktijkgerichte oplossingen.
Aangezien cryptografie een essentieel onderdeel is van netwerkbeveiliging, wordt er aandacht besteed aan de belangrijkste algoritmen binnen symmetrische en asymmetrische versleuteling, hashing en sleutelafstemming. In plaats van diepgaande wiskundige uitleg te geven, worden deze onderwerpen benaderd vanuit een ontwikkelaarsperspectief, inclusief voorbeeldtoepassingen en praktische aandachtspunten zoals de inzet van publieke sleutelinfrastructuren. Verder komen veiligheidsprotocollen uit verschillende domeinen aan bod, met een uitgebreide bespreking van de meest gangbare protocollen als IPSEC en SSL/TLS.
Ook worden veelvoorkomende kwetsbaarheden in cryptografische systemen besproken; zowel die gerelateerd aan specifieke algoritmen en protocollen – zoals BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE en soortgelijke – als de timing-aanvallen op RSA. Voor elk probleem worden praktische gevolgen en implicaties geschetst, zonder wiskundige details te behandelen.
Tot slot wordt er aandacht besteed aan de beveiliging van XML, dat veel wordt gebruikt voor data-uitwisseling tussen netwerkapplicaties. Hierbij komen het gebruik van XML binnen webdiensten en SOAP-berichten aan bod, evenals beschermingsmechanismen zoals XML-handtekeningen en versleuteling. Ook worden de beperkingen hiervan behandeld samen met specifieke beveiligingsrisico’s, waaronder XML-injectie, aanvallen via externe XML-entiteiten (XXE), zogenaamde XML-bommen en XPath-injectie.
Deelnemers aan deze cursus zullen
- Basisconcepten van beveiliging, IT-beveiliging en veilige coderen begrijpen
- De eisen voor veilige communicatie kennen
- Inzicht krijgen in netwerkaanvallen en verdedigingsmaatregelen op diverse OSI-lagen
- Een praktische kennis van cryptografie ontwikkelen
- De belangrijkste beveiligingsprotocollen begrijpen
- Recente aanvallen op cryptosystemen leren herkennen
- Informatie verkrijgen over recent ontdekte kwetsbaarheden
- Basisprincipes van beveiliging bij webdiensten begrijpen
- Bronnen en aanvullende literatuur over veilige codeerpraktijken vinden
Doelgroep
Ontwikkelaars, professionals
Geavanceerde beveiliging in Java
21 UrenOok ervaren Java-programmeurs beheersen lang niet altijd alle beveiligingsfuncties die Java biedt, en zijn zich evenmin bewust van de verschillende kwetsbaarheden die relevant zijn voor webapplicaties in Java.
In deze cursus worden naast de beveiligingscomponenten van Standard Java Edition ook beveiligingsproblemen binnen Java Enterprise Edition (JEE) en webservices behandeld. Voorafgaand aan de bespreking van specifieke diensten worden de grondbeginselen van cryptografie en beveiligde communicatie uitgelegd. Er zijn tal van oefeningen waarin zowel declaratieve als programmeerbare beveiligingstechnieken in JEE aan bod komen; tevens wordt zowel transportlaagbeveiliging als end-to-end beveiliging voor webservices besproken. Door middel van diverse praktische oefeningen leren deelnemers hoe ze de behandelde API’s en hulpmiddelen zelfstandig kunnen gebruiken.
Verder worden in deze cursus de meest voorkomende en ernstige programmeerfouten binnen de Java-taal en -omgeving, evenals web-gerelateerde kwetsbaarheden behandeld. Naast typische fouten die door Java-programmeurs worden gemaakt, omvatten de besproken beveiligingsproblemen zowel taalspecifieke uitdagingen als problemen voortkomend uit het runtime-omgeving. Alle kwetsbaarheden en bijbehorende aanvalstechnieken worden gedemonstreerd middels begrijpelijke oefeningen, waarna de aanbevolen programmatuurrichtlijnen en verzachtende maatregelen worden toegelicht.
Deelnemers aan deze cursus zullen
- De basisconcepten van beveiliging, IT-beveiliging en veilig programmeren begrijpen
- Webkwetsbaarheden leren kennen die verder gaan dan de OWASP Top Ten, en weten hoe deze te voorkomen
- De beveiligingsprincipes van webservices begrijpen
- Leeren omgaan met diverse beveiligingsfuncties in het Java-ontwikkelmilieu
- Een praktische kennis van cryptografie opdoen
- De beveiligingsoplossingen binnen Java EE begrijpen
- Typische programmeerfouten leren herkennen en weten hoe deze te vermijden
- Informatie verkrijgen over recente kwetsbaarheden in het Java-framework
- Praktijkervaring opdoen met het gebruik van beveiligingstesthulpmiddelen
- Toegang krijgen tot bronnen en aanvullende literatuur over veilige programmeerpraktijken
Doelgroep
Softwareontwikkelaars
.NET-, C#- en ASP.NET-beveiligingsontwikkeling
14 UrenTegenwoordig zijn er tal van programmeertalen beschikbaar om code te compileren voor de .NET- en ASP.NET-frameworks. Deze ontwikkelomgeving biedt krachtige mogelijkheden voor beveiligingsontwikkeling, maar ontwikkelaars moeten weten hoe zij architectuur- en code-gerelateerde technieken kunnen toepassen om de gewenste beveiligingsfuncties te implementeren en kwetsbaarheden te voorkomen of hun exploitatie te beperken.
Doel van deze cursus is ontwikkelaars via talrijke praktijkopdrachten te leren hoe zij kunnen voorkomen dat niet-vertrouwde code bevoorrechte acties uitvoert, hoe zij bronnen beschermen middels sterke authenticatie en autorisatie, hoe zij externe procedureaanroepen regelen, sessies beheren, verschillende implementaties voor specifieke functionaliteiten introduceren en nog veel meer.
De bespreking van diverse kwetsbaarheden begint met het uiteenzetten van typische programmeerproblemen bij gebruik van .NET; daarna wordt ingegaan op ASP.NET-kwetsbaarheden en de effecten van verschillende omgevingsinstellingen. Tot slot behandelt dit onderwerp ook specifieke beveiligingsuitdagingen binnen ASP.NET, waaronder speciale aanvalstechnieken zoals manipulatie van de ViewState of aanvallen op stringafsluiting.
Deelnemers die deze cursus volgen zullen
- Inzicht krijgen in basisconcepten rond beveiliging, IT-beveiliging en veilig coderen
- Leren over webkwetsbaarheden die verder gaan dan de OWASP Top Ten en hoe deze te voorkomen zijn
- De verschillende beveiligingsfuncties van de .NET-ontwikkelomgeving leren gebruiken
- Praktische kennis opdoen over het gebruik van veiligheidstesttools
- Inzicht krijgen in veelvoorkomende fouten bij coderen en hoe deze te vermijden zijn
- Meer leren over recente kwetsbaarheden binnen .NET en ASP.NET
- Toegang krijgen tot bronnen en literatuur betreffende veilig coderen
Doelgroep
Ontwikkelaars
Veilig programmeren in PHP
21 UrenDeze cursus verleent PHP-ontwikkelaars de essentiële vaardigheden die nodig zijn om hun applicaties bestand te maken tegen hedendaagse aanvallen via het internet. Webkwetsbaarheden worden behandeld aan de hand van voorbeelden in PHP; hierbij wordt verder gegaan dan de OWASP Top Ten door onder andere verschillende vormen van injectieaanvallen, script-injecties, aanvallen op het sessiemanagement in PHP, onveilige directe objectreferenties en problemen met bestandsupload. De PHP-gerelateerde kwetsbaarheden worden vervolgens gegroepeerd volgens standaardcategorieën zoals ontbrekende of onjuiste invoervalidatie, fout- en uitzonderingsafhandeling, incorrect gebruik van beveiligingsfuncties en tijds- en toestandsgerelateerde problemen. Voor laatstgenoemde categorie behandelen we onder andere de omzeiling van open_basedir-beperkingen, denial-of-service-aanvallen via magische floatwaarden of hashtabelcollisies. In alle gevallen krijgen deelnemers inzicht in de belangrijkste technieken en functies die zij kunnen gebruiken om deze risico’s te verminderen.
Er wordt bovendien speciale aandacht besteed aan client-side beveiliging, waarbij het gaat om veiligheidsproblemen in JavaScript, Ajax en HTML5. Verschillende PHP-extensies met een beveiligingsfunctie worden geïntroduceerd: hash, mcrypt en OpenSSL voor cryptografie, evenals Ctype, ext/filter en HTML Purifier voor invoervalidatie. Verder worden aanbevolen versterkingsmaatregelen besproken met betrekking tot de PHP-configuratie (php.ini), Apache en algemene serverinstellingen. Tot slot krijgen deelnemers een overzicht van diverse beveiligingstesttools en -methoden zoals scanners, penetratietesten, exploitpakketten, sniffers, proxy-servers, fuzzing-tools en statische broncodeanalyzers die ontwikkelaars en testers kunnen gebruiken.
Zowel de introductie van kwetsbaarheden als de configuratietechnieken worden ondersteund door praktijkoefeningen; hierbij zien we wat de gevolgen zijn van geslaagde aanvallen, hoe mitigatiemethoden toegepast moeten worden en hoe bepaalde extensies en hulpmiddelen effectief gebruikt kunnen worden.
Deelnemers die deze cursus volgen zullen
- De basisconcepten van beveiliging, IT-beveiliging en veilig programmeren begrijpen
- Webkwetsbaarheden buiten de OWASP Top Ten leren herkennen en weten hoe deze te voorkomen
- Client-side kwetsbaarheden en beste praktijken voor veilig programmeren leren kennen
- Praktische kennis van cryptografie opdoen
- Lezen hoe de verschillende beveiligingsfuncties in PHP toe te passen zijn
- Typische programmeerfouten herkennen en leren deze te vermijden
- Informatie krijgen over recente kwetsbaarheden binnen het PHP-framework
- Praktijkervaring opdoen met beveiligingstesthulpmiddelen
- Toegang krijgen tot betrouwbare bronnen en literatuur over veilig programmeren
Doelgroep
Ontwikkelaars
Microsoft SDL Core
14 UrenDeze gecombineerde cursus over de kern van SDL biedt inzicht in het veilig ontwerpen, ontwikkelen en testen van software met behulp van de Microsoft Secure Development Lifecycle (SDL). Er wordt een basisoverzicht gegeven van de fundamentele elementen van SDL, gevolgd door ontwerptechnieken om fouten al in een vroeg stadium van het ontwikkelingsproces te detecteren en corrigeren.
Tijdens de ontwikkelfase komt men te weten wat voor typische beveiligingsproblemen er zich voordoen in zowel beheerde als native code. Er worden aanvalsmethoden besproken die gelden voor deze kwetsbaarheden, samen met passende mitigatiemethoden. Dit alles wordt aangevuld door een reeks praktische oefeningen waarin deelnemers zelf actief kunnen hacken. Vervolgens worden verschillende methoden tot beveiligingstesting behandeld, evenals het effect van diverse testhulpmiddelen. Deelnemers leren deze hulpmiddelen praktisch toepassen op eerder besproken kwetsbare code.
Deelnemers aan deze cursus zullen
De basisconcepten van beveiliging, IT-beveiliging en veilig coderen begrijpen
Kennismaken met de essentiële stappen binnen Microsoft Secure Development Lifecycle
Veilige ontwerp- en ontwikkelingsmethoden leren
Inzicht krijgen in principes van veilige implementatie
De werkwijze bij beveiligingstesting leren kennen
- Bronnen en aanvullende literatuur over het veilig coderen verkrijgen
Doelgroep
Ontwikkelaars, beheerders
C++ voor ingebedde systemen
21 UrenIs C++ geschikt voor ingebedde systemen zoals microcontrollers en real-time besturingssystemen?
Mogen objectgeoriënteerde technieken worden toegepast bij het programmeren van microcontrollers?
Is C++ te afstandelijk ten opzichte van de hardware om nog efficiënt te zijn?
In deze praktijkgerichte training behandelen we al deze vraagstukken en laten we zien hoe men met behulp van discussie en oefeningen C++ kan gebruiken voor het ontwikkelen van betrouwbare, leesbare en efficiënte ingebedde applicaties. De deelnemers passen de theorie toe door een voorbeeldapplicatie in C++ te creëren.
Aan het einde van deze training zullen de deelnemers kunnen:
- De principes van objectgeoriënteerd ontwerp, ingebedde softwareprogrammering en real-time programmering begrijpen
- Codes schrijven voor ingebedde systemen die klein, snel én veilig zijn
- Code-overmatig gebruik door templates, exceptions en andere taaleigenschappen voorkomen
- De specifieke uitdagingen van het inzetten van C++ in safety-criticale en real-time systemen bevatten
- Een C++-programma debuggen op een doelapparaat
Doelgroep
- Ontwikkelaars
- Designers
Opzet van de cursus
- Een mix van colleges, discussies, oefeningen en veel praktische begeleiding
C++ 11 Programmeren
14 UrenDit is een tweedaagse cursus bedoeld voor C++-programmeurs die de nieuwe C++11-standaard in hun werk willen toepassen. Deze cursus is vooral nuttig voor ontwikkelaars van financiële applicaties, aangezien alle nieuwe functies uitgebreid worden behandeld met praktijkvoorbeelden die in het lab kunnen worden uitgevoerd
Versnelde C++-programmering met CUDA
8 UrenDeze door een docent geleide training in België (online of op locatie) richt zich op C++-ontwikkelaars die CUDA willen gebruiken om toepassingen te versnellen, hoogperformante GPU-kernels te ontwikkelen en parallelle algoritmebibliotheken in te zetten voor wetenschappelijke berekeningen, dataverwerking en machine learning-taken.
DevOps-beveiliging: Het opstellen van een DevOps-beveiligingsstrategie
7 UrenIn deze door een instructeur geleide training in België leren deelnemers hoe zij een effectieve beveiligingsstrategie kunnen opstellen om te voldoen aan de uitdagingen op het gebied van DevOps-beveiliging.
EC-Council Gecertificeerd DevSecOps-engineer (ECDE)
28 UrenDe cursus EC-Council Gecertificeerd DevSecOps-engineer (ECDE) is een praktijkgerichte opleiding die professionals in staat stelt om beveiliging te integreren in de gehele DevOps-levenscyclus. Hierdoor wordt veilige softwareontwikkeling mogelijk, van planning tot implementatie.
Dit door een docent geleide live-training – zowel online als op locatie – richt zich op software- en DevOps-professionals met basiskennis die beveiligingsmaatregelen in hun CI/CD-pipelines willen toepassen, teneinde veilige en compliance-conforme code te leveren.
Aan het eind van deze training zijn de deelnemers in staat om:
- De principes en werkwijzen van DevSecOps te begrijpen.
- Elk onderdeel van een CI/CD-pipeline veilig te maken met behulp van geautomatiseerde tools.
- Veilige programmeerpraktijken en kwetsbaarheidsanalyse toe te passen.
- Zich voor te bereiden op het ECDE-certificaat dankzij praktijkgerichte oefeningen en herhaling.
Opbouw van de cursus
- Interactieve lezingen en discussies.
- Praktische toepassing van DevSecOps-tools in gesimuleerde pipelines.
- Gedoseerde oefeningen gericht op veilige ontwikkeling en implementatie.
Opties voor cursusaanpassing
- Wilt u een cursus laten afstemmen op de specifieke werkprocessen of toolchain van uw team? Neem dan contact met ons op om een maatwerkopleiding te regelen.
C++ gebruiken in embedded systemen - Toepassing van C++11/C++14
21 UrenIn deze training wordt C++ geïntroduceerd als een logische vervolgstap op de programmeertaal C bij objectgeoriënteerde ontwikkeling van embedded systemen. Omdat C++ C omvat, gaan we stapsgewijs over van C naar C++, waarbij we ook onder de motorkap kijken hoe C++ daadwerkelijk wordt geïmplementeerd. Dit is vooral nuttig wanneer men C++ toepast in embedded systemen met beperkte resources. De C++-standaard heeft recent een belangrijke vernieuwing ondergaan, bekend als C++11, en nu staat de volgende versie – C++14 – op het punt te verschijnen. Deze cursus behandelt specifiek die aspecten van deze versies die bijzonder nuttig zijn: efficiënt geheugenbeheer, parallelisme via gebruikmaking van meerkernige processoren, en directe hardwaretoegang – bijvoorbeeld voor geheugengemapte I/O of beheersing van interrupts.
DOELSTELLINGEN / VOORDELEN
Het hoofddoel van deze cursus is dat u C++ op een “juiste manier” kunt toepassen.
- C++ introduceren als objectgeoriënteerde programmeertaal binnen embedded systemen
- De overeenkomsten – en verschillen – met de taal C uitleggen
- Verschillende strategieën voor geheugenbeheer begrijpen, met name de move-semantiek die in C++11 werd toegevoegd
- Onder de motorkap kijken en zien hoe verschillende programmeerparadigma’s zich vertalen naar machinetaal
- Templates gebruiken om typeveilige, krachtige abstracties te creëren voor directe hardwaretoegang – bijvoorbeeld bij geheugengemapte I/O en interrupts – vooral variadic templates die in C++11 zijn geïntroduceerd
- Een aantal nuttige ontwerppatronen behandelen die specifiek relevant zijn voor embedded ontwikkeling
- Enkele oefeningen uitvoeren om de behandelde concepten in praktijk te brengen
DOELGROEP / DEELNEMERS
Deze training is bedoeld voor C++-programmeurs die C++ willen gaan toepassen in embedded systemen.
VOORKENNIS
Voor deelname aan deze cursus zijn basiskennis en vaardigheden op het gebied van C++ vereist, zoals behandeld in onze trainingen ”C++ – Niveau 1” en ”C++ Niveau 2 – Introductie tot C++11”.
PRAKTIJKOEFENINGEN
Tijdens de cursus oefent u de behandelde concepten via verschillende praktische opdrachten. Hiervoor maken we gebruik van het gratis en open source Eclipse-integrated development environment.
Hoe veilige code te schrijven
35 UrenDit cursusprogramma in België heeft als doel de volgende ondersteuning te bieden:
- Ontwikkelaars helpen bij het beheersen van technieken voor het schrijven van veilige code
- Softwaretesters ondersteunen bij het testen van de beveiliging van applicaties voordat deze in productie gaan
- Softwarearchitecten helpen om zich bewust te worden van de risico’s die verbonden zijn aan applicaties
- Teamleiders ondersteunen bij het vaststellen van beveiligingsstandaarden voor ontwikkelaars
- Webbeheerders helpen bij het configureren van servers om verkeerde instellingen te voorkomen
Veilig programmeren in Java (inclusief OWASP)
21 UrenIn deze cursus komen de concepten en principes van veilig coderen in Java aan bod, waarbij gebruik wordt gemaakt van de testmethodologieën van het Open Web Application Security Project (OWASP). De Open Web Application Security Project is een online gemeenschap die vrij beschikbare artikelen, methodieken, documentatie, hulpmiddelen en technologieën op het gebied van webapplicatiebeveiliging ontwikkelt.
Veilig programmeren in .NET (inclusief OWASP)
21 UrenIn deze cursus worden de concepten en principes van veilig coderen met ASP.NET besproken, waarbij gebruik wordt gemaakt van de testmethodologieën van het Open Web Application Security Project (OWASP). OWASP is een online gemeenschap die gratis artikelen, methodieken, documentatie, hulpmiddelen en technologieën op het gebied van webapplicatiebeveiliging beschikbaar stelt.
Deze cursus behandelt tevens de beveiligingsfuncties van het .NET Framework en laat zien hoe u webapplicaties kunt beveiligen.