Aller au contenu

Investigation SharePoint online & sites partagés

1. Architecture et hiérarchie forensique de SharePoint online

Section intitulée « 1. Architecture et hiérarchie forensique de SharePoint online »

La maîtrise de l’arborescence structurelle de SharePoint Online est indispensable pour circonscrire l’incident et déterminer le périmètre exact d’exposition.

graph TD
subgraph TenantScope ["Racine du Tenant SharePoint (contoso.sharepoint.com)"]
Hub["Sites Hub (Agrégateurs directionnels)"]
CommSite["Sites de communication (Intranet)"]
TeamSite["Sites d'équipe (Liés à un groupe M365)"]
PrivSite["Sites de canaux privés (Collections subordonnées)"]
end
subgraph SiteScope ["Architecture de la collection de sites"]
DocLib["Bibliothèques de documents ('Documents partagés')"]
SubLists["Listes, pages et ressources applicatives"]
Stage1["Corbeille de premier niveau (Accessible utilisateur - 93 j)"]
Stage2["Corbeille de second niveau (Administrateur de site)"]
PHL["Preservation Hold Library (Rétention légale Purview)"]
end
TenantScope --> SiteScope
DocLib -->|Suppression| Stage1
Stage1 -->|Vidage| Stage2
Stage2 -->|Purge sous rétention| PHL
Niveau de conteneurEntité structurelleGouvernance des accèsÉvénements d’audit clésSignification forensique
TenantRacine Admin (-admin.sharepoint.com)Administrateur SharePointSiteCollectionCreated, SiteDeletedConfiguration globale et politiques inter-sites
Collection de sitesURL du site (/sites/Finance/)Administrateurs de collectionSiteCollectionAdminAdded, GroupAddedFrontière de sécurité maître ; héberge les corbeilles
BibliothèqueMagasin de documents (/sites/Finance/Documents)Droits de bibliothèque / Rupture d’héritageFolderCreated, LibraryDeletedEspace principal de stockage documentaire
Élément / fichierObjet binaire (.docx, .xlsx, .pdf)ACLs uniques / Liens de partageFileAccessed, FileDownloaded, SharingSetPreuve d’interaction directe ou de fuite de données
Couche de rétentionPreservation Hold LibraryInaccessible aux utilisateurs standardsFileVersionsAllDeleted, HardDeleteInstantanés immuables des fichiers modifiés sous hold

2. Télémétrie des fichiers : consultation (FileAccessed) versus téléchargement (FileDownloaded)

Section intitulée « 2. Télémétrie des fichiers : consultation (FileAccessed) versus téléchargement (FileDownloaded) »

Dans le journal d’audit unifié (UAL), distinguer la prévisualisation dans le navigateur du téléchargement physique sur le poste client est fondamental pour les déclarations réglementaires de violation de données (RGPD).

flowchart TD
UserAction[Interaction avec le document] --> Path{Mode d'accès}
Path -->|Aperçu Web / WopiFrame| Preview[Office Online / Lecteur WOPI]
Preview --> Ev1["FileAccessed (ExtendedProperties: WOPI)"]
Note over Ev1: Rendu côté serveur; AUCUNE copie locale créée sur le poste
Path -->|Téléchargement direct| Download[Requête HTTP GET vers /_layouts/download.aspx]
Download --> Ev2["FileDownloaded (Client: Navigateur / Script)"]
Note over Ev2: Transfert binaire sur l'endpoint; exfiltration physique prouvée
Path -->|Téléchargement groupé| ZipDownload[Téléchargement d'un dossier en ZIP]
ZipDownload --> Ev3["FileDownloaded (UserAgent: OneDriveBrowserSync / Archive_Zip)"]
Note over Ev3: Multiples fichiers compressés dans un flux sortant unique

Événements critiques de manipulation de fichiers dans l’UAL

Section intitulée « Événements critiques de manipulation de fichiers dans l’UAL »
OpérationDéclencheurPreuve médico-légale apportéeNiveau de preuve
FileAccessedFichier ouvert dans le navigateur ou prévisualiséAtteste de la prise de connaissance du contenuObservé (Niveau 6)
FileDownloadedTéléchargement explicite vers le poste clientProuve le transfert hors du cloud d’entrepriseProuvé (Niveau 7)
FileModifiedContenu modifié, métadonnées altérées ou chiffrement (ransomware)Preuve d’altération malveillanteProuvé (Niveau 7)
FileDeletedÉlément envoyé vers la corbeille de premier niveauNettoyage anti-forensique ou sabotageObservé (Niveau 6)
FileRecycledDéplacement vers la corbeille depuis l’UI webAction utilisateur volontaireObservé (Niveau 6)
FileVersionRestoredRestauration d’une version antérieureTentative de remédiation ou manipulationObservé (Niveau 6)

3. Forensique des liens de partage et des permissions

Section intitulée « 3. Forensique des liens de partage et des permissions »

Les attaquants détournent les liens de partage SharePoint pour exfiltrer des répertoires entiers sans nécessiter de connexions authentifiées suspectes.

sequenceDiagram
autonumber
actor Attacker as Attaquant (Compte compromis)
participant SPO as Site SharePoint Online
participant ExtActor as Récolteur externe (VPN / Tor)
participant UAL as Journal d'audit unifié Purview
Attacker->>SPO: Création d'un lien anonyme sur le dossier Finance
SPO->>UAL: Journalisation 'AnonymousLinkCreated' (/sites/Finance)
SPO-->>Attacker: Restitution de l'URL invitée (https://contoso.sharepoint.com/:f:/g/...)
Attacker->>ExtActor: Transmission du lien via canal C2 externe
ExtActor->>SPO: Requête HTTP GET via le lien invité (Aucun login requis !)
SPO->>UAL: Journalisation 'AnonymousLinkUsed' & 'FileDownloaded' (User: 'Guest')
Note over UAL: FileDownloaded consigné sous l'identité 'urn:spo:guest' !

Lorsqu’un lien public anonyme est utilisé, le champ UserId de l’événement d’audit prend la forme d’un jeton invité spécifique :

{
"UserId": "urn:spo:guest#12345678-abcd-1234-abcd-1234567890ab",
"UserType": "Guest",
"Operation": "FileDownloaded",
"SourceFileName": "Termes_Fusion.pdf",
"ClientIP": "198.51.100.45",
"UserAgent": "python-requests/2.31.0"
}

4. Analyse des corbeilles et triage anti-forensique

Section intitulée « 4. Analyse des corbeilles et triage anti-forensique »

Lors d’attaques destructives ou de dissimulation de preuves, les adversaires procèdent au vidage systématique des corbeilles :

  1. Corbeille de premier niveau (_layouts/15/AdminRecycleBin.aspx) :
    • Contient les éléments supprimés par les utilisateurs. Conservés pendant 93 jours.
    • Les fichiers peuvent être restaurés directement par l’utilisateur ou l’administrateur de site.
  2. Corbeille de second niveau (administrateur de collection de sites) :
    • Lorsque les fichiers sont supprimés de la corbeille utilisateur, ils basculent dans la corbeille de second niveau.
    • Toujours conservés dans la limite des 93 jours initiaux.
  3. Preservation hold library (PHL) :
    • Si une politique de rétention Purview ou une suspension légale (Litigation Hold) est active, la suppression depuis la corbeille de second niveau déplace immédiatement le fichier dans la bibliothèque cachée PreservationHoldLibrary.
    • Protection immuable : les fichiers sous PHL ne peuvent être supprimés par aucun compte utilisateur ni administrateur tant que la période de rétention légale n’est pas échue.
Fenêtre de terminal
# Restauration des fichiers purgés de la corbeille de second niveau par un attaquant
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/Finance" -Interactive
Get-PnPRecycleBinItem -SecondStageOnly | Where-Object {$_.DeletedDate -ge (Get-Date).AddDays(-7)} | Restore-PnPRecycleBinItem

5. Ingénierie de détection : requêtes de chasse KQL

Section intitulée « 5. Ingénierie de détection : requêtes de chasse KQL »
// Détection de téléchargements anormaux et massifs sur SharePoint
CloudAppEvents
| where TimeGenerated >= ago(7d)
| where ActionType == "FileDownloaded"
| extend Workload = tostring(RawEventData.Workload)
| where Workload =~ "SharePoint"
| extend SiteUrl = tostring(RawEventData.SiteUrl)
| extend FileName = tostring(RawEventData.SourceFileName)
| extend Extension = tostring(RawEventData.SourceFileExtension)
| summarize
DownloadCount = count(),
DistinctFiles = dcount(FileName),
Extensions = make_set(Extension, 10),
Sites = make_set(SiteUrl, 5)
by AccountDisplayName, IPAddress, bin(TimeGenerated, 1h)
| where DownloadCount > 50 or DistinctFiles > 30
| sort by DownloadCount desc

6. Playbook d’investigation : réponse à incident SharePoint

Section intitulée « 6. Playbook d’investigation : réponse à incident SharePoint »
  1. Activation immédiate d’un gel de rétention d’urgence : Appliquer une politique de rétention Purview d’urgence sur l’ensemble des sites pour forcer la capture de toute modification ou suppression dans la Preservation Hold Library :

    Fenêtre de terminal
    New-ComplianceSecurityFilter -FilterName "IR_Freeze_Hold" -SecurityFilterAction All
  2. Révocation de tous les liens de partage externes : Désactiver le partage anonyme sur les sites ciblés :

    Fenêtre de terminal
    Set-SPOSite -Identity "https://contoso.sharepoint.com/sites/Finance" -SharingCapability ExistingExternalUserSharingOnly
  3. Audit des élévations de privilèges de site : Inspecter l’UAL pour détecter les événements SiteCollectionAdminAdded et RoleAssignmentAdded accordant des droits à des comptes non autorisés.

  4. Extraction de la liste complète des fichiers exfiltrés : Filtrer l’ensemble des événements FileDownloaded associés aux adresses IP de l’attaquant afin d’établir la liste exhaustive des fichiers compromis pour les autorités de protection des données.