Specjalizacje

Kategorie

Kategorie specjalizacji, z których może korzystać projekt Lagune, od OWASP po utwardzanie dla konkretnych języków, takich jak JavaScript, Python, Go i Rust, oraz sposób ich zmiany.

Lagune grupuje swoje wbudowane specjalizacje w 13 kategorii. Kategorie, z których korzysta projekt, decydują o tym, które wbudowane specjalizacje trafią do jego katalogu, i dzielą się na dwie grupy: to, co robi system, i to, w czym jest napisany.

Dopóki nie zapisano żadnej kategorii, projekt korzysta tylko z owasp. Polecenie /lagune-charter zapisuje każdą kategorię, którą uzasadnia jego analiza projektu, a ty w każdej chwili możesz je zmienić samodzielnie.

Co robi system​

KategoriaKluczCo utwardza
OWASPowaspRyzyka bezpieczeństwa aplikacji, które śledzi OWASP: wstrzykiwanie, błędna kontrola dostępu, błędy uwierzytelniania i kryptografii
InfrastrukturainfraKonfiguracja kontenerów, obciążeń i usług serverless: Dockerfile, Compose, bezpieczeństwo podów, IAM i wyzwalacze FaaS
AI / LLMaiIntegracje AI i LLM: ochrona przed prompt injection i niebezpiecznym podłączaniem narzędzi, agentów, mechanizmów retrieval i MCP
LovablelovableAplikacje Supabase generowane przez AI (Lovable i podobne): luki w RLS, wycieki kluczy service_role i niebezpieczne ustawienia domyślne

W czym jest napisany​

KategoriaKluczCo utwardza
JavaScriptjavascriptRCE przez eval i child_process, path traversal i prototype pollution we wszystkich jego środowiskach uruchomieniowych
PythonpythonRCE przez deserializację pickle i YAML, string traversal przez str.format i class pollution
RustrustNiepoprawne (unsound) API z unsafe, nadużycia transmute, przepełnienia liczb całkowitych i niezdefiniowane zachowanie na granicy FFI
C / C++c-cppBłędy ciągów formatujących, przepełnienia bufora i zapisy poza zakresem, które umożliwiają wykonanie kodu
PHPphpObejście uwierzytelniania przez type juggling, łańcuchy gadżetów do object injection i niebezpieczne domyślne ustawienia konfiguracji
GogoBłędy interfejsów z typed nil, data races między gorutynami i niebezpieczna współbieżność na ścieżkach krytycznych dla bezpieczeństwa
JavajavaŁańcuchy gadżetów przy deserializacji przez ObjectInputStream, które kończą się zdalnym wykonaniem kodu
RubyrubyŁańcuchy gadżetów przy deserializacji przez Marshal.load i YAML, które prowadzą do zdalnego wykonania kodu
.NET / C#dotnetRCE przez deserializację BinaryFormatter i obejścia enkoderów, które prowadzą do XSS
wskazówka

Lagune działa z każdym językiem: cały przepływ pracy czyta projekt, w czymkolwiek jest napisany, a te kategorie tylko pogłębiają analizę pułapek typowych dla jednego języka.

Dodawaj i usuwaj w każdej chwili​

Kategoria to punkt wyjścia, a nie zobowiązanie. Używaj tych, które pasują do projektu teraz, i zmieniaj je w każdej chwili po kluczu, poleceniami write add i write remove. Opcja --categories bez wartości otwiera w terminalu interaktywny wybór (spacja zaznacza, Enter zatwierdza, pusty wybór pomija). Poza terminalem podaj kategorie zaraz po tej opcji.

npx lagune write add --categories # interactive
npx lagune write add --categories owasp
npx lagune write add --categories owasp rust

Pierwsze wywołanie write add lub write remove wychodzi od owasp, więc usunięcie wszystkich kategorii zostawia pustą listę, nigdy wartość domyślną. Każda zmiana trafia do pliku .lagune/configs.json, dzięki czemu cały zespół pracuje z tym samym zestawem.

Sprawdź, z czego korzysta projekt​

Polecenie read list --categories pokazuje każdą kategorię i to, czy projekt z niej korzysta:

npx lagune read list --categories
# Categories
# • owasp [used] Harden against the application security risks OWASP tracks
# • javascript [available] Harden JavaScript and its runtimes
# • php [available] Harden PHP against type-juggling auth bypass
# • go [available] Harden Go against typed-nil interface bugs
# ...
#
# No category is recorded yet, so this project uses the default: owasp.

Jakie specjalizacje zawiera każda kategoria, sprawdzisz w Katalogu. Twoje własne specjalizacje, napisane poleceniem /lagune-specialize, trafiają do katalogu niezależnie od kategorii.

Najczęściej zadawane pytania

Przekaż klucz kategorii do opcji --categories, na przykład npx lagune write add --categories javascript. Dopóki nie zapisano żadnej kategorii, faza charter również zapisuje te, które uzasadnia jej analiza projektu.

Tak. Wymień je w tym samym wierszu, jedną po drugiej.

Zacznij od owasp, czyli kategorii domyślnej, a potem dodaj tę dla swojego języka lub stosu. Specjalizacje ładują się tylko na żądanie, więc kategoria nic nie kosztuje, dopóki któraś faza nie będzie potrzebować jednej z jej specjalizacji.