Check Point bouwt encyclopedie met malwaretechnieken die VM's kunnen omzeilen

Beveiligingsbedrijf Check Point heeft een catalogus gemaakt waarin staat op welke manieren malware virtuele machines probeert te detecteren. De catalogus is gericht op beveiligingsonderzoekers die malware in vm's draaien.

De Evasions Encyclopedia van het beveiligingsbedrijf beschrijft verschillende technieken die door malware worden gebruikt om te detecteren of deze zich in een virtuele omgeving bevindt. De 'encyclopedie' geeft vervolgens ook tips over hoe onderzoekers zulke checks op hun beurt kunnen omzeilen.

De catalogus is in verschillende categorieën opgedeeld. Zo is er een sectie over checks op het bestandssysteem, firmwaretables, cpu's en andere hardware. Ook is er een speciale sectie die zich alleen op macOS richt. In iedere sectie staat een aparte uitleg over de gebruikte technieken, inclusief codesnippets om te illustreren hoe die werken. Een aantal categorieën, waaronder 'timing', 'WMI' en 'menselijk gedrag', is op dit moment nog leeg. Check Point zegt dat die in de toekomst worden bijgewerkt. In principe richten de beschreven technieken zich op Windows, tenzij het anders is beschreven, zeggen de makers. De website maakt daarbij gebruik van een GitHub-account met daarin alle informatie. In de toekomst kunnen ook andere onderzoekers zelf informatie uploaden, zodat de website up-to-date blijft.

Veel malwaremakers laten hun software detecteren of deze in een virtuele machine draait. Als dat het geval is, werkt de malware vaak niet of vernietigt die zichzelf. Dat maakt het voor beveiligingsonderzoekers moeilijk om de malware te bestuderen. Het bedrijf geeft tegenover Bleeping Computer toe dat het met het initiatief andere malwaremakers op ideeën kan brengen en hun tips geeft om hun malware beter te verbergen. Volgens het bedrijf wegen de voordelen voor onderzoekers echter op tegen die nadelen.

Door Tijs Hofmans

Nieuwscoördinator

02-03-2020 • 12:44

59

Reacties (59)

59
59
33
7
0
21
Wijzig sortering
Hmmm... eigenlijk zouden we onze browser dus in een VM moeten draaien, minder kans op besmetting.
Precies wat de EdgeHTML browser van Microsoft kan doen:
https://www.pcworld.com/a...urf-the-web-securely.html

Momenteel zijn ze bezig deze feature door te zetten naar de Edge Chromium versie:
https://www.bleepingcompu...o-the-new-microsoft-edge/
Wil Microsoft er sowiezo niet naar toe met Windows 10X \ Core OS dat alle apps en programma's in een eigen (VM) container gaan draaien?

reviews: Een eerste blik op Windows 10X - Een OS met twee gezichten
Ofzo als qubes OS. Alles in een VM ;)
Dit wordt al gedaan en heet sandbox
Niet vergeten dat sandboxes ook nog ge-escaped kunnen worden. Zelfs VMs kunnen zo aangevallen worden dat het host systeem geinfecteerd kan geraken.
Daar gaat dit artikel over
Nee, dit artikel gaat over het feit dat veel malware probeert te voorkomen dat beveilingsonderzoekers onderzoek kunnen doen middels VM's. @kuurtjes heeft het over dat via security exploits programma's code kunnen uitvoeren op (stukjes) RAM van de host.
Ik vind de titel inderdaad misleidend. Het gaat in de tekst alleen om VM's detecteren, helemaal niet om omzeilen.
Detecteren is stap 1. Omzeilen is dan een gemakkelijke stap 2.
Volgens mij is dat helemaal niet per se zo gemakkelijk...
Nee, een VM detecteren is helemaal niet zo moeilijk. Zo kan je bijv. naar de driverlijst kijken. Uitvoeren van code buiten de guest is 1000x moeilijker.
Het ging om omzeilen, niet detecteren.
Vandaar de catalogus, waar "volgens mij" verandert in: "te onderbouwen met"
Wat bedoel je?

[Reactie gewijzigd door Cerberus_tm op 23 juli 2024 12:16]

Volgens mij is dat helemaal niet per se zo gemakkelijk...
Vandaar de catalogus, waar "volgens mij" verandert in: "te onderbouwen met"
Veel malwaremakers laten hun software detecteren of deze in een virtuele machine draait. Als dat het geval is, werkt de malware vaak niet of vernietigt die zichzelf. Dat maakt het voor beveiligingsonderzoekers moeilijk om de malware te bestuderen.
Door de catalogus wordt het beter inzichtelijk of malware vm-agnostisch is en (impliciet) in staat is pogingen te doen vm's te omzeilen (vage definitie). Als de catalogus uitpuilt van de exploits, is het een redelijke aanname dat het makkelijk is om een VM te omzeilen, en is deze aanname te onderbouwen met de catalogus in plaats van te zeggen "volgens mij"

[Reactie gewijzigd door amx op 23 juli 2024 12:16]

Ik kan je redenering nog steeds niet helemaal volgen. Ik lees omzeilen als een vertaling van to bypass, dus de host infecteren in plaats van de guest. Het is daarbij inderdaad belangrijk om te weten of je als virus in een guest zit. Dat is stap 1. Maar daarna komt stap 2, uitbreken en de host infecteren. De suggestie dat stap 2 makkelijk is lijkt mij nogal een aanname.
Van Mirriam Webster:
Bypass:
2a: to neglect or ignore usually intentionally
Met andere woorden: negeren en niet uitbreken


Makkelijk is inderdaad een grote aanname

Met een catalogus zoals in het nieuwsbericht levert het wel inzichten op, en met een completer beeld zijn uitbraakmogelijkheden beter te onderbouwen

[Reactie gewijzigd door amx op 23 juli 2024 12:16]

Beveiligingsbedrijf Check Point heeft een catalogus gemaakt waarin staat op welke manieren malware virtuele machines probeert te detecteren

Wat is de discussiewaarde (zonder proberen te trollen) van de opmerking dat als malware virtuele machines kan detecteren dat malware vm's kan omzeilen?? Wat is de definitie van malware dan nog waard als die aanname niet automatisch waar is?

[Reactie gewijzigd door amx op 23 juli 2024 12:16]

Hier word bedoeld dat als de malware detecteerd in een VM te zijn, hij geen malware uitvoerd om zijn geheimen geheim te houden. In een VM werkt het niet als virus
Artikel is fout met momenten. Het lijkt voornamelijk te gaan om te zien of de malware in een VM zit.
Een sandbox is GEEN virtueel systeem dus de malware zal gewoon haar gang gaan. Natuurlijk doet de zandbak haar best en houdt het gespuis binnen maar de betere malware zal juist probeeren daar uit te komen.

Een virtueel systeem is te herkennen aan de virtuele hardware, de gebruikte drivers en dergelijke. Vooral de 'paravirtualized' drivers zijn goed te herkennen. Wordt er 1 gebruikt dan is het voor de malware bingo en wegwezen.
Deels mee eens (leek op dit gebied): Is Java ook een VM? Is er dan nog steeds sprake van virtuele hardware?
Bij Java is een vm in gebruik maar niet op os-niveau maar meer op applicatie niveau. Wat ze bij java een 'vm' noemen is meer de 'runtime omgeving'. Dat zie je ook in de naam 'Jre' terug. Daarmee kan je de java-vm beter met een sandox vergelijken dan met een virtuele gast-machine.
Cloud operating systems dan? Zoals friendup? Wordt het pas een VM zodra de system resources via een management interface zijn te benaderen?
Die details ken ik daar niet. Maar de term 'vm' en 'Virtuele machine' zijn een beetje vrij.

Voor mij als systeembeheerder geldt: als ik er onafhankelijk van de onderlaag een operating systeem op kan installeren zoals dat op een fysieke machine kan, dan is het virtualisatie van fysiek en kan het uit die naam een virtuele machine heten, al noem ik het dan liever een 'gast systeem' (en de fysieke machine: host systeem).

Zolang het zoals bij sandboxen, java, webbrowsers en dergelijke om processen en/of programma's gaat die binnen een operating systeem geïnstalleerd moeten worden, dan zou ik het geen vm of virtuele machine noemen maar eerder sandbox, runtime-environment of container of zo iets.

Eerlijk is eerlijk, dat is mijn zicht op de zaak als systeembeheerder. Een programmeur zou daar anders naar kunnen kijken.
Wel benieuwd in hoeverre de catalogus van het nieuwsbericht zich daarin verhoudt
Omdat bij het onderzoeken van issues hele systemen van buiten af bekeken worden zou ik zeggen de vm-s en virtuele machines zoals in gast-systemen. Daarbij is er op de gast 'zo min mogelijk' veranderd en kan er toch van buiten naar gekeken worden. Dat wordt heel vaak bij forensisch onderzoek gebruikt. En daarom wil malware daar graag anders werken en liefst niet ontdekt worden.

En als ik in de catalogus kijk, zie ik beschrijvingen van gast-systemen.Bijvoorbeeld bij https://evasions.checkpoint.com/techniques/network.html, daar staan de mac-vendor id-s van virtualisatie technieken. Als ik een mac-address zie dat begint met 00-0C-29 of 00-50-56, dan herken ik daar een VMware netwerk kaart en deze catalogus dus ook.
Of de onze browsers in een sandbox draaien.
dan kan ik je; https://www.qubes-os.org/ zeer aanraden; deze gooit applicaties in een 'sandbox/vm' middels kleurcodering worden de sessies (en rechten die deze hebben) van elkaar gescheiden. zo kun je bijv. een browser-sessie/vm gebruiken puur voor telebankieren, andere voor socialmedia bs etc.

zie ook; https://www.youtube.com/watch?v=Aghj8MyDF4I

[Reactie gewijzigd door himlims_ op 23 juli 2024 12:16]

Of je maakt een image van een "schone" pc, doet je ding met de malware en zet daarna de image weer terug.
De BIOS opnieuw flashen, via het board zelf of via een breadboardje en een apparaatje zoals een Pi. Mocht dat niet werken dan moet er een nieuwe BIOS chip met een voorgeladen passende BIOS in het board worden gezet, tenzij de mobo in kwestie zichzelf kan flashen zonder te POSTen. Niet extreem moeilijk om te doen, maar wel te hoog gegrepen voor de gemiddelde consument en zelfs voor veel IT technici. Het is wel een skillset die je moet hebben en meeste mensen hebben die niet.

Ik denk zelf dat het moeilijker is om uit te vogelen dat je malware in je UEFI hebt zitten dan dat het is om je board weer schoon te krijgen.

Zover ik weet komt UEFI malware gelukkig niet heel veel voor.


De boards van sommige fabricanten zoals Gigabyte hebben vaak een dual BIOS, mocht het board een corruptie detecteren in BIOS chip 1 dan word chip 2 gebruikt om chip 1 terug te flashen. Mogelijk met een beetje geluk kunnen features zoals deze een geïnfecteerde UEFI detecteren en corrigeren. Er vanuit gaand dat er een checksum wordt gechecked tijdens elke POST en dat het niet alleen triggered wanneer de board vast loop op de POST.

[Reactie gewijzigd door Omega op 23 juli 2024 12:16]

Als je dat soort malware onderzoekt moet je incalculeren dat je hetgene dat geïnfecteerd wordt weg kunt gooien.
Technisch gezien waar maar een VM heeft diverse voordelen, zoals het tegelijkertijd kunnen testen van verschillende scenario's/OS'en, uitgebreide debugging-mogelijkheden, et cetera.
ja dat zou ik ook zeggen...gewoon een schone pc, los van het netwerk maar gelijk aan 't internet hangen en laat 'm maar malware vangen.
In 't ergste geval ben je een pc kwijt (als 't teveel tijd/moeite kost om 'm weer schoon te krijgen), maar ach, ik denk dat je niet de zwaarste pc hoeft te hebben en ik denk dat er best wel voldoende geld in deze business omgaat om dit als 'bedrijfskosten' te zien.
Ik heb ooit eens een tool (of misschien image) tegengekomen die alle identifiable informatie van bv VMWare kan verwijderen en de VM als een normale PC kan laten lijken.
Er zijn tooltjes voor om het feit dat het een VM is te verstoppen voor de gebruiker ja, het gaat hier voornamelijk om registry edits om device namen te veranderen. Maar mocht een stukje software op een low-level gaan kijken dat ziet die redelijk makkelijk dat het om een VM gaat.
Ik denk dat er manieren zijn om dit ook op low level te doen.
Op sommige Hypervisors zoals QEMU/KVM kan dat inderdaad. Of in ieder geval het kan het goed genoeg om de meeste software (Nvidia drivers voor Geforce kaarten I am looking at you) voor de gek te houden.
Dus als ik (sommige van) deze regkeys in mijn register stop, dan doet bepaalde malware niets meer? :D
Inderdaad. En er zijn nog wel een paar manieren. Vroeger was het hebben van je Windows installatie op bv de D: schijf al genoeg om verschillende malware tegen te houden. :+
Is het niet aan de makers van VM's om hieraan iets te doen? Een goede VM zou toch niet detecteerbaar mogen zijn?
Nee want een vm wordt niet alleen gebruikt voor deze doeleinden, bij het gebruiken van speciaal afgerichte drivers voor bijvoorbeeld netwerk en disk kan een vm een grote performance boost krijgen.

Maar met bijvoorbeeld qemu kan je bijna alles goed verbergen hiervoor moet je wel wat aanpassingen doen:
https://blog.prowling.nu/...emu-kvm-settings-for.html
Standaard wordt het expres aan een guest bekend gemaakt dat ie in een VM draait zodat de guest daar rekening mee kan houden en bijvoorbeeld niet de I/O bus zit te verstoppen zoals Windows nog wel eens doet.

Behalve als je het niet zichtbaar wilt maken, zoals voor mallware, heeft het ook verder geen nut om te verstoppen dat het virtualized is.
Vanuit VMware zijn er 2 routes mogelijk, bij de meeste andere virtuele technieken ook: 1 is alle virtuele hardware aanbieden als imitaties van fysieke devices. Dit werkt meestal trager dan de fysieke devices. De andere is 'eigen' devices aanbieden met eigen drivers. Deze devices werken vaak veel sneller dan vergelijkbare fysieke devices omdat het op de host allemaal in het geheugen wordt afgehandeld.

Uiteindelijk is virtualisatie altijd wel te herkennen, bijvoorbeeld door de timing in de gaten te houden.
Nou, als malware zichzelf vernietigt als ze een VM detecteren dan zou ik juist ervoor zorgen dat malware altijd zou detecteren dat ze in een VM draaien. Maarja.
Als je het programma wilt gebruiken, dan wel. Maar dit gedrag wordt vaak gebruikt om ontdekking in honeypot-VMs te voorkomen.
Idee klinkt leuk maar hoe lang voordat deze beveiliging dan bekent wordt en omzeild is. Of dat ze dan verstoppen dan minder belangrijk vinden en dus toch ook weer VM weer laten besmetten.
De meeste servers draaien al in VM's tegenwoordig. Alleen maar gunstig als malware zich daar niet in wil nestelen :)
Net gekeken op de website vind het jammet dat de timing attacks nog niet opstaan want de rest is nogal basic en kan je met simpele aanpassingen in de qemu kvm xml oplossen. (Je moet nog wel even de hdd hernoemen en qemu opnieuw bouwen) maar dat is het dan ook. Maar dan heb je de grootste probleem nog de timing...

Als ze dat niet gaan behandelen dan vind ik het maar een nutteloos iets want op het moment is dit gewoon basic informatie van mensen die zich hiermee bezig houden.
Mijn idee. Maar de timing van een virtueel systeem lijkt nooit op de timing van een fysiek systeem. Om te beginnen omdat de scheduler van de host er tussen zit. En omdat bij een bepaalde cpu een eigen timing hoort, het is immers publiekelijk bekend hoe snel de cpu-s draaien, is op die manier altijd te achterhalen of dat ongeveer klopt of dat er een afwijking van 10 of 100 in zit.

Wil je dat voorkomen, dan zou je op een belachelijk snelle cpu een andere, tragere cpu moeten emuleren. Maar dat emuleren gaat dan ook weer mislukken. En nu, anno 2020 een cpu van 2002 nadoen is ook verdacht.
Check Point bouwt encyclopedie met malwaretechnieken om VM's te omzeilen
Beveiligingsbedrijf Check Point heeft een catalogus gemaakt waarin staat op welke manieren malware uit virtuele machines probeert te ontsnappen
Ja wat is het nou, omzeilen of ontsnappen?
In het artikel wordt gesproken over dat malware zichzelf uitschakelt of vernietigd. Dat zou ik onder omzeilen gooien.

Bij ontsnappen zou ik eerder denken aan het verspreiden naar andere VM's of de host.
Het bedrijf geeft tegenover Bleeping Computer toe dat het met het initiatief andere malwaremakers op ideeën kan brengen en hen tips geeft om hun malware beter te verbergen. Volgens het bedrijf wegen de voordelen voor onderzoekers echter op tegen die nadelen.
Zo goed als alle code voor VM's te detecteren is al public. De manieren worden ook onder malware developers gedeeld en er zijn zelfs malware source codes te vinden met deze detecties.

https://github.com/a0rtega/pafish
Anoniem: 465528 2 maart 2020 14:03
Sommige van deze 'evasions' zijn wel erg ver gezocht zoals met sysctl controleren of hyperthreading aanstaat, dit staat tegenwoordig standaard uit wegens beveiligingsrisico's. Of dat een vm waarschijnlijk minder dan 4GB ram zal hebben. Dit zijn nou niet echt aannames die ik sterk zou correleren met een virtuele machine.

Dit is jammer want andere controles die worden aangeraden zoals het uitlezen van bepaalde registery keys of het uitlezen van de manufacterer naam van de bootrom zijn dan weer ijzersterk.

Ze hadden er in mijn mening beter aan gedaan deze slecht correleerbaren eigenschappen gewoon niet te benoemen.
Je zou het mechanisme ook kunnen omdraaien door een regulier werkstation zich te laten voordoen als VM om te voorkomen dat malware je als kandidaat ziet.
Checkpoint: de echte firewall software itt cisco asa prut. Helaas (je mag het waarschijnlijk niet zeggen) kan de nederlandse cultuur fors met de israelische cultuur botsen. Uit eigen ervaring ooit eens een major bug gevonden in de 5.x software. Had ik niet mogen zeggen/doen. Ik had moeten hinten dat ik iets raars ondervond, dan zouden ze het niet als persoonlijke aanval zien... Binnen 2 dagen opgelost, dat wel, maar toch een cursus multicultureel onderhalen/communiceren kan ik iedereen aanraden. Finjan vertoont ook deze hobbel, daar waar IBM, als je het proces volgt, wel de klant meeneemt met het tweezijdig troubleshooten ipv total denial & sudden solution. Checkpoint staat er bij mij ook om bekend dat veel aan marketing wordt gespendeerd ...Werkt Ankone er nog ?

Op dit item kan niet meer gereageerd worden.