AI znalazło 300 błędów w wtyczkach WordPress w ciągu 72 godzin

AI znajduje błędy szybko. Szybko pisze też kod. Tworzy to niebezpieczną lukę dla twórców wtyczek.

Badacze bezpieczeństwa wykorzystali AI do znalezienia ponad 300 krytycznych podatności typu zero-day w ekosystemie WordPress. Zrobili to w zaledwie 72 godziny.

Problemem jest vibe coding. Dzieje się tak, gdy programiści wypuszczają kod wygenerowany przez LLM, którego nie potrafią zweryfikować. Przez to jedna wtyczka miała 100 oddzielnych problemów związanych z bezpieczeństwem.

AI odbiera Ci dwie dotychczasowe formy ochrony: czas i niejasność (obscurity).

Atakujący używają teraz AI do znajdowania luk. Programiści używają AI do pisania kodu. Kod często pomija kroki związane z bezpieczeństwem, takie jak:

  • Escaping danych
  • Sprawdzanie uprawnień (capability checks)
  • Walidacja nonce

Czas od publicznego zgłoszenia błędu do masowego wykorzystania luki wynosi obecnie pięć godzin. To nie jest czas na reakcję. To wyścig, który przegrasz.

Nauczyłem się tego na własnej skórze. Stworzyłem wtyczkę z chatbotem AI. Przegląd bezpieczeństwa wykrył 35 błędów w moim kodzie. Jeden z nich był wstrzyknięciem HTML (HTML injection).

Popełniłem błąd. Zaufałem wynikom generowanym przez AI. Myślałem, że skoro model wygenerował tekst, jest on bezpieczny. Nie był. Wynik modelu zawiera dane od użytkowników i z zewnętrznych stron. Musisz traktować go jako dane niepewne (untrusted).

Zmieniłem swój proces pracy. Nie zakładam już, że kod jest bezpieczny tylko dlatego, że działa. Ręcznie sprawdzam każdy fragment napisany przez AI w trzech obszarach:

  • Input: Sposób, w jaki dane trafiają do systemu.
  • Output: Sposób, w jaki dane opuszczają system.
  • Permissions: Kto może wykonać daną czynność.

Po stronie wyjściowej (output) używam teraz funkcji takich jak esc_html i wp_kses. Używam $wpdb->prepare przy każdym zapisie do bazy danych. Sprawdzam uprawnienia za pomocą current_user_can w każdym punkcie wejścia.

Prawdziwym kryzysem nie są same błędy. Jest nim czas reakcji.

  • 52% programistów nie wydaje poprawki, zanim błąd zostanie upubliczniony.
  • 46% ujawnionych błędów nie posiada żadnej dostępnej poprawki.

Większość programistów to autorzy niezależni. Nie otrzymują wynagrodzenia za szybkie naprawianie błędów. AI sprawia, że ta luka staje się widoczna.

Jeśli wydajesz wtyczki, nie ograniczaj się do ostrożnego pisania i liczenia na szczęście. Załóż, że atakujący znajdą Twoje luki w kilka sekund.

Zbuduj następujące zabezpieczenia:

  • Ręcznie sprawdzaj wszystkie dane wejściowe, wyjściowe oraz uprawnienia.
  • Czyść (sanitize) wszystkie odpowiedzi modelu.
  • Stwórz sposób, aby ludzie mogli prywatnie zgłaszać Ci błędy.

Prosty kontakt w sprawie bezpieczeństwa w pliku readme to dopiero początek. Potrzebujesz kanału do zgłoszeń, zanim błąd stanie się publicznym zagrożeniem.

Źródło: https://dev.to/rapls/ai-found-300-wordpress-plugin-zero-days-in-72-hours-i-build-plugins-heres-what-changed-for-me-43na