ai-agent-auditENGitHub

Sprawdź, co agent AI może zabrać z Twojego komputera.

Darmowy skrypt, który przegląda Twój komputer tak, jak zrobiłby to złośliwy pakiet npm albo przejęty serwer MCP: klucze, tokeny, sekrety zapisane w historii rozmów z agentami. Potem mówi, co poprawić i w jakiej kolejności.

  • ~2 minpełny przebieg na laptopie z dużą historią sesji agentów
  • 15modułów: od kluczy SSH po serwery MCP
  • 0wartości sekretów w raporcie, tylko odciski

Open source, licencja MIT. Linux, macOS i WSL2. Kod na GitHubie.

~/.ai-agent-audit/audit-report.mdprawdziwy przebieg

2/100 F · Pwned-Ready

69 distinct secrets · 15 modules · 2 min 17 s

  • 2 critical
  • 28 high
  • 8 medium
  • 2 low

Fix first

  1. SSH private key has NO passphrase: ~/.ssh/id_ed25519_…critical · A.1
  2. MCP server 'chrome-devtools' launched via npx without pinned versionhigh · M.2 · 11 servers
  3. Claude Code sessions (last 90d): 38 file(s) contain 35 distinct classified secret(s)high · J.2
Fragment raportu z laptopa dewelopera, który codziennie pracuje z Claude Code i Codexem. Ścieżki skrócone. Raporty są po angielsku.

Dlaczego

Nikt nie musi się do Ciebie włamywać

Prawie każde znalezisko jest groźne dopiero wtedy, gdy obcy kod działa na Twoim komputerze. Problem w tym, że uruchamiasz cudzy kod codziennie.

Jak obcy kod trafia na Twój komputer

  • npx bez wersji. Serwer MCP uruchamiany jako npx paczka@latest pobiera najnowszą wersję przy każdym starcie agenta. Gdy ktoś przejmie konto autora paczki, jego kod uruchomi się u Ciebie przy następnym starcie.
  • npm install. Skrypty postinstall w zależnościach wykonują się same. Tak działały ataki s1ngularity i Shai-Hulud.
  • Sklonowane repozytorium. Hooki w .claude/settings.json albo ukryte instrukcje w CLAUDE.md działają, gdy tylko otworzysz w nim agenta.
  • Skill albo rozszerzenie. Polecenie curl … | sh w skillu, którego nikt nie przeczytał przed instalacją.

Co ten kod zabiera

  • Klucze SSH bez hasła, czyli od razu dostęp do Twoich serwerów.
  • Tokeny npm i GitHub. Nimi publikuje zainfekowane paczki w Twoim imieniu, więc atak idzie dalej, na innych.
  • Sekrety z historii rozmów. Klucze API wklejone kiedyś do Claude Code albo Codexa leżą w plikach sesji, w miejscach, które każdy skrypt zna.
  • Pliki .env i konfiguracje MCP z kluczami zapisanymi otwartym tekstem.

Przykład z sierpnia 2025: zainfekowane paczki Nx (s1ngularity) użyły zainstalowanych lokalnie agentów AI do zebrania 2349 danych dostępowych z 1079 komputerów.

Co sprawdza

15 modułów, jedno pytanie każdy

Każde znalezisko ma opis, dlaczego jest ważne, i konkretny krok naprawy.

Klucze i tokeny
Klucze SSH bez hasła, dostęp do chmur (AWS, GCP, Azure, Kubernetes), tokeny npm, PyPI, GitHub i GitLab, pliki .env, .netrc i .pgpass.
Historia i sesje agentów
Sekrety w historii powłoki i w zapisach rozmów Claude Code, Codex, Gemini CLI, Cursor, Aider i Cline. Każdy rozpoznany z nazwy usługi, z podpowiedzią, gdzie go zmienić.
Serwery MCP
Każdy serwer z każdej konfiguracji: jak startuje (npx z wersją albo bez, uvx, docker, zdalny) i czy trzyma klucze otwartym tekstem.
Ustawienia agentów
Tryb bez pytania o zgodę, aliasy w rodzaju --dangerously-skip-permissions, hooki, własny ANTHROPIC_BASE_URL.
Repozytoria
Hooki i uprawnienia w .claude/ i .cursor/, instrukcje ukryte w CLAUDE.md i AGENTS.md, znaki niewidoczne dla oka.
Skille
Świeżo zainstalowane skille, polecenia curl | sh, instrukcje w rodzaju „nie mów użytkownikowi”.
Znane ataki
Wersje paczek z potwierdzonych ataków (Nx, axios, @bitwarden/cli), ślady Shai-Hulud w node_modules i na Twoim koncie GitHub.
System
Grupa docker, sudo bez hasła, firewall, kopia zapasowa, izolacja, odblokowany menedżer haseł. Na macOS także uprawnienia TCC, LaunchAgents i szyfrowanie kopii Time Machine.

Uruchom

Trzy komendy, bez instalacji

Żadnych zależności do doinstalowania. Potrzebny jest bash 4.4 lub nowszy; na macOS: brew install bash. Pakiet jq przyspiesza i uściśla część sprawdzeń, ale nie jest wymagany.

Raport HTML otworzy się sam w przeglądarce. Plik action-plan.md układa zadania na dziś, na ten tydzień i na ten miesiąc.

  1. Pobierz
    $ git clone https://github.com/bartek-filipiuk/ai-agent-audit.git
  2. Uruchom
    $ bash ai-agent-audit/scripts/run-audit.sh
    na macOS:
    $ "$(brew --prefix)/bin/bash" ai-agent-audit/scripts/run-audit.sh
  3. Zacznij od listy kroków
    $ less ~/.ai-agent-audit/action-plan.md

Wolisz przez agenta?

Zainstaluj jako skill i poproś Claude Code o przeprowadzenie przez wynik:

$ git clone https://github.com/bartek-filipiuk/ai-agent-audit.git ~/.claude/skills/ai-agent-audit
> Uruchom skill ai-agent-audit, a potem przeprowadź mnie przez plan działania od najważniejszego punktu, po jednym na raz.

Twoje dane

Co skrypt robi z tym, co znajdzie

  • Tylko czyta. Zapisuje wyłącznie do ~/.ai-agent-audit/ (albo katalogu z flagi --output), z uprawnieniami tylko dla Ciebie.
  • Nie zapisuje sekretów. W raporcie są ścieżki, typy i odciski w rodzaju ghp_****wxyz (40 znaków). Tyle wystarczy, żeby znaleźć klucz w panelu dostawcy, ale nie żeby go użyć.
  • Nic nie wysyła autorowi. Brak telemetrii i analityki. Połączenia z siecią robią tylko Twoje własne gh i npm, jeśli są zalogowane: pytają GitHub i npm o uprawnienia tokenu i listę Twoich repozytoriów.
  • Niczego nie naprawia sam. Każdą zmianę robisz Ty. Wyjątek to osobny skrypt purge-secrets.sh, który zamazuje sekrety w historii. Bez flagi --purge tylko pokazuje, co by zrobił.
  • Możesz go przeczytać. To około 4700 linii basha w jednym repozytorium. Przeczytaj je przed uruchomieniem, jak każdy kod z internetu, albo daj do przeczytania swojemu agentowi.

Czego nie robi

  • Nie sprawdza, czy klucz nadal działa. Nie łączy się z dostawcami, więc każdy znaleziony klucz traktuj jak aktywny.
  • Myli się. Przykładowe tokeny z dokumentacji i testów też pasują do wzorców. Odcisk pomaga: ghp_****1234 to raczej atrapa.
  • Patrzy tylko na ten komputer. Serwery i CI sprawdzasz osobno.
  • Zna tylko opisane ataki. Listę zainfekowanych wersji uzupełniamy ręcznie. O nowych piszemy na liście mailowej.
  • Ocenia surowo. Każdy serwer MCP bez wersji liczy się osobno, więc kilka punktów na 100 przy pierwszym przebiegu nie jest rzadkie. Liczy się lista kroków, nie sam wynik.

Poradnik i alerty

Co zrobić z wynikiem

Zostaw e-mail, a dostaniesz:

  • Od razu po potwierdzeniu: poradnik „Naprawa po audycie”. Osiem kroków od najważniejszego, każdy z komendą, sposobem sprawdzenia i pułapką, na którą łatwo trafić. Większość zajmuje kilka minut.
  • Potem tylko wtedy, gdy coś wybuchnie: krótki mail o nowym ataku na łańcuch dostaw (robak w npm, przejęty serwer MCP, zainfekowane rozszerzenie) z jedną komendą, którą sprawdzisz, czy Cię dotyczy.
  • Nic więcej. Bez cotygodniowego newslettera. Wypisujesz się jednym kliknięciem.

Pytania

Czy uruchomienie tego jest bezpieczne?

Skrypt tylko czyta pliki i zapisuje raport do jednego katalogu. Niczego nie pobiera w trakcie działania. Przed uruchomieniem możesz przeczytać kod na GitHubie albo poprosić o to swojego agenta.

Ile to trwa?

Na laptopie autora, z kilkuset megabajtami zapisanych sesji agentów: 2 minuty 17 sekund. Najdłużej trwa przeszukiwanie historii rozmów. Pojedyncze moduły uruchomisz flagą --modules, na przykład --modules M dla samych serwerów MCP.

Czy działa na Windowsie?

Przez WSL2, jako Linux. Natywnego Windowsa nie obsługuje.

Mam kilka punktów na 100. Jest aż tak źle?

Wynik jest celowo surowy: każdy serwer MCP bez wersji i każdy plik z sekretem odejmuje punkty osobno. Nie patrz na liczbę, tylko na action-plan.md. Zwykle kilka pierwszych kroków (hasło na kluczu SSH, przypięte wersje MCP, wylogowany npm) usuwa większość ryzyka.

Skrypt znalazł mój klucz w historii rozmów. Co teraz?

Najpierw zmień klucz u dostawcy; raport podaje, gdzie. Dopiero potem wyczyść historię skryptem purge-secrets.sh. Kolejność jest ważna: zamazany, ale wciąż ważny klucz dalej działa, jeśli ktoś skopiował go wcześniej.

Czym różni się od security-audit.dev?

security-audit.dev sprawdza kod Twojej aplikacji. ai-agent-audit sprawdza komputer, na którym ten kod piszesz. Oba są darmowe i open source.

Jak mogę pomóc?

Zgłoś na GitHubie fałszywy alarm albo coś, co skrypt przeoczył. Słabość w samym narzędziu zgłoś prywatnie, według pliku SECURITY.md w repozytorium.

Czy mogę używać go w pracy i u klientów?

Tak. Licencja MIT: używasz, zmieniasz i rozwijasz, także komercyjnie.