Знакомство
Современные приложения сильно зависят от компонентов с открытым кодом и сторонних библиотек. Хотя эти зависимости ускорят разработку и обеспечивают проверенные функциональные возможности, они также представляют уязвимости безопасности и риски соответствия лицензий. Анализ композиции программного обеспечения (SCA) предоставляет автоматизированные средства и процессы для выявления, отслеживания и управления рисками безопасности и соответствия требованиям в цепочке поставок программного обеспечения.
Без систематического анализа зависимостей организации не знают об уязвимостях в своих приложениях до тех пор, пока не возникают нарушения. Исследователи безопасности обнаруживают тысячи новых уязвимостей в компонентах с открытым исходным кодом ежегодно, а приложения, использующие затронутые версии, остаются уязвимыми до обновления зависимостей. Отслеживание зависимостей вручную в нескольких сотнях приложений является нецелесообразным, требуя автоматизированных решений SCA.
Этот модуль предоставляет исчерпывающие рекомендации по реализации анализа композиции программного обеспечения в рабочих процессах разработки. Вы узнаете основы SCA, реализуйте автоматическое обнаружение уязвимостей с помощью GitHub Dependabot, интегрируете средства SCA в Azure Pipelines, автоматизирует сканирование контейнеров и интерпретируете оповещения системы безопасности, чтобы эффективно определять приоритеты исправления.
Содержание обучения
В этом модуле рассматриваются основные знания по реализации анализа композиции программного обеспечения:
Общие сведения о анализе композиции программного обеспечения: Вы узнаете, что такое SCA, почему это важно для современной разработки, какие средства SCA обнаруживают, и преимущества автоматического сканирования зависимостей. Общие сведения об основах SCA помогают определить, почему управление зависимостями вручную не масштабируется и как автоматизированные средства обеспечивают непрерывную видимость рисков безопасности и соответствия требованиям.
Инспекция и валидация кодовых баз: Вы узнаете, как составлять инвентаризацию всех зависимостей в ваших приложениях, проверять соответствие лицензий для избежания юридических проблем, выявлять известные уязвимости безопасности с помощью баз данных CVE, а также оценивать качество зависимостей, включая статус их поддержки и состояние сообщества.
Реализация GitHub Dependabot: Вы узнаете, как GitHub Dependabot автоматически сканирует зависимости на наличие уязвимостей, создает запросы на вытягивание с обновлениями безопасности, генерирует графы зависимостей для отображения транзитивных зависимостей и интегрируется с вкладкой GitHub Security для централизованного управления уязвимостями.
Интеграция SCA в конвейеры: Вы узнаете, как реализовать автоматическую проверку в Azure Pipelines во время сборки и развертывания, настроить средства SCA, включая Mend (WhiteSource), Snyk и OWASP Dependency-Check, установить шлюзы качества, которые прерывают сборку при обнаружении критических уязвимостей, и создать список материалов программного обеспечения (SBOM) для соответствия требованиям и прозрачности.
Изучение средств SCA: Вы будете сравнивать различные решения SCA, чтобы понять их сильные стороны, ограничения и идеальные варианты использования. Средства включают коммерческие предложения, такие как Mend и Snyk, которые обеспечивают комплексное сканирование с поддержкой, варианты с открытым исходным кодом, такие как OWASP Dependency-Check для эффективного сканирования, а также решения, интегрированные с платформой, такие как верхнеуровневые источники Azure Artifacts и GitHub Dependabot.
Автоматизация сканирования контейнеров: Вы узнаете, как сканировать базовые образы контейнеров для уязвимостей, анализировать зависимости приложений в контейнерах, интегрировать сканирование контейнеров в конвейеры CI/CD и настраивать реестры контейнеров, такие как Реестр контейнеров Azure и Центр Docker, чтобы блокировать уязвимые образы автоматически.
Интерпретация оповещений сканера: Вы узнаете, как оценивать уровень серьезности уязвимостей с помощью показателей CVSS, оценивать эксплуатацию, учитывая, доступны ли уязвимости в вашем приложении, определять приоритеты исправления на основе влияния на бизнес и риска, а также управлять ложными срабатываниями, которые могут перегружать команды, если они не будут правильно отфильтрованы.
Цели обучения
После завершения этого модуля вы сможете:
- Общие сведения о анализе композиции программного обеспечения (SCA) и узнайте, почему автоматическое сканирование зависимостей является важным для управления рисками безопасности и соответствия требованиям в современных приложениях, созданных из компонентов с открытым кодом.
- Проверка и проверка баз кода путем инвентаризации всех зависимостей, включая транзитивные зависимости, проверку соответствия лицензий, обнаружение известных уязвимостей с помощью баз данных CVE и оценку качества зависимостей.
- Реализуйте GitHub Dependabot для автоматического обнаружения уязвимых зависимостей, получения pull-запросов с обновлениями безопасности, визуализации графов зависимостей и интеграции оповещений об уязвимостях с вкладкой "Безопасность" в GitHub.
- Интегрируйте проверки SCA в Azure Pipelines реализуя автоматическое сканирование во время сборки, настройки шлюзов качества, которые отклоняют сборки при обнаружении критических уязвимостей, создавайте отчеты о соответствии и создавайте спецификации компонентов программного обеспечения (SBOM).
- Изучите и настройте средства SCA , включая коммерческие решения, такие как Mend (WhiteSource) и Snyk, инструменты с открытым кодом, такие как OWASP Dependency-Check, и решения, интегрированные с платформой, такие как источники вышестоящих артефактов Azure.
- Автоматизация сканирования образов контейнера для обнаружения уязвимостей в базовых образах и зависимостях приложений, интеграции сканирования в рабочие процессы CI/CD и настройки реестров для предотвращения развертывания уязвимых контейнеров.
- Интерпретация оповещений от средств сканирования путем оценки серьезности с помощью показателей CVSS, определения эксплуатируемости и доступности, приоритизации исправлений на основе воздействия на бизнес и эффективного управления ложными срабатываниями.
Необходимые условия
Для работы с этим модулем требуется следующее:
- Понимание зависимостей программного обеспечения: Основные знания о том, как приложения используют библиотеки, платформы и пакеты из диспетчеров пакетов, таких как npm, pip, NuGet или Maven.
- Знакомство с понятиями DevOps: Понимание непрерывной интеграции, непрерывной доставки, конвейеров сборки и жизненного цикла разработки программного обеспечения.
- Опыт работы с системами управления версиями: Базовый опыт работы с Git, pull-запросами и ревью кода в рабочих процессах управления зависимостями.
- Осведомленность с открытым кодом: Общее понимание того, что компоненты с открытым исходным кодом могут содержать уязвимости безопасности и иметь требования к лицензии (знания из предыдущих модулей полезны).
- Интерфейс Azure DevOps или GitHub: Знакомство с Azure Pipelines или GitHub Actions для реализации автоматического сканирования в рабочих процессах CI/CD.
Опыт работы в организациях, которые предоставляют программное обеспечение, являются полезными, но не требуются. Этот модуль основан на концепциях программного обеспечения с открытым исходным кодом и предоставляет практические рекомендации по реализации для анализа композиции программного обеспечения.