Revocare tutte le condivisioni di OneDrive dopo un hack: guida completa (manuale, PowerShell e Graph)

Il tuo OneDrive è stato compromesso? Questa guida pratica ti spiega come revocare ogni condivisione (file, cartelle e sottocartelle), cosa puoi fare subito dall’interfaccia web e come automatizzare la bonifica con PowerShell e Microsoft Graph. Include checklist post‑incidente e buone pratiche future.

Indice

Obiettivo: azzerare ogni “back‑door” di condivisione

Quando un account Outlook/OneDrive viene compromesso, gli aggressori spesso creano link di condivisione pubblici (“Chiunque abbia il collegamento”) o aggiungono accessi diretti a persone o indirizzi controllati da loro. Anche se cambi la password, quei link continuano a funzionare finché non li revochi. L’obiettivo è rimuovere tutti i collegamenti e i diritti espliciti, a ogni livello della gerarchia (cartelle, sottocartelle e file contenuti).

Cosa devi sapere prima di iniziare

  • Due modi di condividere:
    • Collegamenti (link) – danno accesso a chiunque possieda il link o a determinati destinatari.
    • Accesso diretto – utenti/gruppi a cui hai concesso permessi espliciti (Visualizzazione/Modifica/Proprietario).
  • Ereditarietà: un link su una cartella espone anche i contenuti; ma se un file ha un suo link indipendente, revocare la condivisione sulla cartella non elimina i link del file. Per questo serve una verifica “dal basso verso l’alto”.
  • OneDrive personale vs OneDrive per l’organizzazione (Microsoft 365): l’interfaccia è simile, ma in ambito aziendale/scuola l’amministratore può aiutare con policy e strumenti centralizzati. Più avanti trovi un capitolo dedicato.

Azioni rapide dall’interfaccia OneDrive (personale)

Cosa serveCome farlo (interfaccia OneDrive personale)
Verificare cosa è condivisoAccedi a OneDrive via browser. Nel riquadro a sinistra seleziona Condivisi → Condivisi da me: vedi l’elenco completo di elementi esposti.
Revoca manuale (non esiste ancora un comando “Togli tutto”)Per ogni file/cartella interessata: Apri il menu dell’elemento e scegli Gestisci accesso. In Collegamenti clicca × accanto a ciascun link → Rimuovi collegamento. In Accesso diretto (persone con diritti espliciti) apri il menu sul permesso → Rimuovi accesso. Ripeti anche su sottocartelle e file contenuti (le autorizzazioni ereditate non vengono annullate automaticamente).
Revoca semiautomatica (richiede competenze tecniche)Microsoft 365 Family/Business/School: puoi esportare un rapporto di condivisione dal Centro sicurezza & conformità o usare PowerShell (cmdlet a livello SharePoint/OneDrive) per individuare permessi esterni e rimuoverli. Microsoft Graph API: enumera gli elementi con permessi (/me/drive, /drives/{id}/items/{id}/permissions) e rimuovi ogni permission con DELETE. Strumenti di terze parti che usano Graph (es. alcune CLI “onedrive” e automazioni basate su Graph) possono aiutare a scriptare la revoca ricorsiva. Verifica che supportino la gestione delle permissions; in caso contrario usa direttamente Graph.
Protezione account post‑incidenteCambia password, abilita MFA e rigenera eventuali password/app legacy. Chiudi le sessioni attive dal pannello di sicurezza dell’account Microsoft. Controlla regole di inoltro/filtri in Outlook (possibile vettore persistente).

Limiti attuali

  • OneDrive personale non offre un pulsante “Revoca tutto”; serve intervenire elemento per elemento.
  • L’opzione Interrompi condivisione è visibile solo se esistono link sull’elemento; può essere nel menu a seconda della versione UI.
  • Revocare l’accesso su una cartella non rimuove i link impostati singolarmente sui file contenuti.

Procedura passo‑passo di bonifica (consigliata)

  1. Metti in sicurezza l’account (subito):
    • Modifica la password e abilita l’autenticazione a più fattori.
    • Revoca i token OAUTH e termina le sessioni su tutti i dispositivi dal pannello di sicurezza dell’account.
    • Controlla recapiti di recupero e metodi MFA registrati: rimuovi ciò che non riconosci.
  2. Blocca la superficie di attacco (se sei in Microsoft 365 con supporto IT):
    • Chiedi all’amministratore di disabilitare temporaneamente i link “Chiunque” per il tuo OneDrive e, se necessario, di impostare il sito in sola disponibilità al proprietario durante la bonifica.
    • Facoltativo (organizzazioni): imposta la creazione predefinita dei link su “Persone specifiche” o “Persone della mia organizzazione”.
  3. Elenca tutto ciò che è stato condiviso:
    • OneDrive web → Condivisi da me. Esporta/annota l’elenco.
    • Se sono coinvolte molte voci, prepara uno script con Graph (vedi capitolo tecnico) per scansionare l’intero drive e filtrare gli elementi con la facet shared o con permissions non vuote.
  4. Revoca i link di condivisione:
    • Dalla UI: Gestisci accesso → Collegamenti → × → Rimuovi collegamento.
    • Automazione: con Graph/PowerShell elimina tutte le permissions di tipo link (link tipo anonymous e organization).
  5. Revoca l’accesso diretto:
    • Dalla UI: Gestisci accesso → Accesso diretto e rimuovi gli utenti che non devono più accedere.
    • Automazione: rimuovi le permissions con grantedTo/grantedToIdentities che non siano il proprietario.
  6. Riesegui una scansione finale:
    • Ricontrolla Condivisi da me e verifica che non restino elementi esposti.
    • Testa eventuali link che avevi salvato: devono restituire richiesta di permesso o errore di accesso.
  7. Rinforza la postura di sicurezza:
    • Outlook: elimina regole sospette (inoltro automatico, spostamenti nascosti), controlla le deleghe di casella, disabilita eventuali inoltri automatici non autorizzati.
    • Esamina i dispositivi collegati all’account Microsoft e rimuovi quelli che non riconosci.

OneDrive per l’organizzazione (Microsoft 365): opzioni extra

Se usi un account aziendale o scolastico, coinvolgi il tuo amministratore: oltre alle azioni dal portale OneDrive, può applicare policy e misure di contenimento che accelerano e rendono più sicura la bonifica.

  • Blocchi temporanei:
    • Impostare il sito personale (OneDrive) in modalità condivisione Limitata o Disabilitata finché non hai completato la revoca.
    • Forzare la scadenza o il blocco dei link “Chiunque”.
  • Rapporti di condivisione: esportare un elenco degli elementi condivisi esternamente per cross‑check.
  • PowerShell/Graph a livello tenant: rimuovere utenti esterni aggiunti, ripulire gruppi/permessi anomali, invalidare i token di accesso dell’utente compromesso.

Automatizzare la revoca con Microsoft Graph (per utenti esperti)

Graph espone le permissions di ogni elemento. Strategia tipica:

  1. Recupera l’ID del tuo drive (GET /me/drive).
  2. Scansiona il contenuto: usa /drives/{driveId}/root/delta per enumerare tutti gli elementi in modo efficiente (supporta paginazione). Filtra quelli con shared presente o con permissions non vuote.
  3. Per ogni elemento “condiviso”, richiama GET /drives/{driveId}/items/{itemId}/permissions.
  4. Rimuovi tutte le permissions non necessarie con DELETE /drives/{driveId}/items/{itemId}/permissions/{permId} (i permessi del proprietario non sono eliminabili e non vanno toccati).

Esempio PowerShell con Microsoft Graph

Prerequisiti: modulo Microsoft Graph, accesso con ambito Files.ReadWrite.All. Esegui interattivamente dal tuo profilo compromesso già messo in sicurezza.

# Accedi a Microsoft Graph con i permessi necessari
Connect-MgGraph -Scopes "Files.ReadWrite.All","offline_access"
Select-MgProfile -Name "v1.0"

Ottieni il drive corrente

\$drive   = Invoke-MgGraphRequest -Method GET -Uri "/me/drive"
\$driveId = \$drive.id

function Remove-AllItemPermissions {
param(\[string]\$DriveId, \[string]\$ItemId)

\$perms = Invoke-MgGraphRequest -Method GET -Uri "/drives/\$DriveId/items/\$ItemId/permissions"
foreach (\$p in \$perms.value) {
\# Evita di toccare il proprietario; elimina link anonimi/organizzazione e accessi diretti non desiderati
if (\$p.roles -and \$p.id) {
try {
Invoke-MgGraphRequest -Method DELETE -Uri "/drives/\$DriveId/items/\$ItemId/permissions/\$(\$p.id)"
Start-Sleep -Milliseconds 150  # throttling gentile
} catch {
Write-Warning "Impossibile rimuovere permission \$(\$p.id) per item \$ItemId: \$($\_.Exception.Message)"
}
}
}
}

Scansiona l'intero drive con delta (performante su grandi librerie)

\$uri = "/drives/\$driveId/root/delta?\`\$select=id,name,folder,file,shared"
do {
\$page = Invoke-MgGraphRequest -Method GET -Uri \$uri

foreach (\$item in \$page.value) {
\# Elaboriamo solo elementi condivisi (shared facet presente) o cartelle (che spesso propagano condivisioni)
\$isShared = \$null -ne \$item.shared
if (\$isShared) {
Remove-AllItemPermissions -DriveId \$driveId -ItemId \$item.id
}
}

\$uri = \$page.'@odata.nextLink'
} while (\$uri)

Revoca anche le sessioni (utile post-incidente)

Invoke-MgGraphRequest -Method POST -Uri "/me/revokeSignInSessions" | Out-Null

Write-Host "Revoca completata. Esegui una verifica manuale in 'Condivisi da me'." 

Nota: su ambienti personali (account Microsoft non aziendale) l’autorizzazione della tua app Graph può richiedere un flusso leggermente diverso rispetto a tenant Azure AD; in caso di difficoltà usa l’interfaccia web per la bonifica manuale e, se necessario, chiedi supporto IT.

Automazione con PowerShell per scenari aziendali

  • Invalidazione sessioni dell’utente compromesso (impedisce a token rubati di restare validi) tramite endpoint dedicato di Graph, come mostrato sopra.
  • Rimozione utenti/gruppi esterni aggiunti al sito OneDrive (SharePoint): operazione utile se l’attaccante ha creato permessi a livello di sito, oltre ai link sui singoli elementi.
  • Policy di condivisione: impostare predefiniti restrittivi (link a Persone specifiche; scadenza automatica; disattivazione link anonimi).

Controlli post‑incidente su Outlook e account

Molte compromissioni sfruttano persistenza lato posta. Esegui questi controlli:

  • Regole di posta (Outlook sul web): apri le Impostazioni → Posta → Regole; elimina tutto ciò che inoltra, sposta o elimina messaggi senza motivo. Controlla anche “Inoltro” e “Accesso delegato”.
  • Dispositivi e app connessi: dal tuo account Microsoft rimuovi i dispositivi non riconosciuti e revoca l’accesso ad app sospette.
  • MFA: abilita un secondo fattore solido (app di autenticazione). Disabilita SMS se non strettamente necessario e conserva codici di recupero offline in luogo sicuro.
  • Metodi di recupero: verifica che email/telefono di recupero siano tuoi.

Domande frequenti

Esiste un pulsante “Revoca tutto” in OneDrive?

No. Al momento non esiste un comando nativo che annulli ogni condivisione con un click su OneDrive personale. Va fatto elemento per elemento oppure automatizzato via Graph/PowerShell.

Interrompere la condivisione di una cartella basta a chiudere tutto?

Non sempre. Se file all’interno hanno link propri o accessi diretti, resteranno condivisi. Verifica e rimuovi i permessi anche sui file.

Le persone che avevano già scaricato i file perdono le copie?

No. La revoca impedisce nuove aperture via link o accessi diretti, ma non cancella eventuali copie già ottenute.

Gli strumenti CLI di terze parti (es. “onedrive” per Linux) possono revocare i link?

Alcune CLI si concentrano sulla sincronizzazione; altre espongono le permissions via Graph. Verifica che la tua CLI supporti lettura e cancellazione delle permissions; in mancanza, puoi sempre usare direttamente Graph come mostrato negli esempi.

Quanto tempo impiega la revoca a propagarsi?

Di solito è immediata; in casi eccezionali possono esserci brevi ritardi di propagazione. Verifica ricaricando la pagina o accedendo da una sessione in incognito.

Errori comuni da evitare

  • Fermarsi al primo livello: controlla sempre sottocartelle e file; le eredità non si spazzano via da sole.
  • Dimenticare i link “Chiunque”: sono i più rischiosi; rimuovili per primi.
  • Ignorare Outlook: regole di inoltro nascoste riaprono la porta all’attaccante.
  • Non chiudere le sessioni: token vecchi possono restare validi per un po’. Revocali.

Buone pratiche per il futuro

  1. Condivisioni mirate: usa Persone specifiche invece di Chiunque abbia il collegamento.
  2. Alias e-mail: quando possibile, condividi con un alias Microsoft, non con l’indirizzo principale.
  3. Revisione periodica: controlla regolarmente Condivisi da me e rimuovi ciò che non serve più.
  4. Feedback a Microsoft: chiedi un comando di “revoca globale” tramite l’app Hub di Feedback; più segnalazioni aumentano la priorità.
  5. Scadenza e password dei link (dove supportato): imposta date di scadenza e, se disponibile, password del collegamento.
  6. Default restrittivo (aziende): configura la creazione predefinita dei link su “Persone specifiche”.
  7. MFA ovunque: obbligatoria per gli account che accedono a dati sensibili.

Checklist rapida

  • ✔ Password cambiata e MFA attiva.
  • ✔ Sessioni e token revocati dall’account Microsoft.
  • ✔ “Condivisi da me” interamente bonificato (link + accesso diretto).
  • ✔ Verifica manuale di alcuni vecchi link (devono essere invalidi).
  • ✔ Regole e inoltri Outlook rimossi.
  • ✔ Dispositivi e app connesse controllati.
  • ✔ Policy di condivisione più restrittive impostate (se in azienda).

Esempio avanzato: rimozione ricorsiva mirata (solo link anonimi)

Se vuoi mantenere condivisioni interne ma rimuovere solo i link anonimi (“Chiunque”), filtra per link/Scope nelle permissions:

# Dopo il Connect-MgGraph e driveId come sopra...
function Remove-AnonymousLinksOnly {
  param([string]$DriveId, [string]$ItemId)

\$perms = Invoke-MgGraphRequest -Method GET -Uri "/drives/\$DriveId/items/\$ItemId/permissions"
foreach (\$p in \$perms.value) {
\$isLink     = \$p.link -ne \$null
\$isAnyone   = \$isLink -and (\$p.link.scope -eq "anonymous")
if (\$isAnyone) {
Invoke-MgGraphRequest -Method DELETE -Uri "/drives/\$DriveId/items/\$ItemId/permissions/\$(\$p.id)"
Start-Sleep -Milliseconds 100
}
}
} 

Verifica finale della bonifica

Dopo gli script, completa sempre con una verifica manuale:

  1. Apri Condivisi da me e assicurati che l’elenco sia vuoto o contenga solo condivisioni intenzionali.
  2. Per 2‑3 elementi critici, apri Gestisci accesso e conferma che Collegamenti sia vuoto.
  3. Se un file deve restare condiviso con persone specifiche, ricrea un link privato e invialo nuovamente.

In sintesi

Non esiste ancora un pulsante “Revoca tutto” in OneDrive personale: la via nativa è rimuovere le condivisioni file per file e cartella per cartella partendo da Condivisi da me. In ambito Microsoft 365 puoi accelerare con PowerShell/Microsoft Graph, affiancando misure di sicurezza post‑incidente (MFA, revoca token, pulizia regole Outlook). Una volta terminata la bonifica, imposta policy più restrittive e controlli periodici per prevenire future esposizioni.


Tabella riepilogativa (problema → soluzione)

ProblemaSoluzione consigliata
Collegamenti “Chiunque” attiviRimuovi i link dall’UI (Gestisci accesso) o via Graph filtrando link.scope=anonymous.
Utenti aggiunti con accesso direttoElimina gli utenti in Accesso diretto o rimuovi le permissions via Graph.
Molti elementi condivisiUsa uno script con delta per scansionare tutto il drive e cancellare in blocco le permissions.
Persistenza via postaRimuovi regole di inoltro/filtri in Outlook; invalida sessioni/token; verifica deleghe.
Ripristino operativo sicuroRe‑condividi solo con “Persone specifiche”, imposta scadenze e revisioni periodiche.

Sezione tecnica di riferimento rapido (Microsoft Graph – endpoint chiave)

  • GET /me/drive — ottieni il tuo drive.
  • GET /drives/{driveId}/root/delta — enumera incrementale di tutti gli item.
  • GET /drives/{driveId}/items/{itemId}/permissions — elenca i permessi.
  • DELETE /drives/{driveId}/items/{itemId}/permissions/{permId} — rimuove una permission.
  • POST /me/revokeSignInSessions — invalida i token di accesso (post‑incidente).

Consiglio operativo: se la libreria è molto grande, esegui la bonifica in blocchi (per percorso o per data di modifica) e inserisci pause tra le chiamate per evitare limiti di soglia (throttling). Conserva un log delle permissions rimosse così da poter ripristinare eventuali condivisioni legittime.

Indice