2. Agenda
Wat is penetration testing?
Waarom is het nuttig?
Wat zijn de voorwaarden voor een penetration test?
Zo doen wij het...
3. Even voorstellen...
Technology geek by nature
Geboren kempenaar (ook genaamd de parking), ingeweken Antwerpenaar
Vader, binnenkort van 2
Achtergrond: Business Intelligence en Analytics
Hacker met focus op databescherming en privacy
Medeoprichter N1N0X, bedrijf met focus op penetration testing
Contact:
Cedric De Vroey
5. Wat is penetration testing?
A penetration test, also known as a pen test, is an
authorized simulated attack on a computer system
that looks for security weaknesses, potentially gaining
access to the system's features and data.
Source: https://en.wikipedia.org/wiki/Penetration_test
6. Penetration testing: een vorm van Red Teaming
Kritische analyse
Advocaat van de duivel
Alles wat gegeven is moet in vraag worden gesteld
Term Red Team komt uit de koude oorlog: rode team =
communisten
Dont make an ass out of you and me!
Ongecontroleerde assumpties checken en uitdagen
Meestal uitgevoerd door een onafhankelijk en
7. Wat is het nut van penetration testing?
Een alternatieve blik op de
organisatie en haar werking
Veronderstellingen in analyses
blootleggen en controleren
Group-think tegen gaan
Blinde vlekken in de beveiliging
blootleggen
Kwetsbaarheden blootleggen:
Onderzoeken wat fout kan gaan,
voor het 辿cht fout gaat.
17. Semi-gestructureerd proces
1. Briefing met klant, afbakening van wat kan en wat kan niet
2. Informatie verzamelen over de organisatie en infrastructuur
3. Test-scenarios uittekenen
4. Testing: combi van geautomatiseerde en manuele testen
5. Rapportering: resultaten en aanbevelingen debriefen aan klant
18. 1.Briefing met klant
Belangrijk om vast te leggen welk soort testen mag worden uitgevoerd:
Brute Forcing?
Denial of Service?
Destructieve testen?
Afspraken maken rond communicatie
Verwachtingen mbt rapportering aftoetsen
Afspraken rond bijkomende beperkingen
19. Informatie verzamelen over de organisatie
LinkedIn:
Wie werkt voor deze organisatie en wat zijn hun rollen?
Wie werkt er op IT en wat zijn hun skills?
Google:
Zijn er online vacatures te vinden?
Zijn er online interne documenten te vinden met informatie over de interne organisatie?
Zijn er voordien al leaks geweest vanuit deze organisatie?
Demo Paste Search
Welke email-adressen van de organisatie zijn online te vinden?
20. Informatie verzamelen over de infrastructuur
Domeinnamen, subdomeinen en IPs in kaart brengen
Demo Maltego
Portscan op alle ontdekte endpoints
Fingerprinting van webapplicaties: verschillende achterliggende technologie谷n in
kaart brengen
21. Testscenarios defini谷ren
Belangrijk om gericht te kunnen werken
Sommige omgevingen zijn zo groot dat het verstandiger is om te focussen op
specifieke onderdelen
Voorbeelden:
Anonieme gebruiker tracht toegang te krijgen tot afgeschermde delen van de toepassing
Een aangemelde gebruiker tracht gegevens van een andere gebruiker te wijzigen
Een concurrent probeert de toepassing offline te halen
.
22. Testing
Voornamelijk gebaseerd op OWASP best practices (http://owasp.org)
Eerst breed, dan diep:
Eerst gewoon manueel de applicatie doorlopen
Opvallende urls met GET-parameters oplijsten en deze parameters be誰nvloeden
Formulieren manueel testen op XSS-fouten
Url scraping en in kaart brengen van alle gangbare requests in de applicatie
Demo Zed Attack Proxy
Daarna url bruteforcing
Vervolgens Monkey testing: formulieren fuzzen
23. Testing
Focus op de 10 meest voorkomende fouten in webapplicaties: SQL Injecties, XSS-
fouten, onbeveiligde objectreferenties, enz
Identity management testen
Authenticatie testen
Autorizatie testen
Sessie management testen
Invoer-validatie testen
Cross-site scripting testen
HTTP-manipulatie en Parameter-
vervuiling
Foutboodschappen controleren
Beveiligde verbindingen (HTTPS) testen
24. Rapporteren
Een niet-technisch gedeelte over de belangrijkste bevindingen en aanbevelingen dat
voor iedereen binnen de organisatie en zeker voor het management begrijpbaar
moet zijn.
Een technisch luik voor de ontwikkelaars dat zeer gedetailleerde de uitgevoerde
testen beschrijft en de resultaten oplijst, op zon manier dat deze reproduceerbaar
zijn.
Korte, to-the-point aanbevelingen zonder dwingende toon. Het is niet de bedoeling
om mensen terecht te wijzen, eerder om samen tot een zo goed mogelijk resultaat
te komen!