HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: безопасность, kubernetes, кубер, container runtime security, nats, sysdig falco, kubeless</p>
1 <p>Теги: безопасность, kubernetes, кубер, container runtime security, nats, sysdig falco, kubeless</p>
2 <p>Продолжаем обзор<a>выступления Дмитрия Лазаренко</a>, руководителя PaaS-направления в Mail.Ru Cloud Solutions. Тема сегодняшней статьи - Container Runtime Security.</p>
2 <p>Продолжаем обзор<a>выступления Дмитрия Лазаренко</a>, руководителя PaaS-направления в Mail.Ru Cloud Solutions. Тема сегодняшней статьи - Container Runtime Security.</p>
3 <p>Предыдущие статьи: 1.<a>Безопасность в Kubernetes. Docker Image Security</a>. 2.<a>Безопасность в Kubernetes: Host Level Security</a>.</p>
3 <p>Предыдущие статьи: 1.<a>Безопасность в Kubernetes. Docker Image Security</a>. 2.<a>Безопасность в Kubernetes: Host Level Security</a>.</p>
4 <p>Итак, вы настроили всё на хост-машине, проверили Docker Images, но всё равно есть вероятность, что появится какой-то эксплойт, о котором вы не знаете, то есть вас могут хакнуть. Невозможно гарантировать защиту только за счёт исключения известных уязвимостей - есть и неизвестные уязвимости, уязвимости нулевого дня.</p>
4 <p>Итак, вы настроили всё на хост-машине, проверили Docker Images, но всё равно есть вероятность, что появится какой-то эксплойт, о котором вы не знаете, то есть вас могут хакнуть. Невозможно гарантировать защиту только за счёт исключения известных уязвимостей - есть и неизвестные уязвимости, уязвимости нулевого дня.</p>
5 <p>Что следует делать: 1. Создать среду, в которой максимально всё ограничено. 2. Всё, что выходит за рамки дозволенного и не находится в white-листе, будет вызывать Alarm администратору либо блокировку.</p>
5 <p>Что следует делать: 1. Создать среду, в которой максимально всё ограничено. 2. Всё, что выходит за рамки дозволенного и не находится в white-листе, будет вызывать Alarm администратору либо блокировку.</p>
6 <p>Хорошая новость заключается в том, что всё это можно делать в Kubernetes. Для этого есть разные механизмы, например<strong>Pod Security Policies</strong>. Все контейнеры и поды, которые деплоятся, запускаются не под рутом, они не могут писать в файловую корневую систему - в общем, это всё настроить не проблема.</p>
6 <p>Хорошая новость заключается в том, что всё это можно делать в Kubernetes. Для этого есть разные механизмы, например<strong>Pod Security Policies</strong>. Все контейнеры и поды, которые деплоятся, запускаются не под рутом, они не могут писать в файловую корневую систему - в общем, это всё настроить не проблема.</p>
7 <p>Есть и более параноидальные штуки, например, обязательный контроль доступа в SELinux (Mandatory aсcess control). Одна из его проблем - он очень сложный, низкоуровневый и настройка - это большая боль. Также тут стоит упомянуть<strong>AppArmor</strong>- это лайт-версия SELinux (он уже проще по настройке).</p>
7 <p>Есть и более параноидальные штуки, например, обязательный контроль доступа в SELinux (Mandatory aсcess control). Одна из его проблем - он очень сложный, низкоуровневый и настройка - это большая боль. Также тут стоит упомянуть<strong>AppArmor</strong>- это лайт-версия SELinux (он уже проще по настройке).</p>
8 <p>Существуют и техники<strong>Sandboxing’a</strong>с политиками (seccomp-bpf), но они тоже низкоуровневые, потому что приходится определять, какие системные вызовы вызывать можно, а какие нет. В итоге процесс, который попытается выполнить недозволенные действия, просто будет потушен.</p>
8 <p>Существуют и техники<strong>Sandboxing’a</strong>с политиками (seccomp-bpf), но они тоже низкоуровневые, потому что приходится определять, какие системные вызовы вызывать можно, а какие нет. В итоге процесс, который попытается выполнить недозволенные действия, просто будет потушен.</p>
9 <h2>Что делать, если мы хотим выполнять настройки на верхнем уровне?</h2>
9 <h2>Что делать, если мы хотим выполнять настройки на верхнем уровне?</h2>
10 <p>Этот вопрос уже решается другими инструментами, не входящими в Kubernetes. Существует такая технология -<strong>Sysdig Falco</strong>- она позволяет реализовать умную безопасность, то есть безопасность на уровне информационных потоков, к слову, достаточно высокоуровневую.</p>
10 <p>Этот вопрос уже решается другими инструментами, не входящими в Kubernetes. Существует такая технология -<strong>Sysdig Falco</strong>- она позволяет реализовать умную безопасность, то есть безопасность на уровне информационных потоков, к слову, достаточно высокоуровневую.</p>
11 <p>Технология весьма хороша. По умолчанию она не запрещающая, но можно настроить нужный вам пайплайн. Вы настраиваете декларативно правила, создавая некий White-лист действий: - какие процессы/команды могут быть запущены в Docker-контейнере; - какие процессы могут устанавливать исходящие соединения или принимать входящие; - какие порты могут слушаться; - в какие файлы и папки можно писать; - какие вызовы ядра Linux могут выполняться.</p>
11 <p>Технология весьма хороша. По умолчанию она не запрещающая, но можно настроить нужный вам пайплайн. Вы настраиваете декларативно правила, создавая некий White-лист действий: - какие процессы/команды могут быть запущены в Docker-контейнере; - какие процессы могут устанавливать исходящие соединения или принимать входящие; - какие порты могут слушаться; - в какие файлы и папки можно писать; - какие вызовы ядра Linux могут выполняться.</p>
12 <p>Что можно таким образом отловить и как реагировать:</p>
12 <p>Что можно таким образом отловить и как реагировать:</p>
13 <p>Теперь давайте посмотрим, как это настраивается. В принципе, правила достаточно простые:</p>
13 <p>Теперь давайте посмотрим, как это настраивается. В принципе, правила достаточно простые:</p>
14 <p>Но можно сделать ещё круче, организовав полностью автоматизированный пайплайн:</p>
14 <p>Но можно сделать ещё круче, организовав полностью автоматизированный пайплайн:</p>
15 <p>Что здесь происходит? Если Falco обнаружит критическую активность, он может записать сообщение в шину данных или в Message queue типа NUTS (стандартный Message queue в Kubernetes), а на этот Message queue будет подписан какой-то процесс, например,<strong>kubeless</strong>, который удалит подозрительные поды. Вот так. И даже существует проектик, который позволяет это сделать, - держите<a>ссылку на GitHub</a>.</p>
15 <p>Что здесь происходит? Если Falco обнаружит критическую активность, он может записать сообщение в шину данных или в Message queue типа NUTS (стандартный Message queue в Kubernetes), а на этот Message queue будет подписан какой-то процесс, например,<strong>kubeless</strong>, который удалит подозрительные поды. Вот так. И даже существует проектик, который позволяет это сделать, - держите<a>ссылку на GitHub</a>.</p>
16 <p>Что же, на этом всё, на очереди сетевая безопасность в Kubernetes, следите за новостями!</p>
16 <p>Что же, на этом всё, на очереди сетевая безопасность в Kubernetes, следите за новостями!</p>
17  
17