Специализации

Категории

Категории специализаций, которые может использовать проект Lagune, от OWASP до усиления защиты под конкретные языки, такие как JavaScript, Python, Go и Rust, и как их менять.

Lagune группирует свои встроенные специализации по категориям, всего их 13. Категории, которые использует проект, определяют, какие встроенные специализации попадут в его каталог, и делятся на две группы: что делает система и на чем она написана.

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

Что делает система​

КатегорияКлючЧто она защищает
OWASPowaspРиски безопасности приложений, которые отслеживает OWASP: инъекции, нарушение контроля доступа, сбои аутентификации и криптографии
ИнфраструктураinfraКонфигурация контейнеров, рабочих нагрузок и serverless: Dockerfile, Compose, безопасность подов, 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, значения по умолчанию, затем добавьте категорию для своего языка или стека. Специализации загружаются только по запросу, поэтому категория ничего не стоит, пока фазе не понадобится одна из ее специализаций.