Automatyzacja zgodności z AI
Audytor chce dowodu, że każde wdrożenie produkcyjne przechodzi przez code review, że nie trafiła do wydania żadna zależność na licencji GPL i że potrafisz przygotować diagram przepływu danych pokazujący, gdzie znajdują się dane osobowe obywateli UE. Okno na SOC 2 Type II zamyka się za trzy tygodnie, a kodu nikt nie udokumentował pod kątem zgodności. Ręczne robienie zrzutów ekranu z ustawień GitHuba nie przejdzie w tej skali.
To dokładnie ten rodzaj powtarzalnej, dowodochłonnej pracy, w której agent kodujący AI jest dobry: potrafi przeczytać repozytorium, naszkicować skrypty zbierające dowody, podłączyć bramki CI egzekwujące dany mechanizm kontrolny i zamienić kod w narrację, jakiej oczekuje audytor. Ty pozostajesz recenzentem; agent wykonuje pisanie.
Co z tego wyniesiesz
Dział zatytułowany „Co z tego wyniesiesz”- Prompt, który audytuje repozytorium pod kątem konkretnego mechanizmu kontrolnego SOC 2 (CC6.1, CC8.1) i zwraca tabelę luk z dowodami w formacie
file:line - Działające zadanie GitHub Actions, które wywala build na niedozwolonych licencjach zależności
- Bramkę pre-commit skanującą sekrety, którą agent podłączy za Ciebie
- Dokument przepływu danych GDPR, który agent naszkicuje, śledząc pola danych osobowych przez kod
- Ten sam przepływ pracy pokazany w Cursorze, Claude Code i Codex, plus serwery MCP, które zamieniają zbieranie dowodów w jeden krok zamiast dziesięciu
Przepływ pracy
Dział zatytułowany „Przepływ pracy”Automatyzacja zgodności z agentem to cztery ruchy: zmapuj mechanizm kontrolny na swój kod, wygeneruj kolektor dowodów, wyegzekwuj mechanizm w CI, a następnie napisz narrację zrozumiałą dla człowieka. Traktuj wynik agenta jako pierwszą wersję roboczą do recenzji, nigdy jako ostatnie słowo audytora.
Zmapuj mechanizm kontrolny na swój kod
Dział zatytułowany „Zmapuj mechanizm kontrolny na swój kod”Zacznij wąsko. Wybierz jeden mechanizm kontrolny i poproś agenta, by znalazł, gdzie go spełniasz, a gdzie nie. Sztuczka polega na wymuszeniu cytatów file:line, żebyś mógł zweryfikować każdą tezę zamiast ufać pewnemu siebie podsumowaniu.
Klauzula „do not invent” ma znaczenie. Prompty dotyczące zgodności to miejsce, gdzie modele najbardziej kuszą się o halucynowanie schludnej, w pełni zgodnej odpowiedzi. Żądanie cytatów zamienia „zaufaj mi” w coś, co możesz wyrywkowo sprawdzić w 30 sekund.
Mechanika kierowania agenta na repozytorium różni się w zależności od narzędzia:
Otwórz repozytorium i przełącz Agenta na model klasy planistycznej (Fable 5 lub Opus 4.8 do dokładnych audytów, Sonnet 4.6 do codziennych przebiegów). Wklej prompt w trybie Agent i dodaj @Codebase, aby przeszukał cały projekt, a nie tylko otwarte pliki. Cursor renderuje tabelę luk w treści; kliknij każdy cytat file:line, aby przeskoczyć prosto do dowodu i go potwierdzić.
Z katalogu głównego repozytorium uruchom claude i wklej prompt. Claude Code czyta pliki za pomocą Read, Glob i Grep, budując tabelę, więc cytuje prawdziwe ścieżki. Aby zapisać wynik jako artefakt do folderu audytowego, uruchom go w trybie headless:
claude -p "Audit this repo against SOC 2 CC6.1 and output a markdown gap table with file:line evidence. Only mark Met with a citation." \ --output-format json > soc2-cc6.1-gap.jsonUruchom codex w repozytorium i wklej prompt. Trzymaj zatwierdzenia ściśle dla audytu tylko do odczytu, żeby nigdy nie edytował plików:
codex --ask-for-approval untrusted --sandbox read-onlySandbox read-only gwarantuje, że agent może wszystko zbadać, ale nie może tknąć drzewa roboczego, gdy buduje tabelę dowodów.
Wygeneruj kolektor dowodów
Dział zatytułowany „Wygeneruj kolektor dowodów”Audytorzy chcą powtarzalnych dowodów, a nie jednorazowej rozmowy. Niech agent napisze skrypt, który ściąga dowód na żądanie — ustawienia ochrony gałęzi, listę osób mogących mergować, zatwierdzenia wdrożeń — żebyś mógł uruchomić go ponownie rankiem w dniu audytu.
Przejrzyj to, co wyprodukuje. Potwierdź, że wywołuje prawdziwe punkty końcowe gh api / Octokit (a nie wymyślone), że czyta token ze środowiska zamiast wpisywać go na sztywno i że mapowanie mechanizmów kontrolnych w komentarzu nagłówkowym jest uczciwe. Następnie uruchom go raz i porównaj wzrokiem JSON z tym, co widzisz w interfejsie GitHuba.
Wyegzekwuj mechanizm w CI
Dział zatytułowany „Wyegzekwuj mechanizm w CI”Dowody potwierdzają, że mechanizm kontrolny istniał w przeszłości. Bramka CI utrzymuje go prawdziwym na przyszłość. Dwie bramki o najwyższej dźwigni: sprawdzanie licencji zależności i skan sekretów. Niech agent napisze obie.
W przypadku skanowania sekretów lepiej podłączyć sprawdzone narzędzie, niż prosić agenta o wymyślanie wyrażeń regularnych — powinien skonfigurować gitleaks, a nie pisać własny skaner:
Poproś Agenta: „Add a pre-commit hook using gitleaks that blocks commits containing secrets, plus a CI job that runs gitleaks detect on every PR.” Cursor edytuje .pre-commit-config.yaml i plik workflow. Przejrzyj diff w panelu Source Control, a następnie zastage’uj lokalnie fałszywą linię AWS_SECRET_ACCESS_KEY=..., aby potwierdzić, że hook faktycznie ją blokuje, zanim mu zaufasz.
Claude Code błyszczy przy wieloplikowej hydraulice tego typu. Po tym, jak napisze hook i workflow, zablokuj to zachowanie własnym hookiem w .claude/settings.json, aby skan sekretów uruchamiał się przed każdym commitem, który wykona:
{ "hooks": { "PreToolUse": [ { "matcher": "Bash(git commit:*)", "hooks": [{ "type": "command", "command": "gitleaks protect --staged --redact" }] } ] }}Teraz sam agent jest pod bramką: zastage’owany sekret przerywa jego commit.
Codex może zrobić to od początku do końca na worktree. Pozwól mu edytować pliki, ale trzymaj włączone zatwierdzanie poleceń, żebyś zobaczył instalację gitleaks:
codex --ask-for-approval on-request --sandbox workspace-writePoproś go o dodanie GitHub Action gitleaks oraz wpisu w .pre-commit-config.yaml, a następnie niech raz uruchomi gitleaks detect --no-git, aby udowodnić, że konfiguracja się parsuje.
Naszkicuj narrację przepływu danych GDPR
Dział zatytułowany „Naszkicuj narrację przepływu danych GDPR”Ostatni odcinek większości audytów to proza: opis przepływu danych, który audytor lub inspektor ochrony danych (DPO) może przeczytać. Agent potrafi prześledzić pola danych osobowych przez kod znacznie szybciej, niż ty zdołasz je wyszukać przez grep — o ile zmusisz go do cytowania źródeł i sygnalizowania niepewności.
Diagram Mermaid renderuje się bezpośrednio w większości narzędzi do dokumentacji i daje Twojemu DPO obraz zamiast ściany tekstu. Znacznik „NEEDS REVIEW” to zawór bezpieczeństwa — wyłapuje pola, których agent nie zdołał w pełni prześledzić, aby człowiek domknął lukę.
Serwery MCP i Skille, które pomagają
Dział zatytułowany „Serwery MCP i Skille, które pomagają”Zbieranie dowodów staje się dramatycznie krótsze, gdy agent może odpytywać Twoje systemy bezpośrednio, zamiast wywoływać CLI. Istotne połączenia są tu wyłącznie prawdziwymi, firmowymi serwerami MCP:
-
GitHub MCP — agent czyta ochronę gałęzi, recenzje PR i przebiegi Actions natywnie. Użyj hostowanego serwera pod
https://api.githubcopilot.com/mcp/(starszy lokalny serwer@modelcontextprotocol/server-githubjest przestarzały, ale wciąż instalowalny). Dodaj go do Claude Code za pomocą:Okno terminala claude mcp add --transport http github https://api.githubcopilot.com/mcp/ -
Sentry MCP (
https://mcp.sentry.dev/mcp) — pobieraj historię incydentów i błędów jako dowód dla mechanizmów kontrolnych dostępności i reagowania na incydenty. -
Filesystem MCP — do zawężenia agenta do konkretnego katalogu z dowodami podczas generowania raportów.
Jeśli naprawdę potrzebujesz skryptowo obsłużyć klienta MCP (zamiast pozwolić agentowi go prowadzić), konstrukcja SDK jest specyficzna — pakiet eksportuje Client, a nie nadrzędny MCPClient, i łączy się przez transport, nigdy przez goły ciąg z nazwą serwera:
// Connect a programmatic MCP client to the GitHub serverimport { Client } from '@modelcontextprotocol/sdk/client/index.js';import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const client = new Client({ name: 'compliance-evidence', version: '1.0.0' });await client.connect( new StreamableHTTPClientTransport(new URL('https://api.githubcopilot.com/mcp/')));Po stronie Skilli jednozadaniowy skill do code review z otwartego marketplace’u skilli (przeglądaj skills.sh i instaluj przez npx skills add <owner/repo>) jest lżejszą alternatywą dla pełnego serwera MCP, gdy potrzebujesz jedynie spójnej, ukierunkowanej na zgodność recenzji przy każdym PR. Sięgnij po skill, gdy potrzebujesz powtarzalnego zachowania; sięgnij po serwer MCP, gdy agent potrzebuje żywego połączenia z systemem źródłowym.
Kiedy to się sypie
Dział zatytułowany „Kiedy to się sypie”- Agent oznacza mechanizm kontrolny jako „Met” bez prawdziwego dowodu. To tryb awarii, który zafunduje Ci finding. Zawsze wymagaj cytatów
file:line, a potem wyrywkowo sprawdź trzy z nich. Jeśli cytat wskazuje na plik, który nie zawiera deklarowanego mechanizmu, odrzuć całą tabelę i uruchom ponownie ze ściślejszym promptem. - Wymyśla serwer MCP lub pakiet npm. Nie wklejaj
regulatory-mcp-server,@compliance/*ani podobnych — żaden nie istnieje. Zweryfikuj każdy proponowany pakiet poleceniemnpm view <pkg> version, zanim go podłączysz, i trzymaj się serwerów MCP GitHub/Sentry/Filesystem wymienionych powyżej. - Wygenerowane wyrażenia regularne przepuszczają prawdziwe sekrety. Nie pozwól agentowi ręcznie składać skanera sekretów. Użyj gitleaks lub
gh secret-scanning; ich zestawy reguł są utrzymywane i testowane. Agentem podłącz narzędzie, nie zastępuj go nim. - Dane licencyjne są błędne dla zależności tranzytywnych.
license-checkerczyta zadeklarowane licencje, które bywają błędnie oznaczone u źródła. W przypadku czegokolwiek, co masz zamiar wydać pod audytem, ręcznie potwierdź oznaczone pakiety copyleft, zanim wywalisz lub odblokujesz build. - Dokument przepływu danych ujawnia prawdziwy sekret lub próbkę danych osobowych. Powiedz agentowi, by zredagował wartości i odwoływał się wyłącznie do nazw pól. Przejrzyj diff przed zacommitowaniem czegokolwiek do
evidence/.
Co dalej
Dział zatytułowany „Co dalej”- Operacje bezpieczeństwa z AI — strona wykrywania zagrożeń i rotacji sekretów tej samej historii DevSecOps
- Optymalizacja kosztów — trzymaj wydatki na agenta i CI w ryzach, automatyzując