GitHub опубликовал новый материал серии GitHub for Beginners (сезон три), посвящённый безопасности кода и встроенным инструментам GitHub для поиска и исправления уязвимостей. В предыдущих выпусках разбирались GitHub Issues, Projects и Actions, сейчас акцент сделан на GitHub Advanced Security и его возможностях.
Уязвимости определяются как слабые места в собственном коде или подключаемых библиотеках, которые могут использовать злоумышленники. Разработчик получает риски библиотек сразу после их импорта в проект, даже если сам он не писал уязвимый фрагмент. Поэтому уязвимости встречаются и в небольших или новых репозиториях, где активно используются сторонние пакеты.
GitHub предлагает набор инструментов GitHub Advanced Security (GHAS), который помогает находить и устранять такие проблемы. В публичных репозиториях бесплатно доступны Dependabot, code scanning, secret scanning и Copilot Autofix. Для частных репозиториев понадобится лицензия GHAS. Включение и настройка функций подробно описаны в документации GitHub.
Чтобы начать работу, нужно убедиться, что GHAS активирован, и перейти на вкладку Security в репозитории. На странице безопасности отображаются включённые инструменты и их оповещения: найденные секреты, уязвимые зависимости и рискованные участки кода.
Функция secret scanning помогает защитить ключи и другие конфиденциальные данные. Если разработчик случайно закоммитит API-ключ или токен, secret scanning отобразит предупреждение в разделе Security слева, в пункте Secret scanning. Нажав на оповещение, можно увидеть, какой именно секрет обнаружен и где он находится в репозитории.
Основной способ устранения риска — отозвать скомпрометированный секрет, то есть отключить старый ключ и сгенерировать новый на сервисе, откуда он был получен (например, Azure или Stripe). GitHub не может сделать это автоматически, но secret scanning даёт ранний сигнал, чтобы утечка не переросла в инцидент безопасности. После отзыва ключа соответствующее оповещение в GitHub можно закрыть.
Dependabot помогает поддерживать зависимости проекта в актуальном и более безопасном состоянии. Инструмент предупреждает, если в используемых библиотеках обнаружены уязвимости. Dependabot автоматически превращает рекомендации из GitHub Advisory Database в pull request’ы, чтобы разработчикам не приходилось вручную отслеживать известные уязвимости.
Оповещения Dependabot доступны на вкладке Security. При переходе по ним открывается pull request с обновлением библиотеки. Внутри pull request можно посмотреть детальную рекомендацию, выбрав пункт See advisory в GitHub Advisory Database. Перед слиянием изменений предлагается нажать Review security update и проверить предложенное обновление версии, а затем при необходимости выполнить merge.
CodeQL выступает движком для code scanning и формирует оповещения о проблемах в коде, которые также отображаются на вкладке Security. В отличие от простых линтеров, CodeQL анализирует потоки данных: от входа до места, где данные используются. За счёт этого инструмент способен находить широкий спектр потенциальных уязвимостей.
Каждое оповещение code scanning содержит описание проблемы и, когда возможно, рекомендации по исправлению с примерами. После ознакомления с деталями разработчик может использовать Copilot Autofix для автоматической генерации исправления, следуя шагам, указанным в интерфейсе GitHub.
Авторы материала подчёркивают, что использование GitHub Advanced Security позволяет уверенно находить и устранять уязвимости в коде, а публичные репозитории получают доступ ко всем этим инструментам бесплатно. Для закрепления навыков рекомендуется пройти практические задания в GitHub Skills или поработать с демонстрационным репозиторием vulnerable-node.
Дополнительные материалы и документация по GitHub Advanced Security доступны на сайте GitHub. Автором опубликованного руководства выступает Developer Advocate GitHub Кедаша, которая помогает разработчикам осваивать инструменты платформы и делится опытом работы в индустрии.
Источник: блог GitHub.






















