Het in kaart krijgen van kwetsbaarheden in Websites & Applicaties en hoe deze eenvoudig te voorkomen zijn, wordt in Applicatie Assessments aangetoond en in een praktische Workshop behandelt. U doet hands-on ervaring op en leert omgaan met praktijksituaties.
Building your agile business.
Zest Application Professionals Training &Workshops Applicatie Assessment & Ethical Hacking Workshops Requirements
Inhoudsopgave Inleiding Ethical Hacking Workshop .......................................................................... 2 Ethical Hacking ................................................................................................... 2 Indeling ............................................................................................................. 2
Awareness (vast onderdeel) ............................................................................................................ 2 SQL Injection.................................................................................................................................... 2 Cross-Site Scripting .......................................................................................................................... 2 Cross-Site Request Forgery.............................................................................................................. 2 Sessiemanagement.......................................................................................................................... 2 Autorisatie ....................................................................................................................................... 3 Business Logic .................................................................................................................................. 3 Defense in Depth ............................................................................................................................. 3 Applicatie Security Assessment Introductie ............................................................... 4 Methodiek .......................................................................................................... 4
Oriëntatiefase .................................................................................................................................. 4 Onderzoeksfase ............................................................................................................................... 4 Code-review .................................................................................................................................... 4 Penetratietest .................................................................................................................................. 5 Rapportagefase ............................................................................................................................... 5 Kwetsbaarhedenformulier .............................................................................................................. 5
1
Inleiding Ethical Hacking Workshop Het is wetenschappelijk bewezen dat je informatie het beste opslaat wanneer je zelf actief deelneemt. Dat aspect passen we, waar het kan, toe in onze opleidingen. Door de cursisten zelf te laten ervaren wat het hacken van systemen inhoudt en wat de gevolgen hiervan zijn brengen we kennis het beste over.
Ethical Hacking Ethical Hacking is een training waarin de cursisten kennis maken met de risico’s van webapplicaties door zelf een applicatie te hacken. De training wordt op maat samengesteld en is gericht op een specifieke doelgroep, bijvoorbeeld: Management Projectleiders Ontwerpers Ontwikkelaars Testers Beheerders In de training zijn elementen verwerkt die betrekking hebben op het vakgebied van de doelgroep. De training kan worden gegeven aan een groep variërend van 8 tot en met 16 man. Zodoende kan opgedane kennis direct toegepast worden in de praktijk.
Indeling De training is opgebouwd uit modulaire labs. Ieder lab duurt ongeveer 2 uur. Bij de start van een lab krijgt de cursist door middel van een presentatie een introductie van het specifieke onderwerp. Daarna gaat de cursist zelf, of in koppels van twee, aan de gang. Aan de hand van een opdracht gaan de cursisten met een speciaal ontwikkelde kwetsbare omgeving aan de slag. Op basis van de behoefte van de klant en de betreffende doelgroep wordt de indeling van de training samengesteld. Hieronder staan een aantal beschikbare modules beschreven: Awareness (vast onderdeel) Wat gebeurt er in de wereld en waarom wordt deze cursus gegeven? Welke risico's loopt het bedrijf en wat kan de doelgroep er tegen doen? Demo's, met eventueel praktijkvoorbeelden van het bedrijf zelf, worden gebruikt om awareness te kweken. SQL Injection SOL Injection is één van de meest voorkomende injectie-aanvallen op het Internet. De impact van een succesvolle aanval is groot. Hoe werkt SOL injection? Hoe kun je het constateren? En natuurlijk: hoe kun je het verhelpen en voorkomen? Cross-Site Scripting Cross-Site Scripting, afgekort XSS, is een aanval op de gebruiker doordat er een fout in de webapplicatie van het bedrijf aanwezig is. Dit type kwetsbaarheid heeft grote gevolgen. Het wordt vaak misbruikt bij phishing naar gevoelige informatie zoals inloggegevens. Cross-Site Request Forgery Cross-Site Request Forgery, afgekort CSRF, is een aanval op een ingelogde gebruiker door een malafide verzoek door de browser uit te laten voeren zonder dat de gebruiker dit doorheeft. Hiermee kan een kwaadwillende een verzoek uitvoeren waarbij de applicatie denkt dat het een valide verzoek van de gebruiker is. Sessiemanagement Het protocol voor webapplicaties maakt gebruik van sessiegegevens om bij te houden of de gebruiker al eens op de site is geweest. Denk bijvoorbeeld aan het bijhouden van een
2
ingelogde klant. Welke problemen kunnen er optreden wanneer sessies niet goed worden beheerd? Hoe kun je dat voorkomen? Autorisatie Autorisatie zorgt er voor dat informatie en functionaliteit alleen beschikbaar is voor diegene die daartoe gerechtigd zijn. Hoe gaat dat in zijn werk? Op basis van de 3 basiselementen: gebruikers, functies en data komen de gevaren en de mogelijkheden aan bod. Business Logic Applicaties zijn vaak gelaagd opgebouwd. Ze maken bijvoorbeeld gebruik van andere systemen op het eigen netwerk of over het Internet. Dit kan bijvoorbeeld bereikt worden door gebruik te maken van Web Services. Welke gevaren, aanvallen en problemen kunnen ontstaan met het gebruik van een servicegeoriënteerde omgeving? Defense in Depth De configuratie en het patchmanagement van de server is van cruciaal belang voor een veilige (web)applicatie. Met behulp van kwetsbaarheden in de onderliggende software kan toegang worden verkregen tot de applicatie met grote gevolgen. Tijdens de verschillende labs wordt direct ondersteuning geboden. De cursisten worden geholpen door hints en directe aanwijzingen van de trainers. Aan het einde van ieder lab wordt samengevat wat de belangrijkste risico's zijn en de voornaamste tegenmaatregelen.
3
Applicatie Security Assessment Introductie Geen enkele organisatie wil via het Internet aangevallen worden. Helaas zijn dergelijke aanvallen aan de orde van de dag. Door een beveiligingsonderzoek uit te voeren is het mogelijk om te bepalen of een systeem onveilig is. Dit onderzoek kan zowel infrastructureel als applicatief worden uitgevoerd. Dit kun je echter bij een applicatief onderzoek niet los van elkaar zien. De infrastructuur biedt namelijk altijd ondersteuning voor de applicatie(s) die daarop draait. Een technisch onderzoek geeft duidelijkheid over de staat van beveiliging van het betreffende object. Zest Application Professionals biedt hiervoor een Applicatie Security Assessment. Het onderzoek wordt tot op zeer gedetailleerd niveau uitgevoerd en biedt inzicht in eventuele kwetsbaarheden van het systeem. Het eindproduct is een gedetailleerde rapportage met bevindingen, conclusies en aanbevelingen. Zest Application Professionals onderscheidt zich door kwaliteit te leveren en ook serieus te ondersteunen bij het oplossen van de kwetsbaarheden. Methodiek Voor de aanpak van een Applicatie Security Assessment worden de volgende werkwijzen als referentie gebruikt: • A Web Application Hacker's Methodology, by Marcus Pinto en Dafydd Stuttard • Penetration Testing Methodology, referenced by GWAPT Het onderzoek wordt in drie fasen uitgevoerd: • Oriëntatiefase • Onderzoeksfase • Rapportagefase In de volgende paragrafen wordt iedere fase kort uitgelegd. Oriëntatiefase Het doel van de oriëntatiefase is een eerste beeld te vormen van het te onderzoeken object. Hiervoor wordt een intake met de klant gedaan. In samenspraak met de klant wordt daarin de scope afgesproken. Daarnaast worden afspraken gemaakt over welke personen benaderd kunnen worden ter ondersteuning tijdens het onderzoek. De onderzoeksvragen worden vastgesteld en er wordt bepaald waar volgens de klant het grootste risico ligt van het betreffende object. Natuurlijk wordt duidelijk overeengekomen hoe, naar wie en op welke manier er gerapporteerd wordt. Verder wordt in deze fase het te onderzoeken object theoretisch bestudeerd op basis van requirements, ontwerpen, infrastructuur en interviews. Onderzoeksfase De onderzoeksfase bestaat uit twee onderdelen, namelijk: 1. Een analyse van de bron code, genaamd een code-review. 2. Een penetratietest. In deze test wordt vanuit het oogpunt van een kwaadwillende onderzocht of de applicatie meer functionaliteit biedt dan bedoeld. Kan er bijvoorbeeld worden ingelogd zonder wachtwoord. Deze onderdelen hebben een sterke relatie met elkaar. Bevindingen tijdens de codereview bieden uitgangsposities tijdens de penetratietest en andersom. Code-review Bij de code-review wordt de beschikbaar gestelde broncode systematisch onderzocht op beveiligingstechnische tekortkomingen. Het onderzoek vindt deels plaats met behulp van speciaal daarvoor beschikbare tools en voor het grootste deel door handmatige inspectie van de broncode. Bij dit laatste gaat de aandacht vooral uit naar dat deel van de broncode waar gebruikersinvoer wordt afgehandeld.
4
Penetratietest De applicatie wordt op minimaal de volgende kwetsbaarheden, gegroepeerd volgens de OWASP Top 10 uit 2010, getest: 1. Injecties (bijvoorbeeld: SQL, XML, Command, LDAP etc.) 2. Cross-Site Scripting (XSS) 3. Slechte authenticatie en onveilig sessiemanagement 4. Onveilig direct gebruiken van objecten 5. Cross-Site Request Forgery (CSRF) 6. Onveilige configuratie 7. Onveilige versleuteling 8. Schijnveiligheid door verborgen URL's 9. Onveilige communicatie 10. Onvoldoende validatie van redirects en forwards. Rapportagefase In deze fase wordt er gerapporteerd wat er in de onderzoeksfase aan kwetsbaarheden gevonden is. Om dit op een eenduidige manier te doen is er door Zest Application Professionals standaard kwetsbaarhedenformulier ontwikkeld. Kwetsbaarhedenformulier Het risico wordt gekwantificeerd aangegeven met een waarde tussen 0 en 100. Waarbij 0 een notitie en 100 een kritieke fout betreft. Elke kwetsbaarheid wordt onderverdeeld in categorieën met behulp van acroniemen DREAD en STRIDE. In begrijpelijke taal worden het probleem en het risico concreet uitgelegd. Gevolgd door reverenties en aangevuld met concrete aanbevelingen om het risico weg te nemen. Tot slot wordt, wanneer dat relevant is, tot op codeniveau aangegeven waar het probleem zich precies bevindt en welke mogelijkheden er zijn voor een betere implementatie.
5