Zarządzanie asystentami AI do kodowania

by
Dawid Winiarski
Last update:
July 17, 2026

Asystent do kodowania to szybki, pewny siebie, czasem błądzący współpracownik z dostępem do twojego kodu. Ten przewodnik jest dla lidera inżynierii, właściciela bezpieczeństwa albo zespołu platformy, który wdrożył GitHub Copilot, Cursor albo narzędzie agentic do kodowania i teraz musi je zarządzać, a nie zakazywać.

Obejmuje ryzyka specyficzne dla AI w pipeline'ie developerskim: sekrety trafiające do promptów i sugestii, kod zatwierdzany przez autonomiczne agenty, ekspozycję na licencje open source i własność intelektualną oraz utratę pochodzenia, gdy model pisze kod, którego nikt nie potrafi prześledzić. Dla każdego z nich przedstawia kontrole, które ograniczają ryzyko bez zabijania zysku produktywności.

Na koniec powinieneś umieć napisać obronną politykę, skonfigurować kontrole, które twoje narzędzia już oferują, i zdecydować, jakie działania agent może podejmować samodzielnie.

  • Asystenci AI do kodowania podnoszą skalę dwóch odrębnych problemów: podatności w samym kodzie i sekretów, które trafiają do niego na sztywno. Kontrolowane badanie wykazało, że developerzy korzystający z asystenta AI pisali istotnie mniej bezpieczny kod i częściej wierzyli, że ich kod jest bezpieczny (Perry, Srivastava, Kumar i Boneh, CCS 2023).
  • Sekrety wyciekają przez te narzędzia w obu kierunkach. State of Secrets Sprawl 2025 od GitGuardian wykazał, że repozytoria z aktywnym Copilotem wyciekały co najmniej jeden sekret w 6,4% przypadków, wobec 4,6% w repozytoriach publicznych ogółem, czyli o 40% wyższą częstość.
  • Model nie potrafi powiedzieć, skąd wzięła się sugestia. Asystenci AI mogą odtwarzać kod strukturalnie podobny do źródła na licencji copyleft bez bezpośredniego importowania go, czego standardowa analiza składu oprogramowania (SCA) nie wychwytuje (FOSSA, wywiad z Heather Meeker, 2024).
  • Narzędzia agentic do kodowania przesuwają ryzyko od sugestii do działania. OWASP klasyfikuje to jako Excessive Agency (LLM06:2025): system, który dostał więcej funkcjonalności, uprawnień albo autonomii, niż wymaga zadanie, gdzie prompt injection przestaje być złą odpowiedzią, a staje się realnym commitem, usunięciem albo wdrożeniem.
  • Kontrole, które działają, to w większości te, które już znasz: uprawnienia ograniczone zakresem, skanowanie sekretów, obowiązkowy przegląd wyników AI przez człowieka, skanowanie licencji i pochodzenia oraz spisana granica tego, co agent może zrobić bez nadzoru.
  • Traktuj kod wygenerowany przez AI tak, jak traktujesz wkład zewnętrznego kontrybutora: przejrzany, przeskanowany i przypisany, zanim trafi do mergea, nie zaufany tylko dlatego, że się kompiluje.

Dlaczego asystenci do kodowania to problem governance, nie tylko wybór narzędzia

Tradycyjne narzędzie do autouzupełniania kodu podpowiadało kilka kolejnych znaków. Nowoczesny asystent AI proponuje całe funkcje, refaktoryzuje pliki, czyta kontekst w całym repozytorium, a w trybie agentic planuje i wykonuje wieloetapowe zmiany kończące się commitem albo pull requestem. Możliwości są realne, a adopcja szeroka. Luka w governance polega na tym, że wynik przychodzi z płynnością starszego inżyniera, ale bez żadnej odpowiedzialności.

Problem ramują dwa ustalenia. Pierwsze, o jakości kodu: w kontrolowanym badaniu użytkowników uczestnicy z dostępem do asystenta AI wyprodukowali istotnie więcej podatności bezpieczeństwa niż ci bez niego, z największymi lukami w obszarach takich jak SQL injection i szyfrowanie, i byli też bardziej przekonani, że ich kod jest bezpieczny (Perry i in., CCS 2023). To właśnie nadmierna pewność siebie sprawia, że to problem governance, nie szkoleniowy. Ludzie mniej dokładnie sprawdzają to, czemu bardziej ufają.

Drugie, o sekretach: raport GitGuardian z 2025 roku wykazał, że repozytoria z aktywnym Copilotem wyciekały co najmniej jeden sekret w 6,4% próbki, wobec 4,6% w repozytoriach publicznych ogółem, czyli o mniej więcej 40% wyższą częstość. Prawdopodobną przyczyną nie jest to, że model wymyśla sekrety, tylko że asystent przyspiesza workflow, w którym developerzy stawiają wypuszczenie kodu ponad inspekcję.

Wniosek nie brzmi: zakazać narzędzi. Brzmi: zarządzać nimi tak, jak zarządzasz każdym kontrybutorem z dostępem do commitowania, którego pracy nie możesz przyjąć na wiarę.

Ryzyka specyficzne dla AI w pipeline'ie developerskim

Sekrety w promptach i w sugestiach

Są dwie odrębne ścieżki ekspozycji sekretów. Pierwsza to ścieżka przychodząca: developer wkleja plik konfiguracyjny, stack trace albo fragment kodu zawierający klucz API, token albo connection string do prompta, żeby uzyskać pomoc. Ta treść opuszcza edytor i trafia do dostawcy modelu, a w zależności od narzędzia i tieru może zostać zachowana albo zalogowana.

Druga to ścieżka wychodząca: asystent sugeruje kod zawierający dane uwierzytelniające zapisane na sztywno, czasem prawdziwe, odtworzone z danych treningowych. Badacze pokazali, że Copilot potrafi ujawnić ważne, wcześniej ujawnione sekrety, gdy zapytasz go we właściwy sposób (GitGuardian, 2025). Developer, który zaakceptuje sugestię bez dokładnego przeczytania, właśnie umieścił żywe dane uwierzytelniające w kodzie.

Niebezpieczny kod akceptowany, bo wygląda dobrze

Kod wygenerowany przez AI kompiluje się, czyta gładko i jest błędny w sposób łatwy do przeoczenia: niebezpieczna deserializacja, brak walidacji danych wejściowych, słaba kryptografia, zepsute sprawdzanie uwierzytelniania. Ponieważ sugestia jest płynna, a developer pewny siebie, przegląd, który normalnie wychwyciłby błąd, zostaje pominięty albo przejrzany pobieżnie. To ustalenie ze Stanfordu w praktyce: narzędzie nie tylko produkuje więcej wad, produkuje je razem z większą pewnością siebie.

Commity agenta i excessive agency

Narzędzia agentic do kodowania zmieniają kształt ryzyka. Zamiast sugerować linię, którą akceptujesz, agent planuje zmianę, edytuje wiele plików, uruchamia komendy i otwiera pull request albo commituje bezpośrednio. OWASP nazywa to Excessive Agency (LLM06:2025): funkcjonalność, uprawnienia albo autonomia wykraczające poza to, czego wymaga zadanie. Niebezpieczeństwo polega na tym, że prompt injection staje się operacyjny. Jeśli agent czyta złośliwą instrukcję ukrytą w issue, w README zależności, w komentarzu w kodzie albo na stronie internetowej, którą pobiera dla kontekstu, i ma stałe uprawnienie do działania, można go skierować do napisania backdoora, wyprowadzenia kodu albo uruchomienia destrukcyjnej komendy. Nie potrzeba skradzionych danych uwierzytelniających, jeśli system już pozwala modelowi działać (OWASP, 2025).

Prompt injection to pierwsza pozycja w OWASP LLM Top 10 (LLM01:2025) właśnie dlatego, że tak źle łączy się z autonomią agentów. Model czyta niezaufaną treść i traktuje osadzone w niej instrukcje tak, jakby pochodziły od ciebie.

Ekspozycja na licencje i własność intelektualną

Model wytrenowany na publicznym kodzie może odtwarzać wzorce z tego kodu, w tym kod na licencjach copyleft takich jak GPL. Asystent nie deklaruje licencji, bo żadnej nie zna. Może wygenerować wynik strukturalnie podobny do licencjonowanego źródła bez dosłownego skopiowania go, co oznacza, że tradycyjna analiza składu oprogramowania, zbudowana do dopasowywania znanych zależności, tego nie wyłapuje (FOSSA, wywiad z Heather Meeker, 2024). Ekspozycja jest dwojaka: możesz przyjąć na siebie zobowiązania licencyjne, na które nigdy się nie zgodziłeś, a status praw autorskich kodu wygenerowanego wyłącznie przez AI sam w sobie jest nieuregulowany, co komplikuje roszczenia własnościowe do twojego własnego produktu.

Utracone pochodzenie

Pod tym wszystkim leży jeden strukturalny fakt: model jest czarną skrzynką, jeśli chodzi o pochodzenie. Dla danej sugestii nie potrafi powiedzieć, jakie źródła na nią wpłynęły, na jakiej licencji ani czy odtwarza coś dosłownie. Pochodzenie, czyli łańcuch tego, skąd wziął się kod i na jakich warunkach, to coś, co asystenci AI po cichu podmywają. Odtworzenie tego wymaga zewnętrznego skanowania i procesu, bo narzędzie ci tego nie da.

Kontrole, które to ograniczają

Te kontrole są trwałe niezależnie od narzędzia i tieru. Nie zależą od zestawu funkcji konkretnego dostawcy.

Trzymaj sekrety poza pętlą w obu kierunkach

  • Uruchamiaj skanowanie sekretów przy każdym commicie i w hooku pre-commit, żeby dane uwierzytelniające zapisane na sztywno, czy to wpisane, wklejone, czy zasugerowane, zostały złapane, zanim trafią do mergea. To pojedyncza kontrola o najwyższej wartości, bo łapie ścieżkę przychodzącą i wychodzącą w tym samym gardle butelki.
  • Używaj uprawnień ograniczonych zakresem, krótkotrwałych, oraz menedżera sekretów, żeby nawet ujawniona wartość miała ograniczony zasięg i krótkie życie. Statyczne, długożyjące klucze to najgorszy przypadek dla dowolnej ścieżki wycieku.
  • Ustal jasną zasadę, że sekrety produkcyjne, dane klientów i dane uwierzytelniające nigdy nie trafiają do prompta, i wesprzyj to ustawieniami przetwarzania danych z tieru enterprise, które ograniczają retencję i logowanie promptów.

Traktuj wynik AI jak wkład zewnętrznego kontrybutora

Solidny model myślowy to taki, w którym kod wygenerowany przez AI jest wkładem zewnętrznym: zostaje przejrzany, przeskanowany i przetestowany, zanim trafi do mergea, nie zaufany dlatego, że autorem był model. Konkretnie:

  • Obowiązkowy przegląd kodu napisanego przez AI przez człowieka, przy czym reviewer wie, że to kod wygenerowany przez AI, więc stosuje właściwą czujność zamiast pobłażliwości, jaką ludzie dają płynnemu koledze.
  • Analiza statyczna (SAST), skanowanie zależności i skanowanie sekretów w pipeline, stosowane do wyniku AI tak samo jak do każdego innego kodu.
  • Testy jako brama, bo pewna siebie, ale błędna sugestia często nie przechodzi testu, którego nigdy nie przewidziała.

Zarządzaj licencjami i pochodzeniem przez skanowanie, nie zaufanie

  • Dodaj skanowanie licencji na poziomie fragmentów kodu, które wykrywa podobieństwo do znanego kodu open source, nie tylko dokładne dopasowania zależności, bo to luka, przez którą przechodzi wynik AI (FOSSA, 2024).
  • Stosuj swoją istniejącą politykę licencji open source do wyniku AI wprost, żeby developer nie mógł jej obejść, generując kod zamiast go importować.
  • Prowadź zapis, które ścieżki kodu powstały z pomocą AI, tam gdzie ma to znaczenie dla własności intelektualnej, żeby pytania o pochodzenie miały później odpowiedź.

Ogranicz, co może zrobić agent, i zablokuj to, czego nie może zrobić sam

Dla narzędzi agentic działania łagodzące OWASP dla Excessive Agency przekładają się wprost na praktykę (OWASP, LLM06:2025):

  • Daj agentowi najwęższy zestaw narzędzi i uprawnień, jakiego wymaga zadanie, egzekwowany poza modelem, na poziomie platformy, nie tylko żądany w prompcie.
  • Używaj uprawnień least privilege dla własnej tożsamości agenta, żeby przejęty agent dziedziczył mały blast radius, a nie pełny dostęp developera.
  • Wymagaj zatwierdzenia przez człowieka dla działań nieodwracalnych albo o wysokim wpływie: mergowania do chronionych branchy, wdrażania, usuwania, zmiany dostępu albo uruchamiania komend powłoki. Czytanie i szkicowanie mogą działać autonomicznie; działanie na świat zewnętrzny nie powinno, dopóki człowiek nie zatwierdzi.
  • Traktuj każdą zewnętrzną treść, którą agent pobiera, issues, strony internetowe, pliki zależności, jako niezaufane dane wejściowe, które mogą nieść instrukcje, i ogranicz, co agent może zrobić na ich podstawie.
  • Loguj działania agenta, narzędzia, których użył, i uprawnienia, pod jakimi działał, żeby anomalie dało się wykryć, a incydent zrekonstruować.

Wykorzystaj kontrole enterprise, które narzędzia już oferują

Większość tierów enterprise oferuje istotne funkcje warte włączenia: filtry tłumiące sugestie zgodne z publicznym kodem, blokowanie sugestii zawierających znane wzorce sekretów, logowanie audytowe promptów i zaakceptowanych sugestii oraz ustawienia danych, które trzymają twoje prompty i kod poza treningiem. To pomaga, ale nie wystarczy samo w sobie. To podłoga pod kontrolami procesowymi opisanymi wyżej, nie ich zamiennik.

Krótkie zestawienie: ryzyko a kontrola

  • Sekret wklejony do prompta · Kontrola podstawowa: Polityka plus ustawienia przetwarzania danych enterprise; skanowanie sekretów przy commicie
  • Sekret w zasugerowanym fragmencie kodu · Kontrola podstawowa: Skanowanie sekretów w pre-commit i pipeline; krótkotrwałe uprawnienia ograniczone zakresem
  • Niebezpieczny kod zaakceptowany bez zmian · Kontrola podstawowa: Obowiązkowy przegląd przez człowieka oznaczony jako AI-generated; SAST i testy jako bramy
  • Odtworzony kod na licencji copyleft albo licencjonowany · Kontrola podstawowa: Skanowanie licencji na poziomie fragmentów; stosowanie polityki licencji OSS do wyniku AI
  • Utracone pochodzenie · Kontrola podstawowa: Zewnętrzne skanowanie plus zapis ścieżek powstałych z pomocą AI
  • Agent działa na złośliwą instrukcję · Kontrola podstawowa: Tożsamość agenta z least privilege; zatwierdzenie przez człowieka dla działań o wysokim wpływie; traktowanie pobranej treści jako niezaufanej

Źródła

  • OWASP Top 10 for LLM Applications 2025 (LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure, LLM06 Excessive Agency) · https://genai.owasp.org/llm-top-10/ (taksonomia ryzyka i działania łagodzące dla prompt injection i excessive agency)
  • OWASP LLM06:2025 Excessive Agency · https://genai.owasp.org/llmrisk/llm062025-excessive-agency/ (nadmierna funkcjonalność, uprawnienia i autonomia; ryzyko działań agenta i działania łagodzące)
  • Perry, Srivastava, Kumar, Boneh, "Do Users Write More Insecure Code with AI Assistants?", CCS 2023 · https://arxiv.org/abs/2211.03622 (badanie kontrolowane: więcej podatności i więcej nadmiernej pewności siebie z asystentem AI)
  • GitGuardian, State of Secrets Sprawl 2025 oraz "Yes, GitHub's Copilot can Leak (Real) Secrets" · https://www.gitguardian.com/state-of-secrets-sprawl-report-2025 i https://blog.gitguardian.com/yes-github-copilot-can-leak-secrets/ (częstość wycieku sekretów 6,4% vs 4,6%; odtwarzanie prawdziwych sekretów)
  • FOSSA, "Heather Meeker on AI Coding Assistants and OSS License Compliance" · https://fossa.com/blog/heather-meeker-ai-coding-assistants-oss-license-compliance/ (odtwarzanie copyleft bez importu; luka w standardowym SCA; skanowanie fragmentów)
  • Checkmarx, "Top GitHub Copilot Security Risks and Ways to Mitigate Them" · https://checkmarx.com/learn/ai-security/top-5-github-copilot-security-risks-9-ways-to-mitigate-them/ (niebezpieczne sugestie, wyciek sekretów, kontrole przeglądu i skanowania)
  • GitGuardian, "GitHub Copilot Privacy: Key Risks and Secure Usage Best Practices" · https://blog.gitguardian.com/github-copilot-security-and-privacy/ (przetwarzanie danych z promptów, kontrole enterprise)

Jak to się wpisuje w całość: ten przewodnik łączy się z Agentic AI and over-access, który obejmuje scoping i monitorowanie autonomicznych agentów ogólnie; AI connectors and MCP, który obejmuje dostęp, jaki te narzędzia zyskują przez integracje; oraz AI data leakage, który obejmuje szersze ścieżki, którymi dane firmy wyciekają przez AI.

Subscribe to unshadowed.

Subscribe to receive the latest blog posts to your inbox and stay up to date with

By subscribing you agree to with our Privacy Policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

let's start with a conversation

Most first conversations start with not quite knowing what you have or where to begin. That's normal, and it's exactly where we're useful.

Tell us what prompted this. An upcoming audit, an incident, a client's security questionnaire, or just a sense that things have gotten messy.

We'll take it from there

Julian Machowski
Head of Technical Sales
+48 783 762 997
julian@unshadowit.com
Let's connect on LinkedIn
Message received. We'll be in touch soon.
Something failed. Try again or call us directly.