Cette leçon contient 22 diapositives, avec quiz interactifs et diapositives de texte.
La durée de la leçon est: 60 min
Éléments de cette leçon
Security: Owasp top 10
Slide 1 - Diapositive
De planning
Herhaling vorige les (risk management en physical security)
Kijken naar de OWASP top 10
Voorkomen van kwetsbaarheden
Wat gaan we vandaag doen?
Slide 2 - Diapositive
Wat wordt er verstaan onder de 'attack surface' binnen een netwerk?
Slide 3 - Question ouverte
Wat wordt er verstaan onder 'risk transfer'? Hoe kunnen we dit doen?
Slide 4 - Question ouverte
Wat is de OWASP top 10?
The OWASP Top 10 is a standard awareness document for developers and web application security. It represents a broad consensus about the most critical security risks to web applications.
Het OWASP project is het meest bekende security concept binnen de security community. Het wordt nationaal en internationaal ingezet bij bedrijven.
Previder en Odin-groep maken hier ook gebruik van bij het vaststellen van de Security binnen ICT-infrastructuur
Slide 5 - Diapositive
Hoe kun je OWASP inzetten?
Als trainingshulpmiddel over de meest voorkomende kwetsbaarheden in webapplicaties
Als uitgangspunt voor het testen van web applicaties
Om het bewustzijn over kwetsbaarheden in applicaties in het algemeen te vergroten
Slide 6 - Diapositive
OWASP top 10 kwetsbaarheden
Broken Access Control
Cryptographic Failures
Injection
Insecure Design
Security Misconfiguration
Vulnerable and Outdated Components
Identification and Authentication Failures
Software and Data Integrity Failures
Security Logging and Monitoring Failures
Server-Side Request Forgery (SSRF)
Slide 7 - Diapositive
Broken Access Control
Met Access control willen beleid afdwingen zodat gebruikers niet buiten hun beoogde machtigingen kunnen handelen.
Bij 'broken' access control, kunnen gebruikers dit wel.
Slide 8 - Diapositive
Broken Access Control
Voorbeelden:
Gebruikers hebben toegang tot fysieke ruimtes waar ze helemaal niet horen te komen.
Het bedrijf houdt zich niet aan het 'Principle of least privilege' waardoor gebruikers machtigingen/rechten krijgen die ze niet horen te hebben.
Andere gebruikers toegang geven tot jouw account
Toegang hebben tot bepaalde systemen zonder hiervoor ingelogd te hoeven zijn als administrator.
Slide 9 - Diapositive
Op welke manier(en) zouden we een veilige access control kunnen waarborgen?
Slide 10 - Question ouverte
Cryptographic Failures
Bij 'Cryptographic failures' richten aanvallers zich vaak op gevoelige gegevens die niet goed beschermd worden.
Dit is de hoofdoorzaak van blootstelling aan gevoelige gegevens.
Slide 11 - Diapositive
Cryptographic Failures
Cryptographic failures kunnen plaatsvinden wanneer:
Data verzonden wordt in clear text (het wordt dus niet ge-encrypt en er kan gemakkelijk meegeluisterd worden door hackers)
Er worden verouderde cryptografische algoritmes gebruikt die makkelijk te kraken zijn
Er worden 'default' crypto keys gebruikt om de data te encrypten of de crypto keys worden niet om de zoveel tijd vernieuwd
Er wordt geen gebruik gemaakt van encryptie (HTTP in plaats van HTTPS)
Gegevens zoals wachtwoorden worden niet gehashed
Slide 12 - Diapositive
Op welke manier(en) kunnen we voorkomen dat er cryptographic failures optreden?
Slide 13 - Question ouverte
Injection
Injection - Het injecteren van schadelijke code binnen een programma met als doel om toegang te krijgen of het systeem plat te gooien.
Meest voorkomende soorten injections:
SQL injection
XML injection
XSS (Cross Site Scripting)
Shell injection
Slide 14 - Diapositive
Injection voorkomen
Injection kunnen we op een aantal manieren voorkomen:
Gebruik een veilige API
Gebruik server-side input validation om te controleren of hetgeen wat er wordt ingevuld een geldige waarde is (geen string waar een integer verwacht wordt)
Real time monitoring - bij merkwaardige inputs, wordt de beheerder meteen geïnformeerd door het systeem
Actief blijven zoeken naar lekken binnen het systeem (white hat hacking)
Slide 15 - Diapositive
Insecure Design
Onder insecure design (onveilig ontwerp) verstaan we een applicatie die nooit ontworpen is met de juiste security onderleggers en dus nooit veilig zou zijn.
Onder security onderleggers verstaan we bijv. de OWASP top 10, maar ook bedrijfsrisicoprofileringen, of audits om de security te waarborgen.
Een onveilig ontwerp kan niet worden opgelost door een perfecte implementatie, omdat per definitie de benodigde beveilingscontroles nooit zijn gecreëerd om zich specifieke aanvallen te bschermen.
Een veilig ontwerp daarentegen kan wel onveilig worden geïmplementeerd. Er bestaat een onderscheid tussen 'ontwerpfouten' en 'implementatiefouten'.
Slide 16 - Diapositive
Security misconfiguration
Onder Security misconfiguration binnen een applicatie verstaan we het volgende:
Onnodige features zijn geïnstalleerd of aangezet (bijv. toegang verlenen aan onnodige poorten, services, pagina's, accounts of machtigingen)
Default accounts en wachtwoorden zijn niet aangepast of uitgezet
'Overly informative error messages' oftewel, error berichten die gebruikers krijgen die té veel informatie bieden
Systemen zijn niet up-to-date of de nieuwste security features zijn geïnstalleerd of niet goed geconfigureerd
De software is gedateerd of kwetsbaar
Slide 17 - Diapositive
Vulnerable and Outdated components
Wanneer ben je het meest kwetsbaar?
Wanneer je niet de versies weet van de componenten die je gebruikt
Wanneer een softwarepakket of plugin die je gebruikt, outdated of niet langer ondersteund wordt (flash player..)
Als je niet regulier controleert op kwetsbaarheden
Wanneer je niet op tijd onderliggende platformen, frameworks of plugins op tijd update of upgrade
Wanneer je als software developer de compatibiliteit van bijgewerkte, geüpgradede of gepatchte bibliotheken niet test (De nieuwste versie is niet altijd beter!)
Slide 18 - Diapositive
Identification and Authentication Failures
Wat verstaan we onder 'identification and authentication failures'?
Wanneer wachtwoorden makkelijker te kraken zijn door middel van een 'Brute Force attack'.
Wanneer het systeem simpele wachtwoorden toestaat zoals 'wachtwoord123'
Wanneer het systeem het 'wachtwoord vergeten' knopje niet juist geïmplementeerd heeft
Wanneer wachtwoorden in clear text worden weergeven, niet ge-encrypt of gehashed worden
Wanneer er geen gebruik wordt gemaakt van 2FA (2 Factor Authentication) of MFA (Multi Factor Authentication).
Wanneer een gebruiker ongelimiteerd kan proberen in te loggen zonder een timeout
Slide 19 - Diapositive
AAA
Authentication
Het identificeren van een gebruiker op basis van een gebruikersnaam en wachtwoord
Authorization
Het geven van machtigingen aan een gebruiker op basis van zijn identiteit (Principle of least privilege)
Accounting (a.k.a Auditing)
Het monitoren van de gebruikersactiviteit (probeert de gebruiker bij systemen te komen waar hij geen toegang voor heeft?)
Slide 20 - Diapositive
Software and Data Integrity Failures
Hoe kun je 'Software and data Integrity Failures' voorkomen?
Gebruik digitale handtekeningen om te verifiëren dat de software of data van de juiste bron komt
Zorg ervoor dat libraries en depencies als trusted repositories worden gezien
Maak gebruik van Security onderleggers zoals OWASP om te verifiëren dat het systeem geen kwetsbaarheden heeft
Review je code
Zorg ervoor dat unencrypted of ongecontroleerde data niet gestuurd kan worden naar trusted servers