Gli aggressori hanno impiegato un framework per il caricamento di assembly .NET finora non documentato, chiamato NetamLoader, contro una build personalizzata di Windows 10 riservata a enti governativi in Asia, come riportato da The Hacker News, citando una ricerca che Kaspersky ha illustrato questa settimana. Il framework consente agli attaccanti di recuperare ed eseguire ulteriori payload all'interno dei processi di Windows, cancellando file e tracce di esecuzione.
La telemetria di Kaspersky ha individuato una sola vittima in Asia. L'attività non è stata attribuita a un threat actor noto, e resta da chiarire se l'intrusione si sia estesa oltre un sistema o abbia portato al furto di informazioni sensibili.
Il paese preso di mira non è stato reso noto. The Hacker News ha ipotizzato la Cina come possibilità plausibile, perché Microsoft offre Windows 10 China Government Edition a enti governativi e statali cinesi. Si tratta però di un'inferenza della testata, non di un'identificazione confermata della vittima.
Un archivio nella directory degli aggiornamenti avvia la catena
Kaspersky ha rilevato l'artefatto nella prima metà del 2026 all'interno di un archivio Windows cabinet, o file CAB, conservato in una directory usata per i pacchetti di aggiornamento del sistema operativo:
C:\Windows\SoftwareDistribution\Download\e4537a1762fcafd2fd96bfc825bad34f9db9a24
Il contenuto dell'archivio è stato estratto in C:\Windows\SoftwareDistribution\Download\Install\. Il metodo di distribuzione resta sconosciuto. Si sospetta una compromissione della supply chain che coinvolga un fornitore terzo di fiducia, ma non è stata accertata.
Il CAB 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 di Patch My PC, un prodotto di gestione degli endpoint. Solo Resources.resx conteneva codice malevolo.
L'esecuzione è iniziata con PatchMyPC-ScriptRunner.exe. La catena sfruttava l'iniezione di AppDomainManager, che dirotta il meccanismo di .NET Framework responsabile dell'inizializzazione dei domini applicativi all'avvio di un'applicazione. Come il DLL sideloading, consente di eseguire codice malevolo all'interno del processo di un'applicazione legittima.
In questo caso, l'eseguibile analizzava PatchMyPC-ScriptRunner.exe.config, facendo eseguire Microsoft.HostIntegration.Connectors.dll. Questo componente individuava e analizzava il file adiacente fabric.config, quindi caricava Resources.resx.
Il file di risorse conteneva più livelli di contenuti codificati, compressi o cifrati, tra cui file XAML, assembly .NET e dati JSON. Ogni componente decodificava e caricava il successivo, facendo passare l'esecuzione attraverso una catena in due fasi.
Payload a più livelli eludono la scansione e cancellano le tracce
Il primo loader XAML, etichettato XAML-1 dai ricercatori, caricava un payload incorporato chiamato XAML-2. Quest'ultimo inizializzava la seconda fase caricando due file XAML compressi e codificati in Base64, XAML-2-1 e XAML-2-2. XAML-2-1 forniva un bypass dell'Antimalware Scan Interface, o AMSI.
XAML-2-2 conteneva un modulo .NET chiamato .NET 1 Loader e un payload JSON chiamato JSON-1. I dati JSON si dividevano in due componenti: JSON-1-c conteneva la configurazione del command-and-control, mentre JSON-1-p includeva un assembly codificato in Base64 chiamato .NET 2 Plugin e modelli XAML compressi e cifrati, usati per costruire XAML-3.
Dopo che XAML-2-2 ha caricato .NET 1 Loader, quel modulo decifrava, assemblava e caricava XAML-3. Inoltre inviava lo stato al server di command-and-control e rimuoveva i file malevoli estratti dall'archivio CAB, i log di utilizzo CLR e i file della cache Prefetch di Windows, per nascondere le tracce dell'esecuzione.
XAML-3 è stato eseguito all'interno di dllhost.exe, dove ha decodificato, decompresso e caricato .NET 2 Plugin. Il plugin caricava la propria configurazione di command-and-control, raccoglieva informazioni di sistema dal Registro di sistema di Windows e verificava se il processo host corrente fosse dllhost.exe.
Un bersaglio riservato ai governi e comunicazioni differite
L'attacco si concentra su una build di Windows riservata esclusivamente ai governi. Nel contesto normativo collegato, The Hacker News ha citato un rapporto di Bloomberg di agosto secondo cui il Ministero della Sicurezza di Stato cinese avrebbe ordinato ad alcune agenzie governative di sostituire «Government Edition» di Windows con distribuzioni Linux di produzione cinese, per ridurre la dipendenza da tecnologie straniere. Bloomberg ha attribuito l'istruzione a preoccupazioni per la sicurezza dei dati, citando persone al corrente della questione.
La valutazione più ampia di Kaspersky è che i paesi che sviluppano sistemi operativi e altre piattaforme core ottengono il controllo su sviluppo, funzionamento e aggiornamenti, ma si assumono anche la responsabilità di proteggere l'ecosistema che li circonda. Portare a maturità le operazioni e la manutenzione richiede tempo, ha affermato l'azienda.
Per chi analizza questa catena, il comportamento documentato nelle comunicazioni include ritardi consistenti. Nel campione rilevato nella prima metà del 2026, .NET 2 Plugin ha atteso un intervallo casuale tra 20 e 40 minuti prima di effettuare la prima richiesta a openaigpt4v[.]com. Successivamente recuperava periodicamente un file XAML e lo eseguiva in un AppDomain isolato.
Una risposta valida dal server di command-and-control faceva scattare una pausa di cinque o sei minuti prima della richiesta successiva. Altrimenti, il plugin attendeva tra 22 e 28 ore, controllando ogni dieci minuti se l'intervallo fosse trascorso.




