GitHub SSO Recovery Codes Activity
Description
Detects viewing, downloading, printing, generating, or using GitHub enterprise or organization SSO recovery codes. These codes bypass the IdP and are break-glass credentials.
Query · esql
from logs-github.audit-* metadata _id, _index, _version
| where
event.module == "github" and data_stream.dataset == "github.audit"
and event.action in (
"business.recovery_codes_downloaded",
"business.recovery_codes_generated",
"business.recovery_codes_printed",
"business.recovery_codes_viewed",
"business.recovery_code_used",
"business.recovery_code_failed",
"org.recovery_codes_downloaded",
"org.recovery_codes_generated",
"org.recovery_codes_printed",
"org.recovery_codes_viewed",
"org.recovery_code_used",
"org.recovery_code_failed"
)
| keep
_id,
_index,
_version,
@timestamp,
event.action,
user.name,
github.org,
github.actor_is_bot,
github.repo,
github.actor_ip,
github.hashed_token,
github.programmatic_access_type,
github.user_agent,
github.business
Investigation fields
Pivot points the source recommends for triage.
@timestampevent.actionuser.namegithub.orggithub.repogithub.actor_ipgithub.hashed_tokengithub.programmatic_access_typegithub.user_agentgithub.business
Known false positives
- Documented disaster-recovery tests. Dual-control these events and store codes offline.
Analyst notes
Investigating GitHub SSO Recovery Codes Activity
Recovery-code events are rare. Download/view/print/generate often precede an SSO bypass. Use/fail events indicate an actual sign-in attempt with a recovery code.
Possible investigation steps
- Identify
user.name,event.action, andgithub.actor_ip. - Correlate with
business.disable_saml/ MFA disable and new owner invites.
False positive analysis
- Scheduled recovery-code rotation with two-person integrity.
Response and remediation
- Rotate recovery codes, review SSO configuration, and force re-authentication of enterprise owners.