Контроль целостности — совокупность механизмов проверки контейнеров для обеспечения безопасности и их соответствия заданной конфигурации.
В Deckhouse Kubernetes Platform (DKP) контроль целостности работает:
- при запуске контейнеров приложений;
- во время работы контейнеров приложений.
Также, начиная с версии 1.74, в DKP реализован механизм контроля целостности модулей, который защищает их от подмены и изменения. Этот механизм включается автоматически при поддержке операционной системой на узлах, где установлена DKP, модуля ядра erofs. При отсутствии этого модуля ядра DKP продолжит работу без механизма контроля целостности модулей, при этом появится алерт о неработоспособности этой функциональности.
Контроль целостности при запуске контейнеров
DKP обеспечивает контроль целостности контейнеров приложений на уровне контейнерного рантайма (CRI).
После скачивания образа приложения DKP проверяет его целостность, сверяя хеш-сумму SHA-256. Запуск контейнера возможен только при успешной проверке контрольной суммы.
Последовательность контроля целостности при запуске:
- Загрузка образа в локальное хранилище узла.
- Извлечение метаданных образа, включая хеш-сумму SHA-256.
- Верификация SHA-256 путем сравнения с эталонной.
- Если хеш совпадает, проверка пройдена. Если хеш не совпадает, образ не запускается.
Для повышения уровня безопасности можно настраивать политики загрузки образов при использовании политик безопасности, чтобы гарантировать использование актуальных версий при запуске контейнеров.
Контроль целостности работающих контейнеров
Аудит событий безопасности в DKP включает в себя анализ событий ядра Linux и аудита событий API Kubernetes. Это позволяет отслеживать, что приложения в подах работают в неизменном виде, соответствуют ожидаемому состоянию и не были модифицированы.
Для аудита используются:
- встроенные правила;
- пользовательские правила, которые можно добавлять с использованием синтаксиса условий Falco.
В процессе контроля целостности работающих контейнеров могут выявляться такие угрозы, как запуск оболочек командной строки в контейнерах или подах, обнаружение контейнеров, работающих в привилегированном режиме, монтирование небезопасных путей в контейнеры, попытки чтения секретных данных.
Подробнее о настройках аудита безопасности можно почитать в разделе «Аудит событий безопасности».