Появление более мощных процессоров в начале 2000-х годов положило начало вычислительной революции, которая привела к тому, что мы сейчас называем облачными технологиями. Благодаря возможности запускать десятки, если не сотни виртуальных машин одновременно на одном аппаратном обеспечении, компании смогли предложить пользователям множество сервисов и приложений, которые ранее были бы финансово нецелесообразными или даже невозможными.
Однако у виртуальных машин (ВМ) есть свои недостатки. Зачастую полноценная виртуализированная операционная система избыточна для многих приложений. Хотя ВМ гораздо более гибки, масштабируемы и мобильны по сравнению с физическими серверами, они всё же требуют значительно больше памяти и вычислительных ресурсов, а также уступают в гибкости следующему этапу развития технологий – контейнерам. Контейнеризированные приложения включают только необходимые компоненты и их зависимости, что делает их легче и проще в настройке, особенно если они построены на основе микросервисов.
Виртуальные машины унаследовали те же проблемы безопасности, что и их физические аналоги. В случае с контейнерами угрозы безопасности часто связаны с их компонентами: например, уязвимость в определённой версии mySQL затронет и контейнеризированные версии. Вопросы кибербезопасности для ВМ, физических серверов и контейнеров во многом схожи. Однако контейнеры и инструменты для их управления создают уникальные вызовы для специалистов, отвечающих за запуск приложений и сервисов, будь то ручная сборка приложений из выбранных контейнеров или масштабное оркестрирование в производственной среде.
Оглавление
Уникальные риски безопасности контейнеров
- Ошибки в настройках: Сложные приложения состоят из множества контейнеров, и даже одна строка в .yaml-файле может предоставить избыточные привилегии и расширить поверхность для атак. Например, хотя получить root-доступ к хосту из контейнера непросто, до сих пор распространена практика запуска Docker от имени root без ремаппинга пользовательских пространств.
- Уязвимые образы контейнеров: В 2022 году Sysdig обнаружил более 1600 вредоносных образов в Docker Hub, а также множество контейнеров с жёстко заданными облачными учетными данными, SSH-ключами и токенами NPM. Процесс загрузки образов из публичных репозиториев непрозрачен, а удобство развёртывания контейнеров (в сочетании с давлением на разработчиков) может привести к использованию небезопасных или даже вредоносных компонентов.
- Слои оркестрации: Для крупных проектов инструменты оркестрации, такие как Kubernetes, могут увеличить поверхность для атак из-за сложности настройки и высокой степени комплексности. Опрос D2iQ в 2022 году показал, что только 42% приложений на Kubernetes доходят до производства, отчасти из-за сложности управления большими кластерами и крутой кривой обучения. Как отмечает Ари Вейл из Akamai, «Kubernetes – зрелая технология, но большинство компаний и разработчиков не осознают, насколько она сложна, пока не начнут работать в масштабе.»
Безопасность контейнеров с использованием машинного обучения
Специфические проблемы безопасности контейнеров можно решить с помощью алгоритмов машинного обучения, обученных на наблюдении за компонентами приложения в «чистом» состоянии. Создав базовую линию нормального поведения, ML может выявлять аномалии, такие как необычный трафик, несанкционированные изменения конфигурации, странные паттерны доступа пользователей или неожиданные системные вызовы.
Платформы безопасности на основе ML могут сканировать репозитории образов и сравнивать их с базами данных известных уязвимостей. Сканирование может быть автоматизировано и запланировано, что помогает предотвратить добавление вредоносных элементов на этапах разработки и производства. Автоматически генерируемые отчёты могут соответствовать стандартным критериям или настраиваться в соответствии с внутренними стандартами безопасности, что особенно полезно в средах с обработкой высокочувствительных данных.
Интеграция специализированных функций безопасности контейнеров с инструментами оркестрации позволяет изолировать или закрывать подозрительные контейнеры, отзывать небезопасные разрешения и приостанавливать доступ пользователей. Благодаря API-подключениям к локальным брандмауэрам и VPN-точкам, можно изолировать целые среды или подсети, а также блокировать трафик на границах сети.
Заключение
Машинное обучение способно снизить риск утечки данных в контейнеризированных средах, работая на нескольких уровнях. Обнаружение аномалий, сканирование активов и выявление потенциальных ошибок в настройках – всё это возможно, а автоматизированные уведомления или исправления относительно просты в реализации.
Преимущества контейнеризированных приложений можно использовать без ущерба для безопасности, что открывает новые возможности для разработки и запуска микросервисных решений. Технологии, ориентированные на облачные среды, позволяют сохранить высокие стандарты безопасности даже в отраслях с повышенным уровнем риска.