Как найти уязвимости и не сломать CI/CD-пайплайн

Рассказываем про угрозы безопасности и поиск уязвимостей в контейнерных приложениях на примере сканера уязвимостей и сторонних инструментов в Yandex Cloud.

По результатам опроса наших клиентов, четверть пользователей Yandex Cloud используют облачную платформу для разработки. Применение облачных сервисов уменьшает time-to-market и облегчает организацию разработки, тестирования и доставки кода, а также избавляет от необходимости создавать и поддерживать физическую инфраструктуру. Не нужно думать о том, как реализовать систему виртуализации, оркестрацию контейнеров, как управлять репозиториями и где размещать Docker-образы: об этом позаботятся готовые сервисы облачной платформы.

Растущие угрозы безопасности

Использование облачных инструментов ускоряет цикл разработки. При этом вопросы защиты информации становятся всё более актуальными, а требования регуляторов — более жёсткими. В этих условиях для эффективной разработки качественного программного обеспечения необходимо тесное взаимодействие разных команд: разработчиков, DevOps-специалистов и специалистов по информационной безопасности.

Особенно важно управлять уязвимостями образов, развёрнутых в продуктивной среде. Как отметили специалисты, работающие над большой и подробной базой данных уязвимостей Vulners, в среднем появляется более 70 новых уязвимостей безопасности в день. При этом тенденции сложно назвать позитивными. В 2022 году, по статистике Национального института стандартов и технологий США NIST, был установлен антирекорд — верифицировано 25 тысяч новых уязвимостей. Крупный российский разработчик решений для информационной безопасности Positive Technologies также в последние годы отмечает рост количества веб-приложений с уязвимостями высокой степени риска. На появление таких угроз реагируют и российские регуляторы. Например, в декабре 2022-го ФСТЭК опубликовала требования по безопасности информации к средствам контейнеризации. Одно из требований — выявлять уязвимости в образах контейнеров.

Одна из основных проблем управления уязвимостями — быстро обнаружить их, а это фактически невозможно без специализированных инструментов. В Yandex Cloud создали собственный сканер уязвимостей.

author
Рами Мулейс
Руководитель команды Cloud Trust в Yandex Cloud
author
Анна Бырдина
Ведущий редактор блога Yandex Cloud.

Какой сканер уязвимостей выбрать

На рынке множество сканеров: Aqua Trivy, Clair, Falco, Docker scan. Зачастую это opensource-продукты. Качество и скорость сканирования разнятся. Сравним сторонние решения и сканер уязвимостей при условии развёртывания в Yandex Cloud.

В Yandex Cloud среди компаний — разработчиков ПО популярны сервисы для управления DevOps-платформой GitLab Yandex Managed Service for GitLab, кластерами Kubernetes® — Yandex Managed Service for Kubernetes®, образами и контейнерами Docker — Yandex Container Registry. Поэтому будем исходить из того, что компания хранит код в управляемом GitLab, работает с Docker-контейнерами с помощью управляемого Kubernetes®, а готовые образы хранит в Container Registry.

Для применения сторонних продуктов в таком воркфлоу потребуется решить насколько задач:

  • Договориться с руководителями проекта и коллегами из отделов DevOps и разработки, что для поиска уязвимостей нужно интегрировать отдельный инструмент.

  • Выделить и настроить инфраструктуру для развёртывания сканера уязвимостей.

  • Изменить CI/CD-пайплайн, добавив дополнительный шаг для проверки образа перед его отправкой в Container Registry.

  • Потратить время DevOps-специалиста на поддержку инструмента.

Проверка уязвимостей с помощью интеграции стороннего сканера в DevSecOps

Yandex Managed Service for Kubernetes®

Задача в целом выполнима, но нужно учитывать, что внедрение стороннего продукта трудозатратно и, кроме того, усложняет воркфлоу, что не всегда возможно.

Чтобы использовать сканер уязвимостей Yandex Cloud, не требуется выделять дополнительную инфраструктуру, обслуживать её, заниматься разворачиванием и поддержкой продукта или глобально менять процесс выкладки кода. Затраты на использование сканера уязвимостей зависят от количества и типа сканирований.
Первые шесть первичных и шесть последующих сканирований бесплатны. Начиная с седьмого раза нужно будет платить: за каждое первичное — 13,2 рубля, а за последующее — 7,2 рубля.

Сканер уязвимостей интегрирован в сервис Yandex Container Registry и настраивается с помощью веб-интерфейса. Это позволяет освободить время специалистов ИБ и DevOps.

Проверка уязвимостей с помощью Vulnerability scanner в DevSecOps

Как работает сканер уязвимостей

Сканер уязвимостей с использованием статического анализа проверяет на уязвимости Docker-образы в Container Registry. По результатам сканирования образа пользователь получает отчёт об уязвимостях, обнаруженных в конкретных пакетах ОС, и о версиях этих пакетов с исправлениями, если такие имеются. Для поиска уязвимостей сервис использует публичные базы уязвимостей.

В последней версии сканера мы расширили настройки автоматического сканирования. Реализовано сканирование всех новых образов, и доступны следующие уровни сканирования:

  • Реестра целиком

  • Выбранных репозиториев

В планах — реализовать сканирование отдельных образов и сделать возможность фильтрации по тегу.

Результаты автоматического сканирования можно увидеть при просмотре списка образов в репозитории, а историю сканирования — при просмотре образа.

Мы продолжаем улучшать качество сканирования и расширять настройки. Если у вас есть пожелания о работе сервиса или идеи новых опций, пожалуйста, свяжитесь с нами, и мы вместе сделаем мир безопаснее.

Yandex Container Registry

Напишите нам

Начать пользоваться Yandex Cloud

Тарифы

Узнать цены и рассчитать стоимость

Мероприятия

Календарь событий Yandex Cloud
Как найти уязвимости и не сломать CI/CD-пайплайн
Войдите, чтобы сохранить пост