Skip to main content

Настройка конфигурации действия проверки зависимостей

Узнайте, как добавить базовую настройку в конфигурацию проверки зависимостей.

Введение

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

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

Необходимые компоненты

В этом руководстве предполагается, что:

Шаг 1. Добавление действия проверки зависимостей

На этом шаге мы добавим рабочий процесс проверки зависимостей в репозиторий.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Actions.

    Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.

  3. В разделе "Начало работы с GitHub Actions" найдите категорию "Безопасность", а затем нажмите кнопку "Просмотреть все".

  4. Найдите "Проверка зависимостей", а затем нажмите кнопку "Настроить". Кроме того, выполните поиск по запросу "Проверка зависимостей" с помощью строки поиска.

  5. Откроется файл dependency-review.ymlрабочего процесса проверки зависимостей GitHub Actions рабочего процесса . Он должен содержать следующее:

    YAML
    name: 'Dependency review'
    on:
      pull_request:
        branches: [ "main" ]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
          - name: 'Checkout repository'
            uses: actions/checkout@v4
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
    

Шаг 2. Изменение серьезности

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

  1. fail-on-severity Добавьте параметр в конец dependency-review.yml файла:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
    

Шаг 3. Добавление лицензий для блокировки

Уязвимости не являются единственной причиной, по которой может потребоваться заблокировать зависимость. Если у вашей организации есть ограничения на то, какие лицензии можно использовать, можно использовать проверку зависимостей для применения этих политик с deny-licenses помощью параметра. На этом шаге мы добавим настройку, которая будет прерывать сборку, если запрос на вытягивание представляет зависимость, содержащую лицензию LGPL-2.0 или BSD-2-Clause.

  1. deny-licenses Добавьте параметр в конец dependency-review.yml файла:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
              deny-licenses: LGPL-2.0, BSD-2-Clause
    

Шаг 4. Добавление областей

Наконец, мы будем использовать fail-on-scopes этот параметр, чтобы предотвратить слияние уязвимых зависимостей с определенными средами развертывания, в этом случае среда разработки.

  1. fail-on-scopes Добавьте параметр в конец dependency-review.yml файла:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
              deny-licenses: LGPL-2.0, BSD-2-Clause
              fail-on-scopes: development
    

Шаг 5. Проверка конфигурации

Теперь dependency-review.yml файл должен выглядеть следующим образом:

YAML

name: 'Dependency Review'
on: [pull_request]


permissions:
  contents: read


jobs:
  dependency-review:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v4
      - name: Dependency Review
        uses: actions/dependency-review-action@v4
        with:
          fail-on-severity: moderate
          deny-licenses: LGPL-2.0, BSD-2-Clause
          fail-on-scopes: development

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

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

Рекомендации

При настройке конфигурации проверки зависимостей можно выполнить некоторые рекомендации.

  • Выберите списки блокировок по спискам разрешений. Более удобно компилировать список "действительно плохих" зависимостей, которые вы хотите заблокировать, чем создать включающий список всех библиотек, которые вы хотите разрешить.

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

  • Выберите fail-on-severity. Сбой на основе серьезности уязвимости — это хороший способ сбалансировать потребность в безопасности с необходимостью создания низкой нагрузки для разработчиков.

Дополнительные материалы