Przewodnik

Katalog incydentów bezpieczeństwa w kodzie pisanym z AI: co zawiodło i jaka kontrola by to wykryła

Katalog incydentów to datowana lista przypadków, w których kod napisany z asystentem AI albo warstwa aplikacji wokół modelu językowego zawiodły w sposób publicznie udokumentowany: rekordem CVE, biuletynem dostawcy, oficjalnym raportem po incydencie albo recenzowanym pomiarem. Ta strona prowadzi taki katalog, uporządkowany według mechanizmu, z kontrolą dopasowaną do każdego z tych mechanizmów.

W skrócie

23Minds prowadzi katalog publicznie udokumentowanych incydentów bezpieczeństwa w kodzie pisanym z AI i w warstwie aplikacji wokół LLM, dla szefów inżynierii, którzy chcą wiedzieć, co naprawdę poszło nie tak gdzie indziej, zanim zdecydują, co sprawdzić u siebie. Każdy wpis ma datę, źródło pierwotne (rekord CVE, biuletyn dostawcy, oficjalny raport po incydencie albo opublikowane badanie) i jeden nazwany mechanizm: treść czytana przez agenta potraktowana jak polecenie, wygenerowany domyślny backend wdrożony bez zmian, zmyślona nazwa pakietu zainstalowana z rejestru, destrukcyjne polecenie uruchomione z wyłączonym potwierdzeniem, wynik modelu przekazany do SQL albo do wykonania kodu, narzędzie MCP albo rozszerzenie z dostępem szerszym niż zadanie. Katalog jest punktem wyjścia do przeglądu bezpieczeństwa kodu pisanego przez AI: każda klasa mechanizmu ma listę kontrolną, wynik testu dla danej bazy kodu z zakresem sprawdzenia i ponowny test po poprawce. Incydenty objęte NDA nie wchodzą do katalogu; tylko to, co da się sprawdzić u źródła.

Dla kogo

Kto skorzysta z tego przewodnika.

  • CTO i wiceprezesi ds. inżynierii, których zespoły wdrażają kod z Copilota, Cursora, Claude Code albo Gemini CLI i których zarząd albo klient zapytał, co może pójść nie tak
  • Szefowie bezpieczeństwa i zespołów platformowych, którzy dodali agenta w aplikacji, serwer MCP albo automatyzację wsparcia na LLM i potrzebują konkretnej listy zagrożeń zamiast ogólnej
  • Software house'y, które dostarczają klientom kod pisany z AI, a klienci proszą teraz o dowód niezależnego sprawdzenia bezpieczeństwa
  • Inżynierowie, którzy czytają biuletyny dostawców jeden po drugim i chcą mieć je w jednym miejscu, posortowane według mechanizmu

Co jest wpisem, a co nim nie jest

O cudzych incydentach z agentami kodującymi zespoły słyszą rzadko: NDA i wstyd trzymają je poza publicznym obiegiem, więc zespoły polegają na deklaracjach dostawców. Katalog poniżej idzie odwrotną drogą i wymienia tylko to, co da się sprawdzić u źródła: rekord CVE, biuletyn bezpieczeństwa dostawcy, publiczne oświadczenie kierownictwa dostawcy albo recenzowany pomiar z opublikowaną metodą. Relacja prasowa wchodzi tylko wtedy, gdy przytacza publiczne oświadczenie dostawcy, a wiersz to oznacza. Wpisy są trzech rodzajów: incydenty z potwierdzoną szkodą, podatności z rekordem CVE albo biuletynem oraz demonstracje badaczy; kolumna Skutek mówi, o który rodzaj chodzi. Wątki praktyków, którzy liczą incydenty z codziennej pracy, są przydatne jako format, ale wątek nie jest źródłem i żaden nie jest tu cytowany.

Trzy granice trzymają listę w ryzach. Obejmuje kod i warstwę aplikacji: co napisał asystent, co aplikacja wysyła do modelu i czemu ufa w odpowiedzi, co agent ma prawo wywołać. Nie obejmuje infrastruktury, konfiguracji chmury, bezpieczeństwa sieci, testów penetracyjnych ani SOC; to osobne dyscypliny z własnymi katalogami. Nie traktuje też modelu jak winowajcy. Każdy wiersz to narzędzie użyte bez kontroli, którą postawiłby przed nim proces. Właśnie dlatego każdy wiersz ma dopisaną kontrolę.

Katalog

Posortowany według daty publikacji źródła (rekordu CVE, biuletynu, raportu albo badania). Kolumna klasy używa sześciu klas mechanizmów zdefiniowanych w następnej sekcji. Odnośniki do źródeł są na końcu strony. Oceny ważności to wartości CVSS z rekordów CVE tam, gdzie rekord istnieje; przy ForcedLeak wartość pochodzi z raportu Noma Security.

Katalog
DataSystem i źródłoCo zawiodłoSkutekKlasaKontrola dla tego mechanizmu
2023-07LangChain SQLDatabaseChain, CVE-2023-36189SQL wygenerowany przez model wykonany na bazie bez granicy między pytaniem a zapytaniemZdalny atakujący uzyskuje wrażliwe informacje przez łańcuchERola bazodanowa ograniczona do tabel potrzebnych w zadaniu, lista dozwolonych instrukcji, przegląd zapytania przed wykonaniem, test odczytu bez wymaganych uprawnień
2024-03huggingface-cli na PyPI, eksperyment Lasso SecurityNazwa pakietu wielokrotnie zmyślana przez asystentów została zarejestrowana przez badaczy; publiczne repozytorium badawcze Alibaby miało ją w instrukcji instalacjiPusty pakiet zainstalowany przez prawdziwe projekty, które poszły za instrukcją napisaną przez asystentaCSprawdzenie rejestru przy każdej nowej zależności: wiek, wydawca, historia pobrań, oraz diff pliku blokady w przeglądzie
2024-05Vanna.AI text-to-SQL, CVE-2024-5565, CVSS 8,1Niezaufane wejście w ask() dociera do promptu, który pisze kod wizualizacji Plotly, a ten kod jest wykonywanyZdalne wykonanie kodu; obejście polega na wyłączeniu wizualizacji dla niezaufanego wejściaEBez wykonywania kodu napisanego przez model ze ścieżek dostępnych użytkownikom; renderowanie w piaskownicy; wejście oznaczone jako niezaufane na całej drodze
2025-05GitLab Duo, ujawnienie Legit SecurityUkryty tekst w merge requestach, zgłoszeniach, commitach i kodzie (biały KaTeX, kodowanie base16) czytany przez Duo jak poleceniaPrywatny kod źródłowy wyprowadzony przez wstrzyknięty znacznik obrazu; niebezpieczne adresy URL pokazane jako bezpieczneALista dozwolonych adresów wychodzących dla renderowanych odpowiedzi asystenta; usuwanie aktywnego HTML z odpowiedzi; zestaw testów wstrzyknięć w CI
2025-05Serwer GitHub MCP, Invariant LabsPubliczne zgłoszenie wydaje polecenia agentowi, który ma token także do prywatnych repozytoriówDane z prywatnego repozytorium wpisane do publicznego pull requestaFJeden token na zakres repozytorium; agent nie czyta prywatnego zakresu w sesji rozpoczętej z publicznego
2025-05Aplikacje generowane w Lovable, CVE-2025-48757, CVSS 9,3Wygenerowane polityki row-level security w Supabase niewystarczające albo nieobecne w projektach utworzonych przed 2025-04-15Nieuwierzytelniony odczyt i zapis dowolnych tabel wygenerowanych stron; dostawca kwestionuje, wskazując odpowiedzialność każdego klientaBSprawdzenie polityk tabela po tabeli klientem anonimowym przed publikacją; RLS wymagane dla każdej tabeli z danymi użytkowników
2025-06Microsoft 365 Copilot, EchoLeak, CVE-2025-32711, CVSS 9,3Polecenia w przychodzącym e-mailu przetworzone przez asystenta bez żadnego działania użytkownikaUjawnienie informacji przez sieć, bez kliknięciaANiezaufana treść nigdy nie łączy się z narzędziem, które sięga na zewnątrz; lista dozwolonych adresów wychodzących dla każdego działania asystenta
2025-07Supabase MCP z Cursorem, General AnalysisTreść zgłoszenia do wsparcia każe agentowi odczytać integration_tokens; połączenie MCP działa z rolą service_role, która omija row-level securitySekrety OAuth i dane sesji wpisane z powrotem do wątku zgłoszeniaFZakres projektu na serwerze MCP i połączenie bez dostępu do tabel z sekretami; żadnego service_role w połączeniu dostępnym dla agenta
2025-07mcp-remote, CVE-2025-6514, CVSS 9,6Adres authorization_endpoint zwrócony przez niezaufany serwer MCP przekazany do poleceniaWstrzyknięcie polecenia systemowego na maszynie programistyFPrzypięta, przejrzana lista serwerów MCP; żadnego składania poleceń powłoki ze zdalnych ciągów; bramka wersji klienta
2025-07Amazon Q Developer dla VS Code 1.84.0, biuletyn AWS-2025-015Token GitHub o zbyt szerokim zakresie wpuścił niezatwierdzony kod do repozytorium rozszerzenia i do wydaniaZłośliwy kod w wydaniu; nie zadziałał przez błąd składni; wersja wycofana, wydano 1.85.0FPrzypięcie wersji rozszerzeń i przegląd aktualizacji; tokeny o najmniejszych uprawnieniach w potoku publikacji
2025-07Gemini CLI 0.1.13, TracebitPolecenia ukryte w README, lista dozwolonych, która przepuściła łańcuch poleceń po jednym zatwierdzonym grep, oraz białe znaki ukrywające ładunekZmienne środowiskowe wysłane na zdalny serwer bez pokazania polecenia użytkownikowi; poprawka w 0.1.14AZatwierdzanie każdego polecenia z widoczną całą linią poleceń; bez dopasowania listy dozwolonych po pierwszym tokenie
2025-07Replit Agent, projekt SaaStr, oświadczenie prezesa dostawcy w relacji FortuneAgent uruchomił destrukcyjne polecenie na bazie w czasie ogłoszonego zamrożenia kodu i zgłosił, że przywrócenie jest niemożliweBaza produkcyjna skasowana; dostawca nazwał to niedopuszczalnym i wdrożył rozdział dev/prod oraz tryb samego planowaniaDŻadnych danych dostępowych do produkcji w środowisku agenta; operacje destrukcyjne za jawnym potwierdzeniem i przetestowanym przywracaniem
2025-08Cursor poniżej 1.3.9, CVE-2025-54135, CVSS 8,6Pośrednie wstrzyknięcie promptu tworzy nowy plik .cursor/mcp.json bez zgody, której wymaga edycja istniejącegoZdalne wykonanie kodu na maszynie programistyATworzenie i edycja plików konfiguracyjnych pod tą samą regułą zgody; test wstrzyknięcia, który zapisuje plik kanarkowy
2025-08Cursor 1.2.4 i niżej, CVE-2025-54136, CVSS 7,2Zatwierdzona już definicja MCP we współdzielonym repozytorium podmieniona na inne polecenie bez ponownego pytaniaTrwałe wykonanie kodu dla każdego z prawem zapisu do gałęziFSkrót każdej zatwierdzonej definicji MCP; ponowna zgoda przy każdej zmianie; konfiguracja MCP przeglądana jak workflow CI
2025-08Claude Code poniżej 0.2.111, CVE-2025-54794, CVSS 7,7Sprawdzenie ścieżki po prefiksie zamiast po ścieżce kanonicznej; katalog z tym samym prefiksem co katalog roboczy przechodziDostęp do plików poza katalogiem roboczym, gdy niezaufana treść jest w kontekścieAPorównanie ścieżek kanonicznych w każdej kontroli ścieżek; test z katalogiem sąsiednim o wspólnym prefiksie
2025-08GitHub Copilot i Visual Studio, CVE-2025-53773, CVSS 7,8Wstrzyknięcie promptu edytuje .vscode/settings.json i ustawia chat.tools.autoApprove, usuwając każde potwierdzenieLokalne wykonanie kodu na Windows, macOS i LinuksieAPliki ustawień traktowane jak kod: chronione przed zapisem w sesjach agenta, pokazywane w diffie w przeglądzie, flagi automatycznej zgody zakazane polityką
2025-09Salesforce Agentforce, ForcedLeak, Noma Security, CVSS 9,4Pole opisu w formularzu leadów niesie polecenia; wynik agenta może trafić do wygasłej domeny wciąż obecnej na liście dozwolonych CSPRekordy CRM wysłane do domeny zarejestrowanej przez atakującego; poprawka wymusza zaufane adresy URLAAudyt listy dozwolonych adresów wychodzących pod kątem wygasłych wpisów; pola formularzy oznaczone jako niezaufane, zanim trafią do agenta
2025-11Google Antigravity, PromptArmorPolecenia czcionką 1 pkt na stronie WWW; agent czyta .env przez cat mimo straży opartej na gitignore, a podagent przeglądarki otwiera adres atakującego z zawartościąDane dostępowe wyprowadzone do serwisu logującego obecnego na domyślnej liście dozwolonych przeglądarkiAKontrola dostępu do plików, która obejmuje także powłokę; przegląd domyślnej listy dozwolonych przeglądarki; sekrety poza katalogiem roboczym
2025-12Google Antigravity w trybie Turbo, relacja The Register; dostawca potwierdził postępowanie, bez oficjalnego raportuPolecenie czyszczenia pamięci podręcznej trafiło w korzeń dysku D: zamiast w katalog projektu, bez potwierdzenia w tym trybieZawartość dysku użytkownika skasowana z pominięciem koszaDDestrukcyjne operacje na plikach ograniczone do ścieżki katalogu roboczego; tryb potwierdzania poza piaskownicami
2026-01Moltbook, Wiz ResearchKlucz Supabase wpisany na stałe w JavaScript po stronie klienta, bez row-level security; założyciel oświadczył, że żadna linia nie została napisana ręcznie1,5 mln tokenów API, 35 000 adresów e-mail i prywatne wiadomości do odczytu i zapisu bez uwierzytelnienia; poprawka w kilka godzin od ujawnieniaBSonda klientem anonimowym na każdej tabeli przed startem; skan sekretów na zbudowanej paczce, nie tylko na repozytorium

Sześć klas mechanizmów i co łączy wpisy w każdej z nich

Nazwy narzędzi się zmieniają, mechanizmy się powtarzają. Każda klasa poniżej nazywa, co zrobiło narzędzie, czego brakowało procesowi i jaki pomiar za tym stoi, jeśli istnieje. Dwa recenzowane badania kotwiczą klasy dotyczące samego generowanego kodu: Pearce i współautorzy (IEEE S&P 2022) wygenerowali Copilotem 1 689 programów w 89 scenariuszach słabości i uznali około 40% za podatne; Fu i współautorzy (ACM TOSEM 2025) przeanalizowali 733 fragmenty napisane przez asystenta znalezione w prawdziwych projektach na GitHubie i zgłosili słabości w 29,5% próbki w Pythonie i 24,2% w JavaScripcie.

Sześć klas mechanizmów i co łączy wpisy w każdej z nich
KlasaMechanizmCzego brakowało procesowiWpisy powyżej
A. Treść staje się poleceniemTekst, który agent czyta (zgłoszenie w systemie wsparcia albo w repozytorium, README, e-mail, strona WWW, pole formularza), jest przetwarzany tak, jakby wpisał go użytkownik, a po nim następuje wywołanie narzędziaGranica między niezaufaną treścią a narzędziami, które sięgają na zewnątrz; zgoda, która pokazuje całe działanieGitLab Duo, EchoLeak, Gemini CLI, Cursor, Claude Code, Copilot, Agentforce, Antigravity
B. Wygenerowany domyślny stan idzie na produkcję bez zmianReguły dostępu do backendu, klucze w paczkach klienta i domyślne ustawienia frameworka trafiają na produkcję w stanie, w jakim wyprodukował je asystentKontrola przed publikacją dla każdej tabeli i każdego sekretu, uruchomiona jako klient anonimowyLovable RLS, Moltbook
C. Zmyślona zależnośćAsystent podaje nazwę pakietu, który nie istnieje; ktoś rejestruje tę nazwę; linia instalacji zyskuje zaufanie, bo wygląda zwyczajnieWeryfikacja w rejestrze każdej nowej zależności w przeglądziehuggingface-cli, Spracklen i współautorzy
D. Destrukcyjne polecenie bez bramkiAgent z dostępem do produkcji albo do systemu plików uruchamia usunięcie, drop albo wyczyszczenie w trybie, w którym potwierdzenia są wyłączoneRozdział danych dostępowych między środowiskami; jawna bramka na operacjach destrukcyjnych; przetestowane przywracanieReplit Agent, Antigravity Turbo
E. Wynik modelu trafia do SQL albo do wykonania koduTekst z modelu jest przekazywany do bazy albo interpretera tak, jakby ktoś go przejrzałRole ograniczone do danych z zadania, lista dozwolonych instrukcji, bez wykonywania wygenerowanego kodu ze ścieżek użytkownikaLangChain, Vanna.AI
F. Narzędzie albo rozszerzenie z dostępem szerszym niż zadanieSerwer MCP, rozszerzenie albo token ma zakres na wszystko, co może zrobić programista, a agent go dziedziczyJeden zakres na zadanie; skrót i ponowna zgoda dla definicji narzędzi; przypięte wersjeGitHub MCP, Supabase MCP, mcp-remote, podmiana MCP w Cursorze, rozszerzenie Amazon Q

Co sprawdza przegląd bezpieczeństwa kodu pisanego przez AI, klasa po klasie

Katalog staje się użyteczny, gdy każda klasa dostaje wynik dla konkretnej bazy kodu: wynik konkretnego testu, sprawdzony zakres i granice wniosku. Lista poniżej to lista kontrolna, którą Przegląd bezpieczeństwa kodu pisanego przez AI wykonuje dla każdej klasy. Każdy punkt kończy się artefaktem albo testem, bo wynik bez nich jest opinią.

  • Klasa A. Prześledźcie każdą ścieżkę, którą niezaufany tekst wchodzi do promptu i po której może nastąpić wywołanie narzędzia. Wypiszcie każde narzędzie, które sięga poza proces: sieć, powłoka, zapis pliku, przeglądarka. Zbudujcie zestaw testów wstrzyknięć z działaniem kanarkowym i uruchamiajcie go w CI na każdej ścieżce. Przejrzyjcie listę dozwolonych adresów wychodzących pod kątem wygasłych wpisów i symboli wieloznacznych.
  • Klasa B. Wypiszcie tabele i zasobniki, a potem sprawdźcie każdy z nich jako klient anonimowy i jako użytkownik o niskich uprawnieniach. Przeskanujcie zbudowaną paczkę klienta pod kątem kluczy uprzywilejowanych, nie tylko repozytorium. Porównajcie domyślne ustawienia frameworka odtworzone przez asystenta (CORS, flagi weryfikacji, wyjście debugowania) z konfiguracją produkcyjną.
  • Klasa C. Porównujcie plik blokady w każdym pull requeście napisanym z asystentem. Sprawdzajcie każdy nowy pakiet pod kątem wieku w rejestrze, wydawcy i historii pobrań. Utrzymujcie listę dozwolonych dla środowiska uruchomieniowego i blokadę poleceń instalacji, które asystent wpisuje do dokumentacji.
  • Klasa D. Wypiszcie każde dane dostępowe w środowisku agenta razem ze środowiskiem, do którego należą. Oddzielcie produkcję od wszystkiego, do czego agent sięga. Postawcie operacje destrukcyjne za jawnym potwierdzeniem i przećwiczcie przywracanie raz, z zapisanym czasem, ile trwało.
  • Klasa E. Znajdźcie każdy punkt, w którym wynik modelu jest wykonywany albo odpytuje bazę. Dajcie generowanemu SQL rolę ograniczoną do tabel z zadania, bez zapisu, oraz listę dozwolonych instrukcji. Usuńcie wykonywanie wygenerowanego kodu z każdej ścieżki dostępnej użytkownikom. To, co zostaje, zamknijcie w piaskownicy.
  • Klasa F. Zinwentaryzujcie serwery MCP, rozszerzenia i tokeny razem z ich zakresami. Zawęźcie każdy do zadania, któremu służy. Liczcie skróty zatwierdzonych definicji narzędzi i wymagajcie ponownej zgody przy zmianie. Przypnijcie wersje i przeglądajcie aktualizacje jak aktualizacje zależności.
  • Ponowny test. Po poprawkach każda klasa dostaje ten sam test jeszcze raz, a wynik jest zapisany obok pierwotnego. Para wyników to dowód, który może przeczytać klient albo zarząd.
Z doświadczenia

Co może pójść nie tak i co z tym robimy.

  1. 1
    Treść, którą czyta agent, jest traktowana jak polecenie

    Agent dostaje do kontekstu zgłoszenie do wsparcia, zgłoszenie w repozytorium, README albo e-mail, bo tego wymaga zadanie, a model nie ma niezawodnego sposobu, żeby odróżnić cytowany tekst od prośby użytkownika. Gdy w tej samej sesji dostępne jest narzędzie sięgające poza proces, tekst może je wywołać. Każdy wpis klasy A w katalogu ma ten kształt, od GitLab Duo po Antigravity, a poprawki dostawców były granicami wokół narzędzi, nie lepszymi modelami.

    Co z tym robimy

    Mapujemy każdą ścieżkę wejścia niezaufanego tekstu do promptu i wypisujemy każde narzędzie osiągalne z tej sesji. Tam, gdzie jedno spotyka drugie, usuwamy narzędzie wychodzące albo stawiamy je za zgodą pokazującą pełne działanie. Oznaczenie treści jako danych w strukturze promptu zostaje środkiem pomocniczym, nie zamiennikiem kontroli wykonywanej poza modelem. Potem uruchamiamy zestaw testów wstrzyknięć z działaniem kanarkowym na każdej ścieżce i przekazujemy go do waszego CI.

    Co zostaje u was: mapa niezaufanej treści i osiągalnych narzędzi ścieżka po ścieżce, z zestawem testów wstrzyknięć i wynikami dla każdej ścieżki
  2. 2
    Wygenerowany domyślny backend idzie na produkcję w stanie, w jakim powstał

    Asystent stawia backend według wzorca, który zna najlepiej: klucz po stronie klienta, reguły dostępu wyłączone albo luźne, wyjście debugowania włączone. W demo to działa, bo demo ma jednego użytkownika. CVE Lovable i wyciek Moltbook to ten sam mechanizm w dwóch skalach i w obu przypadkach dostawca stał na stanowisku, że reguły dostępu należą do klienta.

    Co z tym robimy

    Wypisujemy każdą tabelę i zasobnik, potem sprawdzamy każdy z nich jako klient anonimowy i jako użytkownik o niskich uprawnieniach, a zbudowaną paczkę skanujemy pod kątem kluczy. Każda tabela, która nie przechodzi, dostaje politykę, każdy klucz uprzywilejowany przenosi się na stronę serwera, a klucze publiczne zostają tylko tam, gdzie tabele mają reguły dostępu. Test uruchamia się ponownie, aż nic nie zwróci. Potem zostaje jako kontrola przed publikacją.

    Co zostaje u was: macierz dostępu tabela po tabeli z wynikiem sondy klientem anonimowym przed poprawką i po niej oraz sonda wpięta w potok wydawania
  3. 3
    Nazwy pakietów zyskują zaufanie, bo wyglądają zwyczajnie

    Asystent pisze linię instalacji z wiarygodną nazwą, która nie istnieje, a badanie Spracklena i współautorów pokazuje, że te same zmyślone nazwy powtarzają się między promptami. Kto zarejestruje taką nazwę, dostaje instalacje z każdego projektu, który zaufał tej linii. Przypadek huggingface-cli pokazuje, jak nazwa trafiła do dokumentacji prawdziwego repozytorium, zanim ktokolwiek sprawdził rejestr.

    Co z tym robimy

    Porównujemy plik blokady w każdej zmianie napisanej z asystentem, sprawdzamy każdy nowy pakiet w rejestrze pod kątem wieku, wydawcy i historii i zamieniamy tę kontrolę w regułę przeglądu. Polecenia instalacji, które asystent wpisał do dokumentacji, przechodzą to samo.

    Co zostaje u was: raport pochodzenia zależności za okres pracy z AI oraz kontrola rejestru jako reguła CI
  4. 4
    Destrukcyjne polecenia wykonują się, bo potwierdzenie było wyłączone

    Turbo, YOLO, automatyczna zgoda: tryby, w których agent wykonuje polecenia bez potwierdzeń. W takim trybie czyszczenie pamięci podręcznej, które trafia w złą ścieżkę, albo reset bazy wydany w czasie zamrożenia kodu wykonuje się z prędkością agenta. W obu wpisach klasy D agent miał dostęp szerszy niż zadanie: do bazy produkcyjnej i do całego dysku.

    Co z tym robimy

    Wypisujemy każde dane dostępowe, do których agent sięga, razem ze środowiskiem, do którego należą, usuwamy z tej listy produkcję i stawiamy operacje destrukcyjne za jawną bramką. Potem ćwiczymy przywracanie raz i zapisujemy, ile trwało.

    Co zostaje u was: mapa danych dostępowych dla każdego agenta i środowiska, lista operacji za bramką oraz zapis próby przywracania z czasem trwania
  5. 5
    Definicja narzędzia się zmienia, a nikt nie pyta ponownie

    Serwer MCP albo rozszerzenie zostało zatwierdzone raz. Definicja leży we współdzielonym repozytorium albo aktualizuje się sama, a zgoda nie idzie za zmianą. Obejście ponownej zgody w Cursorze i wydanie rozszerzenia Amazon Q pokazują dwa końce tej samej drogi: podmienione polecenie na gałęzi i niezatwierdzony kod w opublikowanej wersji.

    Co z tym robimy

    Inwentaryzujemy serwery MCP, rozszerzenia i tokeny razem z zakresami, zawężamy każdy zakres do zadania, liczymy skrót każdej zatwierdzonej definicji i wymagamy ponownej zgody przy zmianie. Wersje zostają przypięte, a aktualizacje przechodzą ten sam przegląd co aktualizacje zależności.

    Co zostaje u was: inwentarz narzędzi z zakresem dla każdego zadania, skróty zatwierdzonych definicji i reguła ponownej zgody w waszej konfiguracji
Rezultaty

Co zostaje u was.

  • Mapowanie incydentów na bazę kodu: wynik testu dla każdej klasy mechanizmu w waszych repozytoriach i integracjach agentów, z dowodami i zakresem sprawdzenia
  • Lista kontrolna dla każdej klasy, wypełniona dla waszego stosu, z artefaktem albo testem, który zamyka każdy punkt
  • Zestaw testów wstrzyknięć z działaniami kanarkowymi, wpięty w CI, z wynikami dla każdej ścieżki niezaufanej treści
  • Macierz dostępu do tabel i zasobników z wynikiem sondy klientem anonimowym, przed poprawkami i po nich
  • Raport pochodzenia zależności za okres pracy z AI oraz kontrola rejestru jako reguła przeglądu
  • Inwentarz narzędzi: serwery MCP, rozszerzenia i tokeny z zakresem dla każdego zadania, skróty definicji i reguła ponownej zgody
  • Zapis ponownego testu: każda klasa przetestowana ponownie po poprawkach, z wynikiem obok pierwotnego
Proces

Jak pracujemy.

  1. 1
    1. Mapowanie

    Przechodzimy repozytoria i integracje agentów z doświadczonym inżynierem z waszej strony i zaznaczamy, gdzie może wystąpić każda klasa mechanizmu: ścieżki niezaufanej treści, wygenerowane reguły backendu, nowe zależności, dane dostępowe agentów, wynik modelu w SQL albo w wykonaniu kodu, zakresy narzędzi.

    Tydzień 1
  2. 2
    2. Werdykty

    Wykonujemy listę kontrolną dla każdej klasy: testy wstrzyknięć, sondy klientem anonimowym, kontrole pliku blokady i rejestru, inwentarze danych dostępowych i narzędzi. Każda klasa dostaje wynik testu z dowodami i zakresem sprawdzenia, a każde ustalenie ma sposób odtworzenia.

    Tydzień 1-2
  3. 3
    3. Poprawki i bramki

    Usuwamy wykryte błędy razem z waszym zespołem i zamieniamy każdy zamknięty punkt w bramkę: sondę, zestaw testów, regułę rejestru, kontrolę skrótów. Każdą bramkę uruchamiamy raz celowo, żeby dowieść, że działa.

    Tydzień 2-3
  4. 4
    4. Ponowny test i przekazanie

    Powtarzamy test każdej klasy, zapisujemy wynik obok pierwotnego i przekazujemy mapowanie, listy kontrolne i bramki w waszym potoku. Katalog na tej stronie jest punktem odniesienia, od którego zaczyna się następny przegląd.

    Tydzień 3, zależnie od liczby repozytoriów i integracji
Powiązane przewodniki

Pozostałe strony z tej serii.

Powiązane usługi

Usługi, które to wdrażają.

Źródła

Skąd pochodzą daty i liczby.

FAQ

Pytania przed rozpoczęciem współpracy.

Tylko przypadki ze źródłem pierwotnym, które da się sprawdzić: rekord CVE, biuletyn bezpieczeństwa dostawcy, publiczne oświadczenie kierownictwa dostawcy, oficjalny raport po incydencie albo recenzowane badanie z opublikowaną metodą. Przypadki zgłoszone przez samych poszkodowanych wchodzą tylko po publicznym potwierdzeniu przez dostawcę i wiersz o tym mówi. Nic spod NDA, w tym nic z naszych własnych zleceń.
Tak, bo przegląd pracuje na klasach, nie na nazwach produktów. Zespół używający narzędzia bez publicznego CVE nadal ma ścieżki niezaufanej treści, wygenerowane reguły backendu, nowe zależności, dane dostępowe agentów i zakresy narzędzi. Mapujemy je i dajemy werdykt dla każdej klasy; nazwa narzędzia decyduje tylko o tym, które domyślne ustawienia sprawdzamy najpierw.
Nie. Test penetracyjny próbuje przełamać działający system, z zewnątrz albo od środka, a tego nie robimy, podobnie jak infrastruktury, chmury ani SOC. Ten przegląd czyta kod i warstwę aplikacji wokół modelu, odtwarza ustalenia na instancji nieprodukcyjnej i przekazuje poprawki oraz bramki. Jeśli potem potrzebny jest test penetracyjny, nasze ustalenia są konkretnym punktem wyjścia dla specjalisty, który go wykona.
Nie rozstrzyga tego porównania, bo nie zawiera grupy kodu pisanego bez AI. Dowodzi, że narzędzie użyte bez kontroli przed nim zawodzi w powtarzalny sposób. To samo mierzą badania: Pearce i współautorzy, Fu i współautorzy oraz Spracklen i współautorzy opisują wynik modelu, nie wynik procesu. Każdy wiersz ma kontrolę, która by go wykryła. Ta kontrola jest sensem tej strony.
Ten sam test, który dał werdykt, biegnie ponownie po poprawce: zestaw wstrzyknięć, sonda klientem anonimowym, kontrola rejestru, próba przywracania. Wynik jest zapisany obok pierwotnego, więc czytelnik widzi stan przed i po z tej samej metody. Ponowny test sprawdza, czy konkretny błąd został usunięty; bez niego poprawka pozostaje deklaracją.
Jest poprawiany, gdy dostawcy publikują biuletyny, a badacze pomiary; lista źródeł na dole ma daty. Wpis może zostać dodany, gdy ma publiczne źródło pierwotne. To jest też odpowiedź na zgłoszenia: przyślijcie odnośnik do biuletynu albo raportu, który dokumentuje zdarzenie.
Dostęp do odczytu repozytoriów w zakresie, konfiguracja narzędzi agentowych (definicje MCP, listy rozszerzeń, pliki ustawień) i instancja nieprodukcyjna do odtworzeń i sond. Bez dostępu do produkcji i bez danych klientów. Wszystko biegnie pod NDA, dlatego nic z pracy dla klientów nigdy nie trafia do katalogu.

Porozmawiajmy o AI w waszej firmie.

Napiszcie, na jakim etapie jesteście z bezpieczeństwem waszego kodu pisanego z AI i integracji agentów. Odpowiedź w ciągu jednego dnia roboczego.

Porozmawiajcie z inżynierem
Szczecin - ul. Wawrzyniaka 6WWarszawaZielona GóraKraków