Безопасность контейнера

В этой статье описываются некоторые способы защиты контейнеров и предотвращение уязвимостей системы безопасности. Контейнеры — это эффективный способ упаковки и развертывания приложений. Они обеспечивают операционные и преимущества безопасности, так как приложения и службы отделены в среде. Контейнеры также помогают снизить последствия сбоев на уровне системы из-за их абстракции, что обеспечивает время доступности и предотвращает атаки, которые могут скомпрометировать приложения или службы.

Контейнеры обычно выполняются на абстрактном уровне поверх операционной системы узла, а абстракция обеспечивает некоторый барьер разделения и возможность применения многоуровневой модели защиты.

Кроме того, можно настроить непрерывную безопасность контейнера, за счет защиты конвейера контейнера, приложения и среды развертывания контейнера. Примеры реализации безопасности контейнеров описаны в этом разделе.

Защита образов

Убедитесь, что образы размещаются в безопасном и доверенном реестре, чтобы предотвратить несанкционированный доступ. Образы должны иметь сертификат TLS с доверенным корневым ЦС, а реестр должен использовать контроль доступа на основе ролей (RBAC) с строгой проверкой подлинности. При проектировании CI/CD для сборки и доставки контейнера следует включить решение для сканирования образов. Решение для сканирования изображений помогает выявлять распространенные уязвимости и уязвимости (CVEs) и гарантирует, что эксплойтируемые образы не развертываются без исправления.

Усиление защиты среды узла

Важным аспектом безопасности контейнеров является необходимость защиты систем, на которых выполняются контейнеры, и способ их работы во время выполнения. Безопасность контейнера должна сосредоточиться на всем стеке, включая узел и управляющие программы. Следует удалить службы с узла, который не является критическим, и не следует развертывать несоответствующие контейнеры в среде. При этом доступ к узлу может выполняться только через контейнеры, а управление будет централизованно применяться к управляющей программе контейнера, удаляя узел из уязвимой области. Эти действия особенно полезны при использовании прокси-серверов для доступа к контейнерам, что может случайно обойти элементы управления безопасностью контейнеров.

Ограничение ресурсов контейнера

Если контейнер скомпрометирован, злоумышленники могут попытаться использовать базовые ресурсы узла для выполнения вредоносных действий. Рекомендуется установить ограничения на использование памяти и ЦП, чтобы свести к минимуму влияние нарушений.

Правильная защита секретов

Секрет — это объект, содержащий конфиденциальную информацию, которую может потребоваться передать между узлом и контейнером. Некоторые примеры секретов включают пароли, сертификаты SSL/TLS, закрытые ключи SSH, токены, строки подключения и другие данные, которые не должны передаваться в виде обычного текста или храниться в незашифрованном виде. Следует хранить все секреты из образов и подключать их через подсистему оркестрации контейнеров или внешний диспетчер секретов.

Изоляция практики

Используйте изоляцию и не используйте привилегированного или корневого пользователя для запуска приложения в контейнере. Не следует запускать контейнеры в привилегированном режиме, так как это может позволить злоумышленнику легко повысить привилегии, если контейнер скомпрометирован. Знание пользовательского идентификатора (уникальный код идентификации) и GID (код идентификации группы) корневого пользователя в контейнере может позволить злоумышленнику получить доступ к файлам, записанным корневым каталогом на хост-компьютере, и изменить их. Кроме того, необходимо использовать принцип минимальных привилегий, когда приложение имеет доступ только к необходимым секретам. Вы можете создать пользователя приложения для запуска процесса приложения.

Развертывание мониторинга безопасности среды выполнения

Так как по-прежнему существует вероятность компрометации даже после принятия мер предосторожности против атак на вашу инфраструктуру, важно постоянно отслеживать и регистрировать поведение приложения для предотвращения и обнаружения вредоносных действий. Средства, такие как Prometheus, предоставляют эффективные средства для мониторинга инфраструктуры.

Следующие шаги