Cryptomining-scripts herkennen
Miningscripts herkennen en onschadelijk maken
Als je pc ineens zonder aanwijsbare reden meer herrie maakt en niet meer stil te krijgen is, zou het kunnen dat er nieuwe updates binnendruppelen. Maar het zou ook kunnen dat je pc druk bezig is om cryptocoins te vergaren voor cybercriminelen. Om zeker te weten wat er aan de hand is, moet je even flink graven en de oorzaak boven water zien te krijgen.
Miningscripts hebben het niet op je gegevens gemunt, maar op je hardware. Je cpu en vaak ook je gpu worden gekaapt om rekenwerk te verrichten om Bitcoins, Monero of andere cryptocoins te minen. Anders dan bij ransomware ondervind je daar niet meteen schade of last van, maar je merkt het wel enigszins op je energierekening – en het verkort de levensduur van je hardware. Maar als een miningprogramma dan iets te fanatiek te werk gaat en een groot deel van je rekenperformance opslokt, reageert je systeem niet meer lekker snel en merk je vooral ook dat je ventilatoren overuren staan te draaien.
Als je het idee hebt dat er iets niet in de haak is en je pc onnodig 'druk' bezig is, is het aan te raden op zoek te gaan naar het proces dat daar verantwoordelijk voor is. Het eerste wat in je opkomt is om Taakbeheer van Windows erbij te pakken. Die weg leidde bij onze analyse echter niet tot resultaat: zodra we het Taakbeheer op een geïnfecteerde pc openden, ging er bij de miningparasiet blijkbaar een alarm af en sloot hij zichzelf rap af om vooral niet op heterdaad betrapt te worden. Toen we
het Taakbeheer afsloten, ging de malware weer vrolijk aan de slag en begon de pc weer meer herrie te maken.
Dat zagen we ook toen we met de gratis Process Explorer van Sysinternals (zie de link onderaan dit artikel) aan de slag gingen. De malware leek ook hier weer op de uitkijk te staan en zichzelf af te sluiten zodra Process Explorer opgestart werd. Met een simpele truc lokten we de malware alsnog in de val. We veranderden de naam van het uitvoerbare bestand van Process Explorer van procexp64.exe in paint.exe en grepen toen de malware in de kraag. De malware belastte alle acht de kernen van het testsysteem volledig om met de miningtool xmrig Monero te minen. Die simpele hernoemtruc is dus een manier om na te gaan of je pc geïnfecteerd is.
Onder de motorkap
Process Explorer maakt het zoeken naar resourcevretende processen erg makkelijk. Klik in het overzicht met kolommen op CPU om de draaiende processen te sorteren op cpu-belasting. Als de entry's te snel van plek wisselen, kun je via het menu 'View / Update Speed' de verversingssnelheid aanpassen. Om miners die je grafische kaart belasten om coins te vergaren op het spoor te komen, klik je met de rechtermuisknop op een kolomnaam (bijvoorbeeld CPU) en activeer je dan onder 'Select Columns / Process GPU' de kolom 'GPU Usage'. Standaard laat Process Explorer onder andere de naam van het proces zien, de pictogrammen, een beschrijving en de naam van de producent.
Die informatie moet je niet zomaar aannemen, want die waarden zijn door ontwikkelaars zelf in te voeren. Bij een programma met de naam firefox.exe met als beschrijving Firefox van de producent Mozilla Corporation hoeft dat niet per se ook echt die browser te zijn. De locatie van de bestanden geeft al meer duidelijkheid. Via de kolom 'Path' (via 'Select Columns / Process Image') toon je die informatie. Met de kolom 'Command Line' zie je hoe het bestand wordt aangeroepen, inclusief de commandlineparameters. Als firefox.exe vanuit een obscure map of de temp-map wordt opgestart, weet je vrijwel zeker dat er iets niet klopt.
Een handig ander hulpmiddel is de online virusscanner VirusTotal, die inmiddels wordt gerund door Google. VirusTotal controleert bestanden met behulp van meer dan 60 virusscanner-engines of ze malware bevatten. Als je daar zoveel scanners bij betrekt, is de kans groot dat een engine alarm zal slaan. Als slechts één of twee viruscanners het bestand als gevaarlijk markeren, is dat waarschijnlijk niet meer dan een vals alarm. Maar als er twintig of meer alarm slaan, weet je zeker dat er iets niet klopt. Bij de door ons onderzochte malware waren de herkenningsrates meer dan overduidelijk. Bij Process Explorer kun je met een klik op 'Options / VirusTotal. com / Check VirusTotal.com' alle draaiende processen aan een test met meerdere viruscanner-engines onderwerpen. De tool stuurt alleen de checksums naar VirusTotal. Je krijgt dan een resultaat als het bestand al eens onder de loep genomen is. Als je wilt, kun je via 'Submit Unknown Executables' ook bestanden doorsturen die de dienst nog niet kent.
Andere platforms
Linux-gebruikers kunnen onder andere via het shellcommando top een lijst van de op dat moment draaiende processen krijgen. Bij Ubuntu start je de Systeemmonitor via de launcher. Die biedt een grafische interface. Onder macOS helpt de Activiteitenweergave je op weg. Deze vind je in de map 'Programma's / Hulpprogramma's'. Standaard geeft die alleen de processen van de huidige ingelogde gebruiker aan. Via het aanvinken van 'Alle processen' bij Weergave krijg je alles in beeld.
Bij Android geven de ingebouwde tools niet zoveel prijs. Via de instellingen onder Accu zie je welke apps opvallend veel energie verbruiken. Om dieper te graven is een app als CPU Monitor Advanced Free van ENC-apps (zie de link aan het eind van dit artikel) een optie. Die houdt alles twee minuten lang in de gaten en laat dan de gemiddelde waarde van de meting zien. Dat werkt echter alleen tot en met Android 6. Apps in nieuwere versies van Android mogen geen toegang meer hebben tot gedetailleerde informatie over andere processen. Die beperking is te omzeilen met rootrechten. Als je in ieder geval wilt weten hoe sterk de cpu-kernen belast worden, kun je de app CPU Monitor van GLGJing gebruiken. Die tool draait ook op recente versies van Android. iOS toont de informatie over het energieverbruik via 'Instellingen / Batterij'. Daar staat ook een lijst met de apps die de afgelopen 24 uur en de afgelopen 7 dagen het meest hebben verbruikt.
Clean-boot
Cryptominers nestelen zich op je systeem en zorgen ervoor dat ze bij een herstart automatisch weer worden opgestart. Dat laat sporen achter die je met de Sysinternals-tool Autoruns (zie de link onderaan) kunt achterhalen. Het programma onderzoekt vrijwel elke bekende plek waar
programma's zich kunnen nestelen. De analyse is terug te vinden op het tabblad 'Everything'. Ook daarbij geldt dat je bij het zoeken naar miners niet op opgegeven programmanamen of -beschrijvingen moet vertrouwen. Gebruik ook daar weer de optie om de VirusTotal-scan erbij te pakken via 'Options / Scan Options / Check VirusTotal.com'.
Autoruns kijkt niet alleen naar programma's die automatisch opstarten via registersleutels en services, maar ook nog bij geplande taken. Op onze geïnfecteerde test-pc had een stuk malware een taak met de onopvallende naam 'WinHostStartForMachine' aangemaakt, die de malware op intervallen van een minuut uitvoerde. Die taak wekte de malware weer tot leven nadat hij zichzelf na het starten van Taakbeheer had afgesloten.
Sporen uitwissen
Zodra een infectie is vastgesteld, kun je de malware proberen te ontmantelen door zijn autostart-mechanisme uit te schakelen en het systeem opnieuw op te starten. Klik in Autoruns op het vinkje naast de entry van de malware, zodat het bij een herstart niet meer wordt uitgevoerd. Na een herstart kun je het uitvoerbare bestand onschadelijk maken door de bestandsnaam te laten eindigen op .infected, zodat de malware niet meer kan opstarten. Maar dat is nog geen garantie dat alles helemaal schoon is. Malware kan uit meerdere modules bestaan en ervoor zorgen dat een pc na een poging om op te schonen weer opnieuw besmet wordt. En het gevaar bestaat dat de crybercriminelen niet alleen cryptominers, maar ook nog een banktrojan of keylogger hebben achtergelaten. Scan je systeem daarom het liefst met een bootable antivirus-dvd. Dat maakt de kans dat je nog meer rommel tegenkomt alleen maar groter. Om er zeker van te zijn dat alles helemaal schoon is, is een pc opnieuw installeren na een infectie meestal de beste optie.
Preventiemaatregelen
Cryptominers verspreiden zich op dezelfde manier als ransomware, banktrojans en andere malware: mailbijlagen en downloads. Een goede bescherming daartegen is een virusscanner en een portie gezond verstand. Een virusscanner blokkeert het uitvoeren van bestanden waarvan bekend is dat ze niets goeds in de zin hebben of die zich erg verdacht gedragen. Een handige basisbescherming biedt de standaard in Windows gebouwde scanner. Bij AV-Test haalde die gratis bescherming in december 2017 een score van 100 procent op het gebied van bescherming tegen zerodaymalwareaanvallen en het detecteren van bekende malware. Controleer of Defender is geactiveerd en de laatste signatures heeft. Dat controleer je in Windows Defender-beveiligingscentrum (Windows Defender Security Center), waar je komt na het intypen van de zoekterm 'defender'. Een groen vinkje bij 'Virus- en bedreigingsbeveiliging' geeft aan dat alles in orde is.
Malware lift vaak ook stiekem mee met de installatiepakketten van legitieme software als zogenaamde Potentially Unwanted Applications (PUA). Blijkbaar kopen de cybercriminelen zich in bij installers van gratis software om hun troep te kunnen verspreiden. Defender kan PUA wel blokkeren, maar dat doet de tool niet standaard. Om de PUA-herkenning aan te zetten, moet je een beetje knutselen. Start onder Windows 10 een PowerShell met administratorrechten (door bijvoorbeeld te zoeken op PowerShell en die dan te starten met een rechtermuisklik op 'Als Administrator uitvoeren'). Met het onderstaande commando schakel je de herkenning in:
Set-MpPreference -PUAProtection 1
Na een herstart is de bescherming actief. Bij de link onderaan staat een testbestand om te kijken of Defender in de verdediging springt. Bij Windows 8 werkt dat PowerShell-commando niet, maar kun je de PUAherkenning activeren via het register.
Veiligheidslekken zijn een andere manier waarop miningmalware op je pc terecht kan komen. Meestal gebruiken cybercriminelen lekken waar inmiddels al patches voor zijn, dus door je besturingssysteem en programma's steeds netjes allemaal up-to-date te houden, voorkom je al veel ellende. Dat geldt vooral voor je browser, browserplug-ins, officesoftware en pdfviewers. Als je Google Chrome gebruikt is dat prima, want die browser is standaard al erg veilig. Hij houdt zichzelf up-to-date en zorgt ook dat de Flash-player en pdf-viewer altijd netjes zijn bijgewerkt.
Browserbescherming
Ook als je pc niet met malware besmet is, kan hij worden benut om cryptovaluta te minen. Als je een website bezoekt die een JavaScript-miningtools als Coinhive gebruikt, kan je cpu ongevraagd flink aan het werk worden gezet. Mocht bij het zoeken naar de reden van minder performance een legitiem browserproces naar boven komen, dan ben je waarschijnlijk een keer bij zo'n website langs geweest. Sluit je tabbladen één voor één af tot de cpu-belasting op een normaal niveau zit. Het kan zijn dat de browser door de flinke performancedip helemaal niet meer reageert. Dan is het advies om de browser via Taakbeheer af te sluiten en hem weer op te starten. De meeste browsers starten de tabbladen die je open had bij het starten weer op. Dan starten dus ook de performancevretende miners weer direct op. Om ervoor te zorgen dat je browser überhaupt niet met minen gaat beginnen, is het zaak de miningscripts te blokkeren. Dat kan bijvoorbeeld met de browserplugin 'No Coin', die beschikbaar is voor zowel Chrome als Firefox. Het werkt als een adblocker, maar op de blacklist staan alleen namen van miningscripts en servers die daarmee zijn geassocieerd. Veel gebruikers hebben al een adblocker draaien met een aan te passen filterlijst. In dat geval is de NoCoin-filterlijst (zie de link hieronder) een simpele manier om bescherming toe te voegen. De lijst is ook beschikbaar als hosts-bestand, zodat je besturingssysteem vanuit zichzelf al verbindingen kan gaan blokkeren met hosts die bekend staan om miningpraktijken.
Bij het gebruik van de browser Opera hoef je geen plug-in te installeren als je het ingebouwde reclamefilter aanzet via de instellingen (Alt+P). Sinds Opera 50 gebruikt het ingebouwde filter de NoCoin-lijst om te voorkomen dat de browser gaat minen. Firefox blokkeert in de privé-modus in ieder geval een aantal populaire miningscripts zoals Coinhive via de filterlijst van Disconnect.me als 'Bescherming tegen volgen' aanstaat. De populaire adblocker uBlock Origin maakt onder andere gebruik van het Easylist-filter, waar ook een aantal miningscripts op staan. uBlock Origin is voor alle populaire browser te krijgen, inclusief Microsoft Edge.
Op de lange termijn zouden miningscripts onder Chrome en Firefox het lastig gaan krijgen om je systeemresources te kapen. JavaScript-miners gebruiken ServiceWorkers om op de achtergrond code uit te voeren. Volgens berichten vanuit Google wordt er gewerkt aan het beperken van het resourcegebruik van ServiceWorkers. Als een tabblad op de voorgrond bezig is, mag het maar 1 in plaats van tot 100 procent cpu-belasting inpikken. Het team achter Firefox werkt ook aan maatregelen waarmee gebruikers meer controle krijgen als het gaat om ongewenste mining via websites. (avs)