Integrazioni Applicative Cloud: Cloud Application Integration (T1671)
La tecnica T1671 - Cloud Application Integration descrive l'abuso delle integrazioni OAuth negli ambienti SaaS come Microsoft 365, Google Workspace e Salesforce per stabilire un canale di persistenza silenzioso e resistente alle contromisure tradizionali. L'avversario può registrare un'applicazione custom, introdurre nell'ambiente un'app legittima ma controllata, oppure dirottare un'integrazione già presente per ottenere accesso continuativo ai dati aziendali.
Collocata nella tattica TA0003 (Persistence), questa tecnica si distingue perché sfrutta un meccanismo di autorizzazione considerato lecito: il consenso OAuth. Una volta ottenuto, il consenso genera Application Access Token che sopravvivono alla rotazione delle password, alla disattivazione dell'account che ha concesso il consenso e — dettaglio critico — bypassano l'autenticazione multi-fattore, poiché il token è legato all'applicazione, non all'utente interattivo.
L'impatto operativo è significativo: le integrazioni malevole possono sostenere Automated Exfiltration prolungata nel tempo, restare invisibili nei log di autenticazione standard e apparire come traffico applicativo legittimo. La campagna C0059 (Salesforce Data Exfiltration), iniziata a ottobre 2024 con il threat actor UNC6040, ha dimostrato la maturità operativa di questo vettore: attraverso vishing gli operatori hanno convinto le vittime ad autorizzare connected apps malevole nelle istanze Salesforce corporate, con successiva estorsione da parte di UNC6240 sotto il brand "ShinyHunters". Su questa tecnica MITRE mappa 1 campagna documentata e 2 mitigazioni principali, con detection strategy DET0539.
In un esercizio red team autorizzato, la simulazione di T1671 parte dalla registrazione di un'applicazione multi-tenant nel tenant dell'attaccante e dalla costruzione di un flusso di consenso credibile verso la vittima. Su Microsoft 365 il punto di ingresso operativo è il portale Entra ID App Registrations, dove si definisce l'app, si configurano le delegated permissions e application permissions (scope come Mail.ReadWrite, Files.ReadWrite.All, offline_access) e si ottiene un client_id utilizzabile in URL di consenso mirati.
Per la fase di consent phishing, lo strumento di riferimento in laboratorio è 365-Stealer (open source), che automatizza la generazione del link di consenso, l'intercettazione del refresh token e la successiva enumerazione via Microsoft Graph. In alternativa Offensive365 (open source) e la suite ROADtools (open source), composta da ROADrecon e ROADlib, permettono di post-sfruttare i token ottenuti per enumerare utenti, ruoli, applicazioni registrate e device joinati.
Una catena tipica in ambiente lab prevede:
- Registrazione app nel tenant attaccante con reply URL controllato
- Invio del link di consenso alla vittima (simulazione autorizzata) con branding legittimo
- Cattura del authorization code sul reply URL e scambio con access_token + refresh_token via endpoint token OAuth
- Persistenza tramite refresh token: curl verso l'endpoint token con grant_type=refresh_token rigenera access token validi per l'accesso a Graph API
Il comando operativo per interrogare la mailbox della vittima usando il token ottenuto è, ad esempio, curl -H "Authorization: Bearer $TOKEN" https://graph.microsoft.com/v1.0/me/messages (endpoint sostituito da placeholder nei report ufficiali).
Su Google Workspace la logica è analoga: si crea un progetto in Google Cloud Console, si abilita l'API Gmail o Drive, si configura OAuth consent screen e si distribuisce l'URL di autorizzazione. Il tool GCPTokenReuse e script basati sulla libreria google-auth (open source) coprono la fase di riutilizzo dei token.
Per Salesforce, che è il contesto della campagna C0059, la simulazione richiede la creazione di una Connected App con OAuth abilitato e scope come api, refresh_token, full. L'operatore red team riproduce lo scenario vishing convincendo l'utente ad approvare l'app dal App Manager, ottenendo un consumer key/secret utilizzabile con SFDX CLI (gratuito) o chiamate REST dirette all'endpoint /services/oauth2/token.
Il valore dell'esercizio è dimostrare che revocare la password della vittima non chiude il canale: solo la revoca esplicita del consenso applicativo interrompe la persistenza.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo