Owasp top 10

Security: Owasp top 10

1 / 22
next
Slide 1: Slide
ICTMBOStudiejaar 1

This lesson contains 22 slides, with interactive quizzes and text slides.

time-iconLesson 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
  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 - 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.

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

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

Slide 21 - Slide

Server-Side Request Forgery (SSRF)

Slide 22 - Slide