Автоматическая безопасность
Здесь мы обсудим несколько способов автоматизации проверок безопасности в репозитории, доступных администраторам репозитория GitHub.
Обнаружение и исправление устаревших зависимостей с уязвимостями безопасности
Практически каждый проект в эти дни принимает зависимости от внешних пакетов. Хотя эти компоненты могут предложить существенные преимущества в производительности, они могут привести к другим рискам безопасности. Отслеживание этих пакетов и их уязвимостей может занимать много времени, особенно учитывая, что каждая зависимость может иметь свои собственные зависимости, которые трудно отслеживать и поддерживать. К счастью, GitHub предоставляет функции, которые сокращают эту рабочую нагрузку.
Графы зависимостей репозитория
В каждом репозитории по умолчанию включается функция графов зависимостей. GitHub сканирует распространенные манифесты пакетов, такие как package.json, requirements.txtи другие. Эти графы позволяют владельцам проектов рекурсивно отслеживать все зависимости своего проекта.
Список поддерживаемых манифестов зависимостей см. в разделе О графе зависимостей.
Оповещения Dependabot
Даже при использовании графа визуальных зависимостей все равно может быть сложно держать под контролем последние соображения безопасности для каждой зависимости проекта. Чтобы сократить эти накладные расходы, GitHub предоставляет оповещения Dependabot, которые наблюдают за вашими графами зависимостей. Затем он сопоставляет целевые версии с версиями из известных списков уязвимостей. При обнаружении риска проект будет оповещен. Входные данные для анализа поступают из объявлений о безопасности GitHub.
Автоматическое обновление зависимостей с помощью Dependabot
Оповещение о зависимостях может привести к тому, что участник проекта обновил ссылку на некорректный пакет до рекомендуемой версии и создал pull request для проверки. Было бы не здорово, если бы существовал способ автоматизировать эти усилия? Ну, хорошие новости! Dependabot делает это. Он сканирует на наличие оповещений о зависимостях и создает запросы на вытягивание, чтобы участник мог проверить обновление и объединить изменения.
Дополнительные сведения о гибкости Dependabot см. в статье Настройка обновлений безопасности Dependabot.
Автоматическое сканирование кода
Аналогично тому, как Dependabot сканирует репозиторий для оповещений зависимостей, можно использовать сканирование кода для анализа уязвимостей и ошибок безопасности в коде в репозитории GitHub. Сканирование кода имеет несколько преимуществ. Его можно использовать для поиска, анализа и определения приоритетов для существующих проблем или потенциальных уязвимостей безопасности. Это также полезно, чтобы помочь разработчикам предотвратить ввод новых проблем безопасности в код.
Еще одним преимуществом сканирования кода является его возможность использовать CodeQL. CodeQL позволяет запрашивать код в виде данных, что позволяет создавать пользовательские запросы или использовать запросы, поддерживаемые сообществом с открытым кодом. Сканирование кода дает возможность настраивать и поддерживать способ сканирования кода в репозитории.
Вы можете включить оповещения и рабочие процессы сканирования кода на вкладке безопасности репозитория GitHub:
Дополнительные сведения о сканировании кода иCodeQL.
Сканирование секретов
Еще одна функция автоматизированного сканирования в репозитории GitHub — это сканирование секретов. Как и в предыдущих функциях проверки безопасности, сканирование секретов ищет известные секреты или учетные данные, зафиксированные в репозитории. Эта проверка выполняется, чтобы предотвратить использование мошеннического поведения и обеспечить целостность любых конфиденциальных данных. По умолчанию проверка секретов выполняется в общедоступных репозиториях, и вы можете включить проверку секретов на частных репозиториях администраторами репозиториев или владельцами организации.
Когда проверка секретов обнаруживает набор секретных данных, GitHub уведомляет поставщика услуг, выдавшего эти данные. Поставщик услуг проверяет учетные данные. Затем он решает, следует ли отменять секрет, выдавать новый секрет или обращаться к вам напрямую. Действие зависит от связанных рисков, связанных с вами или поставщиком услуг.
Узнайте больше о проверке секретов для общедоступных и частных репозиториев.