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

О продукте

Назначение

AppSec.Track (система) — инструмент, реализующий практики OSA и SCA и предоставляющий сервис по предотвращению атак на цепочку поставок ПО через компоненты с открытым исходным кодом.

Модуль OSA осуществляет проверку компонентов с открытым исходным кодом на этапе загрузки в контур безопасной разработки. При нарушении политик безопасности разработчик получает сообщение об ошибке с описанием проблемы и рекомендациями по выбору безопасной версии, а загрузка компонентов, не отвечающих установленным в системе политикам безопасности, блокируется.

Модуль SCA осуществляет проверку компонентов с открытым исходным кодом в рамках пайплайнов сборки и доставки приложения. При нарушении установленных в системе политик безопасности происходит блокировка пайплайна, а также отправка уведомлений командам разработки и безопасности.

Состав

Система состоит из следующих частей:

  • AppSec.Track — приложение, состоящее из нескольких модулей, разворачиваемых локально, включая серверную (track-backend) и клиентскую (track-frontend) части, а также базу данных приложения (track-db).
  • Track.Plugin — плагин, подключаемый к менеджеру репозиториев Nexus Repository Manager или JFrog Artifactory.
  • Track.Feed — облачное хранилище, содержащее информацию об уязвимостях, атрибутах компонентов и лицензиях.
  • Track-CLI — утилита, позволяющая осуществлять сканирование файла SBOM, представленного в формате CycloneDX.

Описание

Архитектура системы показана на рисунке ниже.

Система имеет следующие особенности реализации:

  • Собственная проприетарная база уязвимостей.
  • Импорт из публичных баз и дедупликация уязвимостей.
  • Мониторинг появления новых уязвимостей.
  • Рекомендации разработчикам по выбору безопасной версии компонента.
  • Проверка целостности загружаемых пакетов.
  • Создание отчетов о результатах сканирования.
  • Гибкая настройка политик, в том числе на уровне отдельных команд и репозиториев.
  • Интеграция с менеджером репозиториев с помощью установки плагина, а также проверка компонентов с открытым исходным кодом в рамках пайплайнов сборки и доставки приложения не требуют изменения существующих CI/CD процессов.
  • Поддержка ключевых инструментов разработки: Nexus Repository Manager, JFrog Artifactory, Gitlab CI, Teamcity, Jenkins.
  • Работа в режиме высокой доступности (High Availability).
  • Образы системы доступны на базе Astra Linux.

Модуль OSA

Модуль OSA анализирует сторонние компоненты с открытым исходным кодом, не проводя при этом активного сканирования этих компонентов.

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

Перед возвращением запрошенного компонента разработчику срабатывает плагин Track.Plugin. Он посылает в AppSec.Track, где уже были настроены политики безопасности, запрос на анализ компонента, включающий имя пакета, его хеш и формат. С этими атрибутами AppSec.Track обращается в базу компонентов и их уязвимостей — Track.Feed и применяет к полученным результатам текущие политики безопасности. В случае нарушения политик компонент не будет скачан, а разработчик, запросивший скачивание, получит сообщение об ошибке.

Дальнейшие действия со стороны разработчика, а также возможные решения и шаги в отношении заблокированного компонента описаны в «Руководстве пользователя».

Примечание

Начиная с версии 3.5.0, система поддерживает работу с PHP-артефактами в Nexus Repository Manager.

Модуль SCA

Система позволяет проводить сканирование OSS-компонентов приложений на этапах Build и Deploy на основе анализа зависимостей приложения. Приложение может быть представлено как в виде исходного кода (в этом случае проводится сканирование файла манифеста — pom.xml, build.gradle, package.json, go.sum и т. д.), так и в виде собранного артефакта (*.jar, *.war, *.whl, *.tar и т. д.). Также возможно сканирование Docker-образов и файлов SBOM.

Интеграция в пайплайны приложений проводится с помощью утилиты командной строки track-cli.

Сканирование приложения проводится в два этапа:

  • На первом этапе для приложения необходимо собрать файл SBOM в формате CycloneDX, который будет использован системой для проведения SCA-анализа. Для получения файла SBOM необходимо применить одну из общедоступных специализированных утилит генерации SBOM, рекомендуемые утилиты: cdxgen, syft.
  • Сканирование файла SBOM с помощью утилиты track-cli.

Подробно работа с модулем SCA описана в разделе «Приложения».

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

Анализ OSS-компонентов на наличие известных уязвимостей

Система осуществляет проверку компонентов с открытым исходным кодом на наличие в них известных уязвимостей. Это позволяет не допустить включения в состав разрабатываемых приложений уязвимых компонентов и значительно снизить риски безопасности.

Защита от вредоносных OSS-компонентов

Проверка компонентов с открытым исходным кодом позволяет также выявлять вредоносное ПО — malware или библиотеки с protestware, опубликованные после 24 февраля 2022 года, и исключить его из состава разрабатываемых приложений.

Гибкая настройка политик безопасности

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

Политики безопасности в системе можно настраивать по нескольким параметрам, среди которых:

  • Наличие уязвимостей.
  • Наличие malware/protestware.
  • Дата публикации пакета.
  • Имя/группа пакета.
  • Хеш-сумма пакета.

Блокировка загрузки компонента при обнаружении проблем (OSA)

Каждый загружаемый пакет проверяется на нарушение политик безопасности, прежде чем он будет доступен для скачивания разработчиком. Система автоматически блокирует загрузку компонента разработчиком при обнаружении проблем на этапе OSA согласно настройкам политик.

Блокировка работы пайплайнов сборки и доставки приложений при нарушении политик (SCA)

При сканировании приложений AppSec.Track автоматически блокирует работу пайплайнов сборки и доставки приложений при нарушении установленных в системе политик безопасности.

Уведомление об обнаружении новых уязвимостей в приложениях в промышленной эксплуатации

В случае обнаружения новых уязвимостей в приложениях в промышленной эксплуатации (в production) система отправляет соответствующее уведомление командам разработки и безопасности.

Поддержка ключевых менеджеров репозиториев

AppSec.Track работает с ключевыми менеджерами репозиториев:

  • Nexus Repository Manager.
  • JFrog Artifactory.

Поддержка языков и экосистем

AppSec.Track поддерживает анализ библиотек для следующих языков программирования и сборщиков:

  • Java, Scala, Kotlin (maven, gradle, sbt).
  • Python (pip, Conda).
  • JavaScript (NPM, Bower).
  • C# (NuGet).
  • Golang (go sum, go mod).
  • Objective-C, Swift (CocoaPods).
  • PHP (Composer).
  • Ruby (Gem).
  • Rust (cargo) – только в JFrog Artifactory.

Поддерживаемые форматы системных пакетов и контейнеров:

  • APT (Debian, Ubuntu).
  • Docker.

Поддержка ключевых инструментов CI

AppSec.Track работает со следующими инструментами CI:

  • Gitlab CI.
  • Teamcity.
  • Jenkins.

Совместимость с DefectDojo

Начиная с версии 3.11, формат экспорта отчета о сканировании в JSON совместим с DefectDojo, что позволяет настроить импорт результатов с использованием API или производить импорт в ручном режиме.