Network based infection detection
Een paar dagen geleden woonde ik op de Hanzehogeschool in Groningen een presentatie bij van Prof. Dr. Nasir Memon van de Polytechnic University in Brooklyn, New York. De presentatie ging over een nieuw systeem dat de universiteit ontwikkeld heeft voor het detecteren van computers die met malware zijn geïnfecteerd.
Kwaadaardige (malicious) software wordt normaal gedetecteerd en tegengehouden door virus scanners, IDS systemen, firewalls, enz. Het probleem hierbij is dat de meeste systemen hiervoor zogenaamde handtekeningen (signatures) gebruiken waarmee bepaalde software kan worden herkend. Kwaadaardige software wordt echter steeds meer stealthy en dus onzichtbaar. Hierdoor wordt door systemen die vertrouwen op signatures zo'n 80% van de aanvallen door kwaadaardige software niet opgemerkt. Het team van prof. Memon probeerde daarom een andere aanpak.
Deze aanpak is om te focussen op wat er gebeurt nadat een systeem geïnfecteerd is. In plaats van het controleren of een systeem geïnfecteerd is (hetgeen kan worden verhuld door bijvoorbeeld rootkits), wordt het netwerk verkeer van de systemen geanalyseerd. Hiervoor worden op enkele plaatsen in het netwerk zogenaamde SynApps geplaatst. Deze applicaties ontvangen alle data die door het netwerk gaat (bijvoorbeeld door ze te koppelen aan een span-poort van een core switch).
Omdat in een gemiddeld netwerk veel data wordt verstuurd, wordt de data zelf niet opgeslagen. In plaats daarvan wordt de data (payload) in de netwerk pakketten gehashed. Deze hash wordt dan opgeslagen, samen met extra informatie over de pakketten, zoals de source en destination, de tijd en het soort data. Verschillende technieken worden gebruikt om vast te stellen of de data bijvoorbeeld een MP3 stream of video.
Op deze manier wordt een compressie bereikt van 1:50, waardoor de data tot enkele weken bewaard kan blijven. Uiteraard kan de originele data niet meer gereconstrueerd worden. Het is echter wel mogelijk te controleren of data meer dan eens is verzonden, of dat data door een relaying system wordt doorgestuurd naar andere systemen. Dit wordt gedaan door te controleren of de gehashte data al in de database staat en hoe vaak. De data wordt opgeslagen met een systeem dat is gebaseerd op Bloom filters, die het mogelijk maken om data zeer efficiënt op te slaan, zodat het zeer snel weer opgevraagd kan worden. Bovendien is het mogelijk op een makkelijke manier naar patronen te zoeken.
Een aantal van die patronen zijn bijvoorbeeld:
- Systemen die steeds trager worden.
- Systemen die vaak worden ge-reboot.
- Relay systemen die data onveranderd versturen naar andere systemen.
- Systemen die data naar IP adressen sturen die niet eerst door een DNS query zijn opgevraagd.
- Enzovoort.
Deze patronen kunnen door de software worden gecombineerd zodat een top 10 van verdachte systemen ontstaat.
Data wordt enkele weken bewaard. Dit maakt het mogelijk om nieuw ontdekte exploits die al enkele systemen hebben geïnfecteerd, terug te zoeken en om zodoende systemen te vinden die al eerder ware geïnfecteerd. Deze systemen kunnen dan worden gerepareerd.
Het soort kwaadaardige software die op deze manier kan worden gevonden is:
- botnets;
- spyware;
- trojans;
- rootkits;
- viruses, worms.
Professor Memon is naarstig op zoek naar bedrijven die het systeem willen inzetten. Zijn universiteit kan dan leren van de resultaten, en de bedrijven hebben er een goed malware detectiesysteem bij. Iets voor uw bedrijf?
En... Wat vindt u ervan? Klik hier om uw mening te geven:
There is also a 
Master Certified IT Architect
CISSP (Certified Information Systems Security Professional)
TOGAF Certified Architect