Het gebruik van beveiligingssoftware en oplossingen zoals IDS/IPS zijn allemaal goed en aardig, maar wat als een aanvaller het systeem toch weet binnen te dringen. En hoe weet je zeker dat het systeem gehackt is? Dit artikel kan zowel voor UNIX als Windows en andere besturingssystemen gebruikt worden.
Nu zul je misschien afvragen waarom je al deze moeite zou doen, aangezien bijna alle experts aanraden om een gecompromitteerd systeem te formatteren. Door te kijken hoe de aanvaller is binnengedrongen en wat hij heeft gedaan kan veel over de beveiliging van het systeem geleerd worden. Zodoende kun je de huidige systemen die nog niet zijn gecompromitteerd en toekomstige systemen beter beveiligen.
Het uitzoeken van een mogelijke aanval hangt af van verschillende factoren, zoals security policies, het belang van betrokken systemen en juridische aspecten. In sommige gevallen is het verstandig om een forensisch onderzoeksbureau in te schakelen, om zo te voorkomen dat het bewijs "besmet" raakt.
Van tevoren is het ook verstandig om gedocumenteerd te hebben hoe men systemen op een mogelijke compromittering controleert en uiteindelijk het systeem weer herstelt.
Uit onderzoek van de FBI/CSI blijkt dat maar liefst 34% van de bedrijven aanvallen niet rapporteert. In Nederland gaat het om zo'n 16%. Bedrijven willen niet negatief in de publiciteit komen of mogelijk zelfs vervolgd worden. Dat neemt niet weg dat het afhandelen van een compromittering erg belangrijk is.
Afsluiten
De eerste stap in het onderzoeken van een gecompromitteerde machine is het afsluiten van het netwerk en/of internet. Daarna kun je bijvoorbeeld inloggen in single user mode in UNIX of als lokale beheerder in Windows om ervoor te zorgen dat je volledige controle over de machine hebt. Het opnieuw inloggen of rebooten brengt het gevaar met zich mee dat handige informatie en/of processen verloren raken. Voor het analyseren is het dan ook verstandig om een back-up van het systeem te maken.
Signalen
1. Controleer in de logbestanden of er connecties van ongewone locaties zijn gemaakt of dat er andere ongewone activiteiten hebben plaatsgevonden. Kijk bijvoorbeeld naar alle logs die door syslog en andere security logs zijn gemaakt. Als de firewall of router de logs naar een andere locatie schrijft dan naar het gecompromitteerde systeem vergeet deze dan niet te bekijken. Er moet wel worden opgemerkt dat, tenzij je op append-only media logt, deze methode niet waterdicht is, omdat aanvallers vaak de logbestanden wijzigen om onopgemerkt te blijven.
2. Kijk naar setuid en setgid files (en dan met name setuid root bestanden) op het systeem. Aanvallers laten vaak kopieen van setuid of /bin/sh of /bin/time achter, om later weer root toegang te krijgen.
3. Controleer de systeem binaries zodat je zeker weet dat ze niet zijn gewijzigd. Aanvallers kunnen UNIX programma's wijzigen zoals login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync, en binaries genoemd in /etc/inetd.conf, en andere belangrijke netwerk en systeem programma's en gedeelde object libraries.
4. Kijk of er geen ongeautoriseerd netwerk monitoring programma wordt gebruikt. Aanvallers kunnen een sniffer gebruiken om gebruikersnamen en wachtwoorden te stelen.
5. Controleer alle bestanden die door 'cron' en 'at' worden gedraaid. Een aanvaller kan een backdoor plaatsen in bestanden die via cron geladen worden. Via deze technieken kan een aanvaller weer terug op het systeem komen, ook al is de oorspronkelijke lek gedicht. Controleer ook of alle bestanden en programma's die door 'cron' en 'at' jobs worden aangeroepen en de job bestanden zelf, niet "world-writable" zijn.
6. Kijk of er er geen ongeautoriseerde services draaien. Inspecteer ook de /etc/inetd.conf. Een aanvaller kan een service hebben ingeschakeld die eerst uit stond, of het inetd door een Trojaans paard hebben vervangen.
7. Controleer het /etc/passwd bestand en kijk of het is aangepast, en dan met namen niet nieuwe accounts of accounts zonder wachtwoord, of UID aanpassingen van bestaande accounts.
8. Controleer systeem en netwerk configuratie bestanden voor ongeautoriseerde aanpassingen. En dan met name entries van non-local host names. Kijk ook of de bestanden al voor de aanval bestonden en niet door de aanvaller zijn gemaakt.
9. Zoek het systeem af naar ongewone of verborgen bestanden. Een aanvaller kan bestanden voor later gebruik hebben verstopt.
10. Controleer alle machines op het netwerk als het vermoeden van een aanval bestaat. Als er een host is gecompromitteerd zijn vaak ook de andere machines op het netwerk het slachtoffer geworden.
Windows Specifiek
Om te bepalen of het systeem daadwerkelijk geinfecteerd of gehackt is moet er in sommige gevallen verbinding met het internet zijn. Voor Windows gebruikers die willen controleren of er ongewenste connecties zijn is er Netstat. Deze tool laat alle open poorten op de computer en huidige verbindingen zien. Het is zelfs mogelijk om het IP-adres van een aanvaller ermee te achterhalen.
Netstat is te gebruiken via de command prompt en het commando "netstat", gevolgd door een van de verschillende paramaters:
-a Hiermee geef je alle actieve TCP-verbindingen en de TCP- en UDP-poorten waarop de computer luistert weer.
-e Hiermee geef je Ethernet-statistieken weer, zoals het aantal bytes en pakketten dat is verzonden en ontvangen. Deze parameter kan worden gecombineerd met -s .
-n Hiermee geef je actieve TCP-verbindingen weer. In dit geval worden adressen en poortnummers als getallen weergegeven en wordt er geen poging gedaan om namen te bepalen.
-o Hiermee geef je actieve TCP-verbindingen weer. Bovendien wordt voor elke verbinding de proces-id (PID) weergegeven. U kunt zoeken naar de toepassing op basis van de PID op het tabblad Processen in Windows Taakbeheer. Deze parameter kan worden gecombineerd met -a , -n en -p .
-p Protocol Hiermee geef je de verbindingen weer voor het protocol dat je opgeeft met Protocol. In dit geval kan Protocol tcp, udp, tcpv6 of udpv6 zijn. Als je deze parameter samen met -s gebruikt om statistieken per protocol weer te geven, kan Protocol tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6 of ipv6 zijn.
-s Hiermee geef je de statistieken per protocol weer. Standaard worden de statistieken voor de protocollen TCP, UDP, ICMP en IP weergegeven. Als het protocol IPv6 is geïnstalleerd, worden statistieken weergegeven voor de protocollen TCP via IPv6, UDP via IPv6, ICMPv6 en IPv6. Met de parameter -p kun je een reeks protocollen opgeven.
-r Hiermee geef je de inhoud van de IP-routeringstabel weer. Deze parameter is gelijk aan de opdracht route print.
Interval, hiermee kun je de geselecteerde gegevens met een Interval van het door u opgegeven aantal seconden opnieuw weergeven. Druk op CTRL+C om het opnieuw weergeven van de gegevens te stoppen. Als je deze parameter weglaat, worden met netstat de geselecteerde gegevens slechts eenmaal afgedrukt.
Via Netstat kun je allerlei waardevolle informatie achterhalen, zoals open poorten, verbindingen naar IP-adressen of connecties geopend door processen waar je niets van weet. Voor de "bewijslast" is het mogelijk om de resultaten naar een tekstbestand te "pipen" om ze later te bekijken. Dit kan via “netstat –an >c:log.txt” waarbij netstat met de –a en –n parameters draait en de resultaten naar het bestand “log.txt” op de C schijf schrijft.
Een andere mogelijkheid om Windows systemen te controleren is via de Task Manager of de Event Viewer. De Task Manager toont alle draaiende applicaties, nu worden veel malware en hacker tools niet als programma weergegeven, maar vaak wel als proces, die ook via Taakbeheer te bekijken zijn.
Herstellen van een incident
Als de machine gecompromitteerd is, bestaat de mogelijkheid dat alles op het systeem is aangepast, waaronder de kernel, binaries, databestanden, draaiende processen en geheugen. Om er zeker van te zijn dat er geen backdoors op het systeem achterblijven moet het besturingssysteem opnieuw geinstalleerd worden.
Na installatie en voordat de machine weer wordt aangesloten moet men de laatste patches installeren en onnodige services uitschakelen. De meest conservatieve manier is om alle services uit te schakelen en pas aan te zetten als ze nodig zijn.
Verbeter de beveiliging
Heeft een aanvaller het systeem weten te kraken, dan is het dichten van dat ene gaatje niet voldoende. De hele beveiliging van het systeem of systemen moet herzien worden. Is het systeem daadwerkelijk goed geconfigureerd? draaien er geen onnodige services, etc. Er zijn verschillende programma's die het systeem kunnen scannen en auditen op mogelijke kwetsbaarheden. Is er niet voor een format van het gecompromitteerde systeem gekozen, maar alleen voor een herinstallatie, dan is het verstandig om alle beveiligingstools opnieuw te installeren.
Zorg er ook voor dat alle logging/auditing/accounting programma's zijn ingeschakeld. Maak back-ups van je logs en/of overweeg om ze naar een andere machine te schrijven of een append-only bestandssysteem te gebruiken. Een andere optie is het filteren van bepaalde TCP/IP services op de firewall server, router of hosts.
Geleerde lessen
Of het nu gaat om kleine of grote bedrijven of thuisgebruikers, een incident is een harde maar goed leerschool, als men er tenministe lering uit trekt. Documenteer en evalueer de geleerde lessen en ondernomen acties. Dit helpt bij het bepalen of bestaande security policies aangepast moeten worden
Bij veel bedrijven worden security policies niet aangepast totdat ze begrijpen hoeveel de gebrekkige beveiliging ze gekost heeft. Het berekenen van de kosten van een incident helpt dan ook bij het bepalen van het belang van beveiliging binnen het bedrijf. Via een kostenberekening kan het management worden uitgelegd dat beveiliging belangrijk voor de onderneming is. Heeft men uiteindelijk de security policies aangepast, dan moeten de aanpassingen nog naar betrokken personen gecommuniceerd worden.
Conclusie
Incident response is een apart specialisme en naast het afwerken van lange checklists ook kunnen inschatten wat de mogelijke gevolgen van een compromittering zijn. Dit artikel is niet volledig, maar geeft een aantal handvatten om van een hack te herstellen. Heb je opmerkingen of aanvulling, laat het ons dan weten.
Deze posting is gelocked. Reageren is niet meer mogelijk.