Przejdź do głównej zawartości

Standardy bezpieczeństwa i zgodność

Twój audyt SOC 2 Type II jest za trzy tygodnie. Audytor chce dowodów, że kod wygenerowany przez AI jest przeglądany przed wdrożeniem, że żadne PHI klientów nie wycieka do dostawcy modelu i że serwery MCP, które twój zespół zainstalował w poprzednim sprincie, nie wyprowadzają po cichu plików. Tymczasem twoi programiści mergują PR-y napisane przez Cursora i Claude Code trzy razy szybciej niż rok temu. Kontrole muszą za tym nadążyć, nie stając się wąskim gardłem, które wszyscy omijają.

Ten artykuł pokazuje konkretne elementy, które czynią programowanie wspomagane przez AI audytowalnym: włączenie powierzchni audytu/telemetrii, które te narzędzia faktycznie udostępniają, skanowanie serwerów MCP pod kątem nękających je ryzyk łańcucha dostaw oraz wymuszanie bramek przeglądu i polityk w CI, tak aby zgodność była zaliczonym testem, a nie kwartalnym gaszeniem pożaru.

  • Realna konfiguracja audytu i telemetrii dla Cursora, Claude Code i Codeksu — żadnych wymyślonych kluczy ustawień
  • Działające skanowanie łańcucha dostaw MCP przy użyciu Snyk Agent Scan (dawniej Invariant MCP-Scan), podłączone do wszystkich trzech narzędzi
  • Prompt do skopiowania, który tworzy uruchamialny zestaw reguł Semgrep dla ustaleń OWASP na konkretnym stacku
  • Bramkę Open Policy Agent (Rego), która blokuje nieprzeglądnięte migracje bazy danych wygenerowane przez AI w CI
  • Sekcję trybów awarii pokrywającą pułapki, które audytorzy i zespoły red team faktycznie znajdują

Gdzie narzędzia AI dotykają twojej granicy zgodności

Dział zatytułowany „Gdzie narzędzia AI dotykają twojej granicy zgodności”

Trzy powierzchnie liczą się dla audytu:

  • Wyciek danych (egress). Twoje prompty zawierają kod źródłowy, a czasem sekrety. Dla poufności SOC 2 i HIPAA potrzebujesz udokumentowanej polityki zerowej retencji z każdym dostawcą. Tryb prywatności (Privacy Mode) i plan Enterprise Cursora gwarantują zerową retencję danych (zobacz trust.cursor.com); Anthropic i OpenAI oferują to samo dla poziomów API i enterprise. Udokumentuj, w jakim trybie działa każde narzędzie — ten dokument jest dowodem kontroli.
  • Ścieżka audytu. Musisz móc pokazać, kto co uruchomił. Każde narzędzie udostępnia inny mechanizm (poniżej). Żadne z nich nie ma magicznej flagi audit_logging: true — prawdziwe powierzchnie to OpenTelemetry, opakowywanie komend powłoki i logi administracyjne platformy.
  • Łańcuch dostaw. Serwery MCP działają z uprawnieniami twoich narzędzi. W ocenie Equixly z 2025 roku popularnych implementacji serwerów MCP open-source 43% zawierało luki command injection, 30% pozwalało na nieograniczone pobieranie URL, a 22% przeciekało pliki poza zamierzone katalogi. Traktuj każdy serwer MCP jak niezweryfikowaną zależność.

To jest część, którą większość zespołów psuje, wklejając klucze konfiguracji, które nie istnieją. Oto, co każde narzędzie faktycznie wspiera.

Claude Code nie ma ustawienia audit_logging. Obserwowalność to OpenTelemetry, a audyt na poziomie komend to prefiks powłoki. Włącz oba w ~/.claude/settings.json (managed settings na kontrolowanym hoście dla enterprise):

{
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_ENDPOINT": "https://otel-collector.internal:4317",
"CLAUDE_CODE_SHELL_PREFIX": "/usr/local/bin/audit-logger.sh"
}
}

CLAUDE_CODE_ENABLE_TELEMETRY=1 strumieniuje metryki i logi do twojego kolektora (a stamtąd do SIEM); CLAUDE_CODE_SHELL_PREFIX opakowuje każdą komendę Bash, więc audit-logger.sh <command> ją rejestruje. Ten log komend jest twoim dowodem dostępu/aktywności dla SOC 2.

Zanim jakikolwiek serwer MCP trafi na maszynę programisty, przeskanuj go. Narzędziem do użycia jest Snyk Agent Scan (dawny Invariant Labs MCP-Scan, obecnie utrzymywany przez Snyk). Działa przez uvx — to narzędzie w Pythonie, więc nie instaluj go przez npm install.

  1. Przeskanuj konfigurację kandydującego serwera (lub cały twój mcp.json) pod kątem wzorców tool-poisoning, prompt-injection i toxic-flow:

    Okno terminala
    uvx snyk-agent-scan@latest ~/.cursor/mcp.json

    Starszy punkt wejścia uvx mcp-scan@latest nadal działa — to teraz przekierowanie, które instaluje snyk-agent-scan i przekazuje CLI.

  2. Przeczytaj ustalenia. Oznaczony serwer może pokazać nieograniczone narzędzie fetch, które przyjmuje dowolne URL-e, albo opis narzędzia zawierający ukryte instrukcje (atak tool-poisoning). Nie instaluj go, dopóki to nie zostanie rozwiązane.

  3. Zarejestruj sam skaner jako serwer MCP, aby agent mógł skanować ponownie na żądanie:

Okno terminala
claude mcp add security-analyzer -- uvx snyk-agent-scan
claude mcp list

Generowanie realnych reguł skanowania, a nie dokumentów

Dział zatytułowany „Generowanie realnych reguł skanowania, a nie dokumentów”

Sensem AI jest tutaj tworzenie artefaktów gotowych do wdrożenia — zestawu reguł, poprawki, pliku polityki — a nie dokumentu Worda, który je opisuje. Zakotwicz prompty w konkretnym stacku, aby wynik dało się uruchomić.

Uruchom ten sam prompt w różnych narzędziach — przepływ jest identyczny; różni się tylko punkt wejścia. W Cursorze otwórz diff i wywołaj na nim tryb Agenta. W Claude Code uruchom claude -p "<prompt>" na gałęzi, aby przeczytał drzewo robocze, albo podłącz to do hooka. W Codeksie przekaż mu PR przez integrację z GitHubem lub codex exec w CI. Przypnij model: do przeglądów bezpieczeństwa o najwyższej stawce Claude Fable 5 (/model fable) zapewnia najsilniejszą analizę — wyprzedza Opus 4.8 w złożonych przeglądach obejmujących wiele plików i długotrwałych zadaniach; Opus 4.8 jest właściwym domyślnym wyborem, gdy liczy się budżet; GPT-5.5 napędza Codeksa na wszystkich powierzchniach. Pełne porównanie poziomów modeli znajdziesz w zestawieniu modeli.

Dowód audytu jest najmocniejszy, gdy jest automatyczny. Bramką o najwyższej dźwigni dla zespołów wspomaganych przez AI jest blokowanie nieprzeglądniętych zmian schematu — migracje, które generuje agent, to dokładnie miejsce, gdzie błąd typu confused deputy zamienia się w incydent ujawnienia danych.

Podłącz wynik do .github/workflows/, tak aby bramka migracji i skanowanie Semgrep uruchamiały się na każdym PR. Historia zaliczeń/niepowodzeń tego zadania staje się twoim dowodem ciągłej zgodności — wskaż audytorowi log Actions zamiast ręcznie składać arkusz kalkulacyjny. Dla CVE zależności i kontroli licencji dodaj krok Snyk lub npm audit --audit-level=high w tym samym przepływie, zamiast polegać na ręcznym skanowaniu raz na kwartał.

  • „Telemetria jest włączona, ale SIEM jest pusty.” CLAUDE_CODE_ENABLE_TELEMETRY=1 musi być ustawione zanim zmienne eksportera OTEL zaczną działać, a endpoint kolektora musi być osiągalny z hosta programisty. Przetestuj najpierw na lokalnym kolektorze; zablokowany firewall egressu po cichu odrzuca dane.
  • uvx snyk-agent-scan nic nie raportuje na serwerze, który podejrzewasz. Skany statyczne pomijają zachowanie w czasie wykonania. Połącz skan z kontrolami sandboksa powyżej (brak sieci, brak zakresu systemu plików) i obserwuj rzeczywiste wywołania narzędzi przez serwer — czysty skan jest konieczny, ale niewystarczający.
  • Bramka Rego blokuje legalne hotfixy. Wbuduj furtkę w samą politykę (linia MIGRATION-RISK: accepted by), a nie w override administratora. Override, który omija kontrolę, jest ustaleniem audytowym; udokumentowany, oznaczony wyjątek to działająca kontrola.
  • „Ustawienia audytu” Cursora się nie pojawiają. Nie istnieją na poziomie użytkownika. Jeśli potrzebujesz audytu per programista, potrzebujesz powierzchni administracyjnej planu Enterprise plus logowania komend na poziomie hosta — nie ma na to JSON-a po stronie klienta.
  • Agent wycieka sekret do promptu. To incydent wycieku danych, a nie błąd w kodzie. Twoje reguły .gitignore/skanowania sekretów (np. uprawnienie deny w Claude Code dla Read(./.env*)) zapobiegają temu u źródła; traktuj każde naruszenie jako podlegające zgłoszeniu w ramach twojego planu odpowiedzi na incydenty.