Monolit / Архив 1.3.3
Руководство пользователя
Приложения, аналитика, уязвимости, соответствие ГОСТ Р 56939-2024, отчёты и интеграции.
Monolit
Это документация Monolit 1.3.3. Актуальная версия — 1.3.4.
Открыть актуальнуюАрхивная версия · Monolit v1.3.3
Это снимок документации на момент релиза 1.3.3. Описанное здесь поведение может отличаться от текущей версии продукта.
Актуальная документация
Введение
Monolit — платформа безопасной разработки (AppSec), автоматизирующая шесть типов анализа: SAST, SCA, Secret Scanning, Config Scanning, Linters и DAST. Платформа запускает несколько сканеров параллельно и предоставляет единый веб-интерфейс для управления уязвимостями, приложениями, соответствием ГОСТ Р 56939-2024 и формирования PDF-отчётов.
Основные возможности
Monolit предназначена для команд, которые внедряют практики безопасной разработки.
- Развёртывание. Платформа поставляется собранными образами и разворачивается скриптом
install.shв Docker Compose или Helm-чартом в Kubernetes. - Состав инструментов. В комплект входят 15 инструментов анализа и 6 классов проверок; закупать, обновлять и сопровождать их отдельно не нужно. Дополнительно подключаются коммерческие сканеры PT AI, Solar appScreener и CodeScoring.
- Интеграция с CI/CD. Платформа принимает код и запускает сканирование по HTTP API, поэтому проверка встраивается в сборку GitLab CI, Jenkins и других систем.
- Управление уязвимостями. Приоритизация, статусы, комментарии и контроль исправления живут внутри платформы; при подключении Jira уязвимость выгружается в трекер одной кнопкой.
- Дедупликация находок. Одну и ту же проблему, найденную несколькими сканерами, платформа сводит в одну уязвимость: разработчик получает одну задачу вместо трёх тикетов про один баг.
Подготовка к работе
Вход в систему
В случае недоступности регистрации запросите учётные данные для входа у вашего администратора. Для демонстрационной установки вы можете использовать пользователя по умолчанию со следующими учётными данными:
demo@example.com:demo.
- Перейдите на страницу входа «Вход в Monolit».
- Введите свой email и пароль.
- Нажмите кнопку «Войти».

Описание операций
Работа с приложениями
Просмотр списка приложений
- Перейдите в раздел «Приложения» через главное меню.
- Вверху располагается поле «Поиск по приложениям», справа — кнопка «+ Добавить приложение».
- Таблица отображает следующие колонки:
- Приоритет / Название / ID / Автор — основная информация о приложении
- Языки — языки программирования приложения
- Сканеры — используемые типы сканирования (SAST, SCA, Secret scan, Config scan, Linters)
- Создано — дата создания приложения
- Сканировалось — дата последнего сканирования
- Статус сканирования — текущее состояние (например, «Завершено»)
- Для каждого приложения отображаются бейджи с количеством уязвимостей по уровням критичности.

Добавление нового приложения
Процесс добавления приложения состоит из двух этапов.
Шаг 1: Общая информация
- Перейдите в раздел «Приложения».
- Нажмите «+ Добавить приложение» в правом верхнем углу.
- В открывшемся окне заполните вкладку «Общая информация»:
- Название* — введите название приложения
- Описание — опишите приложение (опционально)
- Нажмите «Далее».

Шаг 2: Объект сканирования
-
Перейдите на вкладку «Объект сканирования».
-
Выберите источник кода, переключаясь между вкладками:
- GitLab — подключение к GitLab-репозиторию
- GitHub — подключение к GitHub-репозиторию
- Gitea — подключение к Gitea-репозиторию
- Bitbucket — подключение к Bitbucket Data Center / Server
- ZIP-архив — загрузка архива с исходным кодом
-
Для GitLab / GitHub / Gitea / Bitbucket заполните поля:
- Название* — имя подключения
- Токен* — персональный токен доступа (для GitLab:
glpat-…, для GitHub:github_pat_…, для Gitea:gitea-…, для Bitbucket: HTTP access token) - URL* — адрес сервера (например,
https://gitlab.com,https://api.github.com,https://gitea.com,https://bitbucket.org). Для GitHub Enterprise Server указывается адрес API видаhttps://<хост>/api/v3 - Нажмите кнопку проверки доступа — при успешном подключении создаётся сохранённое подключение
- Выберите подключение* — выбор из ранее сохранённых подключений
- Выберите репозиторий* — выбор из списка репозиториев
- Выберите ветку* — ветка для сканирования

- Для ZIP-архива нажмите на область загрузки или перетащите ZIP-файл.

- Нажмите «Добавить приложение».
Лимит по лицензии. Лицензия может ограничивать максимальное количество приложений на инсталляции. Если лимит исчерпан, при создании появится сообщение об ошибке — обратитесь к администратору системы для расширения лицензии или удаления неиспользуемых приложений.
Запуск сканирования
- В списке приложений нажмите кнопку «▶ Запустить» напротив нужного приложения.
- Откроется модальное окно «Настройки сканирования».
Полное сканирование
Тумблер «Полное сканирование» в верхней части окна включает или отключает все типы сканирования и все движки одновременно. При снятии галочки с отдельного движка тумблер автоматически переключается в состояние частичного выбора.
Типы сканирования и доступные движки
| Тип | Движки |
|---|---|
| SAST | Semgrep, PT AI, PMD, PHP Mess Detector, MobSF Scan, GoSec, CodeQL, Bearer, Bandit, Solar appScreener, ABAP Code Scanner |
| SCA | Trivy, OWASP Dependency Check, CodeScoring, Solar appScreener |
| Secret | TruffleHog |
| Config | Trivy |
| Linters | Ruff, PMD, PHP Mess Detector, GolangCI Lint |
| DAST | OWASP ZAP CLI, Solar appScreener |
Каждый тип сканирования можно включить или отключить отдельным тумблером. Внутри каждого типа можно снять галочку с конкретного движка — кнопка «Очистить» снимает все галочки в блоке.
Solar appScreener выполняет три типа сканирования одним движком: SAST и SCA по загруженному архиву, DAST по URL приложения. Движок доступен для приложений на любом языке. Пока интеграция выключена, сканирование этим движком не запускается.
Настройка DAST
При включении блока DAST становится обязательным поле «URL приложения»:
- Введите адрес развёрнутого приложения (например,
https://example.com). - Нажмите кнопку проверки доступности — платформа проверит, доступен ли URL.
- Если URL недоступен, кнопка подсветится красным; при успехе — зелёным.
- Без заполнения URL сканирование не запустится.
URL сохраняется в настройках приложения. Сохранить основной URL можно заранее через Настройки приложения → Основные.
Запуск
Нажмите «Запустить» для начала сканирования или «Отмена» для выхода без запуска. Кнопка «Запустить» недоступна, если не выбран ни один движок ни в одном типе сканирования.

Управление приложениями
- Копирование UUID: Откройте меню действий «⋮» и выберите «Скопировать UUID приложения».
- Настройки: Выберите «Настроить приложение» для перехода к параметрам.
- Удаление: Выберите «Удалить приложение» и подтвердите действие. При удалении приложения все связанные с ним отчёты также удаляются из системы и становятся недоступны для скачивания.
Настройки приложения
- Откройте приложение из списка.
- Перейдите в «Настроить приложение» через меню «⋮».
- В разделе настроек доступны пять вкладок:

Вкладка «Основные»
-
Общая информация
- Название — редактирование названия приложения
- Описание — многострочное поле для описания приложения
-
Объект сканирования — источники кода с индикаторами состояния:
- GitLab / GitHub / Gitea / Bitbucket — выгрузка из репозитория (статус: Работает/Не работает)
- Файл или ZIP-архив — загрузка архива (тумблер вкл/выкл)
-
Интеграция AI — выбор AI-интеграции, которая анализирует уязвимости этого приложения и формирует вердикт TP/FP. Доступны только активные интеграции, добавленные в разделе «Инструменты». Пустое значение отключает AI-анализ для приложения.
-
Токен — кнопка «Сгенерировать токен» выпускает API-токен приложения для CI/CD. Токен показывается один раз, скопируйте его сразу.

Вкладка «Исключения»
Вкладка содержит сквозные настройки сканирования, влияющие на результаты по приложению в целом.
-
Настройки SAST
- Минимальная критичность SAST — порог фильтрации SAST-уязвимостей. Уязвимости ниже выбранного уровня в результаты не попадут. Доступные значения: «Информация», «Неопределён», «Низкая», «Средняя», «Высокая», «Критическая».
-
Общие исключения — список glob-паттернов путей, которые исключаются из всех типов сканирования (SAST, SCA, Secret, Config, Linters). Паттерны вводятся в текстовое поле через запятую.
Поддерживается синтаксис glob:
Конструкция Значение Пример *Любая последовательность символов внутри одного сегмента пути *.lock**Рекурсивный обход директорий **/vendor/**?Один любой символ file?.txt[abc]Один символ из набора [Tt]est.pyТипичные примеры:
- исключить зависимости —
**/vendor/**,**/node_modules/**; - исключить lock-файлы —
**/*.lock,**/Pipfile.lock; - исключить тестовые фикстуры —
**/testdata/**,tests/**/fixtures/**.
Ограничения:
- паттерн не может быть пустым;
- запрещены абсолютные пути (паттерн не должен начинаться с
/); - запрещён сегмент
..; - длина паттерна — не более 512 символов;
- в списке не более 256 паттернов.
Новое значение применяется при следующем запуске сканирования; уже идущие запуски не затрагиваются.
- исключить зависимости —

Вкладка «DAST»
Позволяет задать URL целевого приложения для динамического анализа. Указанный здесь адрес будет автоматически подставляться при запуске DAST-сканирования.
- URL приложения — адрес развёрнутого приложения (например,
https://example.com)

Вкладка «Доступы»
Управление составом участников приложения и их ролями. Подробнее — в разделе «Доступ к приложению».

Вкладка «Баг-трекинг»
Вкладка управляет привязкой приложения к Jira-интеграции. После сохранения настроек тикеты в Jira создаются вручную — по одному из карточки уязвимости. Изменения полей уязвимостей и комментарии синхронизируются с трекером автоматически для уже связанных тикетов.
- Трекер — выбор Jira-интеграции из числа подключённых в разделе «Инструменты». Если интеграций нет, отображается подсказка «Интеграций не найдено» и ссылка «в Инструменты».
- Проект — выбор проекта Jira из выпадающего списка. Список проектов подгружается из Jira по выбранной интеграции.
- Тип задачи — тип создаваемых тикетов (например,
Bug); список типов загружается из выбранного проекта. - Тумблер «Вкл / Выкл» — включает или выключает синхронизацию. Включение возможно только после выбора интеграции и проекта.
![]()
Работа с аналитикой
Просмотр общей аналитики по уязвимостям
- Перейдите в раздел «Аналитика».
- Просмотрите метрики в карточках:
- Приложения — количество приложений
- SAST уязвимости — уязвимости, найденные статическим анализом
- SCA уязвимости — уязвимости, найденные в зависимостях
- Триаж уязвимостей — процент обработанных уязвимостей
- Изучите графики и полосы прогресса:
- Триаж уязвимостей (%) — горизонтальная полоса: Новые, Подтверждено, В работе, Требуют подтверждения
- Исправленные уязвимости (%) — горизонтальная полоса: Исправленные, Ложное срабатывание, Риск принят, Дубликаты
- Критичность — диаграмма-паутина по уровням критичности
- Уязвимости — список с процентами по уровням критичности

Просмотр аналитики конкретного приложения
- Откройте нужное приложение из раздела «Приложения».
- Перейдите во вкладку «Аналитика».
- Вверху отображаются метаданные приложения:
- Название, ID, автор
- Бейджи с типами источников (Zip, GitLab)
- Цветные метки уязвимостей по критичности
- Язык, типы сканеров, время создания/сканирования, статус
- Далее аналогично общему дашборду: карточки метрик, полосы прогресса, диаграммы.

Управление уязвимостями
Просмотр уязвимостей
- Перейдите в раздел «Рабочая зона» через главное меню или откройте конкретное приложение.
- В верхней части находится поле «Поиск по уязвимостям…».
- Под ним строка с чекбоксом: «Выбрано уязвимостей: 0 из X».
- Таблица показывает для каждой уязвимости:
- название, ID, бейдж «Новое» (если ещё не просмотрена)
- метаданные строки: тип сканирования, движок, дата, CWE, ФСТЭК, вердикт AI (TP/FP)
- колонки Критичность и Статус

Поиск уязвимостей
- В поле «Поиск по уязвимостям…» введите ключевое слово (например, «Improper»).
- Список уязвимостей фильтруется по мере ввода.

Настройка фильтра
В списке уязвимостей доступна панель «Настройка фильтра»: фильтрация по типу сканирования (Все, SAST, SCA, DAST, Linters, Secret, Config), по критичности, дате обнаружения, вердикту AI (TP / FP) и статусу. После выбора критериев нажмите «Применить»; «Сбросить» очищает фильтры.

Просмотр уязвимостей конкретного приложения
- Откройте интересующее приложение.
- Перейдите во вкладку «Рабочая зона».
- Список покажет уязвимости, относящиеся только к этому приложению.

Добавление уязвимостей вне сканирования
Платформа позволяет добавить уязвимости без запуска встроенных сканеров, например, по итогам пентеста, security review или из отчёта внешнего инструмента с экспортом в SARIF 2.1.0.
Добавленные вручную или импортированные находки попадают в ту же «Рабочую зону» и обрабатываются так же, как результаты штатных сканирований: статусы, комментарии, отчёты. Вердикт AI по ним не формируется — модели нужен фрагмент исходного кода, которого у такой находки нет.
Кто может добавлять
Кнопка «+ Добавить уязвимость» доступна в «Рабочей зоне» конкретного приложения (откройте приложение → вкладка «Рабочая зона»). На общей вкладке «Уязвимости» без выбранного приложения кнопка недоступна.
Кнопку видят: Инженер ИБ, Гл. Инженер ИБ, Администратор и Суперадминистратор. Роли Разработчик и Аудитор кнопку не видят.
Добавление вручную
- В «Рабочей зоне» приложения нажмите «+ Добавить уязвимость».
- На вкладке «Уязвимость» заполните поля:
- Название* — краткое имя находки
- Описание* — подробное описание
- Критичность* — выберите из списка
- CWE — необязательно, формат
CWE-000 - Расположение* — путь к файлу или иной локатор
- Нажмите «Сохранить».

Импорт из SARIF-файла
- В том же модальном окне перейдите на вкладку «из SARIF файла».
- Перетащите файл или нажмите «Нажмите, чтобы загрузить».
- Формат: SARIF 2.1.0 (расширение
.sarifили.json) - Максимальный размер: 50 МБ
- Формат: SARIF 2.1.0 (расширение
- Нажмите «Импортировать».
Платформа обрабатывает все результаты в файле и пропускает подавленные и неактуальные находки (open, pass). Уровень критичности определяется по полю level в SARIF: error → Высокая, warning → Средняя, note → Низкая, none → Информация.
Повторный импорт того же файла не создаёт дубликаты: совпадение определяется по правилу, пути и строке в рамках приложения.

Информация об уязвимости
- В списке уязвимостей нажмите на интересующую запись.
- Откроется карточка с вкладками «Описание», «Комментарии» и «Активность».
- На вкладке «Описание» доступны:
- Критичность — уровень серьёзности (Информация, Неопределён, Низкая, Средняя, Высокая, Критическая)
- Статус — единое поле жизненного цикла уязвимости (см. раздел «Жизненный цикл уязвимости» ниже)
- CWE — идентификатор класса уязвимости (кликабельная ссылка)
- Обнаружено — сканер, который нашёл уязвимость (например, bandit)
- Время — дата и время обнаружения
- Вердикт AI — заключение подключённой AI-интеграции: TP (True Positive — реальная уязвимость) или FP (False Positive — ложное срабатывание). Заключение можно развернуть, чтобы увидеть текстовый анализ и рекомендации от модели. Пока идёт анализ, отображается статус «анализ…»; если для приложения не выбрана активная AI-интеграция — «AI не подключён».
- Имя правила — идентификатор правила сканера (с кнопкой копирования)
- Номер тикета — отображается, если для приложения включён баг-трекинг (см. вкладку «Баг-трекинг» в настройках приложения). Если тикет уже создан, поле содержит ссылку на него в Jira; если нет — отображается «Тикет не создан» с кнопкой создания. Когда баг-трекинг не подключён, поле показывает соответствующую подсказку.
- Описание — детальное объяснение уязвимости со ссылками на документацию
- Расположение — путь к файлу и номер строки с фрагментом кода
- При наличии в карточке также отображаются ФСТЭК (нормативная привязка) и Ссылки (References) на документацию (например, OWASP, Bearer).

Если для приложения включён баг-трекинг, в карточке доступны действия с тикетом: «Создать тикет в Jira» (если тикет ещё не создан) и «Отвязать» — удаляет тикет в Jira; уязвимость на платформе остаётся. После создания поле «Номер тикета» становится ссылкой на тикет в Jira.

- Вкладка «Комментарии» — свободное обсуждение уязвимости между участниками.

- Вкладка «Активность» — машинная лента событий: обнаружение уязвимости сканером, изменения статуса и критичности с указанием автора и времени. Для переходов, требующих обоснования, комментарий, введённый при смене статуса, отображается во всплывающей подсказке при наведении курсора на бейдж нового статуса. Если для приложения включён баг-трекинг, в ленту также попадают события Jira: создание тикета, ошибка работы с трекером (с указанием причины — сетевая, аутентификация, права, валидация, превышение лимита запросов), отвязка уязвимости от тикета, отвязка приложения от трекера, смена проекта или интеграции.
Карточка целиком: слева список уязвимостей приложения, справа открытая находка с вкладками, статусом и полями.

Лента на вкладке «Активность» показывает, кто и когда менял статус и критичность; событие обнаружения сканером всегда стоит в самом низу.

Жизненный цикл уязвимости
Каждая уязвимость проходит жизненный цикл, отражённый единым полем «Статус». Сразу после обнаружения сканером уязвимость получает статус «На проверке» и далее меняется по правилам ниже.
| Статус | Что означает |
|---|---|
| На проверке | Стартовый статус. Сканер нашёл потенциальную уязвимость, специалист ИБ ещё не размечал результат. |
| Подтверждена | Инженер ИБ или Гл. Инженер ИБ подтвердил находку как реальную. Уязвимость готова к передаче на исправление. |
| В работе | Уязвимость взята в исправление: разработчик начал устранение. |
| Требует проверки | Разработчик заявил об устранении и ждёт проверки со стороны ИБ. |
| Отклонили правки | ИБ не принял исправление, уязвимость возвращается в работу. |
| Исправлена | Уязвимость устранена в коде, проверка завершена (конечный статус). |
| Ложное срабатывание | Срабатывание сканера признано ложным (конечный статус). |
| Риск принят | Принято решение не исправлять, риск осознан и формально принят (конечный статус). |
| Дубликат | Уязвимость уже отслеживается в другой записи (конечный статус). |
Платформа ограничивает переходы между статусами: из текущего доступны только осмысленные следующие. Часть переходов требует обоснования — комментарий вводится в модальном окне и сохраняется во вкладке «Активность».
Основной путь работы с уязвимостью:
На схеме показаны основные пути. Из конечных статусов («Исправлена», «Ложное срабатывание», «Риск принят», «Дубликат») возможны корректирующие переходы при пересмотре решения.
Работа с конкретной уязвимостью
Критичность меняется выпадающим списком в шапке вкладки «Описание»: Информация, Неопределён, Низкая, Средняя, Высокая, Критическая. Текущее значение отмечено галочкой.

Статус меняется под шкалой жизненного цикла, набор кнопок зависит от текущего состояния.
У новой находки доступны две кнопки. «Подтвердить» переводит её на следующий шаг вперёд, обоснование при этом не запрашивается. «Закрыть уязвимость» открывает окно выбора причины: «Исправлено», «Ложное срабатывание», «Риск принят», «Дубликат». Поле обоснования обязательно — без него кнопка закрытия остаётся неактивной. Подпись поля зависит от причины: для «Риск принят» это «Обоснование», для «Исправлено» — «Комментарий».

Дальше по жизненному циклу вместо пары кнопок появляется «Принять решение». Меню перечисляет все переходы, разрешённые из текущего статуса: рабочие состояния сверху, конечные («Закрыта») — отдельной группой ниже.

Все изменения статуса и критичности фиксируются во вкладке «Активность» карточки с указанием автора и времени.
Вкладка «Комментарии» используется для свободного обсуждения, не связанного с переходами статуса.
Управление соответствием ГОСТ Р 56939-2024
Модуль «Соответствие» позволяет отслеживать выполнение требований ГОСТ Р 56939-2024 «Защита информации. Разработка безопасного программного обеспечения». Реестр содержит 25 пронумерованных требований (5.1–5.25), охватывающих все этапы жизненного цикла безопасной разработки: от планирования и проектирования до вывода ПО из эксплуатации. Раздел доступен через пункт «Соответствие» в боковом меню.
Дашборд соответствия
Главная страница модуля показывает текущий уровень соответствия организации требованиям стандарта.
Шапка со счётчиком: отображает процент выполнения как отношение Выполнено / применимые требования (требования со статусом «Неприменимо» исключаются из знаменателя).
Статусы требований:
| Статус | Описание |
|---|---|
| Выполнено | Требование полностью выполнено и подтверждено свидетельствами |
| Частично | Требование выполнено не в полном объёме |
| Не выполнено | Требование не выполнено (статус по умолчанию) |
| Неприменимо | Требование не актуально для данной организации или продукта |
Фильтр по статусу: чипы-кнопки «Все / Выполнено / Частично / Не выполнено / Неприменимо» фильтруют карточки требований на странице.
Группировка по этапам разработки: требования сгруппированы в 6 разделов с подсчётом выполнено / всего для каждой группы:
- Планирование и управление (5.1–5.5)
- Проектирование (5.6–5.7)
- Разработка (5.8–5.14)
- Анализ безопасности (5.15–5.17)
- Тестирование (5.18–5.19)
- Выпуск и эксплуатация (5.20–5.25)
Каждая карточка требования показывает код (например, 5.10), краткое название, текущий статус и количество прикреплённых свидетельств. Клик по карточке открывает детальную страницу требования.

Карточка требования
Детальная страница требования содержит:
- Код и название — код требования (например,
5.10) и его название - Описание — полный текст требования из стандарта
- Текущий статус — цветной бейдж с актуальным значением
- Кнопка «Изменить статус» — ручной override текущего статуса
- Секция «Свидетельства» — список прикреплённых свидетельств с вкладками «Все / Документы / Ссылки / Комментарии»; кнопки добавления новых свидетельств
- Журнал изменений статуса — хронологический список переходов «прежний статус → новый статус» с датой и причиной

Изменение статуса требования
Кнопка «Изменить статус» на карточке требования открывает модальное окно с двумя полями:
- Новый статус — выпадающий список с четырьмя вариантами: «Выполнено», «Частично», «Не выполнено», «Неприменимо».
- Причина изменения — обязательное текстовое поле (до 2000 символов). Пустое поле блокирует кнопку «Сохранить».
После сохранения запись появляется в журнале изменений внизу карточки в формате «прежний статус → новый статус», дата, причина.
Примеры формулировок для поля «Причина изменения»:
- Переход
Не выполнено → Частично: «Утверждён регламент процесса РБПО, назначен ответственный. Охвачены 3 из 5 продуктовых команд, внедрение продолжается.» - Переход
Частично → Выполнено: «Завершено внедрение во всех командах. Регламент опубликован в Confluence, пересматривается раз в полгода.» - Переход
→ Неприменимо: «Продукт не имеет публичных API и не взаимодействует с внешними системами — DAST-тестирование не применимо.»
Свидетельства
К каждому требованию можно прикрепить любое количество свидетельств трёх типов.
Документ — загрузка файла через drag&drop или выбор из проводника. Поддерживается один файл за раз; название совпадает с именем файла. После успешной загрузки свидетельство появляется в списке с кнопками «Скачать» и «Удалить». Файлы хранятся во внутреннем объектном хранилище.
Ссылка — форма с двумя полями:
- «Название» (обязательно)
- «URL» (обязательно; должен содержать протокол
http://илиhttps://)
Комментарий — форма с двумя полями:
- «Название» (обязательно, до 500 символов)
- «Содержимое» (обязательно, до 10 000 символов)
Удаление любого свидетельства требует подтверждения в модальном окне.
Работа с отчётами
Платформа формирует отчёты по уязвимостям выбранного приложения с настраиваемыми фильтрами. Доступны два формата: PDF для чтения и SARIF 2.1.0 для передачи находок во внешние инструменты.
Создание отчёта
- Перейдите в раздел «Отчёты» через главное меню.
- Нажмите кнопку «Создать отчёт».
- В открывшемся модальном окне настройте параметры:
- Выберите приложение — приложение, по уязвимостям которого формируется отчёт.
- Фильтры уязвимостей — отметьте, какие уязвимости включать в отчёт:
- Статус: На проверке, Подтверждена, В работе, Требует проверки, Отклонили правки, Исправлена, Ложное срабатывание, Риск принят, Дубликат.
- Критичность: Критическая, Высокая, Средняя, Низкая, Неопределён, Информация.
- Формат — PDF или SARIF. Фильтры действуют одинаково для обоих форматов.
- Название отчёта* — обязательное поле, не более 255 символов (например, дата и краткое имя).
- Выбор языка — язык отчёта (RU или EN).
- Нажмите «Создать отчёт» или «Отмена» для выхода без сохранения.
В фильтрах критичности и статуса переключить отметку можно щелчком по самой подписи или цветному бейджу, не только по чекбоксу.
После создания задача попадает в обработку; готовый файл появится в списке отчётов. Пока отчёт формируется, его статус отображается в таблице. Отчёт в формате SARIF скачивается файлом с расширением .sarif, его читают внешние анализаторы и конвейеры DevSecOps.
По одному приложению одновременно формируется только один отчёт. Пока предыдущий не завершён, платформа откажет в создании нового с сообщением «Отчёт уже формируется» — дождитесь окончания или отмените текущий.

Список отчётов, поиск и фильтрация
- В разделе «Отчёты» отображается таблица созданных отчётов.
- Колонки таблицы:
- Название отчёта — имя файла и размер (например, в КБ или МБ).
- Создан — дата и время создания.
- Приложение — приложение, по которому сформирован отчёт.
- Кем — автор отчёта (имя и email).
- Для поиска и фильтрации используйте:
- поле «Поиск по отчётам»;
- выпадающий список «Выберите приложение» для фильтра по приложению;
- кнопку «Сбросить» для сброса фильтров.

Скачивание и удаление отчёта
- Скачивание: нажмите иконку загрузки в строке нужного отчёта. Файл PDF сохранится на ваше устройство. Пока идёт загрузка, кнопка сменяется индикатором и повторные нажатия не проходят.
- Удаление: нажмите иконку корзины в строке отчёта и подтвердите действие.
Сообщения об ошибках при работе с отчётами
| Сообщение | Что произошло | Что делать |
|---|---|---|
| Отчёт уже формируется | По этому приложению уже идёт генерация | Дождаться окончания или отменить текущий отчёт |
| Приложение не найдено | Выбранное приложение удалено или недоступно | Обновить список приложений и повторить |
| PDF ещё не готов | Файл отчёта ещё формируется | Дождаться завершения и скачать снова |
| Отчёт недоступен | Отчёт удалён или недоступен по правам | Обновить список отчётов |
| Недостаточно прав доступа | Нет права на скачивание этого отчёта | Запросить доступ к приложению у администратора |
| Нельзя удалить отчёт | Отчёт ещё формируется | Дождаться завершения или отменить его |
| Нельзя отменить отчёт | Отчёт уже завершён или отменён | Обновить список |
| Хранилище недоступно | Платформа не получила файл из объектного хранилища | Повторить позже; если повторяется — обратиться к администратору |
Данные, которые попадают в отчёт (сводка по типам анализа, триаж, исправленные уязвимости, оценка по критичности), соответствуют аналитике, доступной в разделе «Аналитика» по приложению. PDF-отчёт содержит разделы по всем типам анализа: SCA-уязвимости, динамический анализ (DAST), найденные секреты, проверка конфигураций и проверка выполнения правил кодирования. Фильтры при создании отчёта задают, какие уязвимости включаются в отчёт. В каждом разделе отчёта уязвимости отсортированы по убыванию критичности: Критическая, Высокая, Средняя, Низкая, Неопределён, Информация. При равной критичности выше стоят найденные раньше.

Управление пользователями
Раздел доступен только пользователям с типом Администратор или Суперадминистратор.
Раздел «Пользователи» находится в главном меню. В нём вы просматриваете список пользователей платформы, создаёте новых, редактируете их данные, меняете тип (роль) и блокируете доступ.
Просмотр списка пользователей
- Перейдите в раздел «Пользователи». Вкладки «Активные» и «Неактивные» разделяют учётные записи по состоянию доступа.
- Таблица отображает:
- Имя с адресом электронной почты под ним
- Тип — роль в системе (Суперадминистратор, Администратор, Пользователь)
- Приложения — приложения, участником которых является пользователь
- Поиск в верхнем поле идёт по имени и адресу почты по всей базе пользователей, строки подгружаются по мере прокрутки. Щелчок по заголовку «Имя» или «Тип» сортирует список.

Создание пользователя
- Нажмите кнопку «Создать пользователя».
- Заполните форму:
- Имя* и Фамилия* — обязательные поля
- Email* — адрес электронной почты
- Тип* — тип учётной записи (Пользователь, Администратор, Суперадминистратор)
- Пароль* и Повторите* — минимум 4, максимум 40 символов
- Нажмите «Сохранить».

Редактирование и управление пользователями
Для редактирования пользователя нажмите иконку карандаша в строке. В форме доступны поля: Имя, Фамилия, тип учётной записи и переключатель «Вкл/Выкл учётную запись» для блокировки без удаления.
Массовые операции (изменение типа, блокировка/разблокировка) доступны при выборе нескольких пользователей через чекбоксы.
Три ограничения на изменение прав:
- собственную учётную запись выключить нельзя: переключатель в форме редактирования и чекбокс в строке недоступны;
- платформа не даёт сменить или снять тип у единственного активного суперадминистратора: иначе управлять правами станет некому;
- если суперадминистратор снимает тип с собственной учётной записи, платформа возвращает его на домашнюю страницу уже с новыми правами.

Доступ к приложению
Вкладка «Доступы» в настройках приложения управляет тем, кто и с какими правами работает с конкретным приложением.
Матрица прав доступа
Права складываются из двух независимых измерений. Тип учётной записи определяет доступ к разделам платформы и задаётся при создании пользователя. Роль в приложении определяет набор действий внутри конкретного приложения и назначается отдельно для каждого из них.
Доступ по типу учётной записи
| Возможность | Суперадминистратор | Администратор | Пользователь |
|---|---|---|---|
| Видимость приложений | все | только свои | только те, где выдана роль |
| Создание приложений | ✓ | ✓ | — |
| Управление участниками приложения | ✓ | ✓ | — |
| Раздел «Инструменты»: просмотр подключений | ✓ | ✓ | — |
| Раздел «Инструменты»: настройка VCS, Jira и AI | ✓ | ✓ | — |
| Выбор источника кода для сканирования | ✓ | ✓ | — |
| Создание API-токенов | ✓ | ✓ | — |
| Раздел «Пользователи» | ✓ | — | — |
| Загрузка лицензии | ✓ | — | — |
Роль в приложении на доступ к разделу «Инструменты» не влияет: он открывается по типу учётной записи. Администратор внутри своих приложений обладает всеми правами независимо от того, какая роль ему в них назначена.
Доступ по роли в приложении
Роли назначаются на вкладке «Доступы» и действуют в пределах одного приложения.
| Действие | Инженер ИБ | Гл. инженер ИБ | Разработчик | Аудитор |
|---|---|---|---|---|
| Просмотр приложения | ✓ | ✓ | ✓ | ✓ |
| Просмотр уязвимостей | ✓ | ✓ | ✓ | ✓ |
| Комментарии к уязвимостям | ✓ | ✓ | ✓ | ✓ |
| Запуск сканирования | ✓ | ✓ | — | — |
| Изменение уязвимостей | ✓ | ✓ | — | — |
| Просмотр и выгрузка отчётов | ✓ | ✓ | — | ✓ |
| Создание отчёта | ✓ | ✓ | — | ✓ |
| Удаление отчёта | ✓ | ✓ | — | ✓ |
| Изменение настроек приложения | — | — | — | — |
| Удаление приложения | — | — | — | — |
Настройки и удаление приложения ролью не выдаются никому: эти действия доступны владельцу приложения и суперадминистратору.
Переходы статусов уязвимости
| Роль | Доступные переходы |
|---|---|
| Инженер ИБ | Все переходы, кроме «Подтверждена → В работе» |
| Гл. инженер ИБ | Все переходы инженера ИБ и, дополнительно, любой переход в обход матрицы |
| Разработчик | «Подтверждена → В работе», «В работе → Требует проверки», «Отклонили правки → Требует проверки» |
| Аудитор | Не может менять статусы |
Добавление пользователя в приложение
- Откройте настройки приложения → вкладку «Доступы».
- Нажмите «Добавить пользователя».
- Начните вводить имя или адрес почты: платформа ищет по всем зарегистрированным пользователям и подгружает найденных по мере прокрутки. Бейджи «Администратор» и «Пользователь» оставляют в списке только выбранный тип учётных записей.
- Выберите роль: Администратор, Инженер ИБ, Гл. Инженер ИБ, Разработчик или Аудитор.
- Нажмите «Сохранить».

Изменение роли и удаление
Изменить роль: нажмите на название текущей роли в строке пользователя — откроется выпадающий список с доступными ролями. Массовое изменение роли доступно через чекбоксы и кнопку «Изменить роль» над таблицей.

Удалить из приложения: нажмите иконку корзины в строке и подтвердите действие. Пользователь потеряет доступ к приложению, его учётная запись в системе не затрагивается.

Работа с инструментами интеграций
Раздел «Инструменты» предназначен для управления подключениями к системам контроля версий (VCS), внешним сканерам и AI-интеграциям. Раздел доступен пользователям с правами на настройку интеграций (Администратор, Суперадминистратор).
Подключение VCS-хостинга
Платформа поддерживает подключение следующих VCS-провайдеров: GitLab, GitHub, Gitea, Bitbucket (Data Center / Server).
- Перейдите в раздел «Инструменты».
- Выберите вкладку нужного провайдера (GitLab, GitHub, Gitea или Bitbucket).
- Нажмите «+ Добавить подключение».
- Заполните форму:
- Название* — произвольное имя подключения
- URL* — адрес хостинга (например,
https://gitlab.example.com). Для GitHub указывается адрес API:https://api.github.comдля github.com,https://<хост>/api/v3для GitHub Enterprise Server - Токен* — персональный токен доступа с правом на чтение репозиториев. Платформа только читает список репозиториев, ветки и архив с исходным кодом. Что выдать, зависит от провайдера:
- GitLab — Personal Access Token с областью
read_api; - GitHub — fine-grained token с разрешением Contents: Read-only на нужные репозитории либо classic token с областью
repo, для публичных репозиториев достаточноpublic_repo. Для репозиториев организации у fine-grained token в поле Resource owner выбирается организация, а не личная учётная запись; - Gitea — Access Token с областью
read:repository; - Bitbucket Data Center / Server — HTTP access token с правом Repository read.
- GitLab — Personal Access Token с областью
- Нажмите «Проверить подключение» — платформа проверит доступность хостинга по указанным данным.
- Нажмите «Сохранить».
После сохранения подключение отобразится в списке и станет доступным для выбора при создании или настройке приложения (вкладка «Объект сканирования»).

Подключение внешнего сканера
На вкладке «Внешние сканеры» собраны карточки коммерческих сканеров: CodeScoring, PT Application Inspector и Solar appScreener. Адрес и токен сканера задаёт администратор при установке платформы.
Переключатель на карточке включает и выключает интеграцию. Пока интеграция выключена, её движок в сканировании не участвует, даже если отмечен в настройках сканирования.
Подключение AI-интеграции
AI-интеграция — это внешний или собственный сервис, который анализирует найденные уязвимости и формирует вердикт TP/FP вместе с текстовым анализом и рекомендациями. Одну интеграцию можно привязать сразу к нескольким приложениям; у каждого приложения может быть одна активная интеграция.
- Перейдите в раздел «Инструменты» и откройте вкладку «Интеграция AI».
- Нажмите «Подключить AI».
- Заполните форму:
- Название — произвольное имя подключения;
- AI URL — адрес сервиса (например,
https://ml.example.com); либо укажите IP и Порт по отдельности; - Приложения — список приложений, к которым сразу будет привязана интеграция (можно оставить пустым и привязать позже в настройках приложения).
- Нажмите кнопку проверки доступности — платформа обратится к сервису и покажет «Соединение установлено» или «Соединение не установлено».
- Нажмите «Сохранить».

После сохранения интеграция появится в таблице раздела с колонками Имя, Статус и Приложения. Доступны действия: редактирование параметров, включение/выключение, удаление отдельной интеграции и массовое удаление выбранных.

Если AI-сервис недоступен в момент анализа, платформа продолжает работу: вердикт не формируется, остальные результаты сканирования сохраняются как обычно.
Подключение Jira-интеграции
Интеграция с Jira позволяет переносить уязвимости приложения в трекер задач: тикеты создаются вручную из карточки уязвимости, изменения полей и комментарии синхронизируются с трекером автоматически, а в карточке уязвимости появляется ссылка на тикет. Одну интеграцию можно привязать к нескольким приложениям; настройка привязки выполняется в настройках приложения (вкладка «Баг-трекинг»).
- Перейдите в раздел «Инструменты» и откройте вкладку «Jira».
- Нажмите «Подключить Jira».
- Заполните форму:
- Название* — произвольное имя интеграции (например,
Monolit-Jira); - Приватный токен* — Personal Access Token (PAT) пользователя Jira. Права определяются учётной записью. В проекте ей нужны просмотр проекта, создание и редактирование задач, добавление комментариев и переходы по статусам. Платформа проверяет эти права при подключении;
- Jira URL* — адрес сервера Jira (например,
https://jira.yourcompany.ru).
- Название* — произвольное имя интеграции (например,
- Нажмите кнопку проверки подключения. Платформа проверит сетевую доступность Jira и корректность токена и покажет результат: «Соединение установлено», «Jira недоступна по указанному адресу» или «Токен недействителен или истёк».
- Нажмите «Сохранить». Интеграция сохраняется только при успешной проверке подключения.

После сохранения интеграция появится в таблице раздела с колонками Название интеграции, Статус, Приложения (количество привязанных приложений) и Последняя проверка. Статус подключения отображается бейджем:
- Доступно — подключение и права в порядке;
- Недоступно — Jira не отвечает по указанному адресу;
- Нет прав — подключение выполнено, но у токена недостаточно прав для работы с Jira.
Для каждой интеграции доступны действия: повторная проверка доступа, редактирование параметров, отвязка всех приложений, удаление отдельной интеграции и массовое удаление выбранных.

Аварийные ситуации
- Проблемы с доступом к системе: проверьте логин и пароль и сетевой доступ к серверу платформы. Если войти не удаётся, обратитесь к администратору системы: учётная запись может быть заблокирована.
- Сбои в работе приложения: обновите страницу. Если данные по-прежнему отображаются неверно, обратитесь к администратору системы.
- Ошибка сканирования: откройте журнал ошибок сканирования и проверьте настройки приложения и доступ к репозиторию — чаще всего истёк токен доступа к VCS.
Пока продукт не набрал зрелости по безопасности, не блокируйте конвейер по результатам автоматического анализа, в том числе по результатам Monolit: доля ложных срабатываний на первых сканированиях высока, и сборки будут падать на шуме.
Часто задаваемые вопросы (FAQ)
Техническая поддержка
Если у вас возникли вопросы или проблемы при работе с Monolit, обратитесь к администратору системы или свяжитесь с нашей службой поддержки по адресу support@cybear.ru.
