Dev Intersection 2015 – dag 1

Deze week ben ik samen met Peter Toonen en Mark Rexwinkel te gast op Dev Intersection in Las Vegas. Dit is een Microsoft georiënteerde developer conferentie. Naast 3 dagen met presentaties (zoals bij de meeste conferenties), zijn er bij Dev Intersection ook workshop dagen beschikbaar. Wij hebben 2 pre-conference workshops en 1 post conference workshop geboekt. Dat wil zeggen: zondag, maandag en vrijdag een workshop en dinsdag, woensdag en donderdag presentaties.

Gisteren was de eerste workshop: Hack Yourself First. Dit was een workshop over security en werd verzorgd door Troy Hunt (een autoriteit op dit gebied). In deze workshop zijn we hands-on aan de slag gegaan met allerlei security issues die in het wild voor komen. Denk daarbij aan zaken als SQL Injection, en cross-site scripting. Troy heeft een website in Azure draaien waar wat security issues in zitten. Met behulp van het standaard arsenaal aan tools voor de web-developer (de ‘F12’ browser tools en Fiddler), was het – na wat basis uitleg – de bedoeling om de verschillende security leaks in de site te exploiteren. Als groep kregen we het voor elkaar om als admin de usernames en passwords van alle gebruikers in het systeem te achterhalen, als andere personen zaken te posten op de site en uiteindelijk de site compleet plat te gooien (een nieuw record volgens Troy).

Naast het hacken van websites, zijn we ook aan de slag gegaan met het hacken van apps op onze mobiele telefoon. Hierbij hebben we het API verkeer dat allerlei apps genereren onderschept en onderzocht m.b.v. Fiddler als proxy op onze laptop. Het is interessant om te zien hoe laks sommige apps omgaan met security. Je ziet dat veel app developers de telefoon als device vertrouwen. Er wordt niet altijd rekening gehouden met de man-in-the-middle attack. Met het hier en daar aanpassen van wat data in een request of response (bijvoorbeeld middels Fiddler Script), zijn soms interessante resultaten te boeken. Bijvoorbeeld een app voor het kopen van spullen, waarbij de prijs in het request wordt gebruikt in de back-end om af te rekenen (zonder validatie). Dat soort dingen gebeurt dus in het wild.

Op mijn vraag “wanneer wordt dit soort praktijken nu strafbaar”, gaf Troy aan dat het vooral gaat om je bedoelingen. Als je “ethisch hacker” bent, dan gaat het je er om dat je een partij wilt helpen door de exploit die je gevonden hebt bekend te maken bij deze partij zodat het probleem kan worden opgelost. Dit zal in het geval dat er een aanklacht zou worden ingediend vaak niet als strafbaar worden gezien. Het is uiteraard niet ethisch (en dus strafbaar) wanneer je een exploit gaat gebruiken om informatie te achterhalen en deze door te spelen naar de pers of zelf te gebruiken om bijvoorbeeld een bedrijf af te persen. Feit blijft dat het een erg dunne lijn is tussen ethisch hacken en niet ethisch hacken. Hou hier zelf ook altijd rekening mee als je live websites of web API’s gaat “uitproberen” op een regenachtige zondagmiddag.

Uiteraard ging Troy na elke opdracht ook in op hoe security leaks voorkomen kunnen worden. Het was zeker een interessante dag die mij in ieder geval heeft geholpen om op een andere manier naar security te kijken en dit mee te nemen bij het bouwen van een website of web API.