Меня немного обогнали с описанием CVE, но я все равно дополню мысль примерами
Вот, например, CVE-2016-5195 - Race Condition в старых версиях ядра позволяет сделать docker escape.
PoC:
https://github.com/gebl/dirtycow-docker-vdso
Видео-демо:
https://youtu.be/BwUfHJXgYg0
Текстовое описание:
https://blog.paranoidsoftware.com/dirty-cow-cve-2016-5195-docker-container-escape/
#docker #ops #attack
Вот, например, CVE-2016-5195 - Race Condition в старых версиях ядра позволяет сделать docker escape.
PoC:
https://github.com/gebl/dirtycow-docker-vdso
Видео-демо:
https://youtu.be/BwUfHJXgYg0
Текстовое описание:
https://blog.paranoidsoftware.com/dirty-cow-cve-2016-5195-docker-container-escape/
#docker #ops #attack
GitHub
GitHub - gebl/dirtycow-docker-vdso
Contribute to gebl/dirtycow-docker-vdso development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
Whalescan - vulnerability scanner for Windows containers
Для тех, кто использует Windows base OS контейнеры вроде IIS и .NET есть соответствующий инструмент. Whalescan позволяет искать уязвимости в Windows контейнерах и проводить benchmark проверки, выявлять небезопасные команды в Dockerfile, вышедшие из жизни .NET версии и другое.
https://github.com/nccgroup/whalescan
#tools #docker #dev #ops
Для тех, кто использует Windows base OS контейнеры вроде IIS и .NET есть соответствующий инструмент. Whalescan позволяет искать уязвимости в Windows контейнерах и проводить benchmark проверки, выявлять небезопасные команды в Dockerfile, вышедшие из жизни .NET версии и другое.
https://github.com/nccgroup/whalescan
#tools #docker #dev #ops
A Tale of Escaping a Hardened Docker container
Как многим известно, docker.sock крайне не рекомендуется пробрасывать внутрь Docker контейнера согласно CIS. Это может значительно упростить жизнь злоумышленнику для побега за пределы контейнера, но CIS не дает советов как обезопасить подобный сценарий, если "ну очень надо". Так, например, одна организация решила пробрасывать в контейнер некий somethtingelse.sock с аутентификацией и авторизацией на Reverse Proxy для работы с docker.sock.
Статья посвящена обходу подобной архитектуры. На мой взгляд бага несколько глупая и, в принципе, данная архитектура может быть жизнеспособной. Тем не менее, статья хорошо показывает то, как может действовать злоумышленник.
P.S. В документации Docker есть отдельная страничка, посвященная защите docker.sock. Вот также ряд слайдов, которые помогут познакомиться с docker escape и механизмами ядра Linux для работы Docker.
https://www.redtimmy.com/a-tale-of-escaping-a-hardened-docker-container/
#docker #ops #attack
Как многим известно, docker.sock крайне не рекомендуется пробрасывать внутрь Docker контейнера согласно CIS. Это может значительно упростить жизнь злоумышленнику для побега за пределы контейнера, но CIS не дает советов как обезопасить подобный сценарий, если "ну очень надо". Так, например, одна организация решила пробрасывать в контейнер некий somethtingelse.sock с аутентификацией и авторизацией на Reverse Proxy для работы с docker.sock.
Статья посвящена обходу подобной архитектуры. На мой взгляд бага несколько глупая и, в принципе, данная архитектура может быть жизнеспособной. Тем не менее, статья хорошо показывает то, как может действовать злоумышленник.
P.S. В документации Docker есть отдельная страничка, посвященная защите docker.sock. Вот также ряд слайдов, которые помогут познакомиться с docker escape и механизмами ядра Linux для работы Docker.
https://www.redtimmy.com/a-tale-of-escaping-a-hardened-docker-container/
#docker #ops #attack
CloudSecDocs
Один из крутых инженеров Marco Lancini, за активностью которого слежу, релизнул cloudsecdocs.com. Это большая Интернет-энциклопедия по безопасности облаков.
Вот что уже можно почитать:
- Secure SDLC: сканеры, работа с секретами, compliance as code, лабы, моделирование угроз, метрики, логирование
- Docker и Kubernetes, что это, какие компоненты, как деплоить и работать с этим
- Моделирование угроз для Docker и Kubernetes
- Опиcание RBAC
- Описание важных компонентов с точки зрения безопасности k8s
- Атаки и пентест на контейнеры
- Компоненты AWS и Azure, а также их защита
- Угрозы и методология тестирования облаков
#aws #gcp #azure #dev #ops #k8s #docker #attack
Один из крутых инженеров Marco Lancini, за активностью которого слежу, релизнул cloudsecdocs.com. Это большая Интернет-энциклопедия по безопасности облаков.
Вот что уже можно почитать:
- Secure SDLC: сканеры, работа с секретами, compliance as code, лабы, моделирование угроз, метрики, логирование
- Docker и Kubernetes, что это, какие компоненты, как деплоить и работать с этим
- Моделирование угроз для Docker и Kubernetes
- Опиcание RBAC
- Описание важных компонентов с точки зрения безопасности k8s
- Атаки и пентест на контейнеры
- Компоненты AWS и Azure, а также их защита
- Угрозы и методология тестирования облаков
#aws #gcp #azure #dev #ops #k8s #docker #attack
Protecting Docker and Kubernetes.
Тут от рассылки StackRox прилетел их Whitepaper "Protecting K8s Against MITRE ATT&CK Techniques". Про ATT&CK я уже кое-что писал в разрезе Cloud Security здесь.
Кстати, у StackRox также есть технические документы по следующим темам:
"Container and Kubernetes Security: An Evaluation Guide"
"Hardening Docker: Your Definitive Security Toolkit"
"Top 9 Kubernetes Best Practices to Maximize Security"
#k8s #docker #ops
Тут от рассылки StackRox прилетел их Whitepaper "Protecting K8s Against MITRE ATT&CK Techniques". Про ATT&CK я уже кое-что писал в разрезе Cloud Security здесь.
Кстати, у StackRox также есть технические документы по следующим темам:
"Container and Kubernetes Security: An Evaluation Guide"
"Hardening Docker: Your Definitive Security Toolkit"
"Top 9 Kubernetes Best Practices to Maximize Security"
#k8s #docker #ops
Способы и примеры внедрения утилит для проверки безопасности Docker
Тут Павел (@shad0wrunner) выпустил статью на Хабре по способам и примерам внедрения проверки образов Docker. В число рассматриваемых инструментов входят Dockle, Trivy и Hadolint. Варианты внедрения: путём конфигурации CI/CD pipeline на примере GitLab (с описанием процесса поднятия тестового инстанса), с использованием shell-скрипта, с построением Docker-образа для сканирования.
https://habr.com/ru/company/swordfish_security/blog/524490/
#docker #dev
Тут Павел (@shad0wrunner) выпустил статью на Хабре по способам и примерам внедрения проверки образов Docker. В число рассматриваемых инструментов входят Dockle, Trivy и Hadolint. Варианты внедрения: путём конфигурации CI/CD pipeline на примере GitLab (с описанием процесса поднятия тестового инстанса), с использованием shell-скрипта, с построением Docker-образа для сканирования.
https://habr.com/ru/company/swordfish_security/blog/524490/
#docker #dev
Static analysis by OPA - Dockerfiles
Уже ни для кого не секрет, что неправильное формирование Dockerfile может являться серьезной проблемой в безопасности приложений. Как правило, для решения данной проблемы все используют Hadolint для статического сканирования Docker-файлов.
В этом посте я предлагаю вам взглянуть на детектирование проблем с помощью Conftest - инструмента для выполнения статического анализа конфигурационных файлов (YAML, JSON, XML, Dockerfile, HCL и многое другое). Что самое интересное в нем, так это то, что правила для Conftest пишутся на языке Rego. Это позволяет стать на шаг ближе к унифицированному подходу контроля за средой с помощью Open Policy Agent, о котором я писал ранее, и не городить кучу инструментов. Вот статья, в которой описано применение Conftest для проверки Dockerfile с помощью кастомных рулов.
#docker #ops #dev #opa
Уже ни для кого не секрет, что неправильное формирование Dockerfile может являться серьезной проблемой в безопасности приложений. Как правило, для решения данной проблемы все используют Hadolint для статического сканирования Docker-файлов.
В этом посте я предлагаю вам взглянуть на детектирование проблем с помощью Conftest - инструмента для выполнения статического анализа конфигурационных файлов (YAML, JSON, XML, Dockerfile, HCL и многое другое). Что самое интересное в нем, так это то, что правила для Conftest пишутся на языке Rego. Это позволяет стать на шаг ближе к унифицированному подходу контроля за средой с помощью Open Policy Agent, о котором я писал ранее, и не городить кучу инструментов. Вот статья, в которой описано применение Conftest для проверки Dockerfile с помощью кастомных рулов.
#docker #ops #dev #opa
GitHub
GitHub - hadolint/hadolint: Dockerfile linter, validate inline bash, written in Haskell
Dockerfile linter, validate inline bash, written in Haskell - hadolint/hadolint
Open source behavior container analysis
Когда дело доходит до обеспечения runtime безопасности контейнерной среды, как правило, используют PSP и AppArmor, Seccomp, SELinux профили. Это, в свою очередь, создает еще больше сложностей, ведь при отсутствии понимания о работе своих приложений, есть высокий риск порезать нужную привилегию. С этой целью многие организации начинают присматриваться к коммерческим решениям, где есть встроенный функционал профилирования и автоматическое генерирование политик. Тем не менее, далеко не все знают про наличие open-source утилит. Вот некоторые из них:
- kube-psp-advisor для генерирования PSP
- oci-seccomp-bpf-hook и go2seccomp для генерирования seccomp-профилей
- inspektor-gadget для генерирования network policies
- udica для SELinux
В бонус к этому месяц назад на Kubecon North America 2020 Virtual был доклад Pod Security as an Afterthought, где спикер подробно рассказывает про работу некоторых из этих утилит.
#k8s #docker #ops
Когда дело доходит до обеспечения runtime безопасности контейнерной среды, как правило, используют PSP и AppArmor, Seccomp, SELinux профили. Это, в свою очередь, создает еще больше сложностей, ведь при отсутствии понимания о работе своих приложений, есть высокий риск порезать нужную привилегию. С этой целью многие организации начинают присматриваться к коммерческим решениям, где есть встроенный функционал профилирования и автоматическое генерирование политик. Тем не менее, далеко не все знают про наличие open-source утилит. Вот некоторые из них:
- kube-psp-advisor для генерирования PSP
- oci-seccomp-bpf-hook и go2seccomp для генерирования seccomp-профилей
- inspektor-gadget для генерирования network policies
- udica для SELinux
В бонус к этому месяц назад на Kubecon North America 2020 Virtual был доклад Pod Security as an Afterthought, где спикер подробно рассказывает про работу некоторых из этих утилит.
#k8s #docker #ops
Container Security: эволюция атак в 2020 году
6 ноября с 10:00 по МСК пройдет конференция DevOpsFest 2020, где будет два доклада по Security. Первый - мой. На нем я расскажу про безопасность контейнеров:
- Как злоумышленник может атаковать небезопасно настроенный кластер
- Какие появились CVE в 2020 году для k8s
- Как злоумышленник может закрепиться в инфраструктуре
- В чем связь между небезопасной версией ядра Linux и безопасностью облака
- Мои мысли о существующих механизмах и инструментах защиты
- Что из себя представляет enterprise решения по безопасности контейнеров, зачем его покупать и на что обращать внимание
Второй доклад "DevSecOps: Фаззинг исходного кода" от коллег из Digital Security. Не так давно они выпустили статью с таким же названием на Habr.
Прослушивание бесплатное. Материалы и записи платные.
P.S. А еще там есть крутая виртуальная площадка, где можно общаться. Я буду там, подходите знакомиться :)
#ops #k8s #docker #ops #talks
6 ноября с 10:00 по МСК пройдет конференция DevOpsFest 2020, где будет два доклада по Security. Первый - мой. На нем я расскажу про безопасность контейнеров:
- Как злоумышленник может атаковать небезопасно настроенный кластер
- Какие появились CVE в 2020 году для k8s
- Как злоумышленник может закрепиться в инфраструктуре
- В чем связь между небезопасной версией ядра Linux и безопасностью облака
- Мои мысли о существующих механизмах и инструментах защиты
- Что из себя представляет enterprise решения по безопасности контейнеров, зачем его покупать и на что обращать внимание
Второй доклад "DevSecOps: Фаззинг исходного кода" от коллег из Digital Security. Не так давно они выпустили статью с таким же названием на Habr.
Прослушивание бесплатное. Материалы и записи платные.
P.S. А еще там есть крутая виртуальная площадка, где можно общаться. Я буду там, подходите знакомиться :)
#ops #k8s #docker #ops #talks
Денис_Якимов_–_Container_Security_эволюция_атак_в_2020_году.pdf
45.4 MB
Презентация Container Security: эволюция атак в 2020 году.
Тем временем на сайте DevOpsFest 2020 выложили презентацию с моего доклада по атакам на контейнеры (+ некоторые мысли по защите).
#k8s #docker #attack #ops
Тем временем на сайте DevOpsFest 2020 выложили презентацию с моего доклада по атакам на контейнеры (+ некоторые мысли по защите).
#k8s #docker #attack #ops
Deep Dive into Real-World Kubernetes Threats
В продолжении хочу порекомендовать доклад "Command and KubeCTL: Real-World Kubernetes Security for Pentesters", а также крутую статью от этого же автора "Deep Dive into Real-World Kubernetes Threats". Этот материал поможет как пентестерам, кто осваивается в безопасности k8s, так и тем, кто эту безопасность выстраивает.
Ссылка на демо.
Ссылка на слайды доклада.
+ Для тех, кто погружается в тему атак, я проставил ко всем релевантным постам хештэг #attack
#k8s #docker #ops
В продолжении хочу порекомендовать доклад "Command and KubeCTL: Real-World Kubernetes Security for Pentesters", а также крутую статью от этого же автора "Deep Dive into Real-World Kubernetes Threats". Этот материал поможет как пентестерам, кто осваивается в безопасности k8s, так и тем, кто эту безопасность выстраивает.
Ссылка на демо.
Ссылка на слайды доклада.
+ Для тех, кто погружается в тему атак, я проставил ко всем релевантным постам хештэг #attack
#k8s #docker #ops
YouTube
Command and KubeCTL: Real-World Kubernetes Security for Pentesters - Mark Manning (Shmoocon 2020)
Kubernetes is a security challenge that many organizations need to take on, and we as pentesters, developers, security practitioners, and the technically curious need to adapt to these challenges. In this talk we will look at tactics, techniques, and tools…
Joren_Vrancken_4593847_A_Methodology_for_Penetration_Testing_Docker.pdf
1.7 MB
A Methodology for Penetration
Testing Docker Systems
Нашел неплохой документ от января этого года, собирающий все основные моменты по тестированию безопасности приложения в Docker.
#docker #literature #attack #ops #dev
Testing Docker Systems
Нашел неплохой документ от января этого года, собирающий все основные моменты по тестированию безопасности приложения в Docker.
#docker #literature #attack #ops #dev
Security Wine (бывший - DevSecOps Wine)
Joren_Vrancken_4593847_A_Methodology_for_Penetration_Testing_Docker.pdf
Pentest in Docker, Secure Gitlab pipeline and Archdays 2020
Пришло время следующего анонса. 20 ноября мы с Пашей Канн (@shad0wrunner) выступаем на Archdays 2020, где покажем сценарий атаки на приложение в Docker. Специально для конференции мы подготовили репо Pentest-In-Docker, где вы можете самостоятельно шаг за шагом (которые детально описаны в readme) повторить эксплуатацию уязвимости. Есть вариант на русском.
Сценарий предполагает следующие шаги:
- Эксплуатация RCE в Bash (Shellshock)
- Повышение привилегий до root в контейнере через pip
- Создание своей ubuntu с ssh через docker.sock
- Смена контейнера и создание рута на хосте
- Побег из контейнера
- Развертывание Weave Scope для захвата инфры
Для реализации достаточно иметь виртуалку с docker на базе linux.
Образ также может быть использован для пилотирования коммерческих и не очень решений по Container Security, чтобы посмотреть, как они обнаруживают вредоносные действия. Паша, в свою очередь, покажет на воркшопе, как развернуть Gitlab с встроенными проверками Hadolint, Trivy и Dockle. Репо с пайплайном также есть уже на Github.
Вот, кстати, промо-код на скидку -50% для регистрации: DevSecOpsWine
https://archdays.ru/speakers/#track-bezopasnost-v-raspredelennyh-sistemah
#ops #docker #talks #attack
Пришло время следующего анонса. 20 ноября мы с Пашей Канн (@shad0wrunner) выступаем на Archdays 2020, где покажем сценарий атаки на приложение в Docker. Специально для конференции мы подготовили репо Pentest-In-Docker, где вы можете самостоятельно шаг за шагом (которые детально описаны в readme) повторить эксплуатацию уязвимости. Есть вариант на русском.
Сценарий предполагает следующие шаги:
- Эксплуатация RCE в Bash (Shellshock)
- Повышение привилегий до root в контейнере через pip
- Создание своей ubuntu с ssh через docker.sock
- Смена контейнера и создание рута на хосте
- Побег из контейнера
- Развертывание Weave Scope для захвата инфры
Для реализации достаточно иметь виртуалку с docker на базе linux.
Образ также может быть использован для пилотирования коммерческих и не очень решений по Container Security, чтобы посмотреть, как они обнаруживают вредоносные действия. Паша, в свою очередь, покажет на воркшопе, как развернуть Gitlab с встроенными проверками Hadolint, Trivy и Dockle. Репо с пайплайном также есть уже на Github.
Вот, кстати, промо-код на скидку -50% для регистрации: DevSecOpsWine
https://archdays.ru/speakers/#track-bezopasnost-v-raspredelennyh-sistemah
#ops #docker #talks #attack
GitHub
GitHub - Swordfish-Security/Pentest-In-Docker: Docker image to exploit RCE, try for pentest methods and test container security…
Docker image to exploit RCE, try for pentest methods and test container security solutions (trivy, falco and etc.) - GitHub - Swordfish-Security/Pentest-In-Docker: Docker image to exploit RCE, try...
Rootless containers
Нашел на просторах Интернета небольшой сайт Rootless Containers, который отражает прогресс решения задачи по работе с контейнерами без root в разных проектах.
В качестве примеров:
- Встроенные возможности Docker на разных версиях
- Podman rootless-mode
- BuildKit rootless-mode
- LXC unprivileged-mode
- Singularity fakeroot-mode
Есть также ряд сценариев, которые не попали в rootless, так как используются SETUID бинари или run-time контейнера продолжает работать от рута:
- Kaniko
- Makisu
- работа с docker.sock через группу
Для k8s rootless остается пока где-то в будущем. На текущий момент такая возможность есть только в Usernetes и k3s, которые не применимы для продакшн сред. Для решения rootless задачи они используют RootlessKit.
#docker #ops #k8s
Нашел на просторах Интернета небольшой сайт Rootless Containers, который отражает прогресс решения задачи по работе с контейнерами без root в разных проектах.
В качестве примеров:
- Встроенные возможности Docker на разных версиях
- Podman rootless-mode
- BuildKit rootless-mode
- LXC unprivileged-mode
- Singularity fakeroot-mode
Есть также ряд сценариев, которые не попали в rootless, так как используются SETUID бинари или run-time контейнера продолжает работать от рута:
- Kaniko
- Makisu
- работа с docker.sock через группу
docker
и —userns-nemap
режимДля k8s rootless остается пока где-то в будущем. На текущий момент такая возможность есть только в Usernetes и k3s, которые не применимы для продакшн сред. Для решения rootless задачи они используют RootlessKit.
#docker #ops #k8s
Docker Documentation
Rootless mode
Run the Docker daemon as a non-root user (Rootless mode)
No dockershim in k8s, what about security?
Громкая новость, что в kubernetes 1.20 будет выпилен dockershim как high-level runtime. Таким образом, к концу 2021 году всем необходимо будет перейти на cri-o или containerd.
Через некоторое время появляется страница в официальной документации k8s:
Don't Panic: Kubernetes and Docker
А чтобы разобраться, что это вообще такое, советую взглянуть на следующие материалы:
- How Container Runtimes matter in Kubernetes?
- Diving Deeper Into Runtimes: Kubernetes, CRI, and Shims
С точки зрения security советую вам посмотреть следующее видео:
Security Considerations for Container Runtimes
Если коротко, то первое, в чем выиграет безопасность, так это отсутствие
#k8s #ops #docker
Громкая новость, что в kubernetes 1.20 будет выпилен dockershim как high-level runtime. Таким образом, к концу 2021 году всем необходимо будет перейти на cri-o или containerd.
Через некоторое время появляется страница в официальной документации k8s:
Don't Panic: Kubernetes and Docker
А чтобы разобраться, что это вообще такое, советую взглянуть на следующие материалы:
- How Container Runtimes matter in Kubernetes?
- Diving Deeper Into Runtimes: Kubernetes, CRI, and Shims
С точки зрения security советую вам посмотреть следующее видео:
Security Considerations for Container Runtimes
Если коротко, то первое, в чем выиграет безопасность, так это отсутствие
CAP_NET_RAW
в качестве дефолтного capability, при этом сохраняется возможность делать ping
внутри контейнера. Это должно решить проблему с CVE-2020-14386 и возможностью проведения MiTM атак.#k8s #ops #docker
GitHub
kubernetes/CHANGELOG/CHANGELOG-1.20.md at master · kubernetes/kubernetes
Production-Grade Container Scheduling and Management - kubernetes/kubernetes
Threat Alert: Fileless Malware Executing in Containers
Команда Nautilus Team обнаружила образы в Docker Hub, которые могут разворачивать так называемый "безфайловый" вредоносный софт на хостах. Образы были созданы уже известной группировкой TeamTNT, про которую я рассказывал на DevOpsFest.
В рамках атаки вредоносный образ на базе Busybox пытается развернуть на хосте малварь, которая упакована с помощью UPX и ezuri, шифруя таким образом содержимое. Все это создает сложности при определении вредоноса через AV. Далее запускается руткит для сокрытия новых процессов.
В итоге получается, что вся вредоносная активность выполняется из памяти, что вынуждает идти по пути отслеживания run-time, а не проверки имаджей.
Тут, кстати, для меня было открытие, что оказывается Aqua выпустила недавно новый open-source инструмент Tracee, который использует eBPF для отслеживания сисколов.
#k8s #ops #docker #attack
Команда Nautilus Team обнаружила образы в Docker Hub, которые могут разворачивать так называемый "безфайловый" вредоносный софт на хостах. Образы были созданы уже известной группировкой TeamTNT, про которую я рассказывал на DevOpsFest.
В рамках атаки вредоносный образ на базе Busybox пытается развернуть на хосте малварь, которая упакована с помощью UPX и ezuri, шифруя таким образом содержимое. Все это создает сложности при определении вредоноса через AV. Далее запускается руткит для сокрытия новых процессов.
В итоге получается, что вся вредоносная активность выполняется из памяти, что вынуждает идти по пути отслеживания run-time, а не проверки имаджей.
Тут, кстати, для меня было открытие, что оказывается Aqua выпустила недавно новый open-source инструмент Tracee, который использует eBPF для отслеживания сисколов.
#k8s #ops #docker #attack