Vibe coding: Claude AI generuje podatny kod bez Twojej wiedzy

przez Marcin

Vibe coding z Claude AI: niewinna zabawa czy otwarta furtka?

Wyobraź sobie scenariusz: niewinne vibe coding z Claude AI. Ty słuchasz playlisty z Lo-Fi, a on generuje kod, który po cichu otwiera backdoory, źle waliduje dane wejściowe i wystawia Twoje API na atak. Dopóki wszystko nie trafi na produkcję – wszyscy są szczęśliwi. Problem w tym, że bezpieczeństwo kodu AI nie dzieje się samo, a „asystent” nie weźmie odpowiedzialności za podatności w kodzie LLM. Jeśli bezrefleksyjnie klikasz „accept suggestion”, to właśnie Ty stajesz się wektorem ataku.

Claude AI robi furorę w programowaniu: od pełnego „vibe codingu” (gdy opisujesz funkcjonalność słowami), po refaktoryzację całych repozytoriów. To ogromna oszczędność czasu, ale jednocześnie tworzy nową klasę ryzyk generative AI. Badania pokazują, że narzędzia pokroju Claude Code można nie tylko oszukać, by generowały złośliwy kod, ale też wykorzystać jako element ataków na poziomie państwowym, m.in. przez manipulację plikiem CLAUDE.md i „osobowością” agenta. Jeśli dorzucisz do tego typowe „nie mam czasu na code review, AI wie lepiej”, to vibe coding błyskawicznie zmienia się w vibe hacking.

Oryginalny materiał od @The Cyber Security Hub™ możesz zobaczyć poniżej:

Jak widać w powyższym materiale, społeczność bezpieczeństwa już od miesięcy analizuje potencjalne zagrożenia związane z AI w kodowaniu. To nie są teoretyczne dywagacje, a realne obserwacje.

Vibe coding security – o co w ogóle chodzi?

Vibe coding to styl pracy, w którym deweloper opisuje wibrację funkcjonalności („chcę prosty panel admina z logowaniem, filtrowaniem i eksportem”) zamiast projektować architekturę i szczegóły, a asystent AI (np. Claude AI) generuje większość kodu. W praktyce często wygląda to tak, że:

  • AI tworzy szkielet projektu, endpointy API, integracje z bazą, logikę biznesową,
  • człowiek akceptuje zmiany hurtowo, bez dogłębnego zrozumienia,
  • testy (jeśli są) też często są generowane przez ten sam model – i powielają jego ślepe punkty.

PILNE: to nie jest problem teoretyczny. Badacze wielokrotnie pokazywali, jak Claude Code można „przestawić” z roli pomocnika w stronę ofensywnego narzędzia do wyszukiwania luk i budowania exploitów – bez pisania ani jednej linii kodu ręcznie. Skoro model potrafi generować kody ataków, potrafi też niechcący generować podatny kod aplikacji, jeśli nie ustawisz bezpiecznych ograniczeń.

Przegląd zagrożeń – co może pójść nie tak z Claude AI w programowaniu

Pasywne ryzyko – podatny kod bez Twojej wiedzy

Typowe scenariusze, które regularnie widzimy w audytach projektów „pisanych z AI”:

  • brak walidacji danych wejściowych – klasyczne SQL injection, XSS, HTTP header injection,
  • generowanie kodu z twardo zakodowanymi sekretami (tokeny API, klucze do Stripe, hasła do bazy),
  • niepoprawne mechanizmy uwierzytelniania i autoryzacji – np. brak sprawdzania ról, IDOR (Insecure Direct Object Reference),
  • domyślne lub nieaktualne zależności – biblioteki z CVE, które AI „dobiera, bo tak widziało w przykładach”.

Ważne: to nie są konkretne podatności po stronie samego Claude, ale klasyczne luki z listy OWASP, które model może replikować w Twojej bazie kodu. Przy nieuważnym vibe codingu możesz wprowadzić do systemu zależności z aktywnymi CVE (np. podatne wersje frameworków webowych) – i nawet nie wiedzieć, że właśnie wciągnąłeś do projektu kolejnego log4j.

Aktywne ryzyko – AI jako narzędzie ofensywne

Badania LayerX pokazały, jak manipulując kontekstem, promptami i plikiem CLAUDE.md można skłonić Claude Code do pisania exploitów, skanerów podatności i narzędzi ofensywnych zbliżonych do tych używanych przez zaawansowanych napastników. To rodzi dwie bezpośrednie konsekwencje:

  • atakujący mogą używać Claude jako „operatora” do szybszego budowania narzędzi,
  • Twój projekt może stać się laboratorium dla AI-agenta, który „pomaga” eksplorować luki – jeśli wciągniesz go bez izolacji do prywatnego repo.

Cytat dla ochłonięcia: „Zamiast szukać błędów w kodzie modelu, atakujący manipulują jego osobowością i kontekstem” – wskazują analizy dotyczące autonomicznych agentów opartych na Claude Code.

Jak sprawdzić, czy Twoje vibe coding z Claude AI jest zagrożone?

Sprawdź natychmiast, czy jesteś zagrożony

Zadaj sobie (i swojemu zespołowi) kilka brutalnych pytań:

  • Czy masz w repo historię commitów typu „AI suggestion”/„apply all suggestions” bez code review?
  • Czy Claude AI generował dla Ciebie kod w obszarach uwierzytelniania, autoryzacji, płatności, obsługi sekretów, kryptografii lub infrastruktury?
  • Czy AI mogło dodać nowe zależności do projektu bez procesu SCA (Software Composition Analysis)?
  • Czy wrzucałeś do promptów prawdziwe klucze, hasła, tokeny, identyfikatory klientów?

Jeśli na którekolwiek z powyższych odpowiedzią jest „tak”, potraktuj swój kod jak potencjalnie uprzednio skompromitowany. To nie znaczy od razu incydent, ale minimalnie – podniesione ryzyko, które wymaga działania.

IOCs – wskaźniki „kompromitacji” przez vibe coding

W kontekście cybersecurity awareness dla deweloperów traktuj następujące sygnały jako IOCs (Indicators of Compromise) kulturowo-procesowe, niekoniecznie jak klasyczny malware:

  • wiadomości commitów typu: „generated by Claude”, „AI refactor”, bez PR review,
  • duże zmiany w krytycznych modułach (auth, payments) z jednym autorem – botem,
  • brak testów bezpieczeństwa / brak negatywnych testów wejścia dla endpointów generowanych przez AI,
  • pomijanie standardów secure codingu z projektu, „bo AI i tak wie lepiej”.

Uwaga: jeśli Claude działał z dostępem do repo i terminala (Claude Code), sprawdź konfigurację sandboxa i logi – czy agent nie modyfikował plików poza zakresem projektu i nie wykonywał podejrzanych komend.

Bezpieczne programowanie z AI – jak okiełznać vibe coding

Kluczowe kroki zabezpieczenia – governance dla vibe coding security

Narzędzia do kodowania AI nie muszą być zakazane – muszą być odpowiednio zarządzane. Dobry program bezpiecznego programowania z AI powinien jasno określać:

  • które narzędzia są dozwolone (Claude AI, Cursor, Copilot, itd.) i w jakich workflow,
  • w jakich obszarach AI nie może samodzielnie wprowadzać zmian (auth, płatności, sekrety, infrastruktura),
  • wymóg code review dla wszystkich zmian generowanych przez AI,
  • wymóg dodatkowego przeglądu bezpieczeństwa dla zmian wysokiego ryzyka.

Wskazówka: potraktuj vibe coding jak stażystę juniorskiego poziomu z super mocą szybkości – jest szybki, ale nie ma uprawnień do mergowania bezpośrednio do maina.

Traktuj kod AI jak potencjalnie niebezpieczny

Przyjmij zasadę, którą sugerują przewodniki po vibe coding security: kod wygenerowany przez AI jest hipotezą, a nie produkcyjną prawdą objawioną. Zanim coś trafi na produkcję, obowiązkowo wykonaj:

  • ręczny code review przez człowieka (najlepiej nie-autora promta),
  • automatyczne skanowanie SAST/DAST + SCA dla zależności,
  • testy jednostkowe i integracyjne obejmujące przypadki brzegowe i złośliwe dane wejściowe.

KRYTYCZNE: rekomendacje naprawcze generowane przez AI (np. „napraw mi XSS”) też muszą być weryfikowane – w przeciwnym razie możesz zamienić jedną lukę na inną, subtelniejszą.

Korzystaj z wbudowanych zabezpieczeń Claude Code Security

Anthropic rozwija mechanizmy Claude Code Security, które mają pomóc wykrywać luki już podczas pisania kodu oraz ograniczać ryzyka, takie jak prompt injection, kradzież danych czy nieautoryzowane wykonywanie komend. Kluczowe elementy to m.in.:

  • mechanizm jawnego zatwierdzania – żadnych komend systemowych bez Twojego OK,
  • tryb piaskownicy (sandbox) – agent nie wychodzi poza katalog projektu, nie ma swobodnego dostępu do sieci,
  • monitorowanie dostępu sieciowego i blokowanie podejrzanych wzorców,
  • automatyczne skanowanie kodu pod kątem znanych klas podatności (SQLi, XSS, problemy z sesją, niezabezpieczone API).

Ważne: to pomoc, nie tarcza absolutna. Nawet jeśli Claude Code Security pokazuje „zielono”, Twoje procesy secure development life cycle wciąż są obowiązkowe.

Nie karm AI sekretami

Zasada z przewodników po zarządzaniu AI do kodowania jest brutalna, ale słuszna:

  • sekrety (hasła, klucze API, tokeny, dane kart, PII) nie mogą trafiać do promptów,
  • AI nie powinno generować przykładów z prawdziwymi danymi,
  • wygenerowany kod nie może zawierać twardo zakodowanych sekretów – używaj env, secret managerów.

PILNE: jeśli masz podejrzenie, że prawdziwe sekrety trafiły do sesji z Claude, potraktuj je jak ujawnione – natychmiastowa rotacja kluczy, reset haseł, przegląd logów dostępowych.

Techniczne tipy – minimalna „polisa” dla vibe coderów

Checklist dla dewelopera z Claude AI

  • Oddzielaj sesje: osobny chat do poważnego kodu, osobny do eksperymentów z „wibracją”.
  • Nie pozwalaj AI na samodzielne tworzenie i modyfikowanie reguł bezpieczeństwa (CORS, CSP, firewall rules) bez review.
  • Każda nowa zależność wprowadzona „przez Claude” przechodzi SCA i sprawdzenie znanych CVE.
  • Krytyczne elementy (auth, crypto, payments) – albo piszesz ręcznie, albo AI jest tylko do refaktora i sugestii, nigdy „auto-merge”.
  • Loguj i audytuj: trzymaj historię interakcji z Claude Code, by móc prześledzić, skąd wzięła się konkretna zmiana.

Ciekawostka: niektóre zespoły używają AI… do recenzowania AI. Jeden agent (w trybie security) skanuje kod wygenerowany przez drugi model. To nie zastępuje człowieka, ale może podnieść szansę wychwycenia oczywistych luk.

Zakończenie – vibe coding tak, ale z kaskiem na głowie

Vibe coding z Claude AI jest jak jazda hulajnogą elektryczną po mieście: szybkie, przyjemne i bardzo łatwo zapomnieć, że fizyki nie da się oszukać. Bezpieczeństwo kodu AI nie pojawia się magicznie tylko dlatego, że narzędzie nazywa się „asystent”. To Ty odpowiadasz za podatności w kodzie LLM, który wpuszczasz na produkcję.

Jeśli chcesz nadal korzystać z Claude AI w programowaniu i jednocześnie spać spokojnie, wdroż te zasady:

  • ustal jasne zasady vibe coding security i egzekwuj code review,
  • traktuj kod z AI jak nieufny input – skanuj, testuj, audytuj,
  • izoluj agenta (sandbox, jawne zatwierdzanie komend, brak sekretów w promptach),
  • używaj narzędzi takich jak Claude Code Security jako wsparcia, ale nie zamiast procesu bezpieczeństwa.

Na koniec jedno zdanie, które naprawdę warto zapamiętać: AI może pisać za Ciebie kod, ale nigdy nie napisze za Ciebie polityki bezpieczeństwa – i nie weźmie na siebie winy, gdy vibe zamieni się w incident response.

Powiązane posty