Gratisverktyg

Hitta spökkonton i er GitHub-organisation

Ghostbuster är ett gratis skript som visar vem som kommer åt er kod, vem som inte har använt sin åtkomst på månader och vem som har slutat på företaget men aldrig lämnat GitHub. Det körs på din egen dator och ändrar ingenting.

Version 0.1.0 · Python 3.8+ · Windows, macOS och Linux · MIT-licens

Vad det kontrollerar

Ghostbuster läser er organisation via GitHubs API och svarar på fyra frågor.

Vem som har åtkomst till vad

Medlemmar, ägare, externa medarbetare, team och vilken behörighet varje person har i varje repository, inklusive var behörigheten kommer ifrån.

Vem som faktiskt är aktiv

Pushar, mergar, pull requests, granskningar och kommentarer de senaste 90 dagarna. Den som saknar aktivitet dubbelkollas med GitHubs sökning innan de flaggas.

Vem som har slutat

Koppla GitHub-konton till era anställda med en enkel CSV-fil, eller automatiskt via SAML-inloggning, och se vem som behöll sin åtkomst efter att de slutat.

Åtkomst som ingen använder

Skriv- och adminrättigheter som inte används, externa medarbetare, saknad tvåfaktorsautentisering, gamla deploy-nycklar och appar som kan ändra alla repositories.

Det här får du

När skanningen är klar öppnas rapporten i din webbläsare.

  • En sammanfattning med rekommenderade åtgärder, det mest brådskande först
  • Möjliga spökkonton, externa medarbetare och oanvända skrivrättigheter, person för person
  • Spara som PDF för att dela med teamet eller ledningen
  • Kalkylblad och färdiga kommandon för att åtgärda varje fynd. Alla är bortkommenterade tills du har granskat dem
Ghostbuster-rapport för en påhittad GitHub-organisation med sammanfattning, möjliga spökkonton och rekommenderade åtgärder
Exempelrapport för ett påhittat företag.

Det här behöver du

Ghostbuster körs på din egen dator, med din egen GitHub-inloggning.

En dator med Python 3.8 eller senare

Windows, macOS eller Linux. Mac och de flesta Linux-datorer har redan Python. På Windows kör du winget install Python.Python.3.12 eller hämtar det från python.org.

GitHub CLI (gh)

Ghostbuster loggar in via gh. Om det inte är installerat erbjuder skriptet att installera det (winget på Windows, Homebrew på Mac) och guidar dig genom inloggningen. På Linux installerar du det från cli.github.com.

En ägare av GitHub-organisationen

Medlemmar kan också köra det, men bara ägare ser tvåfaktorsstatus, inbjudningar, externa medarbetare och installerade appar.

Några minuter

Små organisationer tar sekunder. Organisationer med hundratals repositories tar några minuter, eftersom GitHub begränsar hur snabbt API:t kan läsas.

GitHub-behörigheterna som används

repoPrivata repositories, deras medarbetare, deploy-nycklar och aktivitet
read:orgMedlemmar, ägare, team, externa medarbetare, inbjudningar och installerade appar
read:audit_logBara med --audit-log på Enterprise Cloud: händelser när någon klonar eller hämtar kod

gh ber om repo och read:org som standard. Ghostbuster läser bara med dem och ändrar aldrig något.

Så kör du det

  1. 1

    Ladda ner och kör skriptet

    Öppna en terminal (PowerShell på Windows, Terminal på Mac) och kör:

    curl -fsSLO https://adcyma.com/tools/ghostbuster.py
    python3 ghostbuster.py

    Ladda ner filen och kör den, i stället för att skicka den direkt till Python med en pipe. Skriptet ställer några frågor under körningen, och en pipe kan inte svara på dem.

  2. 2

    Logga in på GitHub

    Ghostbuster loggar in via GitHub CLI (gh). Om det inte är installerat erbjuder skriptet att installera det och guidar dig genom inloggningen. Kör det som ägare av organisationen för att få hela bilden.

  3. 3

    Läs rapporten

    Rapporten öppnas i din webbläsare när skanningen är klar. Välj Spara som PDF för att spara en kopia.

  4. 4

    Valfritt: hitta personer som har slutat

    Fyll i employee_email och employment_status (active eller left) i people.csv och kör igen med --mapping people.csv.

Användbara flaggor

--org my-orgOrganisationen som ska skannas. Utan den frågar Ghostbuster om du tillhör flera.
--days 180Ändra aktivitetsfönstret. Standard är 90 dagar.
--mapping people.csvJämför kontona med en lista från HR: kolumnerna github_login, employee_email och employment_status.
--audit-logPå Enterprise Cloud läses även granskningsloggen, med händelser när någon klonar eller hämtar kod.
--account my-loginVälj vilket gh-konto som ska användas om du är inloggad på flera.
--max-repos 20Testa snabbt på de 20 senast uppdaterade repositories.

Kontrollera filen

SHA-256-summan för den aktuella versionen:

3fffc2072c504a8b97a76cef6ee673654b06c0dbe1f92de86f19961a2cf221ae

Jämför med shasum -a 256 ghostbuster.py på macOS och Linux, eller Get-FileHash ghostbuster.py på Windows.

Privat från början

Bara läsning

Det ändrar aldrig något i GitHub. Åtgärder skrivs som kommandon som du själv granskar och kör.

Inget lämnar din dator

Skriptet pratar med GitHubs API och sparar rapporten i en mapp på din dator. Ingenting skickas till Adcyma.

Källkod du kan läsa

En enda Python-fil utan extra paket. Öppna den i valfri editor och läs vad den gör innan du kör den.

Visa källkoden

Fritt att använda och ändra

Ghostbuster skapades av Jens Naterman på Adcyma och delas under MIT-licensen. Använd det, kopiera det, ändra det och dela det, även internt på ert företag eller i kommersiellt arbete. Det enda villkoret: behåll copyright-texten som nämner den ursprungliga upphovspersonen. Hela licensen finns överst i skriptet.

Läs MIT-licensen

Använder ni Microsoft Entra ID? Ghostbuster för Entra ID hittar spökkonton och oanvända licenser där också.

Vanliga frågor

Nej. Det läser bara. Föreslagna åtgärder skrivs till en fil som bortkommenterade kommandon, så inget händer förrän du har granskat och kört dem själv.

Nej. Skriptet pratar med GitHubs API med din egen inloggning i GitHub CLI och sparar resultatet på din dator. Adcyma ser det aldrig.

Alla: Free, Team och Enterprise Cloud. Enterprise Cloud ger mest detaljer, till exempel kopplade SSO-identiteter och, med flaggan --audit-log, händelser när någon klonar eller hämtar kod.

Ja. På Free och Team visar GitHub inte när någon klonar eller bläddrar i kod, så rapporten listar dem som möjliga spökkonton, inte bekräftade. Stäm av med personen eller deras chef innan du tar bort åtkomsten.

GitHub vet inte vilka som är era anställda. Fyll i jobbmejl och status för varje person i people.csv och kör Ghostbuster igen med --mapping people.csv. På Enterprise Cloud med SAML-inloggning kopplas kontona automatiskt.

Ja. Det är MIT-licensierat, så ni kan ändra det, köra det på ert företag eller bygga vidare på det. Behåll copyright-texten som nämner Jens Naterman på Adcyma.

Vill du automatisera det här, och mer?

Ghostbuster är en engångskontroll. Adcyma sköter onboarding, offboarding och åtkomstgranskningar för Microsoft Entra ID och Active Directory varje dag, och vi bygger in GitHub.