Typefully

Vibe Coding fuckup

Avatar

Share

 • 

A month ago

 • 

View on X

Ostatnio sporo eksperymentowałem z vibe codingiem. No nie idzie mi to zdecydowanie dobrze, czy tam mówiąc wprost - jestem w tym kiepski. Czy 'zvajbowany' serwis posiadający zero użytkowników może stać się łakomym kąskiem dla hackerów? I to jak! Czytaj dalej 🧵 ↓
Celem było stworzenie od zera prostego landingu i panelu sterowania pod 'amerykańską' wersję Mikrusa (powoli takie coś powstaje). Narzędzie, którego chciałem się nauczyć był Cursor. Potrafi on nie tylko ogarnąć kod, ale i podstawową konfigurację serwera.
Początek był piękny: hej Cursor, postaw mi 3 środowiska pod mój nowy projekt. Kilka minut i gotowe. Z kodem nie było tak łatwo, ale po dziesiątkach godzin pracy i po licznych eksperymentach z różnymi modelami udało się ogarnąć kilka podstawowych funkcji.
✅ Landing działa - trochę generyczny, ale mi się podoba ✅ Panel klienta - biedny, ale można np. zrestartować i przeinstalować VPS-a. Dobre na początek. ✅ Płatności - po wrzuceniu dokumentacji pośrednika płatności, ogarnęło się "samo".
Po licznych testach stwierdziłem, że wszystko działa zgodnie z oczekiwaniami. Czas dać to komuś do przeklikania. Konta dostało dwóch testerów. Nooo... oni byli mniej optymistyczni niż ja. Bugi zostały poprawione. A później kolejne i jeszcze następne.
Trzy dni temu dostałem maila od 'badacza security'. Pierwszy raz nie był to osobnik z Indii, a tym razem z Polski, więc się ucieszyłem. Za wcześnie. Raport w mało wyszukanych słowach informował o znalezieniu buga w konfiguracji serwera. Pomijając język, to jednak responsible disclosure :)
Co konkretnie się stało? Domyślnie skonfigurowany Apache miał włączone listowania katalogów. No błąd jak błąd - jeden oleje, inny się przejmie. Tutaj jednak było gorzej. ZNACZNIE gorzej. Serwer umożliwiał publiczny dostęp do katalogu ".git", a to już jest CRITICAL 😱
Szybkie sprawdzenie logów pokazało, że odwołań do wspomnianego katalogu trochę było (2700+ sztuk), ale tylko z dwóch IP z Polski. Czyli pewnie pentester + jakiś jego znajomy. No OK, ale co włamywaczowi daje dostęp do katalogu .git? Delikatnie mówiąc: daje mu dostęp do WSZYSTKIEGO.
Sądząc po liczbie requestów, pobrany został cały napisany przeze mnie kod [taaa... przez Ciebie ~cursor]. Dodatkowo dostęp do konfiguracji umożliwił także wykonywanie zapytań SQL na bazie danych.
W systemie pojawił się nowy VPS o dość nietypowych parametrach: 8GB RAM + 69GB dysku. Oznacza to, że włamywacz (tutaj: pentester) był w stanie swobodnie manipulować bazą danych, a co za tym idzie, mógłby przejąć dowolne inne konto w systemie. No niefajnie.
Jak poważny był to włam tak w skali od zera do "OMG WTF"? Zdecydowanie bliżej tego drugiego. Trzeba z tego wyciągnąć pewne wnioski.
1) vibe-tool to nie DevOps. Coś, co każdy admin domyślnie ogarnia w konfiguracji, tutaj nie zostało zaaplikowane. 2) każda firma posiada środowisko developerskie. Niektóre mają także osobne środowisko produkcyjne - if you know what i mean. [Ciąg dalszy nastąpi...]
Avatar

Jakub Mrugalski 🔥

@uwteam

🤖 Piszę o technologii, AI, automatyzacji, cybersecurity i biznesie. 🛠 Dzielę się użytecznymi narzędziami i case-study 🤔 #DigitalEUAmbassador 🛑 Nie czytam DM