Twój skaner właśnie oznaczył 412 “krytycznych” odkryć w 50 obrazach kontenerów, kanał on-call płonie, a audytor SOC 2 chce dowodów z przeglądu dostępów na piątek. Odkrycia są prawdziwe, ale większość to szum — i nie masz szybkiego sposobu, by stwierdzić, które trzy naprawdę mają znaczenie. To tutaj agent AI podłączony do Twoich prawdziwych narzędzi bezpieczeństwa zarabia na siebie: nie wymyślając magii, lecz czytając wyniki skanera, korelując je z Twoim kodem i tworząc dowody, które inaczej składałbyś ręcznie.
Wzorzec przekazywania prawdziwych wyników skanera (Trivy, Twoje narzędzie bezpieczeństwa chmury) do Cursor, Claude Code lub Codex, tak by to agent robił triage zamiast Ciebie.
Zweryfikowane konfiguracje MCP dla danych bezpieczeństwa AWS i Azure plus jeden skaner higieny MCP, który naprawdę warto uruchamiać.
Gotowe do wklejenia prompty do triage podatności, potoku CI bramkowanego bezpieczeństwem oraz tworzenia dowodów SOC 2 / GDPR.
Prompt do utwardzania Kubernetes, który używa aktualnych API (Pod Security Admission, nie usuniętego PodSecurityPolicy).
Trzeźwa lista “kiedy to się psuje”, żebyś nie dostarczał fałszywej pewności.
Przepływ pracy: agent na szczycie prawdziwych narzędzi
Błąd, który popełnia większość opracowań o “AI SecOps”, to proszenie modelu, by był skanerem. Nie jest. Trwały wzorzec wygląda tak: deterministyczne narzędzie produkuje wynik czytelny maszynowo, a agent rozumuje nad tym wynikiem — priorytetyzując według możliwości wykorzystania, mapując odkrycie na dokładną linię w Twoim repo i tworząc poprawkę lub dowód.
Okno terminala
# Trivy to prawdziwe CLI. Zeskanuj obraz do JSON, a potem przekaż JSON agentowi.
Ten scan.json to wejście, w którym agent jest naprawdę dobry. Wszystko poniżej buduje na tym kształcie: uruchom prawdziwe narzędzie, a potem promptuj agenta nad jego wynikiem.
Kilka źródeł danych bezpieczeństwa warto podłączyć jako serwery MCP, by agent mógł odpytywać żywą postawę chmury zamiast pracować na nieaktualnym eksporcie. Serwer (command, args, env) jest wszędzie taki sam — różni się tylko plik konfiguracyjny i jego format: Cursor i Claude Code (.mcp.json) używają kształtu JSON mcpServers pokazanego poniżej, podczas gdy Codex (~/.codex/config.toml) wyraża te same pola jako tabelę TOML [mcp_servers.<name>].
Postawa bezpieczeństwa AWS — pakiet aws-security-mcp (prawdziwy, w npm) udostępnia odkrycia Security Hub, GuardDuty i IAM:
{
"mcpServers": {
"aws-security": {
"command": "npx",
"args": ["-y", "aws-security-mcp"],
"env": {
"AWS_REGION": "us-east-1"
}
}
}
}
Ten sam serwer w ~/.codex/config.toml Codeksa — identyczne pola, składnia TOML:
[mcp_servers.aws-security]
command = "npx"
args = ["-y", "aws-security-mcp"]
[mcp_servers.aws-security.env]
AWS_REGION = "us-east-1"
Nie wpisuj na sztywno AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY jako literałów w konfiguracji, którą możesz zacommitować. Pozwól serwerowi pobrać poświadczenia ze standardowego łańcucha AWS — przyjętej roli IAM, SSO lub ~/.aws/credentials — tak samo jak robi to AWS CLI.
Postawa bezpieczeństwa Azure — serwer first-party Microsoftu @azure/mcp obejmuje Defender for Cloud oraz zapytania o zasoby:
Jeśli dodajesz serwery MCP do przepływu bezpieczeństwa, audytuj je. snyk-agent-scan (uruchamiany przez uvx) statycznie sprawdza Twoje zainstalowane serwery MCP pod kątem prompt injection, tool poisoning i ataków rug-pull — ryzyk łańcucha dostaw specyficznych dla MCP. To dawne mcp-scan Invariant Labs, przemianowane po przejęciu Invariant Labs przez Snyk w czerwcu 2025; stary pakiet mcp-scan w PyPI jest teraz tylko przekierowującym shimem, który instaluje i przekazuje do snyk-agent-scan, więc używaj nazwy kanonicznej:
Okno terminala
# Zeskanuj wszystkie zainstalowane konfiguracje serwerów MCP pod kątem złośliwych opisów narzędzi
uvxsnyk-agent-scan@latestscan
# Sprawdź dokładne opisy narzędzi, którymi karmiony jest Twój model
uvxsnyk-agent-scan@latestinspect
To prawdziwe, aktualne polecenie — i naprawdę dobry nawyk, gdy już zależysz od zewnętrznych serwerów MCP dla danych bezpieczeństwa.
Triage podatności: od 412 odkryć do 3, które mają znaczenie
Uruchom skaner, a potem pozwól agentowi zrobić priorytetyzację, przez którą człowiek inaczej musiałby się przemęczyć. Agent czyta JSON, sprawdza krzyżowo Twój kod, by ustalić, czy podatna ścieżka jest faktycznie osiągalna, i porządkuje według realnej możliwości wykorzystania, a nie surowego CVSS.
Otwórz repo, wrzuć scan.json do kontekstu Composera i uruchom prompt triage. Przy podłączonym serwerze MCP @aws-security dodaj @aws-security, by sprawdził, czy dotknięta usługa jest faktycznie wystawiona do internetu.
Z roota repozytorium przekaż wynik skanera jako kontekst. Claude Code może sam uruchomić grep/rg, by potwierdzić osiągalność, co czyni jego priorytetyzację konkretną, a nie zgadywaną.
Okno terminala
claude"Read scan.json and the codebase, then triage the HIGH/CRITICAL findings"
Uruchom wewnątrz TUI Codeksa, by móc przejrzeć każde polecenie, zanim się wykona. Codex domyślnie działa w sandboksie; trzymaj zatwierdzenia włączone dla wszystkiego, co dotyka poświadczeń lub API chmury.
Okno terminala
codex"Read scan.json and triage the HIGH/CRITICAL findings against our source"
Jak wygląda dobry wynik — prawdziwe, osiągalne odkrycie, a nie zmyślone:
P0 — CVE-2026-42945 (nginx, ngx_http_rewrite_module heap overflow, CVSS 9.2).
Dotknięte: obraz bazowy nginx:1.30.0 w 3 usługach. Osiągalne: tak — wszystkie trzy używają dyrektyw rewrite. Wystawione do internetu: tak (edge ingress).
Poprawka: przebuduj na nginx:1.31.0 (lub 1.30.1), który dostarcza łatkę. Załataj w ciągu 24h.
To CVE jest prawdziwe (wprowadzone w 2008, ujawnione w 2026, naprawione w nginx 1.31.0 / 1.30.1) — używaj weryfikowalnych odkryć w pracy nad bezpieczeństwem; nigdy nie pozwól, by agent przedstawiał wymyślony numer CVE jako fakt.
Ruchem o najwyższej dźwigni jest postawienie skanera przed wdrożeniami, tak by krytyczna podatność automatycznie blokowała merge. Trivy dostarcza utrzymywaną GitHub Action; zadaniem agenta jest podłączyć ją do Twojego potoku i poprawnie ustawić bramkę.
Poprawna bramka wygląda mniej więcej tak — zwróć uwagę, że skanuje zbudowany obraz i wywala build, a nie tylko raportuje:
- name: Scan image with Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: myorg/api:${{ github.sha }}
severity: HIGH,CRITICAL
ignore-unfixed: true
exit-code: '1'# fail the build on a fixable HIGH/CRITICAL
format: sarif
output: trivy.sarif
Wzorzec się uogólnia: skanowanie podczas budowania w CI, plus ciągłe skanowanie rejestru dla już wdrożonych obrazów, plus polityka dopuszczenia na poziomie klastra (następna sekcja), tak by podatny obraz nie mógł zostać zaplanowany, nawet jeśli prześlizgnie się przez CI.
Przepływ bezpieczeństwa kontenerów z prawdziwego świata
Wyzwanie: Twój zespół wdraża 50+ obrazów tygodniowo. Ręczny przegląd to wąskie gardło; niezeskanowane obrazy to ryzyko. Rozwiązaniem są warstwowe, zautomatyzowane bramki — oraz polityka dopuszczenia używająca aktualnych API Kubernetes.
Użyj agenta, by:
Podłączyć Trivy do CI jako bramkę blokującą (prompt powyżej).
Włączyć ciągłe skanowanie rejestru dla już wdrożonych obrazów.
Wymusić Pod Security Standards na poziomie klastra przez Pod Security Admission (wbudowanego następcę usuniętego PodSecurityPolicy) lub silnik polityk jak Kyverno / OPA Gatekeeper dla bogatszych reguł.
Audytować żywe workloady względem CIS Kubernetes Benchmark.
PodSecurityPolicy zostało usunięte w Kubernetes 1.25 — każdy przewodnik wciąż każący Ci “wdrożyć pod security policies” jest nieaktualny. Aktualnym wbudowanym mechanizmem jest Pod Security Admission egzekwujący trzy Pod Security Standards (privileged / baseline / restricted).
Zgodność to w większości składanie dowodów, a to dokładnie ten rodzaj ustrukturyzowanej pracy zestawiającej, w której agent jest dobry — pod warunkiem, że skierujesz go na prawdziwe artefakty (logi dostępu, IaC, eksporty konfiguracji), zamiast prosić, by stwierdził zgodność z niczego.
Wrzuć do kontekstu swój eksport przeglądu dostępów oraz IaC, podłącz @aws-security dla żywej konfiguracji i poproś o pakiet dowodów zmapowany na konkretne kontrole.
Claude Code może przeczytać repo, uruchomić git log dla dowodów zarządzania zmianami i złożyć pakiet w jednym przebiegu.
Użyj Codeksa z sandboksem tylko do odczytu na przebieg dowodowy — powinien czytać i raportować, a nie modyfikować infrastruktury.
Okno terminala
codex--sandboxread-only"Assemble SOC 2 CC6.1 access-control evidence from access-review.csv and infra/"
Dyscyplina, która czyni to wiarygodnym: każda deklaracja “spełnione” musi cytować prawdziwy artefakt. Pakiet dowodów, który agent zmyślił, polegnie w momencie, gdy audytor poprosi o pokazanie leżącego u podstaw logu — więc promptuj jawnie o cytowania i oznaczanie luk, jak powyżej.
Burze fałszywych alarmów. Skanery oznaczają setki “krytycznych”, które są nieosiągalnymi zależnościami tranzytywnymi lub nienaprawialnym szumem obrazu bazowego. Zawsze przekazuj ignore-unfixed tam, gdzie ma to sens, i każ agentowi potwierdzić osiągalność, zanim nazwie coś P0 — inaczej zautomatyzowałeś zmęczenie alertami.
Awarie uwierzytelniania skanera / chmury. Jeśli triage agenta wygląda podejrzanie pusto, serwer MCP lub CLI prawdopodobnie nie uwierzytelnił się (wygasłe SSO, zły region, brakująca rola) i nic nie zwrócił. Zweryfikuj, że leżące u podstaw narzędzie działa samodzielnie (aws sts get-caller-identity, trivy image …), zanim zaufasz podsumowaniu agenta.
Zablokowanie przez admission controller. Przełączenie Pod Security Admission od razu na enforce: restricted lub zbyt szeroka polityka Kyverno może zablokować Twoje własne wdrożenia, a nawet pody systemowe klastra. Wdrażaj etapowo z warn/audit, wyklucz kube-system i testuj najpierw na jednym namespace.
Zmyślone CVE lub dowody. Największe pojedyncze ryzyko: agent pewnie cytujący numer CVE, wynik CVSS lub artefakt zgodności, który nie istnieje. Nigdy nie akceptuj odkrycia, którego nie możesz prześledzić do wyniku skanera lub prawdziwego artefaktu. Uczyń z “cytuj źródło albo oznacz jako nieznane” stałą instrukcję w każdym promptcie bezpieczeństwa.
Ryzyko łańcucha dostaw MCP. Złośliwy zewnętrzny serwer MCP może zatruć kontekst agenta. Uruchamiaj uvx snyk-agent-scan@latest scan po dodaniu dowolnego serwera i przypinaj wersje.