Автоматическое обеспечение безопасности

Завершено

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

Обнаружение и исправление устаревших зависимостей с помощью уязвимостей системы безопасности

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

Диаграммы зависимостей репозитория

Одна функция по умолчанию каждый репозиторий включает в себя граф зависимостей. GitHub сканирует общие манифесты пакетов, такие как package.json, requirements.txt и другие. Они позволяют владельцам проектов рекурсивно отслеживать все зависимости, на которые полагается проект.

Снимок экрана: граф зависимостей GitHub.

Список поддерживаемых манифестов зависимостей см. в разделе "Сведения о граф зависимостей".

Оповещения Dependabot

Даже при наличии диаграммы визуальных зависимостей по-прежнему сложно оставаться в курсе последних наработок в сфере безопасности для каждой зависимости проекта. Чтобы сократить эти затраты, GitHub предоставляет оповещения Dependabot, которые смотрят граф зависимостей для вас. Затем он создает перекрестные ссылки между целевыми версиями и версиями в известных списках уязвимостей. При обнаружении риска создается оповещение о проекте. Входные данные для анализа берутся в рекомендациях GitHub по безопасности.

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

Автоматическое обновление зависимостей с помощью Dependabot

Оповещение зависимостей может привести к проекту участник сбой ссылки на пакет для рекомендуемой версии и создание запроса на вытягивание для проверки. Было бы замечательно, если бы был способ автоматизировать это? Хорошие новости! Dependabot делает это. Он проверяет наличие предупреждений о зависимостях и создает запросы на включение изменений, чтобы участник мог проверить обновление и влить запрос.

Дополнительные сведения о гибкости Dependabot см. в разделе "Настройка обновлений безопасности Dependabot".

Автоматическое сканирование кода

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

Еще одним преимуществом сканирования кода является возможность использовать CodeQL. CodeQL позволяет отправлять запросы к коду как к данным, что дает возможность создавать пользовательские запросы или использовать запросы, поддерживаемые сообществом разработчиков ПО с открытым кодом. Проверка кода позволяет настраивать и поддерживать проверку кода в репозитории.

Вы можете включить оповещения и рабочие процессы проверки кода на вкладке безопасности репозитория GitHub.

Снимок экрана: список политик, консультантов и оповещений со ссылками на дополнительные сведения.

Дополнительные сведения о сканировании кода и CodeQL

Сканирование секретов

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

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

Дополнительные сведения о сканировании секретов для общедоступных и частных репозиториев.