Liderzy opinii
Kod generowany przez AI jest tu, by pozostać. Czy jesteśmy mniej bezpieczni w wyniku tego?

Programowanie w 2025 roku nie polega na mozolnym pracy nad fragmentami ani na spędzaniu długich godzin na debugowaniu. To całkowicie inna atmosfera. Kod generowany przez AI stanowi większość kodu w przyszłych produktach i stał się niezbędnym narzędziem dla współczesnych programistów. Nazywany „vibe codingiem”, użycie kodu generowanego przez narzędzia takie jak Github Copilot, Amazon CodeWhisperer i Chat GPT będzie normą, a nie wyjątkiem, w redukowaniu czasu budowy i zwiększaniu wydajności. Ale czy wygoda kodu generowanego przez AI niesie ze sobą ciemniejsze zagrożenie? Czy generatywny AI zwiększa podatność na zagrożenia w architekturze bezpieczeństwa, czy są sposoby, aby programiści mogli „vibe codować” w bezpieczeństwie?
„Incydenty bezpieczeństwa wynikające z podatności w kodzie generowanym przez AI to jeden z najmniej dyskutowanych tematów dzisiaj” – powiedział Sanket Saurav, założyciel DeepSource. „Nadal jest wiele kodu generowanego przez platformy takie jak Copilot lub Chat GPT, który nie przechodzi przeglądu ludzkiego, a naruszenia bezpieczeństwa mogą być katastrofalne dla firm, które są nimi dotknięte.”
Twórca otwartoźródłowej platformy, która wykorzystuje statyczną analizę do jakości i bezpieczeństwa kodu, Saurav powołał się na atak na SolarWinds w 2020 roku jako na rodzaj „wydarzenia zagłady”, jakie firmy mogą spotkać, jeśli nie zainstalują odpowiednich zabezpieczeń podczas korzystania z kodu generowanego przez AI. „Analiza statyczna umożliwia identyfikację niebezpiecznych wzorców kodu i złych praktyk programistycznych” – powiedział Saurav.
Zagrożone przez bibliotekę
Zagrożenia bezpieczeństwa dla kodu generowanego przez AI mogą przyjmować wymyślne formy i mogą być skierowane przeciwko bibliotekom. Biblioteki w programowaniu to przydatny, wielokrotnie używany kod, którym programiści używają, aby zaoszczędzić czas podczas pisania.
Często rozwiązują one regularne zadania programistyczne, takie jak zarządzanie interakcjami z bazą danych, i pomagają programistom uniknąć konieczności przepisywania kodu od podstaw.
Jednym z takich zagrożeń wobec bibliotek jest tzw. „halucynacja”, gdzie kod generowany przez AI wyświetla podatność poprzez użycie fikcyjnych bibliotek. Innym, bardziej niedawnym rodzajem ataków na kod generowany przez AI jest tzw. „slopsquatting”, gdzie atakujący mogą bezpośrednio atakować biblioteki, aby przeniknąć do bazy danych.
Bezpośrednie rozwiązanie tych zagrożeń może wymagać więcej uwagi niż może się wydawać z terminu „vibe coding”. Wypowiadając się ze swojego biura na Université du Québec en Outaouais, profesor Rafael Khoury od dłuższego czasu śledzi rozwój bezpieczeństwa kodu generowanego przez AI i jest przekonany, że nowe techniki poprawią jego bezpieczeństwo.
W artykule z 2023 roku profesor Khoury zbadał wyniki prośby do ChatGPT o wygenerowanie kodu bez dodatkowych informacji, co doprowadziło do niebezpiecznego kodu. Były to wczesne dni ChatGPT, a Khoury jest teraz optymistycznie nastawiony do przyszłości. „Od tego czasu jest wiele badań, które są obecnie poddawane recenzji, a przyszłość wygląda na strategię korzystania z LLM, która mogłaby przynieść lepsze wyniki” – powiedział Khoury, dodając, że „bezpieczeństwo jest coraz lepsze, ale nie jesteśmy jeszcze w miejscu, w którym możemy podać bezpośrednią wskazówkę i uzyskać bezpieczny kod.”
Khoury opisał obiecujące badanie, w którym wygenerowano kod, a następnie wysłano go do narzędzia, które analizuje go pod kątem podatności. Metoda stosowana przez to narzędzie nazywa się Finding Line Anomalies with Generative AI (FLAG).
„Te narzędzia wysyłają flagi, które mogą identyfikować podatność w linii 24, na przykład, co programista może następnie wysłać z powrotem do LLM z informacjami i poprosić o sprawdzenie i naprawienie problemu” – powiedział.
Khoury sugerował, że ten proces może być kluczowy w naprawie kodu, który jest podatny na ataki. „To badanie sugeruje, że z pięcioma iteracjami można zmniejszyć liczbę podatności do zera.”
Jednakże metoda FLAG nie jest pozbawiona problemów, szczególnie może powodować fałszywe pozytywy i fałszywe negatywy. Ponadto istnieją ograniczenia w długości kodu, który LLM może wygenerować, a łączenie fragmentów może dodać kolejną warstwę ryzyka.
Utrzymywanie ludzi w pętli
Niektórzy gracze w „vibe codingu” zalecają fragmentację kodu i zapewnienie, że ludzie pozostają na pierwszym planie w najważniejszych edycjach kodu. „Podczas pisania kodu, myśl w kategoriach commitów” – powiedział Kevin Hou, szef inżynierii produktu w Windsurf, chwaląc mądrość małych kawałków.
„Rozłóż duży projekt na mniejsze części, które zwykle są commitami lub pull requestami. Pozwól agentowi zbudować mniejszą skalę, jedną izolowaną funkcjonalność na raz. To może zapewnić, że wyjście kodu jest dobrze przetestowane i dobrze zrozumiane” – dodał.
W momencie pisania Windsurf zbliżył się do 5 miliardów linii kodu generowanego przez AI (poprzez swoją poprzednią nazwę Codeium). Hou powiedział, że najpilniejszym pytaniem, na które odpowiadali, było to, czy programista jest świadomy procesu.
„AI jest w stanie wykonać wiele edycji w wielu plikach jednocześnie, więc jak możemy upewnić się, że programista rzeczywiście rozumie i przegląda, co się dzieje, zamiast po prostu akceptować wszystko?” – zapytał Hou, dodając, że zainwestowali ciężko w UX Windsurf „z wieloma intuicyjnymi sposobami, aby pozostać w pełnej zgodności z tym, co robi AI, i utrzymać ludzi w pełnej pętli.”
Dlatego, gdy „vibe coding” staje się bardziej mainstreamowy, ludzie w pętli muszą być bardziej ostrożni wobec jego podatności. Od „halucynacji” po „slopsquatting” zagrożenia są realne, ale rozwiązania również.
Wynikające narzędzia, takie jak analiza statyczna, iteracyjne metody ulepszania, takie jak FLAG, oraz staranne projekty UX pokazują, że bezpieczeństwo i szybkość nie muszą być wzajemnie wykluczające.
Klucz leży w utrzymaniu programistów zaangażowanych, poinformowanych i kontrolujących. Z odpowiednimi zabezpieczeniami i nastawieniem „zaufaj, ale weryfikuj” kodowanie wspomagane przez AI może być zarówno rewolucyjne, jak i odpowiedzialne.












