Owasp top 10

Security: Owasp top 10

1 / 22
volgende
Slide 1: Tekstslide
ICTMBOStudiejaar 1

In deze les zitten 22 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Security: Owasp top 10

Slide 1 - Tekstslide

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 - Tekstslide

Wat wordt er verstaan onder de 'attack surface' binnen een netwerk?

Slide 3 - Open vraag

Wat wordt er verstaan onder 'risk transfer'? Hoe kunnen we dit doen?

Slide 4 - Open vraag

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 - Tekstslide

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 - Tekstslide

OWASP top 10 kwetsbaarheden
  1. Broken Access Control
  2. Cryptographic Failures
  3. Injection
  4. Insecure Design
  5. Security Misconfiguration
  6. Vulnerable and Outdated Components
  7. Identification and Authentication Failures
  8. Software and Data Integrity Failures
  9. Security Logging and Monitoring Failures
  10. Server-Side Request Forgery (SSRF)

Slide 7 - Tekstslide

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 - Tekstslide

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 - Tekstslide

Op welke manier(en) zouden we een veilige access control kunnen waarborgen?

Slide 10 - Open vraag

Cryptographic Failures
Bij 'Cryptographic failures' richten aanvallers zich vaak op gevoelige gegevens die niet goed beschermd worden.

Denk hierbij aan:
  • Wachtwoorden
  • Creditcardnummers
  • Persoonlijke gegevens (naam, adres, identiteit etc..)

Dit is de hoofdoorzaak van blootstelling aan gevoelige gegevens.

Slide 11 - Tekstslide

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 - Tekstslide

Op welke manier(en) kunnen we voorkomen dat er cryptographic failures optreden?

Slide 13 - Open vraag

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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

Slide 21 - Tekstslide

Server-Side Request Forgery (SSRF)

Slide 22 - Tekstslide