Функциональные характеристики¶
Общие функциональные характеристики¶
Модульная платформа безопасной разработки CodeScoring обеспечивает решение задач безопасного использования open source, идентификации секретов в коде и проверки качества разработки.
Платформа включает в себя следующие модули:
- CodeScoring.Save – управление артефактами разработки с поддержкой proxy- и hosted-репозиториев, интеграцией проверок безопасности и контролем доступа;
- CodeScoring.OSA (Open Source Analysis) – защита цепочки поставки: проверка сторонних компонентов на соответствие политикам безопасности и блокировка при несоответствии;
- CodeScoring.SCA (Software Composition Analysis) – композиционный анализ: автообнаружение open source зависимостей, выявление уязвимостей и вредоносных компонентов, проверка совместимости лицензий, формирование перечня программных компонентов и построение графа зависимостей;
- CodeScoring.Secrets – поиск секретов в коде: оркестрация проверок исходного кода на наличие конфиденциальной информации (секретов) и оценка истинности с помощью собственной модели машинного обучения;
- CodeScoring.TQI (Teams & Quality Intelligence) – оценка качества кода через расчет ключевых метрик качества, отслеживание динамики разработки и построение профилей участников разработки с подтвержденной компетенцией в проектах.
Комплексно платформа обеспечивает:
- анализ 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, Сфера.Дистрибутивы и Лицензии;
- менеджер репозиториев CodeScoring.Save с поддержкой proxy- и hosted-режимов для Maven, npm, NuGet, PyPI, Go, Docker/OCI и raw;
- интеграцию с hosted и cloud-системами хостинга кода: GitFlic, GitLab, Github, Bitbucket и Azure DevOps;
- универсальную интеграцию в системы сборки при помощи агента: Jenkins, GitLab, GitFlic, TeamCity и прочие;
- управление политиками безопасности организации;
- автоматизацию запусков сканирования по расписанию;
- интеграцию для почтовых уведомлений;
- интеграцию с системой управления задачами Jira;
- систему управления пользователями;
- интеграцию LDAP;
- создание вебхуков;
- разграничение прав доступа для разных пользователей;
- журналирование всех выполняемых операций (аудит-лог);
- сбор метрик по проведенным операциям;
- открытый и задокументированный программный интерфейс (API).
Функциональные характеристики модуля CodeScoring.Save¶
- централизованное хранилище артефактов с поддержкой двух типов репозиториев:
- proxy-репозитории — проксирование запросов к upstream-репозиториям с кэшированием артефактов и выполнением проверок безопасности;
- hosted-репозитории — полностью локальные репозитории для хранения собственных артефактов организации;
- поддержка популярных пакетных экосистем:
- Maven (Java, Kotlin, Scala и другие JVM-инструменты поверх Maven layout);
- npm (JavaScript / TypeScript);
- NuGet (.NET);
- PyPI (Python);
- Go (Go Modules);
- Docker / OCI (контейнерные образы, Helm OCI-чарты, oras-артефакты);
- RAW (произвольные файлы);
- микросервисная архитектура с разделением компонентов:
- Save API service — основной сервис работы с артефактами и репозиториями;
- Auth / RBAC service — выделенный микросервис аутентификации и авторизации;
- интеграция проверок безопасности:
- автоматическое сканирование артефактов через CodeScoring.OSA;
- применение политик безопасности при загрузке компонентов;
- блокировка загрузки артефактов, не соответствующих политикам;
- управление доступом и безопасность:
- ролевая модель доступа (RBAC) с тремя уровнями (global / project / repository);
- поддержка пользователей (users) и сервисных аккаунтов (robot accounts);
- управление членством в проектах с гранулярным контролем прав;
- выпуск и валидация JWT-токенов для API с локальной проверкой подписи на стороне Save через JWKS;
- поддержка шести типов учётных данных: Basic Auth (пользовательский и сервисный robot), Bearer JWT, opaque Bearer (npm),
X-NuGet-ApiKeyи Docker v2 token; - поддержка OCI Distribution Spec / Docker Registry v2 с эндпоинтом выпуска короткоживущих access-токенов;
- аудит операций, связанных с доступом и управлением артефактами, в едином журнале платформы;
- организационная структура:
- иерархия проект → репозиторий → артефакт;
- управление проектами с назначением участников;
- настройка прав доступа на уровне проектов и репозиториев;
- управление жизненным циклом артефактов:
- cleanup policies — правила для автоматического удаления устаревших или неиспользуемых артефактов;
- настройка правил очистки по возрасту, количеству версий, по последнему скачиванию, по регулярным выражениям, по размеру;
- dry-run / preview результата перед запуском;
- веб-интерфейс для управления:
- создание и настройка проектов и репозиториев;
- просмотр и скачивание артефактов и их метаданных;
- управление пользователями, ролями и правами доступа;
- настройка правил очистки;
- управление лицензией;
- просмотр сконфигурированных параметров;
- мониторинг операций и экспорт журнала событий;
- варианты развертывания:
- hosted-инсталляция на базе k3s для небольших команд;
- базовая инсталляция на Kubernetes с PostgreSQL и S3-совместимым хранилищем для продуктивного использования;
- конфигурация хранения: SQLite/PostgreSQL для метаданных, S3/файловая система для артефактов;
- производительность и масштабируемость:
- stateless-архитектура для горизонтального масштабирования;
- in-pod кэш и локальная валидация Bearer JWT по JWKS;
- стриминговая обработка больших файлов без полной буферизации в памяти;
- независимое горизонтальное масштабирование Save и cs-auth;
- мониторинг и наблюдаемость:
- экспорт метрик в Prometheus в формате OpenTelemetry;
- структурированное логирование операций в JSON;
- health checks для контроля состояния сервисов;
- метрики HTTP-запросов, операций хранилища, загрузок/скачиваний артефактов и proxy cache hit-rate;
- открытый программный интерфейс (API):
- REST API для управления проектами, репозиториями и артефактами;
- совместимость с протоколами пакетных менеджеров (Maven 2 layout, npm Registry API, NuGet v3, PyPI Simple PEP 503/691, Go Module Proxy, OCI Distribution Spec);
- API для управления пользователями, ролями, robot-аккаунтами и правами доступа;
- внутренние API для межсервисного взаимодействия между Save и cs-auth, защищённые shared secret.
Функциональные характеристики модуля CodeScoring.OSA¶
- блокировка загрузки нежелательных компонентов при попытке их скачивания через командный интерфейс пакетного менеджера или веб-интерфейс;
- формирование перечня программных компонентов (SBOM, Software Bill of Materials);
- проверка артефактов в реестрах контейнерных образов;
- проксирование и контроль загрузок пакетов через сервис OSA Proxy для популярных пакетных менеджеров (Maven, NPM, PyPI, NuGet);
- анализ архивов, включая:
- разбор содержимого популярных архивных форматов (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-based, VSCode, OpenIDE;
- проверка на локальной машине разработчика (агент CLI);
- непрерывный мониторинг кода (сканирование веток репозиториев);
- проверка в CI-конвейере универсальным агентом с возможностью блокирования сборки;
- пост-релизный мониторинг SBOM;
- пост-релизный мониторинг кода (сканирование тегов репозиториев);
- обнаружение open source зависимостей:
- по экосистеме, названию и версии пакета;
- по файлам конфигураций (манифестам) пакетных менеджеров;
- через механизм разрешения транзитивных зависимостей;
- через механизм идентификации open source-включений по вендорской базе мета-данных, с применением алгоритмов гибкого поиска;
- через анализ сборки для языков C и C++;
- разделение директивных и транзитивных зависимостей и определение отношения к окружениям (scope) разработки: runtime, compile, test, provided и другим;
- построение графа зависимостей с возможностью трассирования использования транзитивных компонентов;
- актуализация информации об обнаруженных зависимостях:
- общая информация о зависимости: способ обнаружения; дата релиза пакета; автор пакета; официальная веб-страница; ссылка на размещение в пакетном индексе; окружение применения (scope) и ссылка на граф связей; ссылка на манифест;
- информация об уязвимостях;
- информация о лицензиях;
- максимальная версия исправления;
- используемость в проектах организации;
- предоставление информации об уязвимостях:
- идентификаторы в базах знаний;
- описание уязвимости;
- оценка критичности по CVSS 2, CVSS 3.1 и CVSS 4.0;
- ссылки на дополнительные индексы уязвимостей;
- рекомендуемая версия пакета для обновления;
- перечень всех проектов, задетых уязвимостью;
- дополнительные материалы, содержащие ссылки на патчи, эксплоиты и уязвимые коммиты;
- предоставление информации о лицензиях:
- лицензионный ландшафт проекта;
- SPDX-идентификатор лицензии;
- текст лицензии;
- краткое представление об условиях лицензии;
- информация о совместимости лицензий (license compliance);
- определение и дедупликация уязвимостей из более 20 баз знаний, включая агрегационные (БДУ ФСТЭК, NVD, OSV, GHSA и иные), экосистемные (Debian, RPM, Alpine и иные), коммерческие (Kaspersky OSS Threats Data Feed) и собственные, включая данные о protestware;
- настройка политик безопасности по 40 критериям, включая:
- метаданные пакетов: название, версия, автор пакета, возраст, дата;
- критерии уязвимостей: идентификатор, оценка CVSS, уровень угрозы, дата публикации, возраст, наличие эксплойта, импакт;
- категории и типы лицензий, совместимость лицензий (лицензионная чистота);
- признаки применения пакета: директивный/транзитивный и окружение (scope);
- наличие вредоносного кода;
- черные списки пакетов, включая подготовленный фид protestware;
- настройка политик безопасности отдельно для сканирования кода в репозиториях, CI-конвейере и локальной машине разработчика с указанием этапа цикла разработки;
- система отображения результатов сканирований для каждого отдельного этапа и возможность управления игнорируемыми событиями;
- возможность настройки защиты от популярных атак на цепочку поставки;
- возможность настройки временного игнорирования политик срабатывания по различным критериям: проекту, технологии, пакету, типу лицензии, идентификатору уязвимости, для отдельных политик;
- выгрузка отчетности в популярных форматах: CycloneDX, SPDX, 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) посредством интеграции с системами версионирования исходного кода.
Страница была полезна?