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

Настройка политик

Принципы работы

Политики в системе CodeScoring представляют собой механизм отслеживания и блокирования Open Source компонентов в процессе разработки программного обеспечения. Они могут быть связаны с проверкой безопасности, совместимости лицензий или других критериев включения сторонних компонентов в разработку.

Политики можно создавать для:

  • всей организации;
  • отдела;
  • проекта;
  • окружения разработки.

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

Политики настраиваются по условиям, объединенным логическим выражением И/ИЛИ. Помимо стандартных настроек политик безопасности по уровню критичности уязвимостей, условия могут быть настроены согласно информации о компоненте: дата релиза, лицензия, автор и другие. Всего поддерживается 30 типизированных условий. Среди проверок также присутствует встроенная вендорская политика проверки на лицензионную чистоту.

В результате срабатывания политики в системе CodeScoring создаются соответствующие оповещения Policy Alerts. Выбранные оповещения можно временно или навсегда проигнорировать. Оповещения могут быть экспортированы в виде отчета.

Политики могут быть блокирующими: при срабатывании такой политики используемые компоненты блокируются в хранилище артефактов (прокси-репозитории), либо останавливается сборка программного продукта до устранения выявленного дефекта.

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

Настройка в системе

Политики создаются в разделе Settings -> Policies. Перейти на форму создания политики можно по кнопке Create new.

В форме создания политики задается контекст работы политики по следующим параметрам:

  • Name — название политики;
  • Proprietors — собственник кода, на которого распространяется политика, если пустое - политика применяется для всей организации;
  • Projects — проекты, на которые применяется политика;
  • Connect conditions with — логическое объединение выбранных условий;
  • Stages — стадии проекта для которых применяется политика;
  • Level — уровень критичности политики;
  • Blocks build — признак блокировки сборки или установки компонента из прокси-репозитория;
  • Is active — признак временного выключения политики;
  • Description — описание политики;
  • Conditions — перечень условий в политике.

Далее настраиваются условия срабатывания политики, поддерживаются следующие параметры:

  • PURLpackage URL, идентификатор пакета;
  • Dependency Name — название зависимости;
  • Dependency Version — версия зависимости;
  • Dependency Author — автор зависимости;
  • Dependency Release Date — дата релиза версии зависимости;
  • Dependency Age — возраст зависимости;
  • Technology — технология (язык или экосистема);
  • License — лицензия;
  • License Category — категория лицензии;
  • Vulnerability ID — идентификатор уязвимости;
  • CVSS2 Score — численная оценка угрозы по стандарту CVSS 2;
  • CVSS2 Severity — уровень угрозы по стандарту CVSS 2;
  • CVSS2 Access Vector (AV) – путь эксплуатации уязвимости (физический или сетевой);
  • CVSS2 Access Complexity (AC) – сложность эксплуатация уязвимости;
  • CVSS2 Authentication (Au) – требования аутентификации для эксплуатации уязвимости;
  • CVSS2 Availability Impact (A) – степень потери доступности данных;
  • CVSS2 Confidentiality Impact (C) – cтепень потери конфиденциальности данных;
  • CVSS2 Integrity Impact (I) – степень потери целостности данных;
  • CVSS3 Attack Vector (AV) - поверхность атаки;
  • CVSS3 Attack Complexity (AC) - сложность атаки;
  • CVSS3 Priviliges Required (PR) - требуемый уровень доступа для эксплуатации уязвимости;
  • CVSS3 User Interaction (UI) - наличие взаимодействия с пользователем;
  • CVSS3 Scope (S) - область безопасности компонента;
  • CVSS3 Confidentiality (C) - cтепень потери конфиденциальности данных;
  • CVSS3 Integrity (I) - степень потери целостности данных;
  • CVSS3 Availability (A) - степень потери доступности данных;
  • CVSS3 Score — численная оценка угрозы по стандарту CVSS 3;
  • CVSS3 Severity — уровень угрозы по стандарту CVSS 3;
  • Vulnerability Publish Date — дата публикации уязвимости;
  • Vulnerability Update Date — дата обновления уязвимости;
  • Vulnerability has exploit - наличие эксплойта в уязвимости;
  • Vulnerability impacts - область уязвимости;
  • Vulnerability has fixed version – уязвимость исправлена в новой версии;
  • Vulnerability Age (days) – возраст уязвимости (в днях);
  • Env — окружение;
  • Match type — тип соответствия зависимости (по манифесту, содержанию или разрешению);
  • Relation — прямая или транзитивная зависимость;
  • CWE — классификация в индексе Common Weakness Enumeration.

Политика становится активной сразу после создания по нажатию кнопки Create.

Важно! Политики срабатывают во время анализа, поэтому важно их создать до запуска анализа.

Рекомендация! Если оставить поля Proprietor и Project пустыми, политика будет применяться для всех активных проектов в системе.

Результаты работы политик

Результаты работы политик отображаются в разделе Policy alerts. Раздел имеет три вкладки:

  • Active – список уведомлений о сработавших политиках по результатам последнего анализа (проекта, образа или компонента в прокси-репозитории);
  • Ignored – список уведомлений о проигнорированных политиках;
  • Resolved – список уведомлений, которые были разрешены после последнего анализа (условие политики больше не актуально).

Причина срабатывания политики отображается в поле Matched criteria, включая заданные условия и найденные данные о компоненте. Например, значение CVSS3 Score >= 3.00 (9.1) подразумевает, что политика блокирования компонентов с CVSS3 равным или выше 3.00 сработала на компоненте с рейтингом уязвимости 9.1.

Игнорирование политик

Созданные политики можно временно или навсегда проигнорировать при анализе. Условие игнорирования позволит оставить политики в системе, при этом не получая уведомлений о ее срабатывании, например в случае если быстро исправить уязвимость невозможно. Создание и настройка условий игнорирования происходит в разделе Settings -> Policy Ignores.

Для создания условия игнорирования для одной или нескольких политик необходимо нажать на кнопку Create New и заполнить следующие поля:

  • Project - название проекта в системе;
  • Technology - технология (язык или экосистема);
  • Dependency name - название зависимости;
  • Dependency version - версия зависимости;
  • License - лицензия;
  • Vulnerability ID - идентификатор уязвимости;
  • Policies - игнорируемые политики;
  • Is enabled - признак активности условия;
  • Active from - дата начала работы условия;
  • Active to - дата завершения работы условия;
  • Note - заметка.