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

Detect / Возможности

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

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

1. Введение

1.1 Назначение продукта​

Detect — статический анализатор безопасности исходного кода. Он исследует код программы без её запуска и помогает обнаруживать потенциально опасные способы обработки данных, в том числе связанные с запросами к базе данных, выполнением команд и работой с файлами.

Detect учитывает связи между частями программы и формирует сведения, необходимые для проверки обнаруженных проблем. В зависимости от выбранного режима может использоваться языковая модель. Результаты доступны в отчётах и в формате SARIF 2.1.0 для взаимодействия с Accent и другими системами.

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

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

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

Типовые сценарии: проверка каталога с кодом или репозитория по ссылке, последовательная проверка нескольких проектов, подготовка отчёта для Accent, публикация находок в запросе на слияние через SARIF.

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

ТерминОпределение
НаходкаМесто в коде, где анализатор подозревает уязвимость
Режим находкиСтепень доказанности: confirmed, manual_review, advisory, suppressed
ИсточникТочка, откуда в программу приходят внешние данные: запрос пользователя, файл, сетевой вызов
Опасная операцияДействие, которое внешние данные могут обратить во вред: запрос к базе, команда системы, запись в файл
ЗащитаПроверка, экранирование или очистка данных между источником и опасной операцией
ПроверкаОдин запуск анализатора по проекту
Базовая проверкаЗавершённая проверка, от которой отсчитывается повторный анализ по изменениям
Профиль анализаНастройка участия языковой модели: deep_full или no_llm
Индекс проектаКарта связей между файлами, которую анализатор строит перед проверкой
CWECommon Weakness Enumeration, международный перечень видов уязвимостей
SARIFStatic Analysis Results Interchange Format, версия 2.1.0
SASTStatic Application Security Testing, статический анализ безопасности
finding_keyУстойчивый ключ находки, по которому одну и ту же находку узнают в отчётах разных проверок и версий продукта
analysis_idНомер анализа, выданный программным интерфейсом v1
verified_by_detectПризнак находки, уже проверенной моделью Detect

В меню поставки и в служебных файлах сервис триажа может называться AI-TRIAGE. Это то же изделие, что Accent.


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

2.1 Поиск уязвимостей по пути данных​

Detect анализирует использование внешних данных в программе, в том числе при передаче информации между файлами и функциями. Он проверяет, могут ли такие данные попасть в потенциально опасные операции и какие меры защиты предусмотрены.

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

2.2 Режимы находок​

РежимКогда присваивается
confirmedНайдены достаточные признаки уязвимости для данного вида проверки
manual_reviewПризнаки уязвимости есть, доказательство неполное
advisoryСправочное наблюдение
suppressedСлужебный статус результата, не предназначенного для основного отчёта

Режим определяет, что аналитик делает с находкой. Находки в режиме confirmed разбираются первыми, manual_review требует чтения кода, advisory читается при разборе соседних находок.

2.3 Профили анализа​

ПрофильНазначение
deep_fullАнализ с дополнительным использованием языковой модели при доступном сервере модели
no_llmАнализ без обращения к языковой модели; может использоваться для подготовки отчёта Accent

Выбор профиля определяет участие языковой модели и состав передаваемых результатов. Подробный порядок работы с профилями и параметры запуска приведены в руководстве администратора.

2.4 Способы подачи кода​

СпособЧто принимает
Каталог на сервереПуть к распакованному проекту
Репозиторий по ссылкеАдрес репозитория и идентификатор коммита
Архив через программный интерфейсФайл .zip
Несколько проектовКаждый проект проверяется своим запуском

2.5 Состав результата​

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

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

2.6 Маскирование секретов​

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

2.7 Повторный анализ по изменениям​

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

2.8 Сравнение двух проверок​

Результаты двух проверок можно сопоставить, чтобы увидеть новые, сохраняющиеся и устранённые находки. Сопоставление выполняет запрос GET /sessions/{база}/diff/{новая}.

2.9 Передача результатов в Accent​

Detect поддерживает два способа интеграции с Accent:

СценарийЧто передаётсяНазначение
Передача отчёта до дополнительной проверкиtriage-input.sarifAccent получает находки для собственной обработки
Передача итогового отчёта Detectreport.sarifAccent получает результаты анализа Detect

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

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

Detect предназначен для анализа исходного кода на следующих языках: Python, Java, Kotlin, JavaScript, TypeScript, C#, C/C++, Go, Ruby и PHP. Также предусмотрена обработка отдельных файлов конфигурации.

Поддерживаемые виды уязвимостей и глубина анализа различаются по языкам и зависят от версии поставки. Актуальный перечень передаётся вместе с комплектом поставки. Языки 1С (BSL) и ABAP данной версией не поддерживаются.

4. Программный интерфейс

4.1 Интерфейс v1 для интеграции​

Основной интерфейс для смежных систем. Все запросы идут с заголовком Authorization: Bearer <токен>.

ЗапросНазначение
POST /v1/analysesОтправить проект архивом или ссылкой на репозиторий
POST /v1/triage/analysesТо же без участия модели, с подготовкой triage-input.sarif
GET /v1/analyses/{id}Статус, прогресс, ошибка, ссылки на результаты
GET /v1/analyses/{id}/report.sarifИтоговый отчёт SARIF
GET /v1/analyses/{id}/triage-input.sarifОтчёт до проверки моделью
GET /v1/analyses/{id}/keyКлючи находок, признак проверки и вердикт Detect
GET /v1/analyses/{id}/artifactsАрхив служебных файлов для диагностики
GET /v1/analyses/{id}/versionsВерсия и служебная информация об анализе
GET /v1/openapi.jsonСпецификация интерфейса

Статусы анализа: queued, running, succeeded, failed. Незавершённые после перезапуска сервиса анализы получают interrupted.

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

КодПричина
400Некорректный архив или запрос репозитория
401Токен отсутствует или неверен
404Анализ не найден
409Анализ или базовая проверка ещё не готовы, либо triage-input.sarif запрошен у анализа, созданного через POST /v1/analyses
413Превышены ограничения архива
500Внутренняя ошибка

4.2 Служебный интерфейс​

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

4.3 Веб-страница сервиса​

По адресу /docs сервис возвращает страницу с описанием интерфейса и тремя формами — загрузка архива, история проверок, скачивание результатов. Отдельного веб-интерфейса управления у Detect нет.


5. Состав поставки

Detect поставляется исходными текстами и собранными образами Docker. Запуск — Docker Compose либо локальное окружение Python.

Составная частьНазначение
АнализаторКомандная строка и веб-сервис в одной точке входа
Интеграционный интерфейс v1Приём проектов и выдача отчётов смежным системам
Каталог настроекЭксплуатационные настройки анализа
База профилей CWEСлужебный компонент поставки
УстановщикРазвёртывание в Docker или в локальном окружении Python

Сервер языковой модели в поставку не входит. Detect обращается к OpenAI-совместимому серверу, развёрнутому в контуре организации.

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

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

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

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

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

7.1 Docker Compose​

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

7.2 Локальная установка​

При наличии соответствующих компонентов поставки поддерживается локальная установка в среде Python. Вариант установки, параметры сети и правила хранения данных определяет администратор.

7.3 Изолированные среды​

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

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

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

Анализатор работает на платформах x86-64 и ARM64 в контейнерах, под GNU/Linux и Windows.

КомпонентТребование
Python3.11
DockerС поддержкой docker compose, для контейнерного развёртывания
GitДля анализа репозиториев по ссылке
Свободное местоОт 2 ГиБ; для крупных проектов больше, поскольку рабочий каталог хранит разбор каждого файла
Сервер моделиДоступ к совместимому серверу языковой модели в контролируемом контуре, если выбран режим с моделью
Порт8001 по умолчанию

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

8.2 Повторяемость результата​

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

8.3 Объём и скорость​

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

8.4 Качество анализа​

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

9. Сопутствующая документация

ДокументСодержание
Руководство пользователяЗапуск проверки, чтение отчёта, разбор находки, сравнение версий, встраивание в сборку
Руководство администратораУстановка, доступ к серверу модели, параметры, развёртывание в Docker, диагностика
Руководство по файлам результатовСостав рабочего каталога, поля отчётов, колонки сводки

Вместе с продуктом поставляются дополнительные технические инструкции и спецификация программного интерфейса.

Поддержка Cybear

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

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

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