Определите GHAS и важность его основных характеристик
В этом уроке мы рассмотрим:
- Сканирование секретной информации
- Проверка кода
- Dependabot
- Создание более безопасного жизненного цикла разработки программного обеспечения с помощью ключевых функций
Начнем с быстрого обзора GHAS.
Что такое GHAS?
GitHub Advanced Security (или GHAS) — это решение для обеспечения безопасности приложений, которое помогает разработчикам защитить код и управлять рисками без нарушения рабочего процесса.
GHAS теперь предоставляет возможности в виде двух различных продуктов: GitHub Secret Protection и GitHub Code Security. Это разделение позволяет организациям включить функции, которые лучше всего соответствуют приоритетам безопасности и лицензированию.
Расширенная безопасность встроена в рабочий процесс, чтобы предотвратить уязвимости и утечки учетных данных без замедления разработки. GitHub Advanced Security похож на то, что ваш личный консультант по безопасности просматривает каждую строку кода с аналитическими сведениями от экспертов по безопасности по всему миру.
Обеспечение безопасности приложений и цепочки поставок программного обеспечения никогда не было более важным. Gartner прогнозирует, что к 2025 году 45% глобальных организаций будут затронуты атакой цепочки поставок. Согласно отчету о расследовании нарушений данных Verizon 2022, приложения по-прежнему являются главным вектором атаки и находятся в центре более чем 40% всех нарушений данных.
Включение безопасности в процесс разработки программного обеспечения может показаться сложной задачей, поэтому давайте рассмотрим 3 ключевые функции GHAS и то, как они помогают вашей команде эффективно справляться с новейшими угрозами безопасности: сканирование секретов, сканирование кода и Dependabot.
Сканирование секретной информации
Проверка секретов — это критическая функция безопасности GitHub, которая идентифицирует и помогает предотвратить случайное воздействие конфиденциальной информации, например ключей API и маркеров в исходном коде. Сканирование секретов доступно для всех общедоступных репозиториев бесплатно, а также может быть включено для частных репозиториев с лицензией GitHub Advanced Security (GHAS).
Это помогает предотвратить несанкционированный доступ и защитить конфиденциальные данные. Проверка секретов выполняется путем поиска предопределенных шаблонов и подписей, указывающих на конфиденциальную информацию, обеспечивая оперативное устранение потенциальных рисков безопасности. По умолчанию проверка секретов ищет высоко точные шаблоны, предоставляемые партнером GitHub. Однако пользовательские шаблоны можно создать для других вариантов использования.
Сканирование секретов включает в себя:
- Защита при отправке проактивно предотвращает утечки секретов путем сканирования кода при фиксации изменений и блокирует отправку, если обнаружен секрет.
- Возможность легко просматривать оповещения и устранять их без необходимости покидать GitHub.
В жизненном цикле разработки безопасного программного обеспечения сканирование секретов обнаруживает открытые секреты, позволяя командам отменять или поворачивать их как можно раньше, прежде чем они могут использоваться для вредоносных целей, уменьшая риск нарушений данных и сохраняя конфиденциальность во время разработки.
Затем давайте рассмотрим сканирование кода.
Проверка кода
Сканирование кода является неотъемлемой функцией GHAS, которая анализирует исходный код для уязвимостей безопасности и ошибок кодирования. Он использует статические методы анализа для выявления потенциальных проблем, таких как внедрение SQL, межсайтовые скрипты и переполнение буферов. Предоставляя автоматическую обратную связь непосредственно в рамках рабочего процесса pull-реквестов, сканирование кода позволяет разработчикам устранять уязвимости на раннем этапе процесса разработки.
Сканирование кода улучшает качество кода и помогает свести к минимуму угрозы безопасности, определяя и устраняя проблемы в начале жизненного цикла разработки. Так как правила сканирования постоянно обновляются, сканирование кода также может обнаруживать уязвимости, которые уже могут существовать в рабочей среде.
Dependabot
Dependabot — это автоматизированное средство управления зависимостями, ответственное за поддержание актуальности зависимостей проекта. Он регулярно проверяет наличие обновлений библиотек и фреймворков, используемых в проекте, и автоматически открывает пулл-реквесты для обновления зависимостей до последних безопасных версий.
Dependabot включает:
- Оповещения об известных уязвимостях
- Обновления системы безопасности для уязвимых пакетов
- Обновления версий для поддержания актуальности зависимостей
Dependabot тесно взаимодействует с графом зависимостей, чтобы определить, какие зависимости используются, и сверяет их с базой данных советов GitHub для обнаружения уязвимостей.
С помощью расширенной безопасности GitHub возможности Dependabot расширяются проверкой зависимостей, что позволяет предварительно просмотреть любые уязвимые пакеты, представленные в запросе на включение изменений, и предотвратить добавление небезопасных зависимостей перед слиянием.
Где включить проверку секретов, сканирование кода и оповещения Dependabot
Чтобы включить любое из оповещений на уровне репозитория, сначала перейдите на вкладку безопасности репозитория.
Затем включите оповещения в обзоре системы безопасности.
Теперь, когда мы рассмотрели и включили все 3 целочисленных функций GHAS, давайте поговорим о том, как реализовать все из них для создания более безопасного жизненного цикла разработки программного обеспечения.
Создание более безопасного жизненного цикла разработки программного обеспечения со всеми 3 функциями
Сканирование секретов, сканирование кода и Dependabot совместно способствуют созданию более безопасного жизненного цикла разработки программного обеспечения. Сканирование секретов предотвращает непреднамеренное раскрытие конфиденциальной информации. Сканирование кода определяет и устраняет уязвимости безопасности в базе кода. И Dependabot автоматизирует управление зависимостями.
Интегрируя эти функции, группы разработчиков могут заранее решать проблемы безопасности на каждом этапе жизненного цикла разработки. Этот упреждающий подход сводит к минимуму вероятность возникновения инцидентов безопасности в рабочей среде, что приводит к более устойчивому, безопасному и эффективному процессу разработки программного обеспечения.
Объединенное влияние этих целых функций гарантирует, что безопасность не является автономной, а неотъемлемой частью всего рабочего процесса разработки.
Функции безопасности для проектов открытый код
Общедоступные проекты на GitHub получают преимущества от некоторых функций безопасности по умолчанию, таких как сканирование секретов и граф зависимостей. GitHub автоматически сканирует общедоступные репозитории для шаблонов партнеров и предоставляет оповещения администраторам репозитория. Общедоступные проекты также могут включать проверку кода, Dependabot и проверку зависимостей без лицензии GitHub Advanced Security.
Однако эти функции являются базовыми и могут не обеспечить глубину защиты, необходимую для более сложных проектов или корпоративных сред.
Когда GitHub Advanced Security (GHAS) сопряжен с GitHub Enterprise Cloud (GHEC), комплексный набор функций безопасности становится доступным для внутренних и частных проектов, а также:
- Сканирование кода— поиск потенциальных уязвимостей безопасности и ошибок кодирования в коде.
- Сканирование секретов — обнаружение секретов, например ключей и маркеров, которые были проверены в частных репозиториях. Оповещения о сканировании секретов для пользователей и партнеров доступны и предоставляются бесплатно для общедоступных репозиториев на GitHub.com. Если защита при отправке включена, она также обнаруживает конфиденциальные данные при их отправке в ваш репозиторий.
- Проверка зависимостей — демонстрация полного влияния изменений на зависимости и просмотр сведений об уязвимых версиях перед слиянием пул-реквеста.
В таблице ниже приведены сведения о доступности функций расширенной безопасности GitHub для общедоступных и частных репозиториев.
| Функция | Общедоступный репозиторий | Частный репозиторий без Advanced Security | Частный репозиторий с Advanced Security |
|---|---|---|---|
| Проверка кода | ✅ | ❌ | ✅ |
| Сканирование секретной информации | ✅ | ❌ | ✅ |
| Просмотр зависимостей | ✅ | ❌ | ✅ |