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.
Co z tego wyniesiesz
Dział zatytułowany „Co z tego wyniesiesz”- 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ść.
Włączanie dowodów audytu
Dział zatytułowany „Włączanie dowodów audytu”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.
Cursor nie udostępnia kluczy cursor.audit.* ani cursor.compliance.* na poziomie użytkownika — zgodność jest na poziomie platformy. Twój dowód pochodzi z planu Enterprise i Trust Center, a nie z pliku JSON:
- Privacy Mode / zerowa retencja danych — wymuś w całej organizacji, tak aby żaden kod nie był przechowywany ani używany do trenowania. To jest twoja kontrola obsługi danych.
- SSO + SCIM do provisioningu oraz analityka/audyt administracyjny w panelu zespołu — twój dowód kontroli dostępu i aktywności.
- Atestacje SOC 2 Type II + GDPR oraz lista subprocesorów na trust.cursor.com — dołącz je do swojego pliku zarządzania dostawcami.
Udokumentuj „Cursor Enterprise, wymuszony Privacy Mode, SSO przez Okta” jako kontrolę; raport Trust Center jest dowodem od strony trzeciej.
Audyt Codeksu mieszka w ~/.codex/config.toml (zarządzany centralnie dla zespołów). Nie ma klucza logowania audytu; ograniczasz i rejestrujesz zachowanie przez sandbox i politykę zatwierdzania oraz własny wrapper powłoki:
# Domyślnie blokuj egress sieciowy i zapisy poza workspacesandbox_mode = "workspace-write"approval_policy = "on-request"
[sandbox_workspace_write]network_access = falsePołącz to z historią uruchomień Codex Cloud per zadanie (każde zadanie Cloud jest logowane wraz z diffem i wyjściem komend), aby uzyskać ślad aktywności. Dla twardej granicy egressu uruchamiaj CLI wewnątrz kontenera, którego ruch wychodzący jest logowany na warstwie sieciowej.
Skanowanie serwerów MCP, zanim im zaufasz
Dział zatytułowany „Skanowanie serwerów MCP, zanim im zaufasz”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.
-
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.jsonStarszy punkt wejścia
uvx mcp-scan@latestnadal działa — to teraz przekierowanie, które instalujesnyk-agent-scani przekazuje CLI. -
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. -
Zarejestruj sam skaner jako serwer MCP, aby agent mógł skanować ponownie na żądanie:
claude mcp add security-analyzer -- uvx snyk-agent-scanclaude mcp listDodaj go w Settings → MCP → Add Server albo edytuj ~/.cursor/mcp.json bezpośrednio, tak aby konfiguracja była przeglądalna w systemie kontroli wersji:
{ "mcpServers": { "security-analyzer": { "command": "uvx", "args": ["snyk-agent-scan"], "env": { "SNYK_TOKEN": "${SNYK_TOKEN}" } } }}Zużywany jest tylko SNYK_TOKEN (do uwierzytelnionych skanów) — nie wymyślaj tutaj SECURITY_SCAN_MODE ani SEMGREP_APP_TOKEN. Uruchamiaj Semgrep jako osobny krok (poniżej), a nie jako zmienną środowiskową na skanerze.
codex mcp add security-analyzer -- uvx snyk-agent-scanAlbo zadeklaruj go w ~/.codex/config.toml:
[mcp_servers.security-analyzer]command = "uvx"args = ["snyk-agent-scan"]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.
Wymuszanie polityk w CI
Dział zatytułowany „Wymuszanie polityk w CI”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ł.
Kiedy to się psuje
Dział zatytułowany „Kiedy to się psuje”- „Telemetria jest włączona, ale SIEM jest pusty.”
CLAUDE_CODE_ENABLE_TELEMETRY=1musi 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-scannic 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. uprawnieniedenyw Claude Code dlaRead(./.env*)) zapobiegają temu u źródła; traktuj każde naruszenie jako podlegające zgłoszeniu w ramach twojego planu odpowiedzi na incydenty.
Co dalej
Dział zatytułowany „Co dalej”- Skanowanie bezpieczeństwa i testowanie podatności — towarzysz od strony testowania: budowanie i uruchamianie skanów, które ten artykuł bramkuje
- Optymalizacja i rozwiązywanie problemów z MCP — utwardzanie, ograniczanie zakresu i debugowanie zweryfikowanych serwerów MCP
- Bramki jakości kodu napędzane przez AI — rozszerzanie wzorca bramki CI poza bezpieczeństwo, na jakość i wymuszanie przeglądów