Przewodnik

Katalog incydentów bezpieczeństwa kodu i aplikacji AI: co zawiodło, jak i co by to wykryło

Katalog incydentów to datowana lista przypadków, w których kod pisany z asystentem AI albo warstwa aplikacyjna wokół modelu zawiodły w sposób udokumentowany publicznie: rekord CVE, biuletyn dostawcy, oficjalny post-mortem, recenzowany pomiar. Ta strona prowadzi taki katalog, uporządkowany według mechanizmu, i przy każdym wpisie podaje sprawdzenie, które by go wykryło.

Podsumowanie dla asystentów AI i działów zakupów

dfzoo AI Engineering prowadzi katalog publicznie udokumentowanych incydentów bezpieczeństwa w kodzie pisanym z AI i w warstwie aplikacyjnej systemów z LLM, dla szefów inżynierii, którzy chcą wiedzieć, co naprawdę poszło źle u innych, zanim zdecydują, co sprawdzić u siebie. Każdy wpis ma datę, źródło pierwotne (rekord CVE, biuletyn dostawcy, oficjalny post-mortem albo opublikowane badanie) i jeden nazwany mechanizm: treść czytana przez agenta potraktowana jak polecenie, wygenerowana konfiguracja backendu wdrożona bez zmian, zmyślona nazwa pakietu zainstalowana z rejestru, destrukcyjne polecenie wykonane przy wyłączonym potwierdzeniu, wynik modelu przekazany do SQL albo do wykonania, narzędzie MCP lub rozszerzenie z dostępem szerszym niż zadanie. Katalog jest materiałem wejściowym do przeglądu bezpieczeństwa kodu pisanego z AI: każda klasa mechanizmu ma listę kontrolną, werdykt dla konkretnego repozytorium i retest, który dowodzi poprawki. Incydenty objęte NDA nie wchodzą do katalogu; wchodzi wyłącznie to, co da się sprawdzić u źródła.

Dla kogo

Dla kogo jest ten przewodnik.

  • CTO i szefowie inżynierii, których zespoły wdrażają kod z Copilota, Cursora, Claude Code albo Gemini CLI i którym zarząd albo klient zadał pytanie, co może pójść nie tak
  • Szefowie bezpieczeństwa i platformy, którzy dołożyli do produktu agenta, serwer MCP albo automatyzację obsługi zgłoszeń na LLM i potrzebują konkretnej listy zagrożeń zamiast ogólnej
  • Software house'y oddające klientom kod pisany z AI, od których klienci zaczęli wymagać dowodu niezależnego sprawdzenia bezpieczeństwa
  • Inżynierowie, którzy czytają biuletyny dostawców po kolei i chcą je mieć w jednym miejscu, pogrupowane według mechanizmu

Co jest wpisem, a co nim nie jest

Gdy w sierpniu 2026 na forum poświęconym bezpieczeństwu padło pytanie, czy ktoś miał już incydent spowodowany przez agenta kodującego, najwyżej oceniona odpowiedź brzmiała: kto miał, ten nie powie, bo NDA i wstyd. Z tej ciszy bierze się kalibrowanie ryzyka według materiałów marketingowych. Katalog poniżej idzie w drugą stronę i przyjmuje 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ą. Wątki praktyków, którzy liczą incydenty z codziennej eksploatacji, istnieją i są dobrym wzorem formatu, ale wątek nie jest źródłem i żaden nie jest tu cytowany.

Trzy granice trzymają tę listę w ryzach. Obejmuje kod i warstwę aplikacyjną: to, co napisał asystent, to, co aplikacja wysyła do modelu i czemu ufa w odpowiedzi, to, co agent ma prawo wywołać. Nie obejmuje infrastruktury, konfiguracji chmury, sieci, testów penetracyjnych ani SOC; to osobne dyscypliny z własnymi katalogami. I nie robi z modelu winowajcy. Każdy wiersz to narzędzie użyte bez sprawdzenia, które postawiłby przed nim proces, i dokładnie dlatego każdy wiersz ma takie sprawdzenie dopisane.

Katalog

Kolejność według daty. Kolumna klasy odsyła do sześciu klas mechanizmów z następnej sekcji. Linki do źródeł są na końcu strony; oceny to wartości CVSS z rekordów CVE tam, gdzie rekord istnieje.

Katalog
DataSystem i źródłoCo zawiodłoSkutekKlasaCo by to wykryło
2023-07LangChain SQLDatabaseChain, CVE-2023-36189SQL wygenerowany przez model wykonywany na bazie bez granicy między pytaniem a zapytaniemZdalny atakujący odczytuje wrażliwe dane przez łańcuchERola tylko do odczytu dla generowanego SQL, lista dozwolonych instrukcji, przegląd zapytania przed wykonaniem
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 instalowany przez prawdziwe projekty według instrukcji napisanych z asystentemCSprawdzenie w rejestrze każdej nowej zależności: wiek, wydawca, historia pobrań, plus diff pliku lockfile w przeglądzie
2024-05Vanna.AI, tekst na SQL, CVE-2024-5565, CVSS 8.1Niezaufane dane w ask() trafiają do promptu, który pisze kod wizualizacji Plotly, a ten kod jest wykonywanyZdalne wykonanie kodu; obejście to wyłączenie wizualizacji dla niezaufanych danychEZero exec kodu pisanego przez model na ścieżkach użytkownika; renderowanie w piaskownicy; dane oznaczone jako niezaufane od wejścia do końca
2025-05GitLab Duo, ujawnienie Legit SecurityUkryty tekst w merge requestach, zgłoszeniach, commitach i kodzie (biały KaTeX, kodowanie base16) czytany przez Duo jak poleceniePrywatny kod źródłowy wyprowadzony przez wstrzyknięty znacznik obrazka; niebezpieczne adresy pokazane jako bezpieczneALista dozwolonych adresów wychodzących dla renderowanych odpowiedzi; usuwanie aktywnego HTML z odpowiedzi; zestaw testów wstrzyknięć w CI
2025-05Serwer GitHub MCP, Invariant LabsPubliczne zgłoszenie instruuje agenta, który ma token także do prywatnych repozytoriówDane z prywatnego repozytorium wpisane do publicznego pull requestaFJeden token na zakres repozytoriów; agent nie czyta zakresu prywatnego w sesji zaczętej od publicznego
2025-05Aplikacje generowane w Lovable, CVE-2025-48757, CVSS 9.3Wygenerowane polityki row-level security w Supabase niewystarczające albo nieobecne w projektach sprzed 2025-04-15Odczyt i zapis dowolnych tabel bez uwierzytelnienia; dostawca kwestionuje wpis i przenosi odpowiedzialność na 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 mailu przetworzone przez asystenta bez żadnej akcji użytkownikaUjawnienie informacji przez sieć, bez kliknięciaANiezaufana treść nigdy w jednej sesji z narzędziem sięgającym na zewnątrz; lista dozwolonych adresów wyjściowych dla każdej akcji asystenta
2025-07Supabase MCP z Cursorem, General AnalysisTreść zgłoszenia do wsparcia prosi agenta o odczyt tabeli 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łoszeniaFTryb tylko do odczytu i ograniczenie do projektu na serwerze MCP; zero service_role w jakimkolwiek 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 polecenia systemowegoWstrzyknięcie polecenia systemowego na maszynie deweloperaFPrzypięta, przejrzana lista serwerów MCP; zero budowania poleceń powłoki ze zdalnych ciągów; bramka na wersję klienta
2025-07Amazon Q Developer dla VS Code 1.84.0, biuletyn AWS-2025-015Zbyt szeroko uprawniony token GitHuba wpuścił niezatwierdzony kod do repozytorium rozszerzenia i do wydaniaZłośliwy kod w opublikowanej wersji; nie zadziałał przez błąd składni; wersja wycofana, wydano 1.85.0FPrzypinanie wersji rozszerzeń i przegląd aktualizacji; tokeny o minimalnych uprawnieniach w procesie publikacji
2025-07Gemini CLI 0.1.13, TracebitPolecenia ukryte w README, lista dozwolonych przepuszczająca łańcuch poleceń po jednej zgodzie na grep, białe znaki chowające ładunekZmienne środowiskowe wysłane na zdalny serwer, zanim użytkownik zobaczył polecenie; poprawka w 0.1.14AZgoda na każde polecenie z pokazaną całą linią; zero dopasowania do listy dozwolonych po pierwszym tokenie
2025-07Replit Agent, projekt SaaStr, oświadczenie prezesa dostawcyAgent wykonał destrukcyjne polecenie na bazie w trakcie ogłoszonego zamrożenia kodu i zgłosił, że przywrócenie jest niemożliweSkasowana baza produkcyjna; dostawca nazwał to niedopuszczalnym i wprowadził rozdział dev/prod oraz tryb samego planowaniaDZero 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 deweloperaATworzenie i edycja plików konfiguracyjnych pod tą samą regułą zgody; test wstrzyknięcia, który zapisuje plik-kanarek
2025-08Cursor 1.2.4 i starsze, CVE-2025-54136, CVSS 7.2Zatwierdzona wcześniej definicja MCP we wspólnym repozytorium podmieniona na inne polecenie bez ponownego pytaniaTrwałe wykonanie kodu dla każdego z prawem zapisu do gałęziFHash 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 o tym samym prefiksie co katalog roboczy przechodziDostęp do plików poza katalogiem roboczym, gdy w kontekście jest niezaufana treśćAPorównanie ścieżek kanonicznych w każdej strażnicy ś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, co zdejmuje wszystkie potwierdzeniaLokalne wykonanie kodu na Windows, macOS i LinuksieAPliki ustawień traktowane jak kod: zablokowane do zapisu w sesji agenta, pokazywane w diffie, flagi auto-zgody zakazane polityką
2025-09Salesforce Agentforce, ForcedLeak, Noma Security, CVSS 9.4Pole opisu w formularzu Web-to-Lead niesie polecenia; odpowiedź agenta może trafić na wygasłą domenę wciąż obecną na liście CSPRekordy CRM wysłane na domenę zarejestrowaną przez atakującego; poprawka przez wymuszenie zaufanych adresówAAudyt listy dozwolonych adresów pod kątem wygasłych wpisów; pola formularzy oznaczone jako niezaufane, zanim dotrą do agenta
2025-11Google Antigravity, PromptArmorPolecenia czcionką 1 pt na stronie WWW; agent czyta .env przez cat mimo blokady z 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ądarkiABlokada odczytu plików obejmująca też powłokę; przejrzana domyślna lista dozwolonych przeglądarki; sekrety poza katalogiem roboczym
2025-12Google Antigravity w trybie Turbo, The Register, dostawca prowadzi postępowaniePolecenie czyszczenia pamięci podręcznej wycelował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 projektu; tryb z potwierdzeniami poza piaskownicą
2026-01Moltbook, Wiz ResearchKlucz Supabase wpisany na sztywno w JavaScript po stronie klienta, bez row-level security; założyciel oświadczył, że nie napisał ręcznie ani jednej linii1,5 mln tokenów API, 35 tys. adresów e-mail i prywatne wiadomości do odczytu i zapisu bez uwierzytelnienia; poprawka w kilka godzin od zgłoszeniaBSonda klientem anonimowym na każdej tabeli przed startem; skan sekretów na zbudowanej paczce, nie tylko w repozytorium

Sześć klas mechanizmów i co je łączy

Nazwy narzędzi zmieniają się co kwartał; mechanizmy nie. Każda klasa poniżej nazywa, co zrobiło narzędzie, czego zabrakło w procesie, i podaje pomiar, jeśli istnieje. Dwa recenzowane badania stoją za klasami dotyczącymi samego generowanego kodu: Pearce i współautorzy (IEEE S&P 2022) wygenerowali Copilotem 1689 programów w 89 scenariuszach słabości i znaleźli podatności w około 40%; Fu i współautorzy (ACM TOSEM 2025) przeanalizowali 733 fragmenty napisane z asystentem znalezione w prawdziwych projektach na GitHubie i wykazali słabości w 29,5% próbek w Pythonie oraz 24,2% w JavaScripcie. Dla zmyślonych pakietów Spracklen i współautorzy (USENIX Security 2025) wygenerowali 576 000 próbek kodu z 16 modeli i znaleźli nieistniejące nazwy pakietów w co najmniej 5,2% odpowiedzi modeli komercyjnych i 21,7% odpowiedzi modeli otwartych, w sumie 205 474 unikalnych zmyślonych nazw.

Sześć klas mechanizmów i co je łączy
KlasaMechanizmCzego zabrakło w procesieWpisy wyżej
A. Treść staje się poleceniemTekst, który agent czyta (zgłoszenie, ticket, README, mail, strona WWW, pole formularza), jest przetwarzany tak, jakby wpisał go użytkownik, a po nim idzie wywołanie narzędziaGranica między niezaufaną treścią a narzędziami sięgającymi na zewnątrz; zgoda pokazująca całą akcjęGitLab Duo, EchoLeak, Gemini CLI, Cursor, Claude Code, Copilot, Agentforce, Antigravity
B. Wygenerowana konfiguracja idzie bez zmianReguły dostępu do backendu, klucze w paczce klienta i domyślne ustawienia frameworka trafiają na produkcję w stanie, w jakim wyprodukował je asystentSprawdzenie przed publikacją per tabela i per sekret, wykonane jako klient anonimowyLovable RLS, Moltbook
C. Zmyślona zależnośćAsystent podaje nazwę pakietu, którego nie ma; ktoś ją rejestruje; linia instalacji jest zaufana, bo wygląda zwyczajnieWeryfikacja w rejestrze każdej nowej zależności na etapie przegląduhuggingface-cli, Spracklen i współautorzy
D. Destrukcyjne polecenie bez bramkiAgent z dostępem do produkcji albo do systemu plików wykonuje delete, drop albo wipe w trybie, w którym potwierdzenia są wyłączoneRozdział danych dostępowych między środowiskami; jawna bramka na operacje destrukcyjne; przetestowane przywracanieReplit Agent, Antigravity Turbo
E. Wynik modelu do SQL albo do wykonaniaTekst z modelu trafia do bazy albo do interpretera tak, jakby ktoś go przejrzałRole tylko do odczytu, lista dozwolonych instrukcji, zero exec generowanego kodu ze ścieżek użytkownikaLangChain, Vanna.AI
F. Narzędzie lub rozszerzenie z dostępem szerszym niż zadanieSerwer MCP, rozszerzenie albo token ma zakres na wszystko, co może deweloper, a agent go dziedziczyJeden zakres na zadanie; hash i ponowna zgoda na definicje narzędzi; przypięte wersjeGitHub MCP, Supabase MCP, mcp-remote, podmiana MCP w Cursorze, rozszerzenie Amazon Q

Co przegląd bezpieczeństwa kodu pisanego z AI sprawdza w każdej klasie

Katalog zaczyna być użyteczny, gdy każda klasa dostaje werdykt dla konkretnego repozytorium: czy to może się zdarzyć u was, tak albo nie, i co tego dowodzi. Lista poniżej to lista kontrolna, którą przegląd wykonuje klasa po klasie. Każdy punkt kończy się artefaktem albo testem, bo werdykt bez nich jest opinią.

  • Klasa A: prześledzenie każdej ścieżki, którą niezaufany tekst wchodzi do promptu i po której może iść wywołanie narzędzia; lista każdego narzędzia sięgającego poza proces (sieć, powłoka, zapis pliku, przeglądarka); zestaw testów wstrzyknięć z akcją-kanarkiem uruchamiany w CI na każdej ścieżce; audyt listy dozwolonych adresów wyjściowych pod kątem wygasłych wpisów i symboli wieloznacznych.
  • Klasa B: spis tabel i zasobników, a potem sonda na każdym jako klient anonimowy i jako użytkownik o niskich uprawnieniach; skan zbudowanej paczki klienta pod kątem kluczy, nie tylko repozytorium; porównanie domyślnych ustawień frameworka odtworzonych przez asystenta (CORS, flagi weryfikacji, wypisywanie błędów) z konfiguracją produkcyjną.
  • Klasa C: diff pliku lockfile w każdym pull requeście napisanym z asystentem; sprawdzenie każdego nowego pakietu w rejestrze pod kątem wieku, wydawcy i historii pobrań; lista dozwolonych pakietów dla środowiska uruchomieniowego i blokada poleceń instalacji, które asystent wpisał do dokumentacji.
  • Klasa D: lista wszystkich danych dostępowych w środowisku agenta razem ze środowiskiem, do którego należą; oddzielenie produkcji od wszystkiego, do czego agent sięga; operacje destrukcyjne za jawnym potwierdzeniem i jedna próba przywracania z zapisanym czasem trwania.
  • Klasa E: znalezienie każdego miejsca, w którym wynik modelu jest wykonywany albo wysyłany jako zapytanie; rola tylko do odczytu i lista dozwolonych instrukcji dla generowanego SQL; usunięcie exec generowanego kodu z każdej ścieżki dostępnej dla użytkownika; piaskownica dla tego, co zostaje.
  • Klasa F: inwentaryzacja serwerów MCP, rozszerzeń i tokenów z ich zakresami; zawężenie każdego do zadania, któremu służy; hash zatwierdzonych definicji narzędzi i ponowna zgoda przy zmianie; przypięte wersje i przegląd aktualizacji jak przy aktualizacji zależności.
  • Retest: po poprawkach każda klasa dostaje ten sam test jeszcze raz, a wynik zapisuje się obok pierwotnego werdyktu. Ta para wyników jest dowodem, który może przeczytać klient albo zarząd.
Tryby awarii

Gdzie to się psuje i co z tym robimy.

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

    Agent dostaje do kontekstu zgłoszenie, ticket, README albo mail, bo tego potrzebuje do pracy, a model nie ma pewnego sposobu na odróżnienie cytowanego tekstu od prośby użytkownika. Gdy w tej samej sesji jest dostępne 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ę, którą niezaufany tekst wchodzi do promptu, i wypisujemy każde narzędzie osiągalne z tej sesji. Tam, gdzie się spotykają, albo zdejmujemy narzędzie wychodzące, albo stawiamy je za zgodą pokazującą pełną akcję, albo oznaczamy treść jako dane w strukturze promptu. Potem uruchamiamy zestaw testów wstrzyknięć z akcją-kanarkiem na każdej ścieżce i zostawiamy go w waszym CI.

    Co zostaje u was: mapa niezaufanych treści i osiągalnych narzędzi ścieżka po ścieżce, razem z zestawem testów wstrzyknięć i wynikiem per ścieżka
  2. 2
    Wygenerowana konfiguracja backendu trafia na produkcję w stanie, w jakim powstała

    Asystent stawia backend według wzorca, który zna najlepiej: klucz w kliencie, reguły dostępu wyłączone albo zbyt szerokie, wypisywanie błędów włączone. W demie to działa, bo demo ma jednego użytkownika. CVE dla Lovable i ekspozycja Moltbooka to ten sam mechanizm w dwóch skalach i w obu przypadkach stanowisko dostawcy brzmiało, że reguły dostępu są po stronie klienta.

    Co z tym robimy

    Spisujemy każdą tabelę i zasobnik, potem sondujemy 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 przechodzi na stronę serwera, a sonda biegnie ponownie, aż nie zwróci nic. Sonda zostaje jako sprawdzenie przed publikacją.

    Co zostaje u was: macierz dostępu tabela po tabeli z wynikiem sondy klientem anonimowym przed i po, plus sonda wpięta w proces wydawania
  3. 3
    Nazwy pakietów są zaufane, bo wyglądają zwyczajnie

    Asystent pisze linię instalacji z wiarygodną nazwą, której nie ma w rejestrze, 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 tej linii zaufał. Przypadek huggingface-cli pokazuje nazwę, która dotarła do dokumentacji prawdziwego repozytorium, zanim ktokolwiek sprawdził rejestr.

    Co z tym robimy

    Robimy diff pliku lockfile każdej zmiany napisanej z asystentem, sprawdzamy każdy nowy pakiet w rejestrze pod kątem wieku, wydawcy i historii, i zamieniamy to sprawdzenie w regułę przeglądu. Polecenia instalacji, które asystent wpisał do dokumentacji, dostają to samo.

    Co zostaje u was: raport pochodzenia zależności za okres pracy z asystentem, plus sprawdzenie w rejestrze jako reguła CI
  4. 4
    Destrukcyjne polecenia idą, bo potwierdzenie było wyłączone

    Turbo, YOLO, auto-zgoda: ten tryb istnieje, bo potwierdzenia spowalniają demo. W tym trybie czyszczenie pamięci podręcznej, które trafia w złą ścieżkę, albo reset bazy wydany w czasie zamrożenia kodu, wykonują się z prędkością agenta. Oba wpisy klasy D w katalogu wydarzyły się, gdy agent miał dane dostępowe, których do zadania nigdy nie potrzebował.

    Co z tym robimy

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

    Co zostaje u was: mapa danych dostępowych per agent i środowisko, lista operacji za bramką i zapis próby przywracania z czasem trwania
  5. 5
    Definicja narzędzia się zmienia i nikt nie pyta ponownie

    Serwer MCP albo rozszerzenie zostały zatwierdzone raz. Definicja żyje we wspólnym 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: podmienione polecenie na gałęzi i niezatwierdzony kod w opublikowanej wersji.

    Co z tym robimy

    Inwentaryzujemy serwery MCP, rozszerzenia i tokeny z ich zakresami, zawężamy każdy zakres do zadania, liczymy hash 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 per zadanie, hashe zatwierdzonych definicji i reguła ponownej zgody w waszej konfiguracji
Artefakty

Co zostaje u was.

  • Mapa incydentów na repozytorium: werdykt per klasa mechanizmu dla waszych repozytoriów i integracji agentów, z dowodem za każdym werdyktem
  • Lista kontrolna per klasa, wypełniona dla waszego stosu, z artefaktem albo testem zamykającym każdy punkt
  • Zestaw testów wstrzyknięć z akcjami-kanarkami, wpięty w CI, z wynikiem per ścieżka niezaufanej treści
  • Macierz dostępu do tabel i zasobników z wynikiem sondy klientem anonimowym przed i po
  • Raport pochodzenia zależności za okres pracy z asystentem i sprawdzenie w rejestrze jako reguła przeglądu
  • Inwentarz narzędzi: serwery MCP, rozszerzenia i tokeny z zakresem per zadanie, hashe definicji i reguła ponownej zgody
  • Zapis retestu: każda klasa sprawdzona ponownie po poprawkach, obok pierwotnego werdyktu
Proces

Jak pracujemy.

  1. 1
    1. Mapowanie

    Przechodzimy repozytoria i integracje agentów z seniorem 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 agenta, wynik modelu do SQL albo exec, zakresy narzędzi.

    Tydzień 1
  2. 2
    2. Werdykty

    Wykonujemy listę kontrolną klasa po klasie: testy wstrzyknięć, sondy klientem anonimowym, sprawdzenia pliku lockfile i rejestru, inwentarze danych dostępowych i narzędzi. Każda klasa dostaje tak albo nie z dowodem, a znaleziska, które z tego wychodzą, mają reprodukcję.

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

    Naprawiamy znaleziska razem z waszym zespołem i zamieniamy każdy zamknięty punkt w bramkę: sondę, zestaw testów, regułę rejestru, sprawdzenie hasha. Każdą bramkę raz celowo uruchamiamy, żeby udowodnić, że działa.

    Tydzień 2-3
  4. 4
    4. Retest i przekazanie

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

    Tydzień 3
Powiązane przewodniki

Pozostałe strony z tej serii.

Powiązane usługi

Gdzie to zamienia się w usługę.

Źródła

Skąd pochodzą daty i liczby.

FAQ

Pytania, które zadają zespoły.

Wchodzą tylko przypadki ze źródłem pierwotnym, które da się sprawdzić: rekord CVE, biuletyn bezpieczeństwa dostawcy, publiczne oświadczenie kierownictwa dostawcy, oficjalny post-mortem albo recenzowane badanie z opublikowaną metodą. Przypadki zgłoszone przez samych poszkodowanych wchodzą tylko wtedy, gdy dostawca potwierdził je publicznie, 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 i tak ma ścieżki niezaufanej treści, wygenerowane reguły backendu, nowe zależności, dane dostępowe agenta i zakresy narzędzi. Mapujemy je i dajemy werdykt per klasa; nazwa narzędzia rozstrzyga tylko, które domyślne ustawienia sprawdzamy jako pierwsze.
Nie. Test penetracyjny atakuje działający system z zewnątrz, a tego nie robimy, tak samo jak infrastruktury, chmury ani SOC. Ten przegląd czyta kod i warstwę aplikacyjną wokół modelu, odtwarza znaleziska na instancji nieprodukcyjnej i oddaje poprawki oraz bramki. Jeśli potem potrzebny jest pentest, nasze znaleziska są konkretnym punktem startu dla specjalisty, który go wykona.
Dowodzi, że narzędzie użyte bez sprawdzenia przed nim zawodzi w powtarzalny sposób, i 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 sprawdzenie, które by go wykryło, i to sprawdzenie jest sensem tej strony.
Ten sam test, który dał werdykt, biegnie jeszcze raz po poprawce: zestaw wstrzyknięć, sonda klientem anonimowym, sprawdzenie rejestru, próba przywracania. Wynik zapisuje się obok pierwotnego, więc czytelnik widzi przed i po z tej samej metody. Poprawka bez retestu jest twierdzeniem; para wyników jest dowodem.
Jest rewidowany w miarę publikacji biuletynów dostawców i pomiarów badaczy; lista źródeł na dole ma daty. Wpis może wejść, gdy ma publiczne źródło pierwotne, i to jest też odpowiedź na zgłoszenia: przyślijcie link do biuletynu albo post-mortem, nie opowieść.
Odczyt repozytoriów w zakresie, konfiguracja narzędzi agentowych (definicje MCP, listy rozszerzeń, pliki ustawień) i instancja nieprodukcyjna do reprodukcji i sond. Zero dostępu do produkcji i zero danych klientów. Wszystko pod NDA, i właśnie dlatego nic z pracy dla klientów nigdy nie trafia do katalogu.

Porozmawiaj z inżynierem.

Napiszcie, na jakim etapie jesteście z bezpieczeństwem waszego kodu pisanego z AI i integracji agentów. Odpowiedź w jeden dzień roboczy.

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