NetamLoader abusa del .NET loading su un Windows 10 personalizzato
NetamLoader, un framework di malware loading precedentemente non documentato, è stato individuato su un sistema Windows 10 personalizzato e riservato all'uso governativo in Asia. Kaspersky ha rilevato l'artefatto durante la prima metà del 2026 e ha descritto un'elaborata chain a due fasi che esegue software Microsoft .NET dannoso all'interno di processi legittimi, tentando al contempo di nascondere la propria attività.
La telemetria di Kaspersky ha identificato un solo sistema interessato. I ricercatori non hanno determinato se siano stati compromessi altri computer, se siano state sottratte informazioni o chi abbia condotto l'attacco. Anche il metodo di distribuzione iniziale è sconosciuto. Kaspersky sospetta un attacco alla supply chain, nel quale un aggressore compromette software o servizi ritenuti affidabili dal bersaglio finale, ma il percorso ipotizzato non è stato confermato e nessun fornitore terzo è stato identificato come punto di ingresso.
L'artefatto iniziale era un archivio cabinet di Windows, ossia un CAB file, collocato in `C:\Windows\SoftwareDistribution\Download\e4537a1762fcafd2fd96bfc825bad34f9db9a24`. Il suo contenuto è stato estratto in `C:\Windows\SoftwareDistribution\Download\Install\`, in percorsi normalmente associati agli aggiornamenti del sistema operativo. L'archivio conteneva sette file: `fabric.config`, `Microsoft.HostIntegration.Connectors.dll`, `PatchMyPC-Enum.dll`, `PatchMyPC-Models.dll`, `PatchMyPC-ScriptRunner.exe`, `PatchMyPC-ScriptRunner.exe.config` e `Resources.resx`. Quattro erano componenti legittimi associati al software di endpoint management Patch My PC. Kaspersky ha trovato codice dannoso soltanto all'interno di `Resources.resx`, sebbene gli altri file abbiano contribuito ad avviarlo o elaborarlo.
L'esecuzione è iniziata con `PatchMyPC-ScriptRunner.exe`. Il relativo file di configurazione utilizzava AppDomainManager injection, una tecnica che modifica il modo in cui un'applicazione .NET viene inizializzata, così che un assembly controllato dall'aggressore possa essere eseguito all'avvio del programma legittimo. Ciò ha caricato `Microsoft.HostIntegration.Connectors.dll`, che ha letto `fabric.config` e successivamente elaborato `Resources.resx`. Il risultato ricorda il DLL sideloading, nel quale un processo legittimo viene indotto a eseguire codice indesiderato, ma questa chain ha invece sfruttato il meccanismo di avvio degli application domain del .NET Framework.
Il resource file conteneva diversi livelli di contenuti codificati, compressi o cifrati, inclusi file XAML, assembly .NET e dati JSON. XAML-1 ha caricato un payload XAML-2 incorporato. XAML-2 ha quindi aperto due file compressi e codificati in Base64, denominati XAML-2-1 e XAML-2-2. Il primo era destinato a bypassare AMSI, l'interfaccia di Windows che consente al software di sicurezza di esaminare determinati script e altri contenuti prima dell'esecuzione. Il secondo conteneva un .NET 1 Loader e un pacchetto di dati JSON-1.
JSON-1 era suddiviso in una configurazione command-and-control, denominata JSON-1-c, e in JSON-1-p, che trasportava un .NET 2 Plugin codificato in Base64, oltre a template XAML cifrati e compressi. Il .NET 1 Loader ha decifrato e assemblato XAML-3, comunicato lo stato dell'infezione al command-and-control server e rimosso le prove. La procedura di pulizia riguardava i file estratti dall'archivio CAB, i log relativi all'utilizzo del Common Language Runtime e i file della cache Windows Prefetch.
XAML-3 è stato eseguito all'interno del processo legittimo `dllhost.exe` e ha decodificato, decompresso e caricato il .NET 2 Plugin. Il plugin ha raccolto informazioni sul sistema dal Registro di Windows, verificato di essere in esecuzione all'interno di `dllhost.exe` e letto le impostazioni command-and-control. Ha atteso per un intervallo scelto casualmente tra 20 e 40 minuti prima di contattare `openaigpt4v[.]com`. Ha quindi richiesto ripetutamente un altro payload XAML e poteva eseguire una risposta valida all'interno di un AppDomain isolato, un'area di esecuzione .NET separata.
Kaspersky ha rilevato che, dopo una risposta valida del server, il malware attendeva altri 5-6 minuti prima di contattarlo nuovamente. Se non riceveva una risposta valida, entrava in una pausa molto più lunga, compresa tra 22 e 28 ore, verificando ogni 10 minuti se tale intervallo fosse trascorso. Questi ritardi, i payload a più livelli, l'esecuzione all'interno di processi affidabili e l'eliminazione degli artefatti locali rendono più difficile un'indagine diretta, sebbene Kaspersky non abbia stabilito quale codice successivo il server abbia distribuito alla vittima identificata.
Il Paese asiatico interessato non è stato reso noto. Kaspersky ha valutato la Cina come possibile località perché Microsoft fornisce Windows 10 China Government Edition agli enti governativi e alle imprese statali, ma ciò non è stato confermato. La questione tecnica più ampia è che gli ambienti di sistema operativo fortemente personalizzati richiedono processi maturi e specifici di manutenzione e sicurezza, in particolare quando gli aggiornamenti e gli strumenti di gestione fanno parte della software supply chain.
Per i team IT, gli indicatori più concreti sono il percorso del file indicato, l'insolita combinazione di file, l'esecuzione tramite `dllhost.exe` e il contatto con il dominio command-and-control segnalato. La loro presenza deve essere esaminata nel relativo contesto, poiché diversi componenti dell'archivio sono legittimi e i loro nomi, da soli, non dimostrano un'infezione. Per le organizzazioni che cercano supporto esterno riguardo a questo tipo di rischio operativo, AEU-I offre servizi IT, infrastrutturali e di consulenza con la sicurezza come priorità.
NetamLoader rimane una minaccia osservata in un ambito ristretto, anziché una campagna di massa documentata. Il suo operatore, il meccanismo di distribuzione iniziale, il numero complessivo delle vittime e l'impatto sono ancora sconosciuti, ma il caso dimostra come componenti applicativi affidabili e il comportamento di avvio di .NET possano essere combinati per nascondere una malware chain a più livelli in un'installazione Windows specializzata.