проверка в CI-конвейере универсальным агентом с возможностью блокирования сборки;
проверка на локальной машине разработчика (agent CLI);
обнаружение Open Source зависимостей:
по экосистеме, названию и версии пакета;
по файлам конфигураций (манифестам) пакетных менеджеров;
через механизм разрешения транзитивных зависимостей;
через механизм идентификации Open Source-включений по вендорской базе мета-данных, с применением алгоритмов гибкого поиска;
разделение директивных и транзитивных зависимостей и определение отношения к окружениям (scope) разработки: runtime, compile, test, provided и другим;
построение графа зависимостей с возможностью трассирования использования транзитивных компонентов;
актуализация информации об обнаруженных зависимостях:
общая информация о зависимости: способ обнаружения; дата релиза пакета; автор пакета; официальная веб-страница; ссылка на размещение в пакетном индексе; окружение применения (scope) и ссылка на граф связей; ссылка на манифест;
информация об уязвимостях;
информация о лицензиях;
используемость в проектах организации;
предоставление информации об уязвимостях:
идентификаторы в базах знаний;
описание уязвимости;
оценка критичности по CVSS 2 и CVSS 3.1;
ссылки на дополнительные индексы уязвимостей;
рекомендуемая версия пакета для обновления;
перечень всех проектов задетых уязвимостью;
дополнительные ссылки на уязвимости содержащие ссылки на патчи, эксплоиты и уязвимые коммиты;
предоставление информации о лицензиях:
лицензионный ландшафт проекта;
SPDX-идентификатор лицензии;
текст лицензии;
краткое представление об условиях лицензии;
информация о совместимости лицензий (license compliance);
определение и дедупликация уязвимостей из баз знаний:
NIST National Vulnerability Database (NVD);
Банк данных угроз безопасности информации (БДУ ФСТЭК);
Github Security Advisory (GHSA);
Open Source Vulnerabilities (OSV);
Sonatype OSSIndex;
Kaspersky Open Source Software Threats Data Feed (подключается по запросу);
Вендорский фид (protestware).
настройка критериев безопасности (политик) по 30 критериям, включая:
метаданные пакетов: название, версия, автор пакета, возраст, дата;
категории и типы лицензий, политику лицензионной чистоты от вендора;
по признакам применения пакета: директивный/транзитивный и окружение (scope);
по черным спискам пакетов, включая подготовленный фид toxic-repos (protestware);
настройка политик безопасности отдельно для сканирования кода в репозиториях, в прокси-репозиториях, CI-конвейере и локальной машине разработчика с указанием стадий разработки проекта (stages);
система отображения результатов сканирований для каждого отдельного этапа и возможность управления игнорируемыми событиями;
возможность настройки защиты от популярных атак на цепочку поставки;
возможность настройки игнорирования политик срабатывания в разных сочетаниях на уровне всей организации: проекта; технологии; пакета; типа лицензии; идентификатора уязвимости; для отдельных политик; возможность задания временного игнорирования события (с-по).
Функциональные характеристики TQI (Teams & Quality Intelligence)¶
построение профиля проектов, детализация технического и авторского состава разработки;
построение профиля разработчиков, детализация их работы в анализируемых проектах с учетом объема работ и качества произведенных изменений;
автоматический скоринг схожих разработчиков в анализируемых проектах:
по опыту в проектах и технологиях;
по схожести технической базы;
по близости качественных характеристик;
поиск активности разработчиков в Open Source проектах;
анализ заимствований с применением алгоритмов нечеткого поиска (толерантность к переименованиям объектов в коде):
поиск внутри-проектных дубликатов кода;
поиск кросс-проектных дубликатов кода;
определение объема найденных заимствований;
построение интерактивной карты заимствований;
определение времени возникновения заимствования;
привязка авторства к найденным дубликатам кода;
оценка сложности сопровождения проекта:
расчет цикломатической сложности кода в разрезе проекта;
расчет цикломатической сложности кода в разрезе автора;
построение аналитических ретроспективных карт:
развития проектов;
работы авторов;
эволюции сложности проектов.
встраивание в цикл разработки программного обеспечения (SDLC) посредством интеграции с системами версионирования исходного кода.