Skip to content

Dieses Werkzeug ist weder mit GitHub, Inc. oder der Microsoft Corporation verbunden noch von ihnen unterstützt oder gesponsert. GitHub und GitHub Actions sind Marken von GitHub, Inc. Andere Namen sind Marken ihrer jeweiligen Inhaber.

Übernahme einer GitHub-Organisation: Owner, 2FA, SSO

Anzeichen für die Übernahme einer GitHub-Organisation im Audit-Log: neue Owner, 2FA-Pflicht aus, SAML-SSO geändert, IP-Zulassungsliste aus, Streaming entfernt.

Veröffentlicht am 5 Min. Lesezeit

Kurz gesagt. Eine Übernahme zeigt sich im Audit-Log als kurze Abfolge von Änderungen an Kontrollen: ein neuer Owner (org.update_member / org.add_member mit permission: admin, business.add_admin), danach geschwächte Abwehr (org.disable_two_factor_requirement, org.disable_saml oder org.update_saml_provider_settings, ip_allow_list.disable, org.disable_oauth_app_restrictions, gelockerte personal_access_token.*-Richtlinie) und manchmal ein entfernter Stream zu Ihrem SIEM (audit_log_streaming.destroy). Jede einzelne dieser Änderungen durch einen unerwarteten Akteur oder von einer unerwarteten IP-Adresse ist ein Befund mit hoher Priorität. Zwei davon beim selben Akteur sind ein Vorfall.

Owner einer Organisation können jedes Repository, jedes Secret, jedes Mitglied und jede Sicherheitseinstellung ändern. Ein Angreifer, der Owner wird oder die Sitzung bzw. das Token eines Owners kontrolliert, muss nicht leise vorgehen. Er muss nur schneller sein als Ihre Prüfung des Audit-Logs. Dieses Playbook listet die Änderungen an Kontrollen auf, nach denen Sie suchen sollten, und die Reihenfolge, in der Sie sie rückgängig machen.

Die Anzeichen einer Übernahme

AnzeichenAudit-AktionenRegel im AnalyzerSchweregrad
Owner hinzugefügtorg.update_member oder org.add_member mit permission: admin, business.add_adminowner-grantedhoch
Admin-Rechte auf ein Repository für einen Collaboratororg.add_outside_collaborator, repo.add_member, repo.update_member mit Admin-Berechtigungcollaborator-adminmittel
2FA-Pflicht deaktiviertorg.disable_two_factor_requirement, business.disable_two_factor_requirementtwo-factor-disabledhoch
SAML-SSO deaktiviert oder umgeleitetorg.disable_saml, org.update_saml_provider_settings (und die business.-Entsprechungen)sso-changedhoch
IP-Zulassungsliste deaktiviertip_allow_list.disable, ip_allow_list.disable_for_installed_apps, ip_allow_list.disable_user_level_enforcementip-allowlist-disabledhoch
Einschränkungen für Drittanbieter-Apps deaktiviertorg.disable_oauth_app_restrictionsoauth-restrictions-disabledmittel
Token-Richtlinie geschwächtpersonal_access_token.access_restriction_disabled, .expiration_limit_unset, .auto_approve_grant_requests_enabledpat-policy-weakenedmittel
Audit-Stream entferntaudit_log_streaming.destroy, audit_log_streaming.updateaudit-stream-changedhoch

Die Regeln verwenden folgende ATT&CK-Zuordnungen: T1098.003 Additional Cloud Roles für vergebene Owner-Rechte, T1556 Modify Authentication Process für 2FA und SSO, T1562.007 Disable or Modify Cloud Firewall für die IP-Zulassungsliste und T1562.008 Disable or Modify Cloud Logs für das Streaming.

Nach der Urteilslogik führen zwei unterschiedliche Regeln mit hohem Schweregrad beim selben Akteur, Token oder derselben IP-Adresse zum Urteil Kompromittiert, auch ohne kritischen Befund. Das passt zu Übernahmen: owner-granted, gefolgt von two-factor-disabled aus demselben Konto, ist selten ein Admin, der nur aufräumt.

Jede Änderung einzeln lesen

Neue Owner

org.update_member zeichnet Rollenwechsel auf. Das Feld permission (und das Feld user für das betroffene Konto) zeigt, wer befördert wurde. Prüfen Sie drei Dinge. War der Akteur ein bestehender Owner, mit seiner üblichen IP-Adresse und seinem üblichen User-Agent? Ist das beförderte Konto neu in der Organisation (achten Sie auf ein org.add_member kurz davor)? Ist der neue Owner kurz danach aktiv geworden? Ein Konto, das befördert wird und sofort Tokens, Keys oder Runner anlegt, ist das klassische Muster.

Zwei-Faktor-Authentifizierung

Wenn eine Organisation 2FA verlangt, werden Mitglieder und externe Collaborators ohne 2FA entfernt. Wird die Pflicht abgeschaltet, können schwach gesicherte Konten beitreten oder bleiben, und oft ist das der Schritt, bevor ein vom Angreifer kontrolliertes Konto eingeladen wird. Wird sie später wieder aktiviert, fliegt jedes Konto ohne 2FA hinaus. Das ist eine nützliche Eindämmung, stört aber auch den Betrieb, also planen Sie sie.

SAML Single Sign-on

Mit SAML-SSO (GitHub Enterprise Cloud) entscheidet Ihr Identity Provider, wer auf die Ressourcen der Organisation zugreifen darf, und Tokens müssen für SSO autorisiert werden. org.update_saml_provider_settings ändert den Issuer, die SSO-URL oder das Zertifikat. Ein Angreifer, der diese Werte auf einen von ihm kontrollierten Identity Provider umleitet, kann sich anschließend als beliebige Person anmelden. Vergleichen Sie die neuen Werte mit den Metadaten Ihres IdP. Ist Ihr IdP betroffen, sind dessen eigene Logs die nächste Station: Die Schwesterwerkzeuge decken Okta, Microsoft Entra ID und Google Workspace ab.

IP-Zulassungsliste

Eine IP-Zulassungsliste (Enterprise Cloud) blockiert Web-, API- und Git-Zugriffe von außerhalb Ihrer Adressbereiche, auch Zugriffe mit Personal Access Tokens und SSH-Keys. Deshalb scheitern gestohlene Zugangsdaten, solange sie aktiv ist. Achten Sie auf ip_allow_list.disable und ebenso auf ip_allow_list_entry.create: Den VPS des Angreifers in die Liste aufzunehmen ist unauffälliger, als sie abzuschalten. Der Analyzer zeigt diesen Eintrag in der Zeitleiste an, erzeugt dafür aber keinen Befund.

OAuth-Apps und Richtlinie für Personal Access Tokens

Zugriffsbeschränkungen für OAuth-Apps verhindern, dass OAuth-Apps, die Mitglieder autorisieren, Daten der Organisation lesen, bevor ein Owner sie genehmigt hat. Werden sie deaktiviert, steht Consent Phishing die Tür offen. Die Richtlinie für Personal Access Tokens kann klassische Tokens sperren, die Lebensdauer von Tokens begrenzen und für Fine-grained Tokens eine Genehmigung verlangen. Wird sie kurz vor dem Erstellen und Verwenden eines Tokens gelockert, lohnt es sich, diese Abfolge zu rekonstruieren.

Audit-Log-Streaming

Wird der Stream entfernt oder umgeleitet (audit_log_streaming.destroy / .update), ist das SIEM blind, während das Audit-Log im Produkt weiter aufzeichnet. Es ist außerdem eine der wenigen Änderungen, die nur für jemanden Sinn ergeben, der mit einer Untersuchung rechnet. Siehe Audit-Log-Streaming.

Reihenfolge der Bereinigung

  1. Sichern Sie den Audit-Log-Export, bevor Sie irgendetwas zurücksetzen. Jede Rücknahme erzeugt neue Ereignisse und macht die Zeitleiste schwerer lesbar.
  2. Entfernen Sie unerwartete Owner und Admins und widerrufen Sie anschließend deren Sitzungen, Tokens, SSH-Keys und SSO-Autorisierungen.
  3. Stellen Sie die Authentifizierungskontrollen wieder her: 2FA-Pflicht, SAML-Einstellungen (gegen den IdP verifizieren), IP-Zulassungsliste, OAuth-App-Beschränkungen, Token-Richtlinie.
  4. Stellen Sie den Audit-Stream wieder her und ermitteln Sie, was verloren ging, während er abgeschaltet war. Die Pufferung hängt vom Ziel ab und davon, wie lange er pausiert war.
  5. Suchen Sie nach Persistenz, die der neue Owner angelegt haben könnte: Deploy-Keys, Apps, Webhooks, Runner, externe Collaborators und Teams mit weitreichenden Rechten. Das Playbook zum geleakten Token enthält die Liste.
  6. Prüfen Sie auch die Kontrollen auf Repository-Ebene. Owner können Branch Protection und Rulesets überall entfernen. Siehe Branch Protection deaktiviert.

Verwandte Artikel

Verwandte Artikel

Was das GitHub-Audit-Log nicht erfasst: 180 bzw. 7 Tage Aufbewahrung, Plangrenzen für API und Git-Events, verborgene IPs, keine Dateiinhalte, kein Secret-Lesen.
Manipulierte Branch Protection oder Rulesets in GitHub untersuchen: protected_branch.destroy, Ruleset-Änderungen, Admin-Overrides, Umgebungen und neue Commits.
Quellcode-Diebstahl im GitHub-Audit-Log finden: git.clone-Häufungen, ZIP-Downloads, öffentlich gemachte oder übertragene Repos, Forks und ihre Spuren.

Dieses Werkzeug ist weder mit GitHub, Inc. oder der Microsoft Corporation verbunden noch von ihnen unterstützt oder gesponsert. GitHub und GitHub Actions sind Marken von GitHub, Inc. Andere Namen sind Marken ihrer jeweiligen Inhaber.