Documentation Index
Fetch the complete documentation index at: https://docs.snakysec.com/llms.txt
Use this file to discover all available pages before exploring further.
Microsoft Graph Permissions
Scopes requis par l’app Entra utilisée pour l’audit MSSP (app-only, read-only).Principe
- App-only — Pas de permissions déléguées. L’auth se fait via OIDC Workload Identity Federation (GitLab CI) ou cert X.509 (hors CI).
- Read-only strict — Aucune permission
ReadWritenécessaire. Toute remédiation passe par le MSSP en sessions séparées. - Least privilege — Un app registration dédié par environnement (dev / prod), jamais partagé avec d’autres outils.
Permissions Graph (app role)
Base minimale pour les 220 contrôles évalués :| Scope | Utilisé par |
|---|---|
Directory.Read.All | Users, groups, organization settings |
Policy.Read.All | Authorization policy, authentication methods, CA policies |
Policy.Read.ConditionalAccess | Évaluation détaillée CA (5.2.2., 5.2.3.) |
RoleManagement.Read.All | Role assignments, PIM eligibility |
RoleManagement.Read.Directory | roleManagementPolicies (PIM rules) |
RoleEligibilitySchedule.Read.Directory | PIM eligibility schedules |
PrivilegedAccess.Read.AzureAD | Legacy PIM, backward compat |
UserAuthenticationMethod.Read.All | Authentication method configurations |
IdentityRiskEvent.Read.All | Sign-in / user risk (CA risk-based) |
DeviceManagementConfiguration.Read.All | Intune device config |
DeviceManagementManagedDevices.Read.All | Intune device inventory |
DeviceManagementRBAC.Read.All | Intune role assignments |
DirectoryRecommendations.Read.All | Entra recommendations |
Reports.Read.All | Usage & audit reports |
ReportSettings.Read.All | Report retention & identifying user |
SharePointTenantSettings.Read.All | SharePoint tenant config |
ThreatHunting.Read.All | Defender hunting queries |
OnPremDirectorySynchronization.Read.All | Test-MsspTenantHybrid (détection AD Connect) |
Exchange Online + Security & Compliance PS
Pour les contrôles CIS-EXO et SCuBA EXO, le runner utilise cmdlets en + de Graph :Exchange.ManageAsApp(Graph app permission) + rôle Exchange OnlineView-Only Configurationassigné au service principal- S&C PS (
Connect-IPPSSession) pour les contrôles DLP / Alerts / Audit retention (SCuBA EXO 8., 16., 17.3) — nécessiteExchange.ManageAsApp+ rôle S&CView-Only Configuration
Teams + SharePoint + PnP
MicrosoftTeamsPowerShell — Auth app-only via cert X.509 (endpointMicrosoftTeams)PnP.PowerShell— SharePoint Online cmdlets cross-platform, auth via cert app registration
Grant workflow (client)
- MSSP crée l’app registration dans son tenant cible (ou assiste le client).
- Ajoute les app roles ci-dessus + admin consent global.
- Assigne
View-Only Configurationau SPN dans Exchange + S&C. - MSSP installe cert X.509 → upload clé publique dans l’app registration.
- MSSP stocke clé privée dans Vault (
mssp/data/clients/<slug>).
Détection permissions manquantes
Test-MsspRequiredPermissions (dans Mssp.Auth.psm1) fait un pre-flight au démarrage du runner. Si un scope manque, les contrôles qui en dépendent remontent status: "insufficient_perms" plutôt que error — l’artefact v3 est quand même produit et importé.
Rotation
- Cert X.509 : rotation annuelle. Les 2 certs (ancien + nouveau) peuvent coexister côté Entra pendant la bascule.
- Secret client (si jamais utilisé en dev) : expiration ≤ 90 j, rotation via Vault + redémarrage app.
- GitLab OIDC : pas de rotation (federated trust), renforcer le
sub_claimmatcher côté Entra federated credential.