Estensioni Malevole: Software Extensions (T1176)
La tecnica T1176 - Software Extensions descrive l'abuso di componenti modulari che estendono le funzionalità di applicazioni come browser web, IDE e piattaforme di produttività. Questi moduli ereditano i permessi e il livello di accesso dell'applicazione host, il che li rende un vettore particolarmente insidioso per stabilire persistenza sui sistemi compromessi.
MITRE colloca questa tecnica nella tattica TA0003 (Persistence), ovvero la fase della kill chain in cui l'avversario consolida il proprio accesso attraverso riavvii, cambi di credenziali e altre interruzioni operative. L'installazione di un'estensione malevola sopravvive ai reboot, si riattiva a ogni avvio dell'applicazione host e sfrutta la fiducia intrinseca che utenti e sistemi di sicurezza ripongono nei marketplace ufficiali.
I metodi di introduzione includono social engineering, marketplace compromessi, typosquatting di nomi noti e installazione diretta da parte di attori che hanno già ottenuto accesso al sistema. Le protezioni dei marketplace risultano spesso insufficienti a rilevare payload offuscati o comportamenti attivati solo dopo giorni dall'installazione. L'avversario può inoltre abusare di estensioni benigne — sfruttandone la funzionalità legittima per tunnelare dati o bypassare controlli di rete — senza dover distribuire codice palesemente malevolo.
MITRE documenta 5 mitigazioni ufficiali (M1017, M1033, M1038, M1047, M1051) e la detection DET0092 con analitiche dedicate per Windows, macOS e Linux. La sfida principale resta la distinzione tra estensioni legittime e componenti ostili in ambienti dove browser e IDE eseguono routinariamente decine di moduli di terze parti.
Nella simulazione red team di T1176, l'obiettivo è dimostrare come un'estensione apparentemente innocua possa fornire persistenza browser-side e canali di esfiltrazione difficili da rilevare. Il target primario resta Chromium/Edge/Firefox, seguito da IDE come Visual Studio Code che espone un'API di estensioni potente e poco monitorata.
Per un lab controllato su Chrome, la struttura minima di un'estensione persistente richiede un manifest.json con permission elevate ("permissions": ["tabs", "cookies", "storage", "<all_urls>"]) e un service worker (Manifest V3) che gestisce eventi in background. Il caricamento in modalità sviluppatore avviene navigando a chrome://extensions/, abilitando Developer mode e usando Load unpacked. Per il deployment enterprise-simulato si sfruttano le policy di gruppo:
reg add "HKLM\Software\Policies\Google\Chrome\ExtensionInstallForcelist" /v 1 /t REG_SZ /d "
Questa chiave forza l'installazione silente al prossimo avvio del browser, senza notifica utente. Su macOS l'equivalente passa per configuration profile plist distribuiti via MDM.
Per VS Code, un'estensione malevola può essere packagizzata con vsce (open source, npm install -g @vscode/vsce) e installata via code --install-extension pacchetto.vsix. L'API vscode.workspace consente accesso a tutti i file aperti, mentre child_process in un contesto Node.js permette esecuzione arbitraria — un vettore di supply chain particolarmente rilevante dato che sviluppatori spesso operano con accesso a repository sensibili e chiavi cloud.
Per la ricerca offensiva su estensioni Chrome esistenti, strumenti come CRXcavator (gratuito, servizio web) e Chrome-Extension-Downloader (open source) permettono di estrarre e analizzare pacchetti CRX per identificare permission eccessive o pattern sospetti in codice legittimo che potrebbe essere abusato.
Catene d'attacco tipiche in un engagement:
- Fase 1: consegna via phishing con link a un finto marketplace o typosquat di un'estensione popolare
- Fase 2: installazione tramite social engineering ("abilita la modalità sviluppatore per usare questo tool") oppure, se si ha già accesso admin, via GPO/registry
- Fase 3: il service worker stabilisce connessioni verso C2 usando
fetch()— traffico che appare originare dal browser legittimo e attraversa proxy aziendali senza attriti - Fase 4: esfiltrazione di cookie di sessione (
chrome.cookies.getAll) per session hijacking di applicazioni SaaS
Per lab isolati, BeEF (open source) offre moduli utili per comprendere il modello di attacco browser-based, mentre estensioni di ricerca come quelle documentate nei repository accademici mostrano tecniche di offuscamento e attivazione ritardata utili per esercitazioni di detection engineering.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo