Спеціалізації

Категорії

Категорії спеціалізацій, які може використовувати проєкт Lagune, від OWASP до захисту окремих мов, як-от JavaScript, Python, Go і Rust, і як їх змінювати.

Lagune групує свої вбудовані спеціалізації у категорії (13). Категорії, які використовує проєкт, визначають, які вбудовані спеціалізації потрапляють до його каталогу, і поділяються на дві групи: що робить система і якою мовою вона написана.

Поки не записано жодної категорії, проєкт використовує лише owasp. /lagune-charter записує кожну категорію, яку підтверджує її аналіз проєкту, а ви можете змінювати їх самі будь-коли.

Що робить система​

КатегоріяКлючЩо захищає
OWASPowaspРизики безпеки застосунків, які відстежує OWASP: ін'єкції, порушення контролю доступу, збої автентифікації й криптографії
ІнфраструктураinfraКонфігурацію контейнерів, робочих навантажень і serverless: Dockerfile, Compose, безпеку Pod, IAM і тригери FaaS
ШІ / LLMaiІнтеграції зі ШІ та LLM від prompt injection і небезпечного підключення інструментів, агентів, пошуку даних і MCP
LovablelovableЗгенеровані ШІ застосунки на Supabase (Lovable і подібні): прогалини в RLS, витоки ключів service_role і небезпечні налаштування за замовчуванням

Якою мовою вона написана​

КатегоріяКлючЩо захищає
JavaScriptjavascriptRCE через eval і child_process, path traversal і prototype pollution у всіх середовищах виконання
PythonpythonRCE через десеріалізацію pickle і YAML, обхід через форматні рядки str.format і class pollution
RustrustНекоректні unsafe API, неправильне використання transmute, переповнення цілих чисел і невизначену поведінку на межі FFI
C / C++c-cppПомилки форматних рядків, переповнення буфера й записи за межі пам'яті, що дають змогу виконати код
PHPphpОбхід автентифікації через type juggling, ланцюжки гаджетів через object injection і небезпечні налаштування конфігурації за замовчуванням
GogoПомилки з typed nil в інтерфейсах, data races між горутинами й небезпечну конкурентність у критичних для безпеки ділянках
JavajavaЛанцюжки гаджетів при десеріалізації через ObjectInputStream, що закінчуються віддаленим виконанням коду
RubyrubyЛанцюжки гаджетів при десеріалізації через Marshal.load і YAML, що ведуть до віддаленого виконання коду
.NET / C#dotnetRCE через десеріалізацію 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

Перший 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, значення за замовчуванням, а потім додайте категорію для своєї мови чи стеку. Спеціалізації завантажуються лише на вимогу, тож категорія нічого не коштує, доки фазі не знадобиться одна з її спеціалізацій.