agentsclimarketplace

Log triage

Skill roodlicht/accans-sec-skills/skills/log-triage

47 Claude skills for security tradecraft across AppSec, Pentest, Blue Team, and GRC. NL/EU regulatory-anchored. Pattern-level discipline.

Install
npx -y skills add roodlicht/accans-sec-skills --skill log-triage

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Identity-log triage workflow — anomaly patterns per provider (AWS CloudTrail, Azure AD/Entra, Google Workspace, Okta), session and token misuse, MFA-bypass signals, conditional-access evasion, and cross-provider correlation. Produces a prioritized finding list routed to ir-runbook or detection-engineer.

SKILL.md

10.9 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it

Log Triage

Identity-first context: the bulk of modern incidents starts or escalates via identity providers. Logs are the truth source — UIs are stale snapshots. This skill covers audit/identity logs from the major IdPs; network logs and endpoint EDR touch on this but live in other skills.

When to use

A log-triage question begins with "something is odd in the logs, take a look". This skill provides, per provider, the pattern set you can use to triage where people get lost in volume.

Triggers on:

  • A question like "look at these CloudTrail events", "is this Azure AD sign-in anomaly real", "Google Workspace audit log has N login failures", "what is the anomaly here in Okta", "compromised-account investigation".
  • A handoff from detection-engineer (rule fired, asks for deeper triage), ir-runbook (incident investigation), ioc-hunter (IOC match in an identity log).
  • A proactive hunting session focused on identity anomalies — overlap with threat-hunt.
  • A post-incident investigation where the identity path must be reconstructed for forensics-assist or regulatory reporting.

When NOT (handoff)

  • Generic SIEM-query building → siem-query.
  • Writing a detection rule based on the pattern → detection-engineer.
  • A threat-hunt session as a whole → threat-hunt (command).
  • Forensic memory/disk analysis → forensics-assist.
  • Network-flow triage or EDR process events → out of scope here; covered in generic SIEM-query or an EDR-tool skill.
  • IOC curation or enrichment → ioc-hunter.
  • Regulatory reporting → ir-runbook plus nis2/gdpr-pia.

Approach

Six phases. Phase 1 (provider context) and phase 4 (cross-provider correlation) are where triage builds from isolated events into a meaningful path.

1. Provider context and log-source inventory

Identity logs differ per provider in event shape, retention, and accessibility. Triage starts with "which provider, which log stream, which retention".

  • AWS: CloudTrail (management + data events), CloudTrail Insights (anomaly detection, paid), GuardDuty (managed detection, IAM-relevant findings).
  • Azure / Entra ID: Sign-in logs (interactive + non-interactive + service-principal), Audit logs (directory changes), Risk Detections (Identity Protection), Provisioning logs.
  • Google Workspace: Login audit, Admin audit, OAuth Token audit, Drive audit.
  • Okta: System Log (all auth events plus admin actions), Tableau Insights (managed anomaly).
  • JumpCloud / OneLogin / Ping: comparable structure.
  • On-prem AD: Security Event Log via Sysmon/Windows Audit; via DC SIEM forwarder.

Per source: retention window (default often shorter than the compliance requirement), log completeness (are all event types enabled?), log integrity (forwarding to SIEM complete?).

Pre-triage check: do you have access to all relevant streams for the time window of the incident, not just the "obvious" stream?

2. Anomaly patterns per provider

Per IdP, a pattern set you walk through by default. Not exhaustive; a starting point for triage.

AWS CloudTrail:

  • Console login without MFA where policy requires MFA. Event: ConsoleLogin with additionalEventData.MFAUsed=No.
  • GetSecretValue / Decrypt bursts by one principal in a short window — credential-harvesting pattern.
  • AssumeRole-cross-account from an unexpected source account.
  • CreateAccessKey + persist for an existing user (pattern T1098.001 — additional cloud credentials).
  • DisableLogging events: StopLogging on Trails, DeleteTrail, UpdateConfigurationRecorder. Pattern T1562.008.
  • Mass S3 GetObject or ListBuckets over a short window — exfil discovery.
  • IAM policy with Resource: "*" plus Action: "*" — overly permissive setup.
  • Region anomaly: activity in regions the org never deploys to.

Azure AD / Entra ID:

  • Sign-in from impossible travel: geo-pattern with velocity > realistic flight time. Identity Protection flags this, but verify in detail (VPN effects, mobile roaming).
  • MFA-fatigue pattern: multiple MFA prompts in quick succession followed by an approve. T1621 pattern. Conditional Access can block this with "request-frequency limit".
  • Service-principal misuse: a principal with an admin role suddenly signing in from non-authorized locations.
  • Legacy auth-protocol use: Basic Authentication, IMAP, POP — usually MFA-bypassing. Should be off.
  • Conditional-Access bypass attempts: failures on a CA policy followed by success via another route.
  • Application consent grants with sensitive scopes (Mail.ReadWrite, Files.ReadWrite.All) by regular users — illicit consent grant T1528.
  • Token replay: same token from different locations.

Google Workspace:

  • OAuth grants with external apps by regular users — Drive-data-leak vector.
  • Admin-Add / Role-Change: privilege elevation.
  • Mass mail-forward-rule set: BEC classifier T1114.003.
  • Login from unusual location plus device-fingerprint mismatch.
  • 2SV disabled for an account that previously had 2SV — recovery or abuse.
  • Drive scope-share "anyone with link" on sensitive data.

Okta:

  • Push-notification reject followed by push-accept elsewhere — MFA fatigue.
  • Factor reset by an admin on a user — backdoor pattern.
  • API-token creation by an admin with a high scope.
  • App-instance-add / OIN-app grant with a high scope.
  • Bypass of network-zone policies.

3. Per-event triage: question row

For each suspicious event, answer:

  • Actor: user, service account, or API token? Was the behavior expected for this actor?
  • Source: IP, ASN, geographic, device fingerprint. Match this against known employee locations / mobile providers / VPN exit points / cloud-provider IP ranges.
  • Authentication chain: how did the actor sign in (password, certificate, SAML assertion, OAuth token replay)? MFA used? Which factor?
  • Time: within working hours for this actor? Coherent with other activity (before/after)?
  • Outcome: success, failure, partial. On failure: what is the exact error? Which control caught it?
  • Prior behavior: what did this actor do 24h before? Pattern shift?

Collect answers in incident-table form. Without structure you lose consistency across events.

4. Cross-provider correlation

Real attacks spread across identity providers. A disturbance in Azure AD often propagates into AWS via federated auth, into Google Workspace via SAML, into SaaS tools via OAuth.

Correlation strategies:

  • User-identity mapping: the same person in Azure AD + Google + Okta + AWS. Email match works often. Document the mapping in advance so triage does not become a lookup loop.
  • Time-window overlap: actor X active in Azure AND a GuardDuty finding in AWS in the same 30-minute window.
  • IP correlation: the same IP for a sign-in in two providers within a short window.
  • Token-trail tracking: a SAML assertion from IdP A produces an AccessKey on cloud B that is used to hit SaaS resource C.

SIEM tooling with cross-provider data is critical here (see siem-query). Manual correlation works for small investigations; for larger incidents, a unified data layer is needed.

5. Prioritization and triage output

Per finding:

  • Severity classification:

    • Confirmed compromise: evidence of real misuse, route directly to ir-runbook.
    • High-suspicion: pattern matches, no direct evidence, asks for deeper action (force MFA reset, verify with user).
    • Anomalous but explainable: looks anomalous but matches a legitimate situation. Document for the baseline.
    • Background noise: false-positive pattern. Handoff to alert-tuning for rule adjustment.
  • Recommended action per finding: account disable, force pw reset, MFA re-enroll, key rotation, conditional-access tighten, deeper forensics.

  • Handoffs: high-suspicion and confirmed → ir-runbook; pattern feedback → detection-engineer; new IOCs → ioc-hunter; tuning input → alert-tuning.

6. Verification-loop

Layer 1: scope (all relevant streams checked for the time window, no blind spots like service-principal logs or OAuth-grant logs?), assumptions (user confirmed or denied the activity?), gaps (cross-provider correlation done, not just single-provider tunnel vision?). Layer 2: event-type names match current provider docs, no invented field names or API event IDs, ATT&CK T-IDs correct.

Output

Log triage — <scope / actor / event-cluster>
Time window: <start → end UTC>
Streams checked: <provider × log source>

Findings (per actor, per provider):
  Actor:       <user-ID + provider>
  Provider:    <AWS/Azure/Google/Okta>
  Pattern:     <impossible-travel / mfa-fatigue / illicit-consent / etc>
  Events:      <event IDs + timestamps>
  Severity:    <confirmed | high-suspicion | anomalous-explainable | noise>

Cross-provider correlation:
  IP overlap:    <IP found in providers X, Y>
  Time overlap:  <actor cluster within N minutes>
  Token trail:   <if relevant>

Recommended actions per finding:
  - <actor>: <account-disable / force-pw / MFA-reset / key-rotate / etc>

Handoffs:
  ir-runbook:         <confirmed compromises>
  detection-engineer: <pattern supports a new rule>
  ioc-hunter:         <new IOCs for enrichment>
  alert-tuning:       <noise rules for lifecycle treatment>

Verification-loop: ...

References

Categories

  • blue

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.