Перейти к содержанию
AM_Bot

Контейнеры для приложений: риски безопасности и ключевые решения по защите

Recommended Posts

AM_Bot
Контейнеры для приложений: риски безопасности и ключевые решения по защите
Хотя сама по себе технология контейнеризации — это не новое явление, за последние 3—5 лет её популярность возросла на фоне принятия методологии DevOps. Разработчики полюбили контейнеры за простоту и избавление от проблем совместимости. Однако для эффективного и безопасного перехода к микросервисной архитектуре необходимо обеспечить защиту среды контейнеризации и программных образов в совокупности. На рынке ИБ доступны два универсальных решения, с помощью которых можно этого добиться: Aqua Cloud Native Security Platform и Prisma Cloud Compute Edition. ВведениеПринципы работыРиски, связанные с контейнерной технологиейОбзор решений по защите контейнеров4.1. Архитектура4.2. Функциональность4.3. Защита во время исполнения (runtime)4.4. Сетевой экран веб-приложений (WAF) от Prisma Cloud Compute4.5. Виртуальный патчинг от Aqua SecurityВыводы ВведениеПрименение технологии контейнеризации для работы приложений прогрессирует заметными темпами, и согласно исследованию 451 Research ожидается, что в 2020 году скорость роста увеличится ещё на 40%. Gartner прогнозирует, что к 2022 году более 75% организаций будут использовать контейнерные технологии, а объём этого рынка составит 4,3 миллиарда долларов США.Такой рост обусловлен переходом от виртуальных машин и монолитных приложений к микросервисной архитектуре, обладающей следующими преимуществами:Все зависимости — внутри контейнера. Это упрощает развёртывание приложения. Больше нет необходимости устанавливать дополнительные библиотеки и настраивать сторонние компоненты для корректной работы программы.Гарантированная воспроизводимость. Хранение внутри образа всех необходимых зависимостей, названий переменных и конфигурационных файлов гарантирует, что приложение, развёрнутое из этого образа, сможет запуститься.Небольшой размер образа. В отличие от образов виртуальных машин, размер которых порой исчисляется десятками гигабайт, правильно собранный образ контейнера может занимать всего лишь несколько килобайт.Небольшое потребление ресурсов. Вследствие того что контейнер представляет из себя лишь упакованное приложение, а нередко — и лишь один процесс, сильно уменьшается нагрузка на ресурсы «железа».Все эти преимущества позволяют снизить операционные расходы на разработку и эксплуатацию приложений. Рисунок 1. Визуальное представление работы контейнеров и виртуальных машин на сервере  Принципы работыПеред тем как начать говорить об уязвимостях технологии контейнеризации, необходимо погрузиться в базовые принципы её работы.Одно из самых известных в мире решений для контейнеризации — Docker. Для того чтобы упаковать приложение в образ Docker, необходимо составить т. н. «докер-файл». Он включает в себя описание используемых зависимостей, конфигурационные файлы, пароли, а также команды для сборки этого приложения. Рисунок 2. Пример того, как может выглядеть докер-файл для простого приложения, написанного на языке Python  После написания докер-файла и запуска команды сборки образ Docker собирается и отправляется в реестр (registry). Реестр может быть как приватным (внутри организации), так и публичным (например, Docker Hub). Рисунок 3. Архитектура работы Docker  Как правило, один контейнер представляет собой единственный процесс на хостовом сервере, и этого зачастую недостаточно для работы крупного корпоративного приложения. Приложение становится микросервисным, то есть состоящим из множества работающих вместе контейнеров.Комплексное корпоративное приложение требует обеспечения отказоустойчивости, балансировки, контроля трафика, бесшовного обновления, автоматического восстановления и т. д. С этими задачами прекрасно справляются средства оркестровки: Kubernetes или OpenShift. Оркестратор состоит из рабочих (worker) нод, на которых исполняется продуктивное приложение, и мастер-ноды, которая обеспечивает централизованное управление системой.Применение Docker, Kubernetes и микросервисов нашло своё успешное применение в DevOps на этапах тестирования публикуемого разработчиками кода, а также размещения в продуктивной среде. Рисунок 4. Пример конвейерной последовательности («пайплайна») CI / CD  Риски, связанные с контейнерной технологиейНесмотря на преимущества, которые даёт контейнеризация приложений, существует и ряд уязвимостей, которые не позволяют внедрить эту технологию повсеместно, без оглядки на безопасность.Первый риск — развёртывание контейнера из уязвимого образа, т. е. такого, который содержит уязвимый пакет, вредоносную программу или открытые пароли. Подобный образ, например, может быть скачан из публичного реестра. Рисунок 5. Верхнеуровневая схема атаки на сервер с помощью уязвимого образа  Рисунок 6. Сборка образа посредством импорта вредоносной программы, файла паролей, перечня уязвимых пакетов  Уязвимость может также содержаться в базовом образе. Согласно исследованиям компании Snyk, 10 самых популярных образов в Docker Hub содержат ошибки безопасности системных библиотек. Официальный образ Node.js включает в себя 580 уязвимых системных библиотек. Остальные образы из списка содержат не менее 30 общеизвестных программных изъянов. Рисунок 7. Число уязвимостей в самых популярных образах на Docker Hub  Помимо образов Docker источником уязвимостей также может являться развёрнутый контейнер. Наличие вредоносного кода, уязвимостей ПО несёт риск того, что злоумышленнику удастся скомпрометировать развёрнутый контейнер, использовать его с повышенными привилегиями, получить доступ к ОС хостового сервера, а далее запустить дочерние вредоносные процессы, подключиться к сторонним ресурсам в интернете, получить доступ к файловой системе и распространить атаки на соседние контейнеры.Риски для безопасности могут также скрываться в слабых настройках и уязвимостях компонентов Kubernetes. Для API-сервера это, например, — возможность анонимного доступа или осуществления неавторизованных запросов, отсутствие RBAC, использование небезопасных портов. Для хранилища Kubernetes (etcd) под слабыми настройками могут подразумеваться небезопасные методы подключения, возможность соединения без использования сертификатов. Рисунок 8. Угрозы, исходящие от отсутствия мер защиты среды контейнеризации, и их последствия  К числу других проблем относится контроль событий контейнеров и хостов. В условиях, когда средний срок службы контейнера — несколько часов или даже минут, мониторинг текущих процессов может быть особенно сложной задачей. Обзор решений по защите контейнеровПроведём сравнение двух наиболее распространённых enterprise-решений такого рода, которые представлены на российском рынке: Aqua Cloud Native Security Platform (CSP) и Prisma Cloud Compute Edition(до покупки Palo Alto Networks имевшего название Twistlock).Основная функциональность обоих решений:Автоматическая проверка конфигурации на предмет соответствия лучшим практикам для сокращения риска компрометации.Контроль взаимодействия (firewall) между элементами контейнеризации (поды, сервисы) для сокращения риска распространения атаки.Проверка образов контейнеров в процессе разработки для сокращения риска развёртывания уязвимых образов в продуктивной среде.Проверка развёрнутых контейнеров на предмет наличия уязвимостей, открытых паролей, аномальной активности и несоответствия политикам безопасности для сокращения ущерба от атак и кражи паролей.Сбор и анализ событий, поступающих от контейнеров и хостов, для обеспечения контроля за инцидентами и эффективного реагирования. Архитектура Рисунок 9. Архитектура Aqua CSP  Оба решения включают в себя два компонента, разворачиваемых в виде контейнеров: консоль управления (Twistlock Console и Aqua Console) и агент сканирования (Twistlick Defender и Aqua Enforcer).В число функций консоли входят:предоставление интерфейса для интерактивного управления решением;интеграция со сторонними программными компонентами (SIEM, средство запуска CI / CD);сканирование образов контейнеров в реестре.Агенты сканирования мониторит безопасность запущенных контейнеров во время их выполнения, чтобы обеспечить соблюдение политик, настроенных администратором системы с помощью пользовательского интерфейса на консоли. Агент также гарантирует, что только зарегистрированные и отсканированные образы будут работать на хостах, на которых установлен агент.Обоим решениям требуется выход в интернет для подключения к собственным базам знаний. База знаний используется при сканировании образов, контейнеров и хостов на предмет уязвимостей и вредоносных программ, содержит чёрный список IP-адресов, актуальные оценки производительности («бенчмарки») и так далее.С точки зрения архитектуры Aqua CSP отличается тем, что в ней есть два дополнительных компонента — Aqua Gateway и вынесенная за пределы консоли база данных. Aqua Gateway осуществляет взаимодействие между Aqua Console и Aqua Enforcer и размещается по одному компоненту на кластер, в случае если ваши сервисы размещены на разных кластерах. База данных содержит информацию, касающуюся конфигурации Aqua CSP (политики безопасности, роли и пользователи, параметры), и результаты аудита безопасности. Также в отличие от Prisma Cloud Compute, где БД размещена внутри консоли, Aqua позволяет вынести базу данных за пределы кластера на существующих серверах. ФункциональностьСравнение функциональных возможностей двух платформ представлено в таблице ниже. Таблица 1. Сопоставление Aqua Cloud Native Security Platform и Prisma Cloud Compute Edition№ПараметрAqua Cloud Native Security PlatformPrisma Cloud Compute Edition1.Метод развёртыванияAqua Enforcer — контейнер на хостTwistlock Defender — контейнер на хост2.Варианты развёртыванияКак в облаке, так и в локальной инфраструктуре (on-premise)3.КомпонентыAqua Server — центральный компонент управления Aqua Security Platform;Aqua Gateway — обеспечивает взаимодействие между компонентом управления и Aqua Enforcer, а также отправку событий в сторонние системы (SIEM, IRP);Aqua Enforcer — обеспечивает защиту среды выполнения контейнеров, хостов, виртуальных машин и лямбда-функций;PostgreSQL DB — база данных, используемая компонентами Aqua;Aqua CyberCenter — облачная служба данных киберразведки от лучших мировых сервисов: NVD, Mitre, CVSS, Red HatTwistlock Console — основной компонент управления. Выполняет сканирование образов. Поставляется с внутренней базой данных без возможности использования внешней БД;Twistlock Defender — обеспечивает защиту среды выполнения контейнеров и хостов;Twistlock Intelligence Stream — облачная служба данных киберразведки от лучших мировых сервисов: NVD, Mitre, CVSS, Red Hat4.Организация взаимодействия компонентов кластера по SSLВсё взаимодействие между компонентами происходит по зашифрованному каналу. Взаимодействие контейнерной среды по SSL обеспечивается средствами оркестратора5.Возможность настройки использования TLS-сертификатов для шифрованного взаимодействияСертификат выписывается внутренним УЦ решения для взаимодействия всех компонентов. Сертификаты для контейнерной среды настраиваются оркестратором6.Возможность написания правил для ограничения взаимодействия контейнеровФункциональность списков контроля доступа (ACL), сетевого экрана для создания правил взаимодействия контейнеров, хостов, виртуальных машин;функциональность объединения групп контейнеров, хостов, виртуальных машин в сервис с возможностью обучения сетевого взаимодействия внутри него (или между сервисами), а также автоматического создания правил и карты сетевого взаимодействия;утилита Kube-hunter, позволяющая проводить простые тесты на проникновение и эмулировать атаки на кластер Kubernetes с составлением отчётаФункциональность списков контроля доступа (ACL), сетевого экрана для создания правил взаимодействия контейнеров, хостов;обучение сетевого взаимодействия контейнеров и хостов, составление карты взаимодействия и предложения автоматических правил;функциональность брандмауэра веб-приложений (WAF)7.Визуализация взаимодействия между компонентами (пространства имён, поды)Поддержка полной визуализации взаимодействия между компонентами кластера (-ов) в консоли управления8.Сканирование образов в реестрах на наличие уязвимостейСканирование на уязвимости, наличие критических данных внутри контейнеров (приватные ключи, пароли), вирусы;сканирование хостов на наличие образов / контейнеров, не хранящихся ни в одном репозитории;сканирование библиотек исходного кода приложения на наличие уязвимостей с использованием CTI Feeds (Aqua CyberCenter);применение техник виртуального патчинга на время устранения найденной уязвимости или ожидания патча от вендораСканирование на уязвимости, наличие критических данных внутри контейнеров (приватные ключи, пароли), вирусы;сканирование хостов на наличие образов / контейнеров, не хранящихся ни в одном репозитории;сканирование библиотек исходного кода приложения на наличие уязвимостей;возможность определения собственных типов уязвимостей и импорта MD5-сумм бинарных файлов9.Сканирование образа на наличие открытых паролейСканирование на наличие критических данных внутри образов (приватные ключи, пароли) или в коде приложения10.Проверка цифровой подписи контейнера перед его развёртыванием на нодеПроверка хеш-суммы образа. Контейнер подписывается внутренним УЦ Aqua. Дополнительная подпись и проверка реализуются оркестраторомПроверка хеш-суммы образа. Дополнительная подпись и проверка реализуются оркестратором11.Защита контейнеров от изменений. Контроль среды выполненияЗащита от изменений при помощи хеширования содержимого каждого образа;защита от изменений согласно определённым политикам среды выполнения;запрет на выполнение;запрет доступа к файлам, режим «только чтение»;запрет исполнения команд ОС;запрет подключения с определённых IP-адресов;запрет повышения привилегий, использования учётной записи «root»;запрет доступа к определённым пакетам ОС;запрет на сканирование портов, блокировка ненужных портов;запрет использования нестандартных базовых образов12.Поддержка протоколов автоматизации управления данными безопасностиSCAP13.Наличие собственного хранилища секретовВстроенное хранилище секретов Aqua Secret Key Store; интеграция со сторонними Key VaultИнтеграция со сторонними Key Vault14.Управление секретами и мониторинг доступаНазначение секретов на контейнеры, хосты; изменение, удаление, добавление через консоль управления; подставление или переназначение секретов во время выполнения (runtime)Только через сторонний Key Vault15.Поиск уязвимостей на хостеСканирование хоста на уязвимости, вирусы аналогично контейнерам16.Профилирование контейнераОбучение модели на основе работы контейнера (поведенческой модели, в том числе и сетевого взаимодействия) в течение указанного периода. Создание профиля и применение его к другим контейнерамОбучение модели на основе работы контейнера в течение 24 часов17.Ограничение ресурсов контейнера (использование AppArmor, SELinux, cgroups)Контроль запуска контейнеров по критерию «запущены или нет»: Seccomp, SELinux, apparmorКонтроль запуска контейнеров по критерию «запущены или нет»: SELinux, apparmor18.Проверка конфигурации k8sВстроенная проверка на различные требования (compliance): CIS (Docker CIS, Kubernetes CIS)19.Реализация POD security policyРеализуется только функциональностью Kubernetes20.Шифрование данных, хранящихся в etcdРеализуется только функциональностью оркестратора21.Протоколирование действий пользователейОсуществляется запись в журнал следующих событий:действия в консоли,действия, связанные с Container Engine,действия внутри контейнера (имя пользователя, имя контейнера, имя образа, ID процесса),события, связанные с найденными уязвимостями,действия, связанные с использованием Docker API или команд на контейнере, хосте,действия, связанные с использованием LambdaFunction,события по политикам Host Runtime,действия на хостах,события успешных / неуспешных попыток входа,действия пользователей в оркестраторе22.Мониторинг чтения / записи файлов, атрибутов, директорий на хостеПоддерживается23.Отслеживание аномальной активности на хосте (например, брутфорс)Аудит всех действий на хосте, всех исполняемых процессов, использования команд и передаваемых аргументов, сетевых взаимодействий с участием хоста24.Реализация модели доступа RBACРолевая модель реализуется только по доступу к консоли управления. Есть возможность определять свои роли с настройкой доступов на чтение / изменение к определённым компонентам25.Управление сертификатами (PKI)Реализуется при помощи оркестратора26.Проверка на соответствиеPCI, GDPR, HIPAA, NIST SP 800-190PCI, GDPR, HIPAA, NIST SP 800-19027.Поддерживаемые реестры образов (image registries)Amazon EC2 Container Registry;Google Cloud Platform Container Registry;Azure CR;Cloud Foundry Registry;Harbor;Docker;CoreOS Quay;JFrog Artifactory;OpenShift Container Registry;Red Hat Atomic Registry;Sonatype Nexus Repository OSS;любой другой реестр, поддерживающий APIAmazon EC2 Container Registry;Google Cloud Platform Container Registry;Harbor;Docker;JFrog Artifactory;Sonatype Nexus Repository OSS28.CI / CDGoCD, TeamCity, Bamboo, GitLab, Jenkins, CircleCI, Azure DevOpsJenkins plugin; Twistcli — плагин по интеграции через API к CI / CD. Доработок не требуется29.РеестрыDocker Hub, Amazon ECR, Google GCR, CoreOS Quay, JFrog Artifactory, Azure ACRDocker Hub, Amazon ECR, Google GCR, IBM CCR, JFrog Artifactory, Azure ACR, OpenShift30.Хранилище паролей (Password Vault)CyberARK Password Vault, Conjur, AWS KMS, HashiCorp Vault, AzureHashiCorp, CyberARK, AWS KMS, Azure31.Active Directory / LDAPПоддержка интеграции с LDAP и AD FS32.Единый вход (SSO)SAML-based authentication, OpenID Connect, Google Apps, AD FSSAML-based authentication, OpenID Connect, AD FS33.SIEM и аналитикаArcSight, AWS CloudWatch, Datadog, Elasticsearch, Google SCC, Logentries, Loggly, Microsoft OMS, Splunk, Sumo Logic, Syslog, QRadarПотенциально — со всеми по Syslog. Нужна доработка коннекторов34.Система отслеживания ошибокJira35.Обратная связьSlack, PagerDutySlack Защита во время исполнения (runtime)Функция защиты во время исполнения позволяет отследить аномальное поведение развёрнутых контейнеров на основе данных о процессах, сети, обращениях к файловой системе, системных вызовах, данных хоста. Это обеспечивает защиту от криптомайнеров, нежелательных процессов, распространения атаки по сети, нежелательного исходящего соединения, открытых портов, появления вредоносных программ, а также от нежелательных системных вызовов.Кроме того, оба решения позволяют обеспечить неизменность контейнера, при которой обновления будут проходить только через конвейер CI / CD, не допуская изменений, разрешённых во время выполнения. И у Aqua CSP, и у Prisma Cloud Compute есть функциональность снятия криптографического отпечатка нескольких слоёв в пределах образа для обеспечения целостности последнего. Сетевой экран веб-приложений (WAF) от Prisma Cloud Compute Рисунок 10. Верхнеуровневая схема работы Cloud Native Application Firewall (CNAF)  Отличительной особенностью Prisma Cloud Compute на фоне других решений является встроенный модуль межсетевого экранирования на уровне L7 для веб-приложений — Cloud Native Application Firewall (CNAF). Агент сканирования является в данном случае прокси-сервером HTTP, анализируя поступающие GET- и POST-запросы от клиентов. Для этого Twistlock Defender добавляет новое правило iptables, перенаправляя трафик от веб-приложения через себя. Если соединение защищено с помощью TLS, Defender расшифровывает трафик, проверяет содержимое, а затем повторно шифрует его. Виртуальный патчинг от Aqua SecurityAqua CSP в свою очередь выделяется такой особенностью, как Aqua Vulnerability Shield (Aqua vShield) — функция виртуального патчинга. Это — запатентованная технология, использующая автоматический анализ уязвимостей для создания runtime-политик, которые могут обнаруживать и блокировать доступ к уязвимым компонентам в контейнерах приложения. Запуск vShield для найденной уязвимости позволит предотвратить её эксплуатацию до того, как разработчики выпустят исправление. ВыводыKubernetes не использует механизмы безопасности по умолчанию в силу того, что эти же механизмы, как правило, могут затруднять внедрение и перенос приложений. Технология не стала бы такой популярной и приятной в использовании, если бы первый запуск приложения в контейнерной среде сопровождался проблемами, вызванными чрезмерным контролем. И даже несмотря на то, что Kubernetes или OpenShift имеют в себе безопасные настройки, их использование остается трудоёмким и неконтролируемым для организаций со сложной микросервисной архитектурой и большим числом нод кластера.Такие решения, как Aqua CSP и Prisma Cloud Compute, созданы для упрощения контроля безопасности контейнерной среды. Развернув дополнительно по одному агенту на каждую ноду, можно получить сразу несколько механизмов безопасности «из коробки», что существенно сокращает риски финансовых и репутационных потерь от атаки злоумышленника на развёрнутое в среде контейнеризации приложение. Выбор того или иного инструмента зависит от потребностей отдела безопасности и бизнеса, но тенденция такова, что с ростом перехода на контейнеры популярность подобных решений будет только расти.

Читать далее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • PR55.RP55
      .xml  файлы taskschd.msc Могут быть подписаны  цифровой подписью. Думаю будет нелишним, если uVS будет это фиксировать. т.е. проверять не только подпись целевого файла, но и подпись самого файла\задачи. и писать в ИНфО .  
    • demkd
      ---------------------------------------------------------
       4.15.2
      ---------------------------------------------------------
       o Исправлена ошибка при работе с образом автозапуска.
         Для некоторых процессов команда unload не добавлялась в скрипт при нажатии кнопки "принять изменения".  o Добавлена плашка окна на таскбаре для окна удаленного рабочего стола.
         (при работе с удаленной системой) -----------------------------------------------------------
      Есть проблема с локализацией глюка в редких случаях приводящему к аварийному завершению uVS при активном флаге "Проверять весь HKCR".
      На основе дампов его найти не получается, нужна копия реестра системы с такой проблемой, если кому-то попадется такая проблема, то присылайте архив с копией реестра системы мне на почту.  
×