Lagune групує свої вбудовані спеціалізації у категорії (13). Категорії, які використовує проєкт, визначають, які вбудовані спеціалізації потрапляють до його каталогу, і поділяються на дві групи: що робить система і якою мовою вона написана.
Поки не записано жодної категорії, проєкт використовує лише owasp. /lagune-charter записує кожну категорію, яку підтверджує її аналіз проєкту, а ви можете змінювати їх самі будь-коли.
Що робить система
| Категорія | Ключ | Що захищає |
|---|---|---|
| OWASP | owasp | Ризики безпеки застосунків, які відстежує OWASP: ін'єкції, порушення контролю доступу, збої автентифікації й криптографії |
| Інфраструктура | infra | Конфігурацію контейнерів, робочих навантажень і serverless: Dockerfile, Compose, безпеку Pod, IAM і тригери FaaS |
| ШІ / LLM | ai | Інтеграції зі ШІ та LLM від prompt injection і небезпечного підключення інструментів, агентів, пошуку даних і MCP |
| Lovable | lovable | Згенеровані ШІ застосунки на Supabase (Lovable і подібні): прогалини в RLS, витоки ключів service_role і небезпечні налаштування за замовчуванням |
Якою мовою вона написана
| Категорія | Ключ | Що захищає |
|---|---|---|
| JavaScript | javascript | RCE через eval і child_process, path traversal і prototype pollution у всіх середовищах виконання |
| Python | python | RCE через десеріалізацію pickle і YAML, обхід через форматні рядки str.format і class pollution |
| Rust | rust | Некоректні unsafe API, неправильне використання transmute, переповнення цілих чисел і невизначену поведінку на межі FFI |
| C / C++ | c-cpp | Помилки форматних рядків, переповнення буфера й записи за межі пам'яті, що дають змогу виконати код |
| PHP | php | Обхід автентифікації через type juggling, ланцюжки гаджетів через object injection і небезпечні налаштування конфігурації за замовчуванням |
| Go | go | Помилки з typed nil в інтерфейсах, data races між горутинами й небезпечну конкурентність у критичних для безпеки ділянках |
| Java | java | Ланцюжки гаджетів при десеріалізації через ObjectInputStream, що закінчуються віддаленим виконанням коду |
| Ruby | ruby | Ланцюжки гаджетів при десеріалізації через Marshal.load і YAML, що ведуть до віддаленого виконання коду |
| .NET / C# | dotnet | RCE через десеріалізацію BinaryFormatter і обходи кодувальників, що ведуть до XSS |
Lagune не залежить від мови програмування: увесь процес читає проєкт, хоч би якою мовою його написано, а ці категорії лише додають глибини щодо пасток, специфічних для однієї мови.
Додавайте й прибирайте будь-коли
Категорія є відправною точкою, а не зобов'язанням. Використовуйте те, що підходить проєкту зараз, і змінюйте будь-коли за ключем через write add і write remove. --categories без значення відкриває в терміналі інтерактивний вибір (пробіл, щоб перемкнути, enter, щоб підтвердити, порожньо, щоб пропустити). Поза терміналом передайте категорії після нього.
- Додати
- Прибрати
npx lagune write add --categories # interactive
npx lagune write add --categories owasp
npx lagune write add --categories owasp rust
npx lagune write remove --categories # interactive
npx lagune write remove --categories owasp
npx lagune write remove --categories owasp rust
Перший write add чи write remove починає з owasp, тож якщо прибрати всі категорії, залишиться порожній список, а не значення за замовчуванням. Кожна зміна потрапляє в .lagune/configs.json, тож уся команда працює з тим самим набором.
Що використовує проєкт
read list --categories показує кожну категорію і те, чи використовує її проєкт:
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.
Які спеціалізації містить кожна категорія, дивіться в Каталозі. Ваші власні спеціалізації, написані через /lagune-specialize, потрапляють до каталогу незалежно від категорій.
Часті запитання
Передайте ключ категорії в --categories, наприклад npx lagune write add --categories javascript. Поки не записано жодної категорії, charter також записує ті, які підтверджує її аналіз проєкту.
Так. Перелічіть їх в одному рядку, одну за одною.
Почніть з owasp, значення за замовчуванням, а потім додайте категорію для своєї мови чи стеку. Спеціалізації завантажуються лише на вимогу, тож категорія нічого не коштує, доки фазі не знадобиться одна з її спеціалізацій.
