This lesson contains 22 slides, with interactive quizzes and text slides.
Lesson duration is: 60 min
Items in this lesson
Security: Owasp top 10
Slide 1 - Slide
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 - Slide
Wat wordt er verstaan onder de 'attack surface' binnen een netwerk?
Slide 3 - Open question
Wat wordt er verstaan onder 'risk transfer'? Hoe kunnen we dit doen?
Slide 4 - Open question
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 - Slide
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 - Slide
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 - Slide
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 - Slide
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 - Slide
Op welke manier(en) zouden we een veilige access control kunnen waarborgen?
Slide 10 - Open question
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 - Slide
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 - Slide
Op welke manier(en) kunnen we voorkomen dat er cryptographic failures optreden?
Slide 13 - Open question
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 - Slide
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 - Slide
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 - Slide
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 - Slide
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 - Slide
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 - Slide
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 - Slide
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