Je browser is verouderd en geeft deze website niet correct weer. Download een moderne browser en ervaar het internet beter, sneller en veiliger!

Ratten in je netwerk! Deel 3: Die pootjes zijn toch best handig

Cybercriminelen maken graag gebruik van zogeheten Remote Access Tools (RAT): software waarmee ze ongemerkt je computer op afstand kunnen
overnemen en besturen. Deze dreiging komt helaas ook in de zorgsector voor. In deze blogreeks gaan we digitale ratten ontleden en leren we gaandeweg meer over hoe computers werken.

Door Daniel Meinsma

In de vorige blogpost hebben we in ons digitaal museum gekeken naar hoe een voorbeeld van AsyncRAT en een voorbeeld van ResolverRAT er van de buitenkant uitzien. We hebben achter glas op een afstandje al gekeken naar de omschrijving op het bordje naast de diertjes. Maar we hebben nog niet in detail gekeken naar hoe bijvoorbeeld de pootjes, de snuit en de vacht eruitzien.

Ratten zijn verbazingwekkend handig met hun pootjes. Ze hebben kleine, maar zeer gevoelige en behendige 'handjes' die ze voor allerlei taken gebruiken. Ze kunnen eten vasthouden, nootjes pellen, zaadjes openen. Ze kunnen er mee klimmen en graven, zichzelf schoonmaken en hun pootjes voelen ze textuur, temperatuur en trillingen aan.

Door bij malware vanaf de buitenkant te kijken naar hoe de pootjes eruitzien, kunnen we afleiden hoe handig het stukje software is. Wil malware kunnen graven in computers en bestanden openen, moet het gebruikmaken van functionaliteiten die op de computer aanwezig zijn. Van welke functionaliteiten een stukje software gebruik wil maken, is van tevoren vaak al zichtbaar. Behalve als malware dit actief probeert te verbergen om detectie te voorkomen.

Vacht

En dit laatste blijkt precies het geval bij het voorbeeld van AsyncRAT en het voorbeeld van ResolverRAT. Alsof beide ratten zich in een hoekje proberen te verstoppen en hun pootjes verbergen onder hun lichaam. Wat wel opviel was de vacht van de malware. Die hadden namelijk beide een hoge entropy. Entropy? Wat is dat? Kan ik dat eten? Nee, entropy is een maatstaf voor hoe chaotisch of voorspelbaar iets is.

Stel, we gaan bij een rat de haartjes op de vacht meten en voor ieder kort haartje noteren wij een 0 (nul) en voor ieder lang haartje noteren wij een 1 (een). Het resultaat is dat wij een notitieblokje vullen met allemaal nullen en enen. Voor een kortharige rattensoort zullen wij dan veel nullen noteren en bij een langharige rattensoort weer meer enen. En wanneer een rat ergens bijvoorbeeld een wat kalere plek heeft op de huid, zal daar een patroon van nullen zichtbaar worden in ons notitieboekje. Dit is ook precies hoe we naar softwareapplicaties kunnen kijken. Voor een computer is een applicatie namelijk een verzameling nullen en enen.

Pootjes verbergen

Wanneer je iets wil verbergen in computerland, zoals bij het versleutelen van gegevens of een lastig te raden wachtwoord, dan wil je dat het een hoge entropy heeft. Dat er niet een duidelijk patroon zichtbaar is in de nullen en enen. Een hoge entropy betekent dus niet meteen foute boel. Mediabestanden zoals audio en video hebben vaak ook van nature een hoge entropy.

Bij het geautomatiseerd analyseren van AsyncRAT werd snel duidelijk dat de rat zijn pootjes onder het lijf probeerde te verbergen, maar was wel de functionaliteit 'MemoryStream Process Injection' zichtbaar, wat in dierentaal betekent “je ziet ze misschien niet, maar ik heb wel degelijk pootjes die klaar staan om ergens in te gaan graven”.

Bij het geautomatiseerd analyseren van ResolverRAT stopte de analyse voordat het tot een oordeel kwam. De vacht had echt een regenboog aan variatie en bij de rat waren niet duidelijk twee voorpootjes, maar waren er zoveel uitstulpingen die op ledematen leken, dat de malware scanner niet wist waar het moest beginnen met kijken! Op een gegeven moment geeft zo’n scanner dan op en stopt het met kijken en laat het de rat vrolijk binnen in je netwerk.

Iets om over na te denken tijdens de koffiepauze.

Volgende keer deel 4: En wat nu als we doen alsof we niet kijken, gaat de rat dan bewegen?