Документация

Защита и принудительное применение

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

В разделе Безопасность → Настройки доступно Значение по умолчанию для организации , и для каждого проекта на соответствующей ветке. Каждый проект следует этим настройкам по умолчанию, пока кто-то не задаст для него собственную конфигурацию; Использовать значение по умолчанию возвращает исходные параметры. Владельцы и администраторы могут изменять настройки; участники видят их только в режиме чтения.

Режимы наблюдения и принудительного применения

Каждая мера защиты имеет два отдельных состояния:

  • Наблюдение: обнаружение, запись и отображение результатов. Результаты появляются в разделе Безопасность, а Coroid Security проверка в рамках процесса создания запроса на объединение фиксирует их без прерывания процесса.
  • Принудительное применение: прерывание проверки при наличии ошибок. Изменение, вызывающее появление результата с указанным уровнем серьезности и выше, приводит к сбою проверки, и задачи Coroid не создают запрос на объединение дальше этого этапа.

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

ВариантЗначение
Наследовать (значение по умолчанию)Принудительное применение начинается после прохождения этапа готовности платформы для данной меры защиты.
Принудительное применениеТо же самое, но явно задано для данной области применения.
Только наблюдениеПроверка никогда не завершается с ошибкой, независимо от действий платформы.

Каждая мера защиты изначально работает в режиме наблюдения. Coroid включает принудительное применение для каждой меры защиты только после прохождения ею этапа готовности: для зависимостей — прохождение тестов покрытия кода и период наблюдения без ложных срабатываний; для правил проверки секретов и кода — калибровка, описанная ниже, и тот же период наблюдения. До этого момента мера защиты, настроенная на режим Наследовать или Принудительное применение, работает в режиме наблюдения, что отражено в настройках. После прохождения этапа готовности все элементы, оставленные в режиме Наследовать, переходят на принудительное применение; те, кто выбрал режим Только наблюдение, продолжают использовать его.

Режим принудительного применения не означает, что "GitHub блокирует слияние". GitHub блокирует слияние только если в репозитории требуется прохождение Coroid Security проверки. Подробнее см. Разрешения GitHub и проверка безопасности Coroid.

Откалиброванные правила

Проверка утечек секретов и анализ кода применяются только к версиям детекторов, прошедшим калибровку: точность и полнота распознавания на основе набора реального кода и синтетических секретов, частота ложных срабатываний при повторном анализе уже объединенных изменений, каждая зафиксированная ошибка учитывается как критерий успешной работы, а также 14 дней наблюдения без ложных срабатываний.

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

Настройки

Мера защитыПереключательНастроить
Уязвимые зависимостиНаблюдениеПринудительное применение; «Применять при уровне серьезности и выше» (значение по умолчанию — высокий)
Исправление уязвимых зависимостейВключить или выключить«Открывать задачу на исправление при уровне серьезности и выше» (значение по умолчанию — высокий); лимит открытия задач pull request на проект (по умолчанию — 5, максимум — 50); бюджет агентских часов, заданный как значение по умолчанию для организации
Утечки секретовНаблюдениеПринудительное применение. Только для значения по умолчанию организации: блокировка новых секретов и анализ крупнейших изменений.
Анализ кодаНаблюдениеПринудительное применение; собственная команда для анализа; список правил
Рецензирование безопасности запросов на объединениеНаблюдениеПринудительное применение; «Применять при уровне серьезности и выше» (значение по умолчанию — высокий)
Уведомления о безопасности GitHubНаблюдениеНет
Аудит безопасностиВключить или выключитьЧастота: ежедневно, еженедельно (значение по умолчанию) или ежемесячно

Некоторые меры защиты зависят от других параметров:

  • Рецензирование безопасности запросов на объединение требует включенной функции Coroid Review для проекта в разделе Quality Control. Если функция Coroid Review выключена, в строке настроек это указано, и мера защиты не применяется.
  • Исправление уязвимых зависимостей для значения по умолчанию организации также включает и выключает встроенную функцию обязательного исправления уязвимостей. Подробнее см. Создание запросов на исправление.
  • Аудит безопасности работает согласно вашему плану, если вы не измените настройки: включен для платных тарифов, выключен для тарифа Free. Подробнее см. Аудит безопасности.

Функция безопасности работает в соответствии с настройками раздела Quality Control.

Механизмы защиты Безопасности не зависят от правил Quality Control. Отключение функции anti-slop в разделе Quality Control приводит к выключению соответствующих правил качества, но не к отключению правил проверки кода в Безопасности. При создании запросов на объединение изменений Coroid Security выполняет собственную проверку, независимо от того, опубликована ли в проекте схема доставки ПО.

Настройки сканера берутся из Coroid

Сканеры работают с конфигурацией Coroid, которая формируется на основе этих настроек и исключений, разрешенных в разделе Безопасность; файлы из тестируемых изменений для этого не используются. Изменение, добавляющее или редактирующее настройки сканера (osv-scanner.toml, .gitleaks.toml, .gitleaksignore, .github/secret_scanning.yml, .secrets.baseline и аналогичные) проверяются с использованием конфигурации базового коммита и получают security.policy-changed результат проверки. Файл репозитория может предлагать исключение; оно применяется только после того, как владелец или администратор утвердит его в разделе Безопасность. То же правило распространяется и на задачи по исправлению ошибок, создаваемые самим Coroid: агент не может обойти проверку, изменив список исключений.

Настройки привязаны к организации

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