TL;DR Злоумышленники теперь превращают новую уязвимость в работающий эксплойт быстрее, чем большинство команд успевают пересобрать и повторно развернуть образ. Это делает пайплайн сборки последним рубежом обороны для устранения известной проблемы, но проверка в рамках пайплайна сама по себе заканчивается на этапе пуша. Плагин Aquasec для Jenkins сканирует образы контейнеров в рамках Pipeline и Freestyle-задач на соответствие политикам Image Assurance от Aquasec. Те же политики могут пометить проблемный образ как несоответствующий требованиям, благодаря чему компонент Aquasec Enforcer сможет отказаться запускать его в продакшене, даже если этот образ попал в кластер каким-то другим путем.
Что делает интеграция Aquasec и Jenkins?
Большинство организаций уже сканируют образы на каком-то этапе пайплайна. Слабое место заключается в том, что происходит дальше. Сканирование, которое просто записывает отчет и позволяет сборке продолжиться, создает лишь информацию, а образ все равно отправляется в релиз. Сканирование, блокирующее сборку, защищает только этот конкретный пайплайн, но образ, полученный из другого источника или отправленный вручную, никогда не проходит через этот шлюз.
Плагин Aquasec для Jenkins добавляет шаг сканирования непосредственно в процесс сборки. Сканер Aquasec проверяет образ на наличие уязвимостей, вредоносного ПО и конфиденциальных данных, а затем оценивает результаты на основе политик Image Assurance Policies, определенных в платформе Aquasec. В зависимости от настройки задачи, образ, не прошедший проверку, либо приводит к сбою сборки, либо сообщает о проблеме, позволяя сборке продолжиться.
Главное отличие этого шлюза от обычной проверки в пайплайне заключается в том, где именно хранится политика. Политики обеспечения безопасности образов (Image Assurance Policies) определяются один раз в Aquasec и используются в двух местах. В Jenkins они определяют, проходит ли сборка. На этапе выполнения Aquasec Enforcer может пометить несоответствующий образ и предотвратить запуск контейнеров на его основе. Разработчик видит ошибку в логе сборки, а продакшн применяет ровно то же самое решение.
Как работает интеграция Aquasec и Jenkins?
Плагин Aqua Security Scanner устанавливается из центрального репозитория плагинов Jenkins или развертывается вручную из файла .hpi. Он настраивается в разделе Manage Jenkins, System, в секции Aqua Security. Там администратор задает образ сканера Aquasec, URL-адрес сервера Aquasec и токен сканера. Оба значения берутся из команды развертывания группы CI/CD сканеров. Aquasec SaaS поддерживает только аутентификацию по токену, поэтому аутентификация по имени пользователя и паролю для сред SaaS недоступна.
Плагин работает в задачах типов Pipeline и Freestyle. В пайплайне шаг aqua добавляется в скрипт пайплайна, а генератор фрагментов Jenkins (Snippet Generator) может помочь составить синтаксис. При использовании движка Docker плагин сканирует локальные образы, образы в реестрах и архивы docker-archive в формате tar. При использовании Podman (поддерживается начиная с версии плагина 3.1.2) он сканирует локальные образы от имени пользователя с правами root или без них.
Каждая задача определяет судьбу образа, не прошедшего проверку: никогда не прерывать сборку или выполнять действия, заданные в политике Image Assurance Policy. Локальные образы и архивы оцениваются по политике по умолчанию (Default Image Assurance Policy). Образы из реестров проверяются на соответствие каждой политике, в область видимости (scope) которой они попадают. Дополнительные параметры позволяют регистрировать образ в Aquasec после успешного сканирования, скрывать уязвимости базовых образов и выполнять команду оболочки при неудачном сканировании образа.
Результаты отображаются в Jenkins в виде отчета о сканировании Aquasec, организованного так же, как просмотр образа в интерфейсе Aquasec. Кнопка View in Aqua Platform открывает образ в разделе Workload Protection, Images & Functions, Images, CI/CD Scans. Отдельный плагин Aqua Security Serverless Scanner сканирует код бессерверных функций на наличие уязвимостей, конфиденциальных данных и избыточных прав доступа.
Что эта интеграция означает для клиентов Aquasec?
Одна политика принимает решение как на этапе сборки, так и на этапе выполнения. Элементы управления, которые приводят к сбою сборки Jenkins, проверяются компонентом Aquasec Enforcer при запуске контейнера. Команды поддерживают единый набор политик Image Assurance Policies, а пайплайн и кластер приходят к одинаковому выводу в отношении одного и того же образа.
Шлюз не зависит от того, проходят ли все образы через Jenkins. Проверка в пайплайне охватывает только то, что собирает сам пайплайн. Когда поврежденный образ помечается как несоответствующий требованиям, а политика выполнения включает правило блокировки таких образов, Aquasec может остановить запуск этого образа везде, где бы он ни развертывался.
Разработчики получают информацию об обнаруженной проблеме там, где они привыкли работать. Jenkins по-прежнему отвечает за сборку и оркестрацию пайплайна. Aquasec отвечает за сканирование, политику и обеспечение безопасности в работающих воркерах. Разработчик читает результаты в логах сборки, а команда безопасности видит те же результаты сканирования на платформе Aquasec.
Где это важнее всего?
- Операции по безопасности образов. Команда платформы внедряет политику обнаружения вредоносного ПО или конфиденциальных данных. Каждая задача Jenkins, использующая сканирование Aquasec, начинает прерывать сборки, нарушающие эту политику, без необходимости редактировать каждый отдельный пайплайн.
- Снижение рисков в продакшене. Критическая уязвимость попадает в широко используемый базовый образ. Сборки, включающие его, завершаются сбоем в Jenkins, а Enforcer может заблокировать запущенные контейнеры на основе этого образа, если он был развернут до изменения политики.
- Сотрудничество между командами разработки приложений и безопасности. Разработчики устраняют проблему на основе отчета в своей системе сборки. Безопасность проверяет тот же отчет CI/CD сканирования в Aquasec без необходимости запрашивать логи.
- Бессерверные пайплайны. Команды, создающие функции, добавляют бессерверный плагин для проверки кода на предмет избыточных прав и конфиденциальных данных перед деплоем.
Что нужно для начала работы с Aquasec и Jenkins?
Вам понадобятся учетная запись пользователя Aquasec с правом Scanner CLI, группа CI/CD сканеров в Aquasec для получения URL-адреса сервера и токена, а также доступность образа сканера Aquasec на ноде Jenkins. Для сканирования через Podman требуется версия плагина 3.1.2 или выше. Чтобы результаты сканирования пайплайнов отображались в интерфейсе Aquasec, включите настройку сохранения результатов CI/CD сканирования (Save CI/CD Scans). Плагин распространяется через репозиторий плагинов Jenkins.
Клиенты могут следовать руководству по интеграции Aqua с ServiceNow на портале Aqua Docs (требуется вход) для настройки интеграции или запросить демоверсию, чтобы увидеть ее в действии.
Часто задаваемые вопросы (FAQ)
Блокирует ли плагин Aquasec Jenkins сборки автоматически?
Только если вы настроите его соответствующим образом. Каждая задача может либо никогда не прерывать сборки, либо выполнять действия, определенные в политике Aquasec Image Assurance Policy, что может включать прерывание шага Aquasec в CI/CD.
Какие политики Image Assurance Policies применяет Aquasec к сканированию в Jenkins?
Локальные образы и файлы docker-archive проверяются на соответствие политике Default Image Assurance Policy. Образы, размещенные в реестре, проверяются по каждой политике Aquasec, в область видимости которой они попадают.
Может ли Aquasec остановить запуск образа, не прошедшего проверку в Jenkins?
Да, если политика помечает проблемные образы как несоответствующие требованиям, а политика среды выполнения контейнеров включает правило блокировки таких образов. В этом случае компонент Aquasec Enforcer запрещает контейнерам запускать этот образ.
Поддерживает ли плагин Jenkins Podman?
Да. Начиная с версии плагина 3.1.2 поддерживается сканирование локальных образов с помощью Podman от имени пользователя с правами root или без них. Сканирование реестров и архивов использует движок Docker.
Могу ли я сканировать бессерверные функции в Jenkins с помощью Aquasec?
Да. Плагин Aqua Security Serverless Scanner проверяет код функций на наличие уязвимостей, конфиденциальных данных и избыточных прав доступа, а также может прерывать или продолжать конвейер CI/CD, если функция не соответствует требованиям.
Aquasec является лидером в области безопасности среды выполнения, помогая организациям защищать облачные приложения и нагрузки ИИ там, где реально происходят атаки. Платформа Aquasec, созданная на базе архитектуры полноценных агентов, объединяет глубокую видимость среды выполнения с принудительным применением политик в реальном времени внутри запущенных рабочих нагрузок для обнаружения и пресечения угроз в момент их выполнения. Сосредоточившись на эксплуатируемых рисках и обеспечивая немедленную локализацию, Aquasec помогает командам безопасности снижать степень подверженности угрозам и защищать производственные среды, не дожидаясь традиционных рабочих процессов устранения уязвимостей.












