Функциональные характеристики¶
Общие функциональные характеристики¶
Модульная платформа безопасной разработки CodeScoring обеспечивает решение задач безопасного использования open source, идентификации секретов в коде и проверки качества разработки.
Платформа включает в себя следующие модули:
- CodeScoring.OSA (Open Source Analysis) – защита цепочки поставки: проверка сторонних компонентов на соответствие политикам безопасности и блокировка при несоответствии;
- CodeScoring.SCA (Software Composition Analysis) – композиционный анализ: автообнаружение open source зависимостей, выявление уязвимостей и вредоносных компонентов, проверка совместимости лицензий, формирование перечня программных компонентов и построение графа зависимостей;
- CodeScoring.Secrets – поиск секретов в коде: оркестрация проверок исходного кода на наличие конфиденциальной информации (секретов) и оценка истинности с помощью собственной модели машинного обучения;
- CodeScoring.TQI (Teams & Quality Analysis) – оценка качества кода через расчет ключевых метрик качества, отслеживание динамики разработки и построение профилей участников разработки с подтвержденной компетенцией в проектах.
Комплексно платформа обеспечивает:
- анализ 20 языков программирования (для отдельных модулей список языков может варьироваться): Java, Kotlin, JavaScript, TypeScript, Python, C, C++, Go, PHP, Ruby, C#, Objective-C, Swift, Rust, Scala, Bash, Perl, SQL, PLSQL, PGSQL;
- анализ манифестов пакетных экосистем: Maven, Gradle, Apache Ivy, NPM, Yarn, pnpm, NuGet, Paket, pip, Poetry, Pipenv, Conda, Ruby Gems, Cocoapods, Swift, Composer, Conan, Go Modules, Cargo и sbt;
- интеграцию с менеджерами репозиториев и реестрами контейнерных образов: Nexus Repository Manager, JFrog Artifactory Pro, Harbor, GitLab, GitFlic;
- интеграцию с hosted и cloud-системами хостинга кода: GitFlic, GitLab, Github, Bitbucket и Azure DevOps;
- универсальную интеграцию в системы сборки при помощи агента: Jenkins, GitLab, GitFlic, TeamCity и прочие;
- управление политиками безопасности организации;
- автоматизацию запусков сканирования по расписанию;
- интеграцию для почтовых уведомлений;
- интеграцию с системой управления задачами Jira;
- систему управления пользователями;
- интеграцию LDAP;
- создание вебхуков;
- разграничение прав доступа для разных пользователей;
- журналирование всех выполняемых операций (аудит-лог);
- сбор метрик по проведенным операциям;
- открытый и задокументированный программный интерфейс (API).
Функциональные характеристики модуля CodeScoring.OSA¶
- блокировка загрузки нежелательных компонентов при попытке их скачивания через командный интерфейс пакетного менеджера или веб-интерфейс;
- формирование перечня программных компонентов (SBoM, Software Bill of Materials);
- проверка артефактов в реестрах контейнерных образов;
- анализ архивов, включая:
- разбор содержимого популярных архивных форматов (zip, jar, tar, war, tgz и другие);
- анализ системных пакетов, включая поддержку популярных менеджеров пакетов:
- DEB (Debian, Ubuntu);
- RPM (RHEL, CentOS, Fedora);
- APK (Alpine Linux);
- настройка критериев безопасности (политик) по 40 критериям, включая:
- метаданные пакетов: название, версия, автор пакета, возраст, дата;
- критерии уязвимостей: идентификатор, оценка CVSS, уровень угрозы, дата публикации, возраст, наличие эксплойта, импакт;
- категории и типы лицензий, совместимость лицензий (лицензионная чистота);
- признаки применения пакета: директивный/транзитивный и окружение (scope);
- наличие вредоносного кода;
- черные списки пакетов, включая подготовленный фид protestware;
- определение и дедупликация уязвимостей из 20 баз знаний, включая агрегационные (БДУ ФСТЭК, NVD, OSV, GHSA и иные), экосистемные (Debian, RPM, Alpine и иные), коммерческие (Kaspersky OSS Threats Data Feed) и собственные, включая данные о protestware;
- управление компонентами в интерфейсе, включая:
- просмотр и фильтрацию списка пакетов;
- просмотр и фильтрацию списка контейнерных образов;
- просмотр и фильтрацию запросов компонентов;
- выгрузку отчетности.
Функциональные характеристики модуля CodeScoring.SCA¶
- анализ манифестов пакетных менеджеров;
- формирование перечня программных компонентов (SBoM, Software Bill of Materials) c учетом рекомендаций ФСТЭК России;
- проверка open source на всех этапах цикла разработки с возможностью задания политик безопасности для отдельных этапов цикла разработки:
- проверка кода в средах разработки (IDE): IntelliJ, VSCode, Eclipse, OpenIDE;
- проверка на локальной машине разработчика (агент CLI);
- непрерывный мониторинг кода (сканирование веток репозиториев);
- проверка в CI-конвейере универсальным агентом с возможностью блокирования сборки;
- пост-релизный мониторинг SBoM;
- пост-релизный мониторинг кода (сканирование тегов репозиториев);
- обнаружение open source зависимостей:
- по экосистеме, названию и версии пакета;
- по файлам конфигураций (манифестам) пакетных менеджеров;
- через механизм разрешения транзитивных зависимостей;
- через механизм идентификации open source-включений по вендорской базе мета-данных, с применением алгоритмов гибкого поиска;
- через анализ сборки для языков C и C++;
- разделение директивных и транзитивных зависимостей и определение отношения к окружениям (scope) разработки: runtime, compile, test, provided и другим;
- построение графа зависимостей с возможностью трассирования использования транзитивных компонентов;
- актуализация информации об обнаруженных зависимостях:
- общая информация о зависимости: способ обнаружения; дата релиза пакета; автор пакета; официальная веб-страница; ссылка на размещение в пакетном индексе; окружение применения (scope) и ссылка на граф связей; ссылка на манифест;
- информация об уязвимостях;
- информация о лицензиях;
- используемость в проектах организации;
- предоставление информации об уязвимостях:
- идентификаторы в базах знаний;
- описание уязвимости;
- оценка критичности по CVSS 2 и CVSS 3.1;
- ссылки на дополнительные индексы уязвимостей;
- рекомендуемая версия пакета для обновления;
- перечень всех проектов, задетых уязвимостью;
- дополнительные материалы, содержащие ссылки на патчи, эксплоиты и уязвимые коммиты;
- предоставление информации о лицензиях:
- лицензионный ландшафт проекта;
- SPDX-идентификатор лицензии;
- текст лицензии;
- краткое представление об условиях лицензии;
- информация о совместимости лицензий (license compliance);
- определение и дедупликация уязвимостей из 20 баз знаний, включая агрегационные (БДУ ФСТЭК, NVD, OSV, GHSA и иные), экосистемные (Debian, RPM, Alpine и иные), коммерческие (Kaspersky OSS Threats Data Feed) и собственные, включая данные о protestware;
- настройка политик безопасности по 40 критериям, включая:
- метаданные пакетов: название, версия, автор пакета, возраст, дата;
- критерии уязвимостей: идентификатор, оценка CVSS, уровень угрозы, дата публикации, возраст, наличие эксплойта, импакт;
- категории и типы лицензий, совместимость лицензий (лицензионная чистота);
- признаки применения пакета: директивный/транзитивный и окружение (scope);
- наличие вредоносного кода;
- черные списки пакетов, включая подготовленный фид protestware;
- настройка политик безопасности отдельно для сканирования кода в репозиториях, CI-конвейере и локальной машине разработчика с указанием этапа цикла разработки;
- система отображения результатов сканирований для каждого отдельного этапа и возможность управления игнорируемыми событиями;
- возможность настройки защиты от популярных атак на цепочку поставки;
- возможность настройки временного игнорирования политик срабатывания по различным критериям: проекту, технологии, пакету, типу лицензии, идентификатору уязвимости, для отдельных политик;
- выгрузка отчетности в популярных форматах: CycloneDX, JUnit, SARIF, CSV, GitLab Dependency Scanning Report, GitLab Code Quality Report.
Функциональные характеристики модуля CodeScoring.Secrets¶
- обнаружение чувствительных данных в коде, включая пароли, API-ключи, токены, учетные данные;
- использование собственной модели машинного обучения для фильтрации ложных срабатываний;
- интеграция с системами контроля версий (VCS) для автоматического мониторинга репозиториев;
- настройка критериев поиска секретов с возможностью конфигурирования правил обнаружения;
- запуск анализа секретов:
- выбор сканирования отдельной ветки или всего репозитория;
- ручной запуск анализа в отдельных проектах;
- общее сканирование всех проектов организации;
- загрузка отчетов о секретах, найденных сторонними инструментами, в систему;
- предоставление детализированной информации о найденных секретах:
- контекст обнаружения (проект, файл, автор изменения);
- оценка вероятности истинности секрета;
- дата обнаружения и исправления секрета;
- управление найденными секретами:
- просмотр списка обнаруженных секретов;
- подтверждение ложных срабатываний и исключение их из дальнейших сканирований;
- маркировка секретов как устраненных;
- управление процессом обучения ML-модели для повышения точности обнаружения:
- разметка обнаруженных секретов пользователем;
- дообучение модели на размеченных данных;
- сравнение результатов дообученной модели с исходной версией;
- возможность отката к базовой модели;
- интеграция с DevSecOps-процессами:
- работа в CI/CD-конвейере с возможностью прерывания сборки при обнаружении секретов;
- анализ секретов на локальной машине разработчика через CLI-агент;
- гибкая система отчетности и уведомлений:
- отображение результатов сканирования на уровне организации, проекта и отдельного репозитория;
- фильтрация результатов;
- экспорт отчетов со списком секретов или их свойств.
Функциональные характеристики модуля CodeScoring.TQI¶
- построение профиля проектов, детализация технического и авторского состава разработки;
- построение профиля разработчиков, детализация их работы в анализируемых проектах с учетом объема работ и качества произведенных изменений;
- автоматическая оценка сходства разработчиков в анализируемых проектах по опыту участия и технологиях;
- поиск активности разработчиков в open source проектах;
- анализ заимствований с применением алгоритмов нечеткого поиска (толерантность к переименованиям объектов в коде):
- поиск внутри-проектных дубликатов кода;
- поиск кросс-проектных дубликатов кода;
- определение объема найденных заимствований;
- построение интерактивной карты заимствований;
- определение времени возникновения заимствования;
- привязка авторства к найденным дубликатам кода;
- оценка сложности сопровождения проекта:
- расчет цикломатической сложности кода в разрезе проекта;
- расчет цикломатической сложности кода в разрезе автора;
- построение аналитических ретроспективных карт:
- развития проектов;
- работы авторов;
- эволюции сложности проектов;
- встраивание в цикл разработки программного обеспечения (SDLC) посредством интеграции с системами версионирования исходного кода.