Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Le estensioni browser rappresentano uno dei vettori di persistenza più insidiosi nel panorama delle minacce moderne. Questi piccoli programmi, progettati per arricchire le funzionalità del browser, ereditano i permessi già concessi dall'utente — accesso a credenziali, cookie, sessioni autenticate — e operano all'interno di un processo considerato legittimo dal sistema operativo. La tecnica T1176.001 ricade nella tattica Persistence (TA0003), che descrive i meccanismi adottati dagli avversari per mantenere l'accesso al sistema compromesso anche dopo riavvii, aggiornamenti o rotazione delle credenziali.
L'attacco può avvenire in diversi modi: download da store ufficiali con estensioni mascherate da tool legittimi, ingegneria sociale, manipolazione diretta dei file di configurazione del browser (come Preferences e Secure Preferences nei browser Chromium-based) oppure, su macOS precedente alla versione 11, installazione silenziosa tramite profili .mobileconfig. Il risultato è lo stesso: un'estensione persistente che può sottrarre dati, funzionare come installer per RAT, o persino operare come backdoor C2 per una botnet.
I dati parlano chiaro: 6 famiglie malware documentate sfruttano questa tecnica, insieme a 1 gruppo APT noto. Le 5 mitigazioni disponibili coprono dall'hardening delle policy browser alla formazione utenti, segno che la difesa richiede un approccio multilivello.
La simulazione di un'estensione browser malevola in ambiente red team è un esercizio estremamente istruttivo, perché dimostra quanto sia semplice ottenere persistenza senza toccare il registro di sistema o i meccanismi di avvio classici. L'approccio più realistico consiste nel creare un'estensione Chromium minimale e caricarla manipolando i file di configurazione del browser.
Parti creando la struttura dell'estensione. Serve un manifest.json che dichiari i permessi desiderati — tabs, cookies, webRequest, storage — e un file background.js che implementi la logica malevola simulata, come l'invio dei cookie a un server C2 di laboratorio. Questa struttura va posizionata in una directory sotto il profilo utente.
Su Windows, il percorso dei file di configurazione Chrome è tipicamente sotto %LOCALAPPDATA%\Google\Chrome\User Data\Default\. Con il browser chiuso, puoi modificare il file Preferences (JSON) per iniettare la tua estensione nella sezione extensions.settings, specificando path, permessi e stato attivo. Il file Secure Preferences include hash di integrità che Chrome verifica al riavvio: in ambienti di test, puoi rigenerare gli HMAC oppure lavorare con Chromium in modalità che non li valida.
Su Linux il principio è identico, ma il profilo Chrome risiede in ~/.config/google-chrome/Default/. Puoi automatizzare l'iniezione con uno script bash che usa jq (open source) per manipolare il JSON:
jq '.extensions.settings += {"
Su macOS, per versioni precedenti alla 11, il comando profiles permetteva l'installazione silenziosa di file .mobileconfig contenenti configurazioni per estensioni Safari. Su macOS 11+ il file .mobileconfig può essere piazzato sul disco, ma richiede interazione utente per l'installazione — uno scenario perfetto per simulare social engineering in un engagement.
Per un approccio più strutturato, il framework Manifest V3 Extension Testing di Chrome DevTools (gratuito) consente di caricare estensioni in modalità sviluppatore con chrome://extensions in modalità "Carica estensione non pacchettizzata". Durante l'assessment, verifica che l'EDR del cliente rilevi la creazione di nuovi file nella directory delle estensioni e la modifica dei file Preferences.
Strumenti utili per l'analisi delle estensioni esistenti includono CRXcavator (freemium), un servizio che analizza il rischio delle estensioni Chrome, e Extension Source Viewer (open source), che permette di ispezionare il codice sorgente di qualsiasi estensione dallo store.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo