[Перевод] Защитите свои рабочие нагрузки Kubernetes с помощью gVisor
Все мы знакомы с контейнерами и любим их. Контейнеры используют одно и то же ядро хоста (host kernel), что делает их довольно мобильным и лёгким решением. С другой стороны, мы бы предпочли снизить риск причинения вреда хост-машине или операционной системе, чего можно достичь при помощи sandbox-технологий, и gVisor является одной из них.
Давайте начнем с небольшой мотивации
Проверьте CVE-2020–14386 — это уязвимость ядра Linux, приводящая к выходу из контейнера. В целом, эта уязвимость использует преимущество способности CAP_NET_RAW повреждать память, что приводит к получению злоумышленниками root-доступа.
В Docker эта возможность включена по умолчанию (вероятно, это связано с тем фактом, что она обычно используется сетевыми инструментами, такими как ping
и tcpdump
, и может быть повторно включена для устранения неполадок).
Рабочие нагрузки, выполняемые с помощью gVisor, не были затронуты CVE — и это подводит нас к следующей части: пониманию, что такое gVisor и как можно его использовать.
Что такое gVisor?
Контейнерная среда sandbox gVisor — это среда процессов, которая запускает контейнеры.
Это, по сути, ядро приложения (написанное на Go