FixVibe
Covered by FixVibemedium

Zagrożenia bezpieczeństwa w kodowaniu wspomaganym AI: łagodzenie luk w zabezpieczeniach kodu generowanego przez drugiego pilota

Asystenci kodowania AI, tacy jak GitHub Copilot, mogą wprowadzić luki w zabezpieczeniach, jeśli sugestie zostaną zaakceptowane bez rygorystycznej oceny. W tym badaniu zbadano ryzyko związane z kodem wygenerowanym przez AI, w tym problemy z odniesieniami do kodu i konieczność weryfikacji bezpieczeństwa przez człowieka w pętli, zgodnie z oficjalnymi wytycznymi odpowiedzialnego użytkowania.

CWE-1104CWE-20

Wpływ

Bezkrytyczna akceptacja sugestii dotyczących kodu wygenerowanych przez AI może prowadzić do wprowadzenia luk w zabezpieczeniach, takich jak nieprawidłowa walidacja danych wejściowych lub użycie niepewnych wzorców kodu [S1]. Jeśli programiści polegają na funkcjach autonomicznej realizacji zadań bez przeprowadzania ręcznych audytów bezpieczeństwa, ryzykują wdrożenie kodu zawierającego halucynacyjne luki lub pasujące do niezabezpieczonych fragmentów kodu publicznego [S1]. Może to skutkować nieautoryzowanym dostępem do danych, atakami typu „wstrzykiwanie” lub ujawnieniem wrażliwej logiki w aplikacji.

Główna przyczyna

Główną przyczyną jest nieodłączna natura modeli wielkojęzycznych (LLM), które generują kod w oparciu o wzorce probabilistyczne znalezione w danych szkoleniowych, a nie o podstawowe zrozumienie zasad bezpieczeństwa [S1]. Chociaż narzędzia takie jak GitHub Copilot oferują funkcje takie jak odwołanie do kodu w celu identyfikacji dopasowań z kodem publicznym, odpowiedzialność za zapewnienie bezpieczeństwa i poprawności ostatecznej implementacji spoczywa na programiście [S1]. Niezastosowanie wbudowanych funkcji ograniczających ryzyko lub niezależna weryfikacja może prowadzić do niebezpiecznych schematów w środowiskach produkcyjnych [S1].

Poprawki betonu

  • Włącz filtry odwołujące się do kodu: Użyj wbudowanych funkcji do wykrywania i przeglądania sugestii pasujących do kodu publicznego, co pozwala ocenić kontekst licencji i bezpieczeństwa oryginalnego źródła [S1].
  • Ręczny przegląd bezpieczeństwa: Zawsze wykonuj ręczną ocenę każdego bloku kodu wygenerowanego przez asystenta AI, aby upewnić się, że poprawnie obsługuje on przypadki brzegowe i sprawdzanie poprawności danych wejściowych [S1].
  • Wdrożenie automatycznego skanowania: Zintegruj testy bezpieczeństwa analizy statycznej (SAST) z potokiem CI/CD, aby wychwycić typowe luki w zabezpieczeniach, które asystenci AI mogą przypadkowo zasugerować [S1].

Jak FixVibe to testuje

FixVibe uwzględnia już ten problem poprzez skanowanie repo skupione na prawdziwych dowodach bezpieczeństwa, a nie na słabej heurystyce komentarzy AI. code.vibe-coding-security-risks-backfill sprawdza, czy repozytoria aplikacji internetowych zawierają instrukcje dotyczące skanowania kodu, skanowania tajnych danych, automatyzacji zależności i instrukcji bezpieczeństwa agenta AI. code.web-app-risk-checklist-backfill i code.sast-patterns wyszukują konkretne niebezpieczne wzorce, takie jak surowa interpolacja SQL, niebezpieczne ujścia HTML, słabe sekrety tokenów, ujawnienie klucza roli usługi i inne zagrożenia na poziomie kodu. Dzięki temu ustalenia są powiązane z możliwymi do zastosowania mechanizmami bezpieczeństwa, a nie tylko sygnalizują, że użyto narzędzia takiego jak Copilot lub Kursor.