際際滷

際際滷Share a Scribd company logo
Penetration Testing
Een blik door de ogen van een aanvaller
Agenda
Wat is penetration testing?
Waarom is het nuttig?
Wat zijn de voorwaarden voor een penetration test?
Zo doen wij het...
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
Wat is penetration testing?
(hint: theres no sex involved)
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
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
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.
Voorwaarden voor een penetration
test
1. Toestemming:
Een pen test zonder toestemming is
Illegale hacking!
2. Buy-in van het hogere management
is een must!
3. Extern en objectief, maar tegelijk ook
intern en bewust
4. Meedogenloos sceptisch, maar met
finesse
5. Een grote trukendoos met de meest
uiteenlopende vaardigheden
6. Bereid zijn slecht nieuws te horen te
krijgen en de wil hebben om daar
ook iets mee te doen.
7. Doe net voldoende tests, maar ook
niet meer dan dat.
Penetration testing @ N1N0X
Zo doen wij het
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
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
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?
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
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
.
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
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
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!
Vragen?

More Related Content

Meetup 11/05/2017 - IT Security: hoe wapenen we onszelf?

  • 1. Penetration Testing Een blik door de ogen van een aanvaller
  • 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
  • 4. Wat is penetration testing? (hint: theres no sex involved)
  • 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.
  • 8. Voorwaarden voor een penetration test
  • 9. 1. Toestemming: Een pen test zonder toestemming is Illegale hacking!
  • 10. 2. Buy-in van het hogere management is een must!
  • 11. 3. Extern en objectief, maar tegelijk ook intern en bewust
  • 12. 4. Meedogenloos sceptisch, maar met finesse
  • 13. 5. Een grote trukendoos met de meest uiteenlopende vaardigheden
  • 14. 6. Bereid zijn slecht nieuws te horen te krijgen en de wil hebben om daar ook iets mee te doen.
  • 15. 7. Doe net voldoende tests, maar ook niet meer dan dat.
  • 16. Penetration testing @ N1N0X Zo doen wij het
  • 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!