Перейти к содержанию

Функциональные характеристики

Общие функциональные характеристики

Модульная платформа безопасной разработки 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) посредством интеграции с системами версионирования исходного кода.