Может возникнуть вопрос: «У нас уже есть антивирус на хостах, WAF для анализа API- и веб-трафика, на периметре — NGFW, песочница и SIEM-система. Зачем тратить дополнительные деньги и встраивать в инфраструктуру еще одно решение?».
Существует две причины: - короткий срок жизни контейнеров;
- их архитектурные особенности
Проясним первую причину. Представим, что к нам в кластер попал хакер, вышел за пределы контейнера и поломал что-то на хостовой ОС. Соответственно, EDR отработал и отправил лог на свой сервер и в SIEM-систему. При расследовании инцидента цепочка событий раскручивается в обратном порядке. Выясняется, что точкой входа было «что-то» с IP-адресом из Kubernetes кластера.
А вот дальше мы вряд ли сможем идентифицировать это «что-то», ибо пока мы проводили расследование, контейнеры уже несколько раз перезапустились и, следовательно, найденный нами IP-адрес либо свободен, либо принадлежит другому контейнеру с другими функциями (заметка: при перезапуске контейнеров у них меняется IP-адрес).
Одной из архитектурных особенностей контейнеров является изолированность. Изоляция контейнера означает, что он самодостаточен и ему не нужно читать и/или записывать какие-либо файлы на рабочей станции, чтобы работать — все необходимое уже «упаковано».
Вторая особенность: контейнер получает доступ к kernel space в обход user space хостовой ОС. User space — виртуальное адресное пространство, в котором работают пользовательские программы (от bash, ls и cat до nginx, браузера и музыкального плеера). При запуске контейнера внутри него создается собственное user space. Уже из этого внутреннего user space контейнер отправляет системные вызовы — через «прослойку» в виде container runtime (containerd, cri-o, docker) — к kernel space хостовой ОС.
Теперь самое важное: антивирус работает на уровне user space хостовой ОС — он просто не видит, что делает контейнер. А так как контейнер изолирован, то антивирус еще и не может проверить, что у него происходит внутри.
Кратко про решения вида WAF и NGFW: трафик может вообще не выйти за пределы кластера. Это мощные инструменты, которые помогут предотвратить доступ к кластеру извне, но если уж злоумышленник (злоукошленник, ха-ха) прорвался через защиту, то они уже не помогут.
Здесь же и приходят на помощь специализированные средства защиты контейнерных сред, и сканирование вот этой маленькой дверки — одна из их задач. Дополнительно реализуется сканирование образов контейнеров и CI/CD (не тащим «грязь» в production), конфигурационных манифестов IaC (секреты, misconfigurations), а также визуализация ресурсов кластера — загрузка CPU/RAM, Deployment-ы, Pod-ы, ReplicaSet-ы.
Защищая свою контейнерную инфраструктуру, мы добавляем себе баллов к общей защищенности бизнес-процессов и уменьшаем вероятность того, что наши пользователи зайдут на наш сайт и увидят ошибку 404.