Arcana IR-documentatie · Nederlandse vertaling English

RB-EVIDENCE-003: Acquisitie van identity- en authenticatielogs

Documentbeheer

Kenmerk Waarde Datum
Documentnaam Acquisitie van identity- en authenticatielogs
Versie [Versienummer invullen] [Datum invullen]
Eigenaar [Eigenaar/team invullen] [Datum invullen]
Status [Draft/Approved/Retired] [Datum invullen]
Volgende reviewdatum [Volgende reviewdatum invullen] [Datum invullen]
Goedkeuringen [Goedkeurder(s) invullen] [Datum invullen]
Wijzigingsoverzicht Eerste versie [Datum invullen]

1. Vereisten

Benodigde tools:

2. Stap-voor-stap-instructies

Veelgemaakte fouten

  • Alleen de aanmeldlogs van de IdP ophalen en de auditlogs van de achterliggende SaaS missen (waar de eigenlijke acties van de aanvaller plaatsvonden)
  • Aannemen dat een IdP de authenticatielog heeft terwijl het account lokaal is bij de SaaS / applicatie (geen SSO)
  • Niet-menselijke identiteiten vergeten (service principals, service accounts, workload identities, API-sleutels)
  • Logs missen die al buiten de korte bewaartermijn van het platform vallen (bijv. aanmeldlogs van Entra ID standaard 30 dagen)
  • Activiteit over tenants heen of via federatie niet meenemen (B2B-gasttoegang, federated identity, achterliggende SSO-apps)
  • Alleen geslaagde authenticaties doorzoeken en het patroon in het volume aan mislukte pogingen missen dat brute force, password spraying of credential stuffing bevestigt
  • De verdachte identiteit logs laten wijzigen of verwijderen door niet eerst een snapshot te maken als compromittering van een beheerder wordt vermoed
  1. Valideer de noodzaak en scope van de logacquisitie

    • Bevestig dat de identiteit binnen de scope van het incident valt en stel het relevante tijdvenster vast
    • Stel vast of de identiteit menselijk of niet-menselijk is (service principal, service account, workload identity, API-sleutel, OAuth-app), want dat bepaalt welke logcategorieën van toepassing zijn
    • Stel het authenticatiepad van het getroffen account vast, want dat bepaalt waar de authenticatielog staat:
      • Gefedereerd / SSO (via een IdP) — de IdP heeft de authenticatielog; de achterliggende SaaS heeft de activiteitslogs
      • Lokaal SaaS- / applicatieaccount (geen SSO) — het SaaS- / applicatieplatform heeft zowel de authenticatie- als de activiteitslogs
      • Netwerk- / VPN- / RADIUS- / bastion-account — de appliance heeft de authenticatielog
      • API- / programmatische credential (token, sleutel, secret) — de API- / auditlog van het platform bevat de authenticatiegebeurtenis
    • Maak een lijst van alle platforms waar de identiteit toegang toe heeft; die vallen allemaal binnen de scope
    • Stel logs waar mogelijk eerst centraal veilig (SIEM, IdP, SaaS-audit) om je in te dekken tegen manipulatie, vooral als compromittering op beheer- of IdP-niveau wordt vermoed
  2. Verzamel relevante logs van identity-activiteit

    • Stel vast welke categorieën activiteit relevant zijn voor het incident en verzamel die uit de bron waar ze staan (IdP, SaaS-/applicatie-audit, netwerkappliance, SIEM). Veelvoorkomende categorieën en waar ze meestal staan:
      • Authenticatie- / aanmeldgebeurtenissen (geslaagd, mislukt, met risicoscore, beslissingen van conditional access, bron-IP/ASN/geo, user-agent, apparaat-ID, sessie-ID)
        • Bij federatie (SSO): aanmeldlogs van de IdP (Entra ID Sign-ins, Okta System Log, Google Login Audit, Auth0-logs, AWS CloudTrail ConsoleLogin, aanmeldingen bij AWS IAM Identity Center)
        • Bij een lokaal SaaS- / applicatieaccount: de eigen authenticatielog van het platform (bijv. Salesforce LoginHistory, GitHub user.login, Slack user_login, WordPress-aanmeldlog, toegangslog van de applicatie)
        • Bij netwerk / VPN / bastion: authenticatielog van de appliance (RADIUS, TACACS+, VPN-appliancelog, sessielog van de bastion)
        • Bij een API- / programmatische credential: API-audit van het platform (CloudTrail, Azure Activity, GCP Audit Logs, GitHub Audit, M365 Unified Audit) — zoek naar de principal van de API-sleutel / het token in het actor-veld
      • Patronen van brute force / spraying / stuffing (veel mislukte authenticaties tegen één of veel accounts)
        • Alle paden: dezelfde authenticatielogs als hierboven, maar doorzocht op het volume en de frequentie van mislukte pogingen, de diversiteit van bron-IP's en de diversiteit van accounts in plaats van op losse geslaagde/mislukte gebeurtenissen
        • Zoek naar patronen van eerst mislukt en dan geslaagd (bevestiging van compromittering), low-and-slow-patronen en concentratie op geo/ASN
      • MFA-gebeurtenissen (gebruikte factor, aangevraagde/geweigerde factor, registratie van een factor, verwijdering van een factor, patronen van MFA fatigue)
        • Bij federatie: MFA-logs van de IdP (Entra ID Authentication Methods + Sign-ins, MFA-gebeurtenissen in de Okta System Log, Google 2SV-logs)
        • Bij een lokaal SaaS- / applicatieaccount: de eigen MFA-log van het platform (bijv. 2FA-gebeurtenissen in GitHub, MFA-gebeurtenissen van AWS in CloudTrail, TOTP/U2F-logs per app)
        • Als het account geen MFA heeft: leg dit vast als bevinding — het ontbreken van MFA is zelf belangrijk bewijs en een hardening-eis bij de recovery
      • Sessie- en tokengebeurtenissen (uitgifte, vernieuwing en intrekking van tokens, afmelden, verdacht hergebruik van tokens)
        • Bij federatie: tokenlogs van de IdP (tokenuitgifte in Entra ID via Sign-ins, Okta-tokengebeurtenissen, Google OAuth-tokenlogs)
        • Bij een lokaal SaaS- / applicatieaccount: de sessielog van het platform (aanmaken / verlopen / intrekken van sessies in de auditlogs van de app)
        • Bij een API- / programmatische credential: uitgifte- / vernieuwingsgebeurtenissen van tokens in de auditlog van het platform
      • OAuth / consent / toegang van applicaties (consent grants, admin consent, toegang van applicaties, aanmeldingen van service principals, toewijzingen van app-rollen)
        • Bij federatie: consentlogs van de IdP (Entra ID Audit + Sign-ins voor service principals, Okta OAuth-gebeurtenissen, Google OAuth Token-audit)
        • Bij een lokaal SaaS- / applicatieaccount: toegangslogs per app waar de SaaS activiteit van apps van derden vastlegt (bijv. GitHub OAuth-app-autorisaties, Slack-app-installaties)
      • Directory- / identitybeheergebeurtenissen (account aanmaken / verwijderen / uitschakelen, wachtwoordreset, roltoewijzing, wijziging van groepslidmaatschap, activering van een geprivilegieerde rol, wijzigingen in federatie / vertrouwensrelaties, activiteit van sync-accounts)
        • Bij federatie: auditlogs van de IdP (Entra ID Audit, Okta System Log, Google Admin Audit, AWS IAM CloudTrail)
        • Bij een lokaal SaaS- / applicatieaccount: de beheer- / auditlog van het platform (bijv. GitHub-auditlog voor wijzigingen in org-/reporechten, Salesforce Setup Audit Trail, Slack Audit Logs API voor beheeracties)
        • Bij on-premises Active Directory: Security-log (4720/4722/4723/4724/4725/4726/4728/4732/4738/4756), Directory Service-log
      • SaaS- / applicatieactiviteit (acties van de identiteit binnen het platform — bestandstoegang, delen, configuratiewijzigingen, data-exports, beheeracties)
        • De auditlog van het platform (M365 Unified Audit Log, Google Workspace Drive/Admin Audit, Salesforce Setup Audit Trail, Slack Audit Logs API, GitHub Audit Log, AWS CloudTrail data events)
      • Mailboxspecifieke gebeurtenissen (wijzigingen in inbox rules en doorstuurregels, gedelegeerde toegang, wijzigingen in mailboxrechten, verzenden / lezen van berichten vanuit nieuwe bronnen)
        • Audit van het e-mailplatform (M365 Exchange Audit / Unified Audit Log, Google Workspace Gmail-audit)
      • Beslissingen van conditional access / beleid (toegepast beleid, beleidsresultaat, MFA vereist, blokkade, toegepaste sessiebeperking)
        • Bij federatie: logs van conditional access van de IdP (details over conditional access in Entra ID Sign-ins, beleidsevaluatie in Okta)
        • Bij een lokaal SaaS- / applicatieaccount: logs van toegangsbeleid aan de kant van het platform waar beschikbaar (bijv. weigeringen door een IP-allowlist)
      • Risico- en detectiesignalen van de identity protection van de IdP / het platform (risicovolle gebruiker, risicovolle aanmelding, gelekte credentials, afwijkende reisbewegingen, afwijkend tokengebruik)
        • Bij federatie: identity protection van de IdP (Entra ID Identity Protection, Okta ThreatInsight, Google Security Center)
        • Bij een lokaal SaaS- / applicatieaccount: eigen securitysignalen van het platform (bijv. GitHub-alerts over gelekte secrets, threat events in Salesforce Real-Time Event Monitoring)
    • Doorzoek of exporteer per relevante categorie bij voorkeur uit de SIEM / IdP / beheerconsole van het platform waar de data centraal staat; doorzoek categorieën die niet centraal staan direct via de API
    • Leg per verzamelde categorie de query, het tijdvak en de toegangslocatie vast
  3. Verzamel centrale logs uit de SIEM

    • Exporteer de overeenkomende gebeurtenissen voor de getroffen identiteit over het incidentvenster uit de SIEM of het centrale logplatform
    • Neem eventuele verrijkte of gecorreleerde identity-alerts voor de getroffen identiteit mee
    • Leg de query, het tijdvak en de exportlocatie vast
  4. Breid de scope uit naar aangrenzende identiteiten en gedeelde indicatoren

    • Stel gedeelde indicatoren vast uit de activiteit van de getroffen identiteit (bron-IP's, ASN's, user-agents, apparaat-ID's, ID's van OAuth-applicaties, metadata van MFA-factoren, sessie-/correlatie-ID's)
    • Voer de relevante queries opnieuw uit over de IdP en de SaaS-/applicatie-auditlogs met deze indicatoren om aangrenzende gecompromitteerde identiteiten te vinden
    • Leg de bevindingen vast en neem ze mee in de scope van het incident

3. Na afloop

Bijdrager

Jayden Vo GitHub: https://github.com/jayden-vo

Heeft bijgedragen aan het Arcana Incident Response Documentation Framework.