Valse beveiligingstools op GitHub: 2.000 Windows-machines voorzien van backdoor
Een campagne die al twee jaar loopt en eerder jacht maakte op eigenaren van cryptowallets, richt zich nu op de mensen die malware onderzoeken. Volgens onderzoek van Doctor Web (Dr.Web), gepubliceerd op 5 november, zijn meer dan 2.000 Windows-systemen gecompromitteerd via kwaadaardige GitHub-repositories die zich voordoen als beveiligingstools. De lokmiddelen zijn niet grof: ze omvatten een parser, cleaner en formatter voor de uitvoer van de netwerkscanner Fscan, repositories voor scanautomatisering en beveiligingstests, en hulpprogramma's voor logverwerking.
Een lokmiddel voor wie het beter zou moeten weten
De verschuiving van het doelwit is het opvallende deel. Volgens Dr.Web verschenen de eerste geïnfecteerde repositories ongeveer twee jaar geleden en draaiden ze om blockchain-games, bots en cheat-tools, met kwaadaardige code verborgen in Visual Studio-projectbestanden. De huidige golf houdt dezelfde leveringsmechaniek maar verandert de verpakking naar iets wat een analist tijdens een werkdag aannemelijk zou klonen. De repositories bevatten zelfs instructies voor het installeren van Visual Studio en het klonen van het project, wat de drempel voor minder ervaren gebruikers verlaagt. Het artikel van BleepingComputer merkt op dat de operatie al ongeveer twee jaar loopt.Waar de code zich verstopt
De kwaadaardige logica zit niet in het deel van de repository dat een reviewer normaal leest. In .csproj-bestanden zit die in een PreBuildEvent-routine die draait voordat het project compileert. In .suo-bestanden, die de meeste mensen als wegwerpbare editorstatus beschouwen, komt die binnen als een PowerShell-opdracht. In Go- en Python-bronnen, een sample heet FscanOutput_v2.2.py, wordt de code weggeschoven achter lange reeksen witruimte, een oude truc die volgens Dr.Web nog steeds werkt. Die eerste fase, gedetecteerd als PowerShell.Packed.270, wordt geschreven naar paden zoals C:\Users\Public\Pictures\t.ps1 en ontsleutelt een downloadlink voor een archief genaamd Quixo.7z, dat uitpakt naar C:\ProgramData\Windows.Microsoft.Photos.Microsoft.exe is een Electron-applicatie
Het archief levert Microsoft.exe, gedetecteerd als Trojan.Loader.3261 en gebouwd op Electron. Het is modulair, geversioneerd (1.4.5 ten tijde van het rapport) en gedraagt zich als een onderhouden product: het downloadt een tweede versleuteld pakket, Nexara.7z, stuurt systeeminformatie naar een Telegram-bot, zet persistentie op, probeert privileges te escaleren en schakelt Windows Defender, UAC, meldingen, Systeemherstel en Volume Shadow Copy uit terwijl het Defender-uitsluitingen toevoegt. Daarna injecteert het de volgende fasen in legitieme processen, waaronder RegAsm.exe, dwwin.exe en dwm.exe.Deze analyse toont duidelijk aan dat deze aanval zelfs voor ervaren gebruikers een ernstige bedreiging vormt, inclusief professionals in informatiebeveiliging. - Dr.Web
Twee ontwijkmodi en een fallback
De loader bevat verschillende manieren om inspectie te ontlopen. Dr.Web beschrijft een primair Mode3-pad en een Mode2-fallback:- Spoofing van explorer.exe als ouderproces van de loader.
- Smart App Control uitschakelen door de registerwaarde VerifiedAndReputablePolicyState te wijzigen.
- ntdll.dll opnieuw van schijf laden om hooks van beveiligingsproducten te verwijderen, en directe systeemaanroepen via Halo's Gate.
- EtwEventWrite en AmsiScanBuffer in het geheugen patchen om event tracing en scriptscans voor dat proces blind te maken.
- Terugvallen op Defender-uitsluitingen voor regasm.exe en dwm.exe en daarna modules ontsleutelen en injecteren met PowerShell als het primaire pad faalt.
Wat de payloads verzamelen
De laatste fasen zijn een backdoor, een klembordkaper en een infostealer. Twee kopieën van BackDoor.AsyncRAT.115 worden geïnjecteerd op verschillende poorten, wat volgens Dr.Web twee operators in staat stelt dezelfde machine tegelijk te besturen. Trojan.InjectNET.14 plaatst Trojan.Clipper.688 in regasm.exe om cryptowallet-adressen op het klembord te verwisselen, en meldt screenshots en hostgegevens via Telegram. JS.Stealer.191 controleert op sandboxes en virtuele machines voordat het browsergegevens, FileZilla XML-profielen, MobaXterm.ini, de wcx_ftp.ini van Total Commander, VPN-instellingen, messenger-bestanden, gameaccounts en Discord-tokens verzamelt. De gegevens worden gecomprimeerd en via dezelfde Telegram-bot verzonden.Het vangnet weghalen
De loader probeert ook ESET, McAfee en Malwarebytes te verwijderen, en schrijft domeinen van antivirusfabrikanten in het hosts-bestand om die producten af te snijden van hun updateservers. Hij verwijdert alles in system32\drivers\etc behalve een korte whitelist, wat volgens Dr.Web gebeurt om te voorkomen dat de gebruiker back-ups maakt en gebruikt. Ongebruikte code in het sample wijst op een volgende component, een onvoltooid Electron-project genaamd WUDFHost.exe, dat een dienst voor persistentie zou kunnen aanmaken en Microsoft.exe opnieuw kan downloaden als het wordt verwijderd.Waarom kopiëren en plakken van tools een toeleveringsketenprobleem is
Niets hiervan vereist een zero-day of een slimme exploit. Het vereist iemand met een deadline, een zoekmachine en een repository die genoeg lijkt op wat diegene nodig heeft. Beveiligingstools zijn hier extra kwetsbaar voor omdat veel ervan klein zijn, door één auteur geschreven en verspreid als broncode die men geacht wordt uit te voeren. Een parser voor scanneruitvoer is precies wat een analist downloadt, doorscrollt en uitvoert. Hetzelfde geldt voor elk binair bestand dat via een link binnenkomt: herkomst weegt zwaarder dan hoe nuttig het bestand lijkt. Onze gids voor het verifiëren van downloads via Tor behandelt de checksum- en handtekeninggewoonten die dit soort vervanging moeilijker maken.Praktische gewoonten
Een paar controles zouden deze keten op meerdere punten hebben gestopt:- Lees build-hooks. Een PreBuildEvent, een postinstall-script of een Makefile-stap die PowerShell aanroept is code, geen configuratie.
- Bouw tools vanuit een vastgezette commit en vergelijk die commit met degene die je hebt beoordeeld.
- Voer onbekende tools uit in een wegwerp-VM zonder klemborddeling of host-mounts.
- Behandel .suo-, .user- en andere editorstatusbestanden als uitvoerbare inhoud, want in deze campagne waren ze dat.
- Wees wantrouwend tegenover repositories met installatie-instructies voor beginners; dat is een distributiestrategie, geen beleefdheid.










