Skip to main content

О риске уязвимости в вашем коде и зависимостях

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

Кто может использовать эту функцию?

Требуется GitHub Team или GitHub Enterprise

Риски неустранённых уязвимостей

Ваша организация сталкивается с уязвимостями как в коде, который вы пишете и поддерживаете, так и в open source или сторонних зависимостях, которые использует ваш код. Оценка вашей уязвимости крайне важна, если вы хотите предотвратить:

  •         **Незапланированные простои и операционные нарушения**. Использование уязвимостей может привести к сбоям в работе приложений, ухудшению качества сервиса или каскадным сбоям в критически важных системах, что нарушает вашу бизнес-деятельность.
    
  •         **Увеличение затрат на** исправление. Чем дольше уязвимый код остаётся без решения, тем сложнее и дорого его исправить, особенно если код глубоко интегрирован или если происходят инциденты. Раннее обнаружение и исправление снижают риск дорогостоящего реагирования на инциденты, аварийного исправления и репутационного ущерба.
    
  •         **Широко распространенная распространение риска**. Уязвимые модули и зависимости часто повторно используются в различных приложениях и сервисах, из-за чего одна уязвимость может распространяться по всей организации, увеличивая риски и последствия эксплуатации.
    
  •         **Компрометация** цепочки поставок. Злоумышленники могут использовать уязвимости в open source или сторонних зависимостях для внедрения вредоносного кода, повышения привилегий или получения несанкционированного доступа к вашим системам. Скомпрометированные зависимости могут служить косвенными точками входа для вредоносных субъектов, что приводит к широкому охвату инцидентов безопасности.
    
  •         **Вопросы** регулирования и лицензирования. Многие нормативные акты и отраслевые стандарты требуют от организаций упреждающего решения известных уязвимостей в их цепочке поставок программного обеспечения. Неустранение уязвимых зависимостей может привести к несоблюдению, аудитам, юридическим санкциям или нарушению обязательств по лицензии open source.
    

Регулярная оценка уязвимости помогает выявлять риски на раннем этапе и расставлять приоритеты в устранении.

Способы мониторинга ваших репозиториев на наличие уязвимого кода

  •         **Code scanning** автоматически отслеживает код вашего проекта на наличие уязвимостей. Когда в pull request-запросе обнаружена проблема с безопасностью, он создаёт оповещение с предложением автофикса для устранения уязвимости. Это снижает барьер для разрешения и помогает обеспечить безопасность вашего проекта. См [. раздел AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning).
    
  •         **Dependabot** автоматически отслеживает зависимости вашего проекта на наличие уязвимостей и устаревших пакетов. При обнаружении проблемы безопасности или новой версии он создает запросы на вытягивание для обновления затронутых зависимостей, помогая быстро устранять риски безопасности и обновлять программное обеспечение. Это сокращает усилия вручную и помогает обеспечить безопасность проекта. См [. раздел AUTOTITLE](/code-security/getting-started/dependabot-quickstart-guide).
    

GitHub предоставляет полный набор метрик Dependabot для мониторинга, определения приоритетов и устранения этих рисков во всех репозиториях в вашей организации. См . раздел AUTOTITLE.

Снижение уязвимости организации

Снижение уязвимости организации требует постоянной прозрачности рисков, прогресса устранения и контроля политики во всех хранилищах. метрики Dependabot и code scanning обеспечивают такую видимость. Используйте следующие лучшие практики для мониторинга и снижения уязвимости вашей организации:

Мониторинг метрик уязвимостей для зависимостей

Используйте обзор метрик для Dependabot для получения видимости текущего состояния уязвимостей зависимостей вашей организации. См . раздел AUTOTITLE.

  •         **Оповещение о приоритетах:** просмотрите количество открытых данных Dependabot alerts и используйте фильтры, такие как серьезность CVSS, вероятность эксплойтов EPSS, доступность исправлений и использование уязвимой зависимости в развернутых артефактах. См [. фильтры представлений](/code-security/security-overview/filtering-alerts-in-security-overview#dependabot-dashboard-view-filters) панели мониторинга Dependabot.
    
  •         **Разбивка на уровне репозитория:** определите, какие репозитории имеют наибольшее количество критически важных или эксплойтируемых уязвимостей.
    
  •         **Отслеживание исправления.** Отслеживайте количество и процент оповещений, фиксированных с течением времени, чтобы оценить эффективность управление уязвимостями программы.
    

Мониторинг появления новых code scanning оповещений

Используйте режим оповещений для code scanning, чтобы получить видимость активности по устранению в pull-запросах вашей организации. См . раздел AUTOTITLE.

  •         **Оповещения в pull requests:** Проверьте, сколько оповещений было обнаружено и объединено в стандартную ветку без разрешения.
    
  •         **Самые распространённые правила:** Определите правила, которые часто срабатывают там, где требуется образование разработчиков.
    
  •         **Разбивка на уровне репозитория:** Определите, какие репозитории имеют наибольшее количество оповещений в pull request, но при этом объединённые с стандартной веткой.
    
  •         **Отслеживание исправления.** Отслеживайте количество и процент оповещений, фиксированных с течением времени, чтобы оценить эффективность управление уязвимостями программы.
    

Приоритизируйте усилия по устранению

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

  • Приоритизируйте оповещения высокой или критической степени. Для Dependabot alerts также уделяйте приоритет высоким показателям EPSS и доступным патчам.
  • Используйте информацию о разборе репозитория для направления усилий по устранению наиболее рискованных проектов.
  • Поощряйте команды разработчиков устранять уязвимости, которые действительно используются в развернутых артефактах, с помощью пользовательских свойств репозитория и использования контекста продакшна. См. АВТОЗАГОЛОВОК.
  • Создавайте кампании безопасности для поощрения и отслеживания устранения приоритетных code scanning оповещений. См. Создание кампаний безопасности и управление ими.

Сообщайте о рисках и прогрессе

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

Устанавливать и обеспечивать соблюдение политик

  • Установите конфигурацию безопасности для всей организации, которая позволяет Dependabot и code scanning на всех существующих и новых репозиториях. См . раздел AUTOTITLE.
  • Включите проверку зависимостей для комментирования pull requests во всех репозиториях.
  • Создайте общеорганизационный набор правил для защиты стандартной ветки и требуйте исправления критических code scanning перед объединением pull-запроса. См . раздел AUTOTITLE.
  • Обратитесь к администраторам репозитория, чтобы включить автоматические обновления системы безопасности по возможности. См . раздел AUTOTITLE.

Оценить влияние оповещений

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