Tools4ever Tech Blog

Security risico's bij webapplicaties

Verslag Developer Tech Nite 7 juli 2016

Developer Tech NiteOp woensdag 6 juli organiseerde het Software Engineering platform "Developer Tech Nite" een bijeenkomst voor Softwareontwikkelaars bij Tools4ever in Baarn. De avond stond in het teken Securityrisico's bij Webapplicaties. Rob de Vries en Joeri Blokhuis van Digital Investigation presenteerde "Cybercrime, van XSS (Cross Site Scripting) tot geavanceerde aanvallen", gevolgd door een praktijkvoorbeeld door George Bakker en Robbert Brussaard over "Bescherming tegen Exploits". Deze blog beschrijft een samenvatting van deze sessie.

Als softwareontwikkelaar maak je goede code. Code die voldoet aan de gestelde functionele eisen. Je test de functionaliteit en als het werkt 'as designed' dan ben je klaar. Natuurlijk is dit in de praktijk anders en ben je ervan bewust dat je naast de functionele wensen ook heel goed moet kijken naar de randcondities om je software veilig en goed te maken. Denk hierbij aan de situaties die zich kunnen voordoen als de gebruiker je software anders gebruikt dan jij verwacht. Het is vaak lastig om deze afwijkende situaties van tevoren goed en volledig in te schatten. Deze issues komen dan ook vaak terug na oplevering van je software in de vorm van bugs.

Maar er is nog een gebruiker die je niet moet onderschatten, de hacker! Deze zal jouw software op allerlei manieren testen om te onderzoeken waar hij binnen kan komen. Soms gewoon omdat het kan, maar meestal met kwade bijbedoelingen. Deze cybercrimineel is slim, ervaren en zal je uittesten. Het is dus heel belangrijk dat je niet alleen functioneel goede software oplevert, maar ook veilige software.

The Internet of Things (IoT), de wereld waar alle devices aan het internet verbonden zijn brengt veel voordelen met zich mee. Koelkasten die een voorraad tekort detecteren en automatisch een bestelling plaatsen en auto's die alvast een servicebeurt inplannen bij een bepaalde kilometerstand. Maar juist hier zit ook het risico. Een recent voorval betrof een auto die gehacked werd en zo via het internet ontgrendeld. Met de komst van de zelfrijdende auto kun je je voorstellen dat de gevaren nog veel groter kunnen zijn bij een hack.

Cybercriminelen kunnen zowel van buiten als binnen actief zijn. Insiders zoals ontevreden medewerkers kunnen schade toebrengen aan organisaties en bijvoorbeeld data stelen. Deze vorm van digitale aanvallen worden vaak onderschat bij het zoeken naar actieve aanvallen. We verwachten ze meestal van buitenaf. Outsiders zijn vaak ervaren specialisten die gebruik maken van de nieuwste technologieën. Maar er zijn ook voldoende amateurs actief die hackscripts gebruiken die openbaar te verkrijgen zijn. Cybercriminelen zijn om verschillende redenen actief. Met puur hobbyistische tot politieke, economische of sociaal culturele motieven. Bedrijven hebben tegenwoordig te maken met wettelijke kaders zoals de 'Wet Meldplicht Datalekken' en 'Wet Bescherming Persoonsgegevens'. Dit vereist een grote focus op aanvallen op de persoonsgegevens van een organisatie (zowel van binnenuit als buitenaf).

Enkele voorbeelden van geavanceerde technieken voor het verkrijgen van toegang tot netwerken en data is Blind SQL injection. Bij deze vorm van SQL injection kan de hacker zonder duidelijke response van de SQL server toch achterhalen hoe de database eruit ziet of zelfs wat de database bevat.

Developer Tech Nite eventEen DDOS-aanval wordt omschreven als het onbereikbaar maken van de digitale snelweg naar een systeem. Er wordt dan gesteld dat het geen kwaad kan omdat de aanvaller geen toegang tot de server krijgt. Maar is dat zo? Een DDOS-aanval op een webserver draaiend op een MySQL server geeft bij een crash een dumpfile met daarin gevoelige gegevens, soms zelfs de username en het wachtwoord van de database. Deze is dan weer eenvoudige te benaderen met phpMyAdmin.

In 2012 is het social media platform LinkedIn gehacked. De uitgelekte gebruikersnamen en wachtwoorden blijken in veel gevallen nu nog steeds werkzaam bij andere applicaties van deze gebruikers. Deze informatie was in eerste instantie online te koop en is nu op torrent sites te downloaden.

CMS-applicaties om websites mee te bouwen, zoals Joomla en Wordpress, gebruiken plug-ins voor additionele functionaliteit. Deze plug-ins kunnen zwakheden met zich meebrengen die cybercriminelen eenvoudig toegang geven. Het is aan te raden de Exploit database te raadplegen alvorens hiervan gebruik te maken.

Als laatste werd duidelijk gemaakt hoe technieken als bijvoorbeeld de 'hash length extension hack' met enige handigheid kan worden gebruikt om toegang te krijgen tot het netwerk van de organisatie.
Rob de Vries, Cybercrime & Security Specialist bij Digital Investigation, adviseert om je (web)applicaties en systemen altijd goed te monitoren op afwijkende situaties. Leg goed vast wat er binnen je netwerk gebeurt, zodat je er adequaat op kan reageren. Hacks zijn in principe niet te vermijden, maar als het gebeurt is het belangrijk te kunnen bepalen wat de inbreker gedaan heeft.

Het programma werd vervolgd door een praktijkvoorbeeld van de cloud Single Sign-On applicatie HelloID van Tools4ever. Een applicatie die de veiligheid verhoogt omdat de gebruiker nog maar één wachtwoord nodig heeft om in te loggen op al zijn applicaties. Aan dit wachtwoord mogen strengere eisen gesteld worden. Tevens is het mogelijk om met 2 factor authenticatie een extra veiligheidsstap in te voeren.

George Bakker, senior software engineer, toonde in een aantal praktijkvoorbeelden hoe cybercriminelen toegang kunnen krijgen als webapplicaties onvoldoende beveiligd zijn. Het gokken van gebruikersnaam/wachtwoord combinaties wordt tegengehouden door een aantal technieken zoals het inzetten van captcha's, lockout emails en eenvoudigweg het vermijden van het tonen van foutmeldingen bij het testen met verkeerde gegevens. Deze foutmeldingen geven cybercriminelen vaak veel informatie om de applicatie te kunnen penetreren.

Naast het voorkomen van de brute force aanvallen is het belangrijk te voorkomen dat je toegangsgegevens worden ontlokt, het zogenaamde Phishing. Tijdens een live demonstratie van zo'n actie was het bijna niet te zien dat je een bijgesloten unsecure URL-redirect op een vervalste site terecht kwam. Slechts een enkeling viel op dat er een aantal kenmerken anders waren. Daarna ging de service verder en verkreeg de cybercrimineel gevoelige persoonlijke gegevens, waarmee hij vrij kon handelen zonder dat de accounthouder er iets van merkt. Dit kon voorkomen worden door te eisen dat de redirect-URL binnen hetzelfde domein als de dienst moet blijven. Tevens is het belangrijk te signaleren van welke locatie de gebruiker aanlogt. Is dit een afwijkend adres dan kan er gelijk een alert worden gegeven of een 2 factor authenticatie worden vereist.

Cybercriminaliteit voorkom je niet. Maar je moet het ze niet te makkelijk maken. Als software engineer sta je niet altijd stil bij de gevaren van oneigenlijke toegang. In de wereld van Identity management is dit natuurlijk een hot topic. Maar ook bij webwinkels en andere portalen is dit zeer belangrijk. Op het Developer Tech Nite event werden natuurlijk niet alle exploits in detail besproken. Het doel van de avond was bewustwording.