Перейти к основному содержимому
Monolit

Monolit / Архив 1.2.2

Описание функциональных возможностей

Функции платформы, виды анализа от SAST до DAST, интеграции, безопасность и варианты развёртывания.

Это документация Monolit 1.2.2. Актуальная версия — 1.3.4.

Открыть актуальную

Архивная версия · Monolit v1.2.2
Это снимок документации на момент релиза 1.2.2. Описанное здесь поведение может отличаться от текущей версии продукта.
Актуальная документация

1. Введение

1.1 Назначение платформы​

SDL Platform (Secure Development Lifecycle Platform) — отечественная ASOC-платформа, предназначенная для организации и автоматизации процесса безопасной разработки программного обеспечения. Платформа обеспечивает выполнение технических требований ГОСТ Р 56939-2024 к анализу качества кода, позволяя проводить статический анализ исходного кода (SAST), анализ зависимостей (SCA), поиск секретов, анализ конфигураций и проверку соблюдения правил кодирования.

1.2 Область применения​

Платформа предназначена для корпоративной разработки и сопровождения программных продуктов в организациях, внедряющих практики DevSecOps. Использование платформы позволяет выполнить требования ГОСТ Р 56939-2024 и Приказа ФСТЭК РФ № 117.

1.3 Терминология и сокращения​

ТерминОпределение
ASOCApplication Security Orchestration and Correlation — оркестрация и корреляция безопасности приложений
SASTStatic Application Security Testing — статический анализ безопасности приложений
SCASoftware Composition Analysis — анализ состава программного обеспечения (зависимостей)
CWECommon Weakness Enumeration — общий перечень уязвимостей
OWASPOpen Web Application Security Project — открытый проект по безопасности веб-приложений
CI/CDContinuous Integration / Continuous Delivery — непрерывная интеграция и доставка
VCSVersion Control System — система контроля версий

2. Функциональные возможности

2.1 Управление приложениями​

Приложение является основной единицей организации работы в платформе и соответствует программному продукту или проекту организации. Платформа позволяет создавать, редактировать и удалять приложения, указывая для каждого название и описание.

Для каждого приложения доступна гибкая настройка параметров сканирования. Пользователь может задать минимальный уровень критичности для регистрации SAST-сработок, а также указать общий список glob-паттернов путей (exclude_patterns), которые исключаются из всех типов сканирования (SAST, SCA, Secret, Config, Linters). Поле использует синтаксис pathlib.Path.glob() (*, **, ?, [abc]); валидация выполняется при сохранении настроек. Новое значение применяется при следующем запуске сканирования.

Приложение может быть привязано к репозиторию GitLab, GitHub или Gitea для автоматического получения исходного кода. Для работы в изолированных средах без доступа к внешним сетям предусмотрен offline-режим.

2.2 Управление ревизиями исходного кода​

Ревизия представляет собой версию исходного кода приложения, загруженную для анализа. Платформа поддерживает несколько способов загрузки кода: загрузка ZIP-архива через веб-интерфейс, загрузка через программный интерфейс (API), а также автоматическое получение кода из GitLab, GitHub или Gitea по указанной ветке репозитория.

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

2.3 Процесс сканирования​

Сканирование может быть запущено вручную через веб-интерфейс или API, а также автоматически при загрузке новой ревизии кода. При интеграции с CI/CD-конвейерами сканирование инициируется через API в рамках процесса сборки.

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

Пользователь может отслеживать прогресс сканирования в реальном времени, видеть статус каждого сканера и просматривать журнал ошибок при их возникновении.

Платформа поддерживает два режима работы: online-режим с доступом к внешним базам уязвимостей (NVD) для получения актуальной информации о CVE, и offline-режим для изолированных сред, где анализ выполняется с использованием локальных баз правил.

2.4 Управление уязвимостями​

Каждая обнаруженная уязвимость представлена в виде карточки, содержащей полную информацию о проблеме: описание, классификацию по CWE и OWASP, источник обнаружения (название сканера), сработавшее правило, путь к файлу с указанием номеров строк и столбцов, фрагмент исходного кода, а также уровень критичности и оценку достоверности от ML-модели.

Платформа использует единый статус жизненного цикла уязвимости с ограниченной матрицей переходов (FSM): от первичного «На проверке» через промежуточные («Подтверждена», «В работе», «Требует проверки», «Отклонили правки») к конечным состояниям («Исправлена», «Ложное срабатывание», «Риск принят», «Дубликат»). Допустимые переходы определены ролевой моделью; часть переходов требует обязательного обоснования.

Все события по уязвимости — обнаружение сканером, изменения статуса и критичности — фиксируются в журнале активности с привязкой к пользователю и времени. Журнал отделён от пользовательских комментариев: комментарии служат для свободного обсуждения, активность — машинная лента событий, доступная в отдельной вкладке карточки уязвимости.

Уровни критичности уязвимостей варьируются от критического (Critical) до информационного (Info), включая высокий (High), средний (Medium) и низкий (Low) уровни.

Пользователь может изменять статус и критичность уязвимостей, добавлять комментарии, а также выполнять массовые операции (массовый перевод статуса с проверкой допустимости перехода и массовое изменение критичности). Доступны гибкие возможности фильтрации и поиска по различным параметрам.

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

2.5 Аналитика и отчётность​

Платформа предоставляет дашборд с агрегированной статистикой: распределение уязвимостей по уровням критичности и статусам, недельная динамика изменений и статистика триажа (соотношение истинных и ложных срабатываний). Аналитика доступна как по всем приложениям организации, так и по каждому приложению в отдельности (графики распределения уязвимостей, триаж, исправленные уязвимости, оценка по критичности).

Платформа позволяет формировать отчёты в формате PDF по выбранному приложению. При создании отчёта задаются фильтры уязвимостей: по статусу анализа, статусу устранения и уровню критичности. Сформированные отчёты сохраняются в списке; доступны скачивание и удаление.

2.6 Интеллектуальная оценка достоверности​

Платформа включает ML-компонент, который автоматически оценивает достоверность каждой обнаруженной уязвимости, помогая отличить реальные проблемы безопасности (True Positive) от ложных срабатываний (False Positive).

Для каждой уязвимости рассчитывается показатель ML Confidence в диапазоне от 0% до 100%. Значения от 0% до 30% указывают на высокую вероятность ложного срабатывания, от 30% до 70% — на необходимость проверки специалистом, а значения от 70% до 100% свидетельствуют о высокой вероятности реальной уязвимости.

Модель анализирует фрагмент исходного кода, название сработавшего правила, тип уязвимости по классификации CWE и метрики от сканера. Она обучена на базе реальных CVE с исправлениями и продолжает улучшаться на основе обратной связи от пользователей: когда специалист размечает уязвимость как истинную или ложную, эта информация используется для дообучения модели.

2.7 Управление соответствием ГОСТ Р 56939-2024​

Платформа включает встроенный модуль управления соответствием, позволяющий отслеживать выполнение требований ГОСТ Р 56939-2024 «Защита информации. Разработка безопасного программного обеспечения».

Реестр требований. В модуль предзагружены 25 требований (коды 5.1–5.25), сгруппированных по шести этапам жизненного цикла безопасной разработки: планирование и управление, проектирование, разработка, анализ безопасности, тестирование, выпуск и эксплуатация.

Статусы соответствия. Каждое требование может иметь один из четырёх статусов: «Выполнено», «Частично», «Не выполнено», «Неприменимо». Начальный статус по умолчанию — «Не выполнено».

Управление статусом. Статус устанавливается вручную через механизм ручного override: пользователь выбирает новый статус и обязательно указывает причину изменения. Все ручные изменения статуса фиксируются в журнале override'ов с привязкой к пользователю, дате и причине.

Свидетельства соответствия. К каждому требованию можно прикрепить произвольное количество свидетельств трёх типов: загруженный документ (файл в объектное хранилище), гиперссылка, текстовый комментарий.

Дашборд. Сводная страница отображает общий процент соответствия (Выполнено / применимые требования), распределение по статусам с визуальной полосой и карточки всех требований, сгруппированные по этапам разработки.


3. Поддерживаемые инструменты анализа

3.1 SAST (Static Application Security Testing)​

Статический анализ исходного кода на наличие уязвимостей безопасности.

СканерЯзыкиОписание
SemgrepC, C++, C#, Go, Java, JavaScript, JSX, Kotlin, PHP, Pascal, Fortran, Python, Ruby, Rust, Swift, TypeScript, ASP.NETУниверсальный паттерн-ориентированный анализатор
BanditPythonСпециализированный анализатор безопасности Python
BearerGo, Java, JavaScript, PHP, Python, Ruby, TypeScriptАнализатор безопасности и приватности данных
CodeQLC#, Java, C/C++, Python, JavaScript/TypeScript, Go, Ruby, SwiftСемантический анализатор от GitHub
GosecGoСпециализированный анализатор для Go
MobSFScanJava, Kotlin, Objective-C, SwiftАнализатор для мобильной разработки
PMDJava, JavaScriptАнализатор качества и безопасности кода
ABAP Code ScannerABAPАнализатор для SAP ABAP

Опционально поддерживается интеграция с коммерческими сканерами PT AI (Positive Technologies Application Inspector) и Solar AppScreener.

3.2 SCA (Software Composition Analysis)​

Анализ зависимостей на наличие известных уязвимостей.

СканерНазначение
TrivyАнализ зависимостей, контейнеров, IaC-конфигураций
OWASP Dependency-CheckАнализ JAR-файлов и зависимостей Java-проектов

3.3 Secret Scanning​

Поиск секретов, токенов и ключей в исходном коде.

СканерНазначение
TruffleHogПоиск секретов с высокой энтропией и по паттернам
TrivyПоиск секретов в коде и конфигурациях

3.4 Config Scanning​

Анализ конфигурационных файлов на уязвимости и некорректные настройки.

СканерНазначение
TrivyАнализ Dockerfile, Kubernetes YAML, Terraform и других конфигураций

3.5 Linters​

Проверка качества кода и соблюдения правил кодирования.

ЛинтерЯзык
RuffPython
golangci-lintGo
PMDJava, JavaScript
PHPMDPHP

3.6 DAST (Dynamic Application Security Testing)​

Динамическое тестирование безопасности работающего приложения по URL.

СканерНазначение
OWASP ZAPАвтоматизированное сканирование веб-приложений: обнаружение инъекций, XSS, мисконфигураций и других уязвимостей через HTTP-запросы

4. Поддерживаемые языки программирования

Платформа поддерживает 19 языков программирования с различным набором типов анализа.

ЯзыкSASTSCALintersSecretConfig
ABAPABAP Code Scanner——TruffleHog, TrivyTrivy
ASP.NETSemgrep——TruffleHog, TrivyTrivy
CSemgrep, CodeQL——TruffleHog, TrivyTrivy
C#Semgrep, CodeQL——TruffleHog, TrivyTrivy
C++Semgrep, CodeQL——TruffleHog, TrivyTrivy
FortranSemgrep——TruffleHog, TrivyTrivy
GoSemgrep, Gosec, Bearer, CodeQLTrivygolangci-lintTruffleHog, TrivyTrivy
JavaSemgrep, MobSFScan, Bearer, PMD, CodeQLOWASP DC, TrivyPMDTruffleHog, TrivyTrivy
JavaScriptSemgrep, Bearer, PMD, CodeQLTrivyPMDTruffleHog, TrivyTrivy
JSXSemgrepTrivy—TruffleHog, TrivyTrivy
KotlinSemgrep, MobSFScanTrivy—TruffleHog, TrivyTrivy
Objective-CMobSFScan——TruffleHog, TrivyTrivy
PascalSemgrep——TruffleHog, TrivyTrivy
PHPSemgrep, BearerTrivyPHPMDTruffleHog, TrivyTrivy
PythonSemgrep, Bandit, Bearer, CodeQLTrivyRuffTruffleHog, TrivyTrivy
RubySemgrep, Bearer, CodeQLTrivy—TruffleHog, TrivyTrivy
RustSemgrepTrivy—TruffleHog, TrivyTrivy
SwiftSemgrep, MobSFScan, CodeQL——TruffleHog, TrivyTrivy
TypeScriptSemgrep, Bearer, CodeQLTrivy—TruffleHog, TrivyTrivy

Сканеры Trivy и TruffleHog являются универсальными и работают для всех языков программирования.


5. Веб-интерфейс

5.1 Основные разделы​

Веб-интерфейс платформы включает несколько основных разделов. Раздел «Аналитика» представляет собой дашборд с общей статистикой по всем приложениям организации. В разделе «Приложения» отображается список приложений с возможностью создания новых и управления существующими. Раздел «Уязвимости» содержит глобальный список уязвимостей со всех приложений с возможностью фильтрации и поиска. «Рабочая область» предназначена для работы с уязвимостями конкретного выбранного приложения. Раздел «Отчёты» позволяет создавать PDF-отчёты по приложению с настраиваемыми фильтрами уязвимостей, просматривать список созданных отчётов, отменять генерацию, скачивать и удалять их. Раздел «Соответствие» предназначен для управления соответствием требованиям ГОСТ Р 56939-2024: реестр 25 требований с отслеживанием статусов, прикреплёнными свидетельствами и журналом изменений. Раздел «Инструменты» позволяет управлять подключениями к системам контроля версий (GitLab, GitHub, Gitea) и внешними сканерами. Раздел «Пользователи» предназначен для управления учётными записями и ролями. В разделе «Настройки приложения» выполняется конфигурация параметров сканирования.

5.2 Работа с приложениями​

Список приложений отображается в табличном виде с индикаторами статуса сканирования. Для каждого приложения показывается количество уязвимостей по уровням критичности, индикатор прогресса текущего сканирования и быстрый переход к списку уязвимостей.

5.3 Работа с уязвимостями​

Уязвимости представлены в виде таблицы с возможностью сортировки по любому столбцу. Доступна многокритериальная фильтрация по критичности, статусу жизненного цикла, типу (SAST, SCA, DAST, Linters, Secret, Config) и принадлежности к приложению. Поддерживается полнотекстовый поиск по описанию и другим полям.

При выборе уязвимости открывается карточка с тремя вкладками: «Описание», «Комментарии» и «Активность». В описании пользователь может изменить критичность и выполнить переход статуса по матрице допустимых переходов (для ряда переходов запрашивается обоснование). Все изменения автоматически фиксируются во вкладке «Активность» с указанием автора и времени. Поддерживаются массовые операции: массовый перевод статуса с проверкой допустимости перехода и массовое изменение критичности.

5.4 Настройки сканирования​

В настройках приложения можно выбрать источник кода (загрузка ZIP-архива или получение из GitLab, GitHub, Gitea, Bitbucket Data Center / Server), задать минимальную критичность SAST и список общих исключений путей (glob-паттерны, применяемые ко всем типам сканирования).

5.5 Дополнительные возможности​

Интерфейс поддерживает переключение между светлой и тёмной темой оформления, локализацию на русский и английский языки, выбор языка отчёта (RU/EN) при формировании PDF, а также генерацию API-токенов для интеграции с внешними системами.


6. Интеграционные возможности

6.1 Интеграция с CI/CD​

Платформа предоставляет HTTP API для интеграции с системами непрерывной интеграции и доставки. Поддерживается автоматическая загрузка кода и запуск сканирования в рамках процесса сборки, получение результатов для принятия решения о релизе, а также блокировка pipeline при обнаружении критических уязвимостей.

Имеются готовые интеграции для GitLab CI и Jenkins. Благодаря универсальному API платформа может быть интегрирована с любой другой системой CI/CD.

6.2 Интеграция с системами контроля версий​

Платформа поддерживает интеграцию со следующими VCS-провайдерами: GitLab, GitHub, Gitea. Подключение выполняется по URL хостинга и Personal Access Token через раздел «Инструменты». После настройки пользователь может просматривать список репозиториев и веток, привязывать приложения к конкретным репозиториям и автоматически получать код для сканирования. Для каждого типа провайдера создаётся отдельное именованное подключение; одновременно можно использовать несколько подключений разных типов.

6.3 Интеграция с коммерческими сканерами​

Помимо встроенных инструментов анализа, платформа поддерживает интеграцию с коммерческими SAST-решениями: PT AI (Positive Technologies Application Inspector) и Solar AppScreener. Код отправляется на анализ во внешний сканер, а результаты автоматически импортируются и нормализуются наравне с результатами встроенных инструментов.

6.4 HTTP API​

Платформа предоставляет полнофункциональный REST API для автоматизации всех операций: управления приложениями и ревизиями, запуска сканирований, получения и обработки уязвимостей, работы с комментариями и интеграциями, а также работы с отчётами. API документирован в формате OpenAPI/Swagger.

Для аутентификации используется OAuth 2.0 с выдачей JWT-токена. Для интеграций с внешними системами можно сгенерировать долгоживущий API-токен.


7. Безопасность и доступ

7.1 Аутентификация и авторизация​

Доступ к платформе защищён аутентификацией по протоколу OAuth 2.0 с выдачей JWT-токена. Платформа поддерживает ролевую модель управления доступом с тремя типами пользователей:

ТипОписание
Суперадминистратор (super_admin)Полный доступ ко всем функциям, включая управление пользователями, лицензией и настройками платформы
Администратор (admin)Управление приложениями и их участниками, настройка интеграций, работа с отчётами и уязвимостями
Пользователь (regular)Доступ к приложениям, в которых состоит участником; возможности ограничены в соответствии с правами конкретного приложения

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

7.2 Защита данных​

Пароли пользователей хранятся в виде криптографических хешей. Передача данных между клиентом и сервером осуществляется по защищённому протоколу HTTPS. Загруженный исходный код хранится в изолированном объектном хранилище.

7.3 Лицензирование​

Платформа использует лицензирование на основе JWT-токена. Лицензия определяет срок действия, максимальное количество приложений и доступные функции. Импорт лицензии выполняется через веб-интерфейс или API.


8. Варианты развёртывания

8.1 Docker Compose​

Основной способ развёртывания, подходящий для большинства сценариев использования. Все компоненты платформы поставляются в виде Docker-контейнеров и запускаются с помощью единого файла конфигурации. Данные сохраняются в персистентных томах.

Минимальные требования: Docker Engine 20.10 или выше, Docker Compose v2 или выше, 8 ГБ оперативной памяти, 50 ГБ дискового пространства.

8.2 Kubernetes / Helm​

Масштабируемый вариант развёртывания для высоконагруженных сред и крупных организаций. Установка автоматизирована с помощью Helm Chart. Поддерживается горизонтальное масштабирование компонентов сканирования, интеграция с Kubernetes Secrets для управления секретами и настройка Ingress для внешнего доступа.

8.3 Изолированные среды (Air-gap)​

Платформа поддерживает развёртывание в полностью изолированных средах без доступа к интернету. Все образы поставляются из приватного Docker Registry организации. Режим offline-сканирования позволяет выполнять анализ с использованием локальных баз правил и уязвимостей без обращения к внешним источникам.

8.4 SaaS​

Платформа доступна в режиме SaaS (Software as a Service). В этом случае инфраструктура размещается и обслуживается поставщиком, а заказчик получает доступ к платформе через веб-интерфейс и API без необходимости развёртывания собственных серверов. Режим SaaS подходит для организаций, которые хотят начать использовать платформу без затрат на инфраструктуру и администрирование.


9. Технические характеристики

9.1 Требования к системе​

ПараметрЗначение
Операционная системаLinux (Ubuntu 24.04.1 LTS или выше)
Процессор4 ядра
Оперативная память8 ГБ
Свободное место на диске50 ГБ
Сетевое подключениеТребуется для установки и получения обновлений

9.2 Масштабирование​

Платформа поддерживает горизонтальное масштабирование путём увеличения количества экземпляров компонентов сканирования, а также вертикальное масштабирование путём выделения дополнительных ресурсов отдельным компонентам.

Поддержка Cybear

Не нашли ответ в документе?

Техподдержка: support@cybear.ru · +7 (495) 790-66-88, добавочный 3.

Написать в поддержку