Website Risico Analyse / Hoe gaat een hacker te werk
Ik schrijf dit artikel vanuit beveiligingsoogpunt. De beschreven methodes en werkschema’s zijn eenzijdig en zijn zeker niet voor iedereen hetzelfde. Met dit artikel wil ik een beeld schetsen van een hacker en hoe die zijn slachtoffers eruit kiest en binnen weet te dringen.
Website Risico Analyse
Net zoals een risicoanalyse door een beveiligingspartner gemaakt zal worden zo zal deze ook door de hacker gemaakt worden. Hoe meer zwakheden gevonden worden des te meer kans er bestaat om de website te hacken of om belangrijke data te achterhalen.
Een hacker wilt weten hoe een website in elkaar steekt om een snelle en gerichte aanval te kunnen doen.
We gaan ervan uit dat de hacker altijd achter veilige verbindingen werkt die geknoopt zijn middels diverse proxy servers. Veel hackers gebruiken publieke WiFi kanalen om nog transparanter te kunnen werken. Vervolgens zullen ze een aantal testen doorlopen om informatie te verzamelen. Een paar voorbeelden:
Veilige en onveilige verbindingen:
Waar op de website wordt wel HTTPS en waar wordt geen HTTPS gebruikt (breng de veilige en onveilige verbindingen in kaart). Met deze info kunnen we later de veilige verbindingen proberen te omzeilen.
Data Sanitization:
Controleren hoe data gefilterd wordt binnen formulieren en andere interactieve elementen. We noemen dit “Data Sanitization”. Dit is belangrijk want als data foutief gefilterd wordt kunnen we data invoeren die ons in staat stelt om een XSS aanval te doen.
Welke framewerken er worden gebruikt? .NET, ASP, PHP, Java, Ajax etc.
Ieder framewerk heeft zijn eigen zwakte (als deze niet goed geprogrammeerd is). Deze kan misbruikt worden. Omdat ook iedere versie van een framewerk zijn eigen bugs heeft zal de hacker ook de versie proberen te achterhalen. Zorg dat u nooit geen versienummers vermeld.
Welk CMS systeem wordt gebruikt:
Als de hacker het CMS systeem kan achterhalen dan gaat er een wereld aan mogelijkheden open. Zeker als de versie achterhaald kan worden. Het is makkelijk om een lijst met bekende veiligheidsrisico’s te achterhalen van een specifiek CMS systeem. Een gerichte aanval is dan zo gedaan. Nogmaals: hou versienummers altijd geheim.
Welke databaseserver wordt gebruikt:
Draait de website op een SQL, MySQL, Oracle of andere database server? Databases huisvesten de belangrijkste data. Om iets met deze data te doen is het belangrijk om het type databaseserver te weten. Ook hierbij telt dat als de versie achterhaald kan worden een nog gerichtere aanval kan worden gebruikt.
Robots.txt analyse:
In het robots.txt bestand wordt tegen de zoekmachine verteld waar deze wel en niet mag indexeren. Echter zijn de plaatsen waar niet geïndexeerd mag worden vaak locaties die ook voor gebruikers niet te benaderen zijn. Het Robots.txt bestand kan dus “geheime” website locaties prijsgeven.
Waar wordt de website gehost:
Door de hoster te achterhalen kan ook achterhaald worden met welke systemen er gewerkt wordt en zelfs met welke versies er gewerkt wordt. Wordt een dedicated of shared host gebruikt en worden er strenge beveiligingstechnieken door de hoster toegepast. Soms zal de hacker zelf een account aanmaken om dit soort zaken te weten te komen.
Wie is de eigenaar en wat zijn de NAW gegevens:
Het is handig om de eigenaar, NAW gegevens en eventuele andere medewerkers te achterhalen. Deze informatie kan helpen bij het raden van wachtwoorden en het toepassen van social engineering. Deze informatie wordt snel verkregen via een “Wie zijn wij” link op de website en onbeschermde WHOIS gegevens.
Wat is de website structuur:
De website structuur kan helpen bij het ontdekken van patronen, verborgen pagina’s of verborgen bestanden, iframes etc.
HTML broncode:
De HTML broncode kan extra informatie bevatten zoals HTML comments over de werking van systemen. Sommige comments bevatten zelfs wachtwoorden. Maar ook kan de broncode veel onthullen over gebruikte frameworks, versienummers en dataflows.
Website foutmeldingen:
De foutmeldingen van een website kunnen zeer informatief zijn voor een hacker. De juiste foutmeldingen vertellen onbedoeld andere zwakheden, andere datastructuren etc. SQL foutmeldingen kunnen b.v. misbruikt worden om een SQL Injection toe te passen.
Overige diagnostische gegevens:
Als er server logs o.i.d. achterhaald kan worden dan zullen deze veel onthullen over de systemen, foutmeldingen en zwakheden. Zorg er dus altijd voor dat server logs en andere diagnostische gegevens niet te verkrijgen zijn zonder de juiste machtigingen.
Als alle diagnostische gegevens in kaart zijn gebracht dan heeft de hacker een uitgebreide website risico analyse.
Nog niet voldoende data – Social Engineering
Als de hacker nog niet voldoende data heeft achterhaald om gericht de website te kunnen misbruiken dan kan deze zijn social engineering vaardigheden misbruiken om meer data te achterhalen.
Met social engineering bedoelen de psychologische manipulatie van verschillende personen die meer informatie kunnen geven. Maar ook het fysiek achterhalen van relevante informatie.
Een hacker zou kunnen bellen naar de IT afdeling van een bedrijf en zich voordoen als de directeur of eigenaar van een bedrijf. Met de juiste vaardigheden zal de hacker FTP of database wachtwoorden kunnen ontfutselen van de IT afdeling. Zeker in grote bedrijven waar de meeste personen de directie zelden zien is dit vaak een succesvolle aanpak. Het is wel zaak dat de hacker zich verdiept in de persoon waarin hij zich verplaatst. Hiervoor zal hij proberen om de gezins samenstelling, hobbies, familieleden e.d. te achterhalen. Dit is tegenwoordig ook gemakkelijk omdat de meeste mensen (ook directieleden) een Facebook of LinkedIn account hebben.
Een hacker kan ook op een andere manier meer informatie achterhalen. Deze kan zich voordoen schoonmaker. Door deze manipulatie kan hij het afval van de IT en Marketing afdeling doorzoeken naar belangrijke informatie. Maar hij kan eveneens direct bij de computers die hij kan voorzien van een keylogger of van spyware waardoor hij automatisch meer informatie krijgt.
Hoe groter het bedrijf des te makkelijker al deze types van social engineering zullen lukken. Bij grote bedrijven kent niet iedereen elkaar persoonlijk en kennen veel mensen ook niet elkaars agenda. Als bepaalde interne beveiligingsmaatregelen dan ook nog ontbreken dan zal een goede social engineering hacker veel informatie kunnen bemachtigen.
De tools:
Iedere hacker heeft zijn eigen toolkit. Deze toolkit bestaat vaak uit zelf ontworpen scripts, bots en programma’s. Vaak zal de hacker op basis van de website speciale scripts ontwerpen om de website te misbruiken. Vaak werken hackers samen via diverse (niet traceerbare) kanalen om gezamenlijk nog meer schade toe te kunnen brengen (meer mensen weten meer dan een). Deze hackersgroepen hacken vaak om schade te berokkenen en om angst te zaaien. Maar soms zijn er ook commerciele redenen die meespelen.
Tegenwoordig is er helaas echter ook veel online te vinden. Complete tutorials en zelfs gratis en commerciële tools die hacker wel erg gemakkelijk maken. Mensen die zonder enige technische kennis de kant en klaar scripts en programma’s gebruiken noemen we scriptkiddies.
Er zijn ook veel (meestal slecht geüpdatete) websites die gehackt worden door automatische bots. Hack bots zijn scripts die het internet afspeuren naar bekende CMS systemen en hun zwakheden. Als deze gevonden worden dan kunnen de meeste bots de zwakke site direct misbruiken of er wordt een seintje naar de hacker gestuurd zodat deze dit kan doen.
Conclusie:
Afhankelijk van de motivatie van de hacker kan iedere website gehackt worden. Sommige website zijn gemakkelijk en automatisch te hacken. Andere website zijn wat moeilijker maar kunnen met wat moeite en kant en klaar software gehackt worden. De website waarbij een hacker echt zijn best moet doen zijn het meest uitdagende. Hiervoor zal hij dus een website risico analyse maken en/of social engineering toepassen. Kijk uit met het prijsgeven van informatie. En als u een website heeft met privacy gevoelige gegeven of klantgegevens dan doet u er slim aan om een website risico analyse te laten maken door een professional met als doelstelling de website veiliger te maken. Zorg dat u de hacker voor bent.