Skip to main content

Поиск и исправление первой уязвимости зависимостей

Узнайте, как защитить свои зависимости, включив Dependabot и включив их функции в демо-репозитории.

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

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

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

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

  1. Перейдите в репозиторий new2code/dependabot-demo .
  2. В правом верхнем углу страницы нажмите «Форк».
  3. На появившемся экране нажмите кнопку "Создать вилку".

Включение функций безопасности зависимостей

Теперь, когда мы настроили проект, давайте настроим Dependabot его на поиск и создание исправлений для небезопасных зависимостей.

  1. В панели навигации вашего репозитория нажмите Security and quality.
  2. В строке "Dependabot alerts" нажмите Включить Dependabot alerts.
  3. В разделе «Dependabot» рядом с «Dependabot alerts», нажмите «Включить».
  4. В появившемся всплывающем окне прочитайте инструкцию о включении граф зависимостей, а затем нажмите кнопку "Включить".
  5. Чтобы автоматически Dependabot открывать pull request, исправляющие уязвимости зависимостей, рядом с "Dependabot security updates", нажмите Включить.

Просмотр небезопасных зависимостей

С Dependabot помощью configured давайте выясним, какие из наших зависимостей содержат уязвимости.

  1. В панели навигации вашего репозитория нажмите Security and quality.
  2. Чтобы увидеть Dependabot alerts для вашего репозитория, в боковой навигации нажмите Dependabot.
  3. Чтобы просмотреть подробные сведения об оповещении, щелкните заголовок оповещения. Для этого упражнения нажмите кнопку "Внедрение команд" в средство синтаксического анализа горячей формулы.

Общие сведения о оповещении Dependabot

Теперь, когда Dependabot выявлены некоторые уязвимости в наших зависимостях, давайте разберём информацию, предоставленную в предупреждении «Введение команд в горячем парсере формулы».

Исправление сводки

Под заголовком оповещения вы увидите краткую сводку по исправлению этой уязвимости, включая количество оповещений, которые он закроет, и расположение уязвимости. В нашем случае предупреждение сообщает, что обновление hot-formula-parser пакета до версии 3.0.1 исправит одно Dependabot оповещение, выявленное в нашем javascript/package-lock.json файле.

В этом разделе Dependabotтакже отслеживается прогресс работы и создаётся pull request для исправления уязвимости. Когда исправление станет доступным, вы увидите кнопку с надписью « Review security update», ведущую к pull request.

Снимок экрана: раздел сводки по исправлению оповещений Dependabot .

Сведения об уязвимости

Ниже приведена информация Dependabot о уязвимости, включая:

  • Имя уязвимого пакета
  • Версии пакета, содержащего уязвимость
  • Версия пакета, исправляющего уязвимость
  • Сведения о типе уязвимости и способах ее использования

Снимок экрана: раздел сведений об уязвимости оповещения Dependabot.

В этом оповещении мы видим, что parse функция в hot-formula-parser пакете не проверяет, безопасна ли входная запись пользователя перед его выполнением, что позволяет злоумышленникам выполнять вредоносные команды.

Совет

Если вы не до конца понимаете детали уязвимости, попробуйте попросить Копилот Чат их объяснить.

Временная шкала

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

Снимок экрана: временная шкала для оповещения Dependabot.

Защита зависимостей

Чтобы быстро и легко обеспечить безопасность нашего проекта, давайте применим созданное исправление Dependabot .

  1. В поле оповещений с описанием исправления нажмите «Просмотреть обновление безопасности».

  2. На странице pull request нажмите «Файлы изменены », чтобы увидеть Dependabotизменения в '. После просмотра изменений нажмите «Разговор », чтобы вернуться к обзору pull request.

  3. Чтобы применить исправление, в нижней части страницы нажмите кнопку "Объединить запрос на вытягивание", а затем нажмите кнопку "Подтвердить слияние".

    После слияния Dependabot pull-запроса связанное оповещение автоматически закроется, и время исправления добавляется к таймлайну.

Предотвращение будущих уязвимостей зависимостей

Чтобы избежать небезопасных зависимостей в будущем, давайте позволим Dependabot автоматически открывать пулл-запросы с обновлением ваших зависимостей по мере выхода новых версий.

  1. В навигационной панели вашего репозитория нажмите «Настройки».
  2. В разделе «Безопасность» боковой панели нажмите Advanced Security.
  3. Рядом с «Dependabot version updates», нажмите Включить.

Следующие шаги

Теперь, когда вы попробовали Dependabot его функции в демо-репозитории, включите их в своих проектах , чтобы легко находить, исправлять и предотвращать уязвимости зависимостей.