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

Этапы интеграции

Система композиционного анализа исходных кодов CodeScoring интегрируется в жизненный цикл разработки программного обеспечения в целях предотвращения попадания в конечный продукт известных уязвимостей и лицензионно несовместимых или опасных компонентов на всех этапах создания программных продуктов:

  • Этап поступления заимствованных компонентов из внешних источников в промежуточное хранилище артефактов, прокси-репозиторий, организации;
  • Этап разработки или сопровождения программного кода;
  • Этап сборки программных продуктов;

Общая cхема контролируемых этапов разработки программного обеспечения представлена ниже:

All integration stages

Этап поступления Open Source компонентов

osa

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

Лидерами данного класса решений являются такие системы как Nexus Repository Manager от компании Sonatype и JFrog Artifactory PRO от компании JFrog. На российском рынке явных аналогов не представлено.

Решение CodeScoring обеспечивает интеграцию с обеими представленными системами при помощи специального плагина-расширения CodeScoring OSA. Задача плагина — на каждое обращение к хранящемуся компоненту выполнять проверку на соответствие настроенным политикам (policy compliance) и в случае несоответствия выполнять блокирование загрузки компонента с опциональной возможностью полного удаления из хранилища. Такой подход позволяет не допустить появления новых уязвимых компонентов в хранилищах артефактов, а также удалять уже существующие пакеты при выявлении в них уязвимостей.

Этап сборки программных продуктов

CI

Для сборки программных продуктов разработчики используют средства автоматизации, такие как Gitlab CI/CD, Jenkins, Bitbucket Pipelines. Задача таких средств — обеспечить сборку программного продукта из доступных артефактов, состоящих из собственного кода и сторонних компонентов.

На шаге перед конечной сборкой программного обеспечения в целях безопасности встраиваются:

  • композиционный анализ программного обеспечения Software Composition Analysis для проверки сторонних компонентов;
  • статический анализ приложения на безопасность Static Application Security Testing для проверки для проверки собственного кода.

SCA-системы обеспечивают инвентаризацию программного обеспечения с формированием списка используемых компонентов Software Bill of Materials, идентификацию известных уязвимостей и определение лицензионной чистоты.

Решение CodeScoring обеспечивает три режима идентификации сторонних компонентов в анализируемой кодовой базе:

  • разбор манифестов - списков зависимостей, формируемых разработчиками в ручном или автоматическом режимах;
  • разрешение транзитивных зависимостей - цепочки компонентов, привносимых в продукт зависимостями первого уровня;
  • идентификация прямых включений Open Source библиотек - ситуации, когда сторонний компонент физически копируется в собственную разработку организации и не указывается разработчиками в манифестах пакетных менеджеров.

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

Этап разработки и сопровождения программного кода

Development

CodeScoring поддерживает интеграцию с основными системами хранения и версионирования кода - Github, Gitlab, Bitbucket и Azure DevOps,

Для отслеживания безопасности исходного кода в процессе его написания в системе CodeScoring реализован механизм непрерывного мониторинга рисков Continuous Monitoring. Система проверяет исходный код согласно настраиваемому расписанию сканирования и может сигнализировать о выявленных проблемах в смежные системы, такие как система управления задачами Jira или системы агрегации и оркестрации инцидентов безопасности SOAR/SIEM или просто уведомить ответственного специалиста по электронной почте.