При комплексном сканировании контейнера SCA применяется именно к контейнерам в сочетании с другими анализами, характерными для контейнеров, например, как они настроены для развертывания и наличие секретов.
Как работает SCA-сканирование?
Инструменты SCA начинают работу со сканирования, чтобы получить инвентаризацию всех компонентов с открытым исходным кодом, будь то отдельный файл или целое хранилище. SCA-сканирование образа контейнера ничем не отличается от этого, но SCA-сканеры, предназначенные для работы с контейнерами, обычно настраиваются на сканирование каждого слоя, отслеживая, какие компоненты находятся на каждом слое в процессе сканирования. После того, как этот список составлен, инструмент SCA собирает информацию о каждом компоненте, например, какую лицензию с открытым исходным кодом он использует, о каких уязвимостях для него сообщалось, а также о степени серьезности и возможности эксплуатации каждой уязвимости.
Зачем проверять контейнеры на уязвимости?
Как и у большинства современных программ, основная часть кода, из которого состоят образы, как правило, имеет открытый исходный код. Контейнеры увеличивают преимущества открытого кода, позволяя организациям создавать большие, сложные и уникальные приложения быстрее, чем когда-либо.
Но контейнеры также добавляют еще один уровень сложности, что может увеличить риск и привести к пропущенным уязвимостям. Сканирование образа контейнера предоставит список всех известных уязвимостей в коде, а хороший инструмент сканирования поможет командам безопасности определить приоритетность этих уязвимостей на основе возможности их использования и серьезности.
Одной из весомых причин для регулярного сканирования образов контейнеров на наличие уязвимостей является то, что контейнеры предназначены для повторного использования кода. Это часть того, что делает их такими легкими, но это также может привести к появлению устаревших и неисправленных компонентов в образе контейнера.
Поиск уязвимостей, которые создают риски для безопасности, является основной задачей большинства организаций, которые сканируют свои контейнеры. Однако «побочные продукты» (byproducts) сканирования образа контейнера, а именно информация о лицензиях на открытое программное обеспечение и создание SBOM, также часто интересуют юридические отделы и отделы комплаенса.
За пределами открытого кода: преимущества сканирования контейнеров
Комплексный инструмент для сканирования контейнеров не останавливается на компонентах с открытым кодом и их уязвимостях. Он также сканирует файлы в поисках секретов, которые были размещены в незащищенных местах. Секреты – это конфиденциальные учетные данные, такие как пароли, ключи и токены, которые могут быть чрезвычайно опасными в руках злоумышленника. Это очень опасно, если разработчики оставили их в открытом виде в исходном коде или файлах конфигурации, что, к сожалению, может легко произойти в среде быстрой разработки.
В дополнение к секретам, инструмент сканирования контейнера проверяет файлы инфраструктуры как кода (IaC) на наличие неправильных конфигураций, которые делают контейнер уязвимым для атак. Неправильные конфигурации – это небольшие (в смысле количества кода) ошибки, которые обычно легко исправить, но если их не обнаружить – а это можно легко сделать в большой кодовой базе – и не исправить, то приложение может подвергнуться огромному риску.
Сканирование образов контейнеров на наличие уязвимостей
Большинство доступных инструментов делают сканирование простым процессом, независимо от того, запускается ли сканирование вручную в командной строке или настраиваете автоматическое сканирование как часть конвейера CI/CD.
Сканирование образов контейнеров можно настроить на запуск во время сборки, чтобы найти уязвимости в открытом коде и неправильно управляемые секреты до того, как они попадут в кодовую базу, что приведет к сбою сборки, при нарушении установленной политики.
Образ контейнеров также можно сканировать в масштабе на уровне частного реестра, чтобы получить более полную картину рисков безопасности и определить приоритетность исправления контейнеров с наибольшим риском. Контейнеры также можно сканировать как кластеры Kubernetes, чтобы определить приоритетность контейнеров, которые в настоящее время используются в производстве.
Процесс будет отличаться в зависимости от того, какой инструмент используется. Например, с помощью Mend SCA через командную строку или пользовательский интерфейс.
Что такое сканирование во время выполнения контейнера?
Понятие «сканирование во время выполнения контейнера» можно трактовать как использование инструментов для сканирования образов контейнеров, которые уже активно используются в производстве.
Эти сканирования похожи на упомянутые выше, за исключением того, что инструмент сканирования взаимодействует с Kubernetes, чтобы увидеть, какие образы в сканируемом репозитории в данный момент запущены как контейнеры в кластере K8. Это помогает командам определить приоритетность исправлений, поскольку неработающий контейнер может иметь много уязвимостей, но на данном этапе они не могут быть использованы.
Помимо уязвимостей с открытым исходным кодом, образы контейнеров могут иметь конфигурации, которые меняются со временем, то есть в среде запущенных приложений они отличаются от тех, что определены в файлах IaC, из-за не отслеживаемых изменений со стороны человека, нежелательных изменений, внесенных приложениями, или изменений, которые не переносятся из среды в среду из-за неправильных конфигураций. Сканирование контейнеров во время выполнения может выявить общие причины смещения конфигурации.
Вывод
SCA-сканирование и сканирование контейнеров имеют схожую сферу применения и схожие возможности, но сканирование контейнеров добавляет специфические для контейнеров функции, такие как сканирование каждого слоя отдельно, обнаружение секретов и обнаружение неправильных конфигураций.







