Ryzyka kodu generowanego przez AI: lista kontrolna przed wdrożeniem

Model generuje kod, który wygląda wiarygodnie i często działa. To właśnie sprawia, że łatwo przeoczyć jego wady.
Bezpieczeństwo
Wygenerowany kod potrafi pomijać walidację danych, składać zapytania do bazy w sposób podatny na wstrzyknięcia, zapisywać hasła bez odpowiedniego haszowania albo wystawiać zbyt szerokie uprawnienia. Model uczył się na ogromnej ilości kodu, w tym kodu słabej jakości, i nie zawsze odróżnia przykład z poradnika od rozwiązania produkcyjnego.
Sekrety w repozytorium
Klucze API i hasła wklejone „na chwilę” do pliku potrafią trafić do historii repozytorium. Trzymaj je w zmiennych środowiskowych, dodaj pliki konfiguracyjne do ignorowanych i sprawdzaj historię, zanim opublikujesz projekt.
Zależności, które nie istnieją
Modele potrafią zmyślać nazwy pakietów. Jeśli ktoś zarejestruje taką nazwę i umieści w niej złośliwy kod, instalacja „sugerowanego” pakietu staje się wektorem ataku. Przed dodaniem nieznanej biblioteki sprawdź, kto ją utrzymuje, od kiedy istnieje i ilu osób jej używa.
Prywatność danych
Wklejając do narzędzia fragmenty kodu, logi czy dane klientów, wysyłasz je do zewnętrznego usługodawcy. Sprawdź jego zasady przetwarzania danych i nie wklejaj niczego, czego nie wolno Ci udostępniać na zewnątrz.
Licencje
Wygenerowany fragment może przypominać kod objęty konkretną licencją. Kwestie prawne wokół kodu tworzonego przez AI wciąż się wyjaśniają i różnią się między jurysdykcjami, więc w projektach komercyjnych warto skonsultować się z prawnikiem.
Dług techniczny
Najdroższym skutkiem ubocznym jest kod, którego nikt w zespole nie rozumie. Za pół roku, gdy trzeba go zmienić, okaże się, że nie wiadomo, dlaczego robi to, co robi.
Lista kontrolna przed wdrożeniem
- Czy rozumiem, co robi każda część kodu, którą wdrażam?
- Czy wszystkie dane od użytkownika są walidowane?
- Czy w repozytorium nie ma kluczy, haseł ani danych osobowych?
- Czy każda dodana zależność istnieje i jest utrzymywana?
- Czy są testy sprawdzające najważniejsze ścieżki?
- Czy ktoś inny przejrzał zmiany?


