Attacking and securing cloud identities in managed Kubernetes part 1: Amazon EKS – первая статья из цикла про атаку и защиту
Автор довольно подробно разбирает, то как работает аутентификация и авторизация в
В конце упоминается тулза MKAT (о которой мы рассказывали ранее), она будет полезной если вы хотите проверить защищенность вашего
Если говорить о
1) Использование сетевых политик, для ограничения доступа
2) Выставление
3) Использование
managed Kubernetes (Amazon EKS).Автор довольно подробно разбирает, то как работает аутентификация и авторизация в
EKS кластере, а потом на примере уязвимового веб-приложения демонстрирует как можно застилить Node credentials через IMDS, а также показывает pivoting технику для продвижения по AWS облаку. Безусловно, без ряда оговорок с неправильной конфигурацией самого кластера ничего бы не вышло.В конце упоминается тулза MKAT (о которой мы рассказывали ранее), она будет полезной если вы хотите проверить защищенность вашего
EKS кластера.Если говорить о
remedations, то это в первую очередь:1) Использование сетевых политик, для ограничения доступа
Pod к IMDS2) Выставление
http_put_response_hop_limit = 13) Использование
IAM ролей для ServiceAccount с целью аутентификации рабочих нагрузок Kubernetes в AWS.👍10🔥1🥰1
Закончим эту неделю достаточно низкоуровневой темой базирующейся на устройстве
1) Какую роль играет
А что это может дать злоумышленнику? Злоумышленник попавший на
В этом нет ничего сверхъестественного, но если об этом не задумываться и не сталкиваться (на проектах, на расследованиях инцидентов), то можно даже и не подозревать о таком.
Linux и ее связью с Kubernetes. А навеяно это все заметкой "Access Kubernetes Objects Data From /Proc Directory". Там рассказывают и показывают:1) Какую роль играет
/proc в Linux
2) Как через /proc можно дотянуться до данных в etcd
3) Как через /proc можно дотянуться до переменных окружений процессов, работающих в контейнерах, в Pods
Как вы понимаете это все верно только для классических контейнеров, которые по сути представляет из себя linux процессы с определенными свойствами (namespaces, cgroups и т.д.).А что это может дать злоумышленнику? Злоумышленник попавший на
Node для доступа к информации контейнеров может не порождать интерактивный shell или выполнять команды в них, а методично пройтись и узнать все необходимое через /proc.В этом нет ничего сверхъестественного, но если об этом не задумываться и не сталкиваться (на проектах, на расследованиях инцидентов), то можно даже и не подозревать о таком.
👍11🔥7👏2❤1
На следующей неделе -
26-27 июня в Санкт-Петербурге во время белых ночей пройдет Saint HighLoad++ 2023. Наша команда там будет, можно встретиться, поговорить про безопасность контейнеров и Kubernetes! Также это прекрасная возможность заполучить наш стикер пак c БЕКОН ;)highload.ru
Профессиональная конференция разработчиков высоконагруженных систем 2023
🔥9💩3❤🔥2🤔2👎1🥰1
1686760856220.pdf
895.2 KB
На недавно прошедшей конференции fwd:cloudsec 2023 был довольно интересный доклад, напрямую затрагивающий безопасность
Спикер рассказывает о реагировании на инциденты в
Наша команда около года назад уже рассказывала про особенности
Kubernetes – Swimming with the Sharks. IR Kubed.Спикер рассказывает о реагировании на инциденты в
Kubernetes с сетевой точки зрения. Весь доклад крутится вокруг инструмента kubeshark, который позволяет мониторить и захватывать трафик в Kubernetes в режиме реального времени. По сути тулза выполняет функционал TCPDump и Wireshark, но в контексте Кубера.Наша команда около года назад уже рассказывала про особенности
DFIR в Kubernetes – в докладе Специфика расследования инцидентов в контейнерах. Будет в тему, советуем ознакомиться.🔥6👏2👍1🥰1
На недавно прошедшей конференции
1) Создание
2) Получение символов для данного ядра (причуды
3) Анализ
Это они показывают на примере
У себя в Luntry мы уже реализовали подобное с рядом особенностей, обходящих ограничений такого подхода. На пример, нет смысла снимать дамп для всей
BSides NYC 2023 был представлен доклад "Analyzing volatile memory on a Google Kubernetes Engine node" (статья, видео, репа) от ребят из Spotify. В принципе из названия понятно, что речь идет об анализе памяти снятой во время инцидента для последующего расследования. Для этого они делают следующее:1) Создание
kernel memory dump (работа с /proc/kcore)2) Получение символов для данного ядра (причуды
COS и не документированное API)3) Анализ
kernel memory dump Это они показывают на примере
3 open-source инструментов: AVML, dwarf2json, Volatility 3. Не всегда и везде это, конечно, получиться провернуть, но как вариант почему бы и нет.У себя в Luntry мы уже реализовали подобное с рядом особенностей, обходящих ограничений такого подхода. На пример, нет смысла снимать дамп для всей
Node, когда экономичнее все сделать для конкретного контейнера и все.Spotify Engineering
Analyzing Volatile Memory on a Google Kubernetes Engine Node
TL:DR At Spotify, we run containerized workloads in production across our entire organization in five regions where our main production workloads are in Google Kubernetes Engine (GKE) on Google Cloud Platform (GCP). If we detect suspicious behavior in our…
👍5
Одно из интересных свойств
Это означает, что вы можете использовать их для хранения и извлечения практически всего. Одна из идей заключается в том, что если, например, вам нужен определенный бинарь на хосте, вы можете просто извлечь его из любого образа контейнера, если вы знаете расположение файла.
Например, с помощью
Узнать про другие возможности
Если вы хотите изучить файловую систему контейнера на разных слоях это можно сделать с помощью dive или онлайн ресурса https://explore.ggcr.dev/
К слову,
container registries заключается в том, что они по сути являются большими хранилищами файлов.Это означает, что вы можете использовать их для хранения и извлечения практически всего. Одна из идей заключается в том, что если, например, вам нужен определенный бинарь на хосте, вы можете просто извлечь его из любого образа контейнера, если вы знаете расположение файла.
Например, с помощью
crane:crane export raesene/alpine-containertools - | tar -Oxf - usr/local/bin/kubectl > kubectlУзнать про другие возможности
crane можно тут.Если вы хотите изучить файловую систему контейнера на разных слоях это можно сделать с помощью dive или онлайн ресурса https://explore.ggcr.dev/
К слову,
registries можно также использовать при пентесте для эксфильтрации данных.🔥9❤2🥰1
Тут внутри нашей команды открыли для себя новую конференцию DevSecCon24 и как вы понимаете, там не обошлось без тем про
- "Kubernetes Goat Interactive Kubernetes Security Learning Playground"
- "Container Security Strengthening the Heart of Your Operations"
- "Zero trust authorization with Open Policy Agent"
Также, там много всего интересного про
Kubernetes и около него:- "Kubernetes Goat Interactive Kubernetes Security Learning Playground"
- "Container Security Strengthening the Heart of Your Operations"
- "Zero trust authorization with Open Policy Agent"
Также, там много всего интересного про
AI в pipelines, AI в DevSecOps, OWASP Top 10, Incident Response, Supply Chain, GitOps. Все видео можно посмотреть тут.Snyk
DevSecCon Community by Snyk | Connect with other DevSecOps | Snyk
Join DevSecCon by Snyk, the world's largest DevSecOps community. Enhance your skills, network with experts, discover job opportunities, and revolutionize your security journey.
👍8🔥1🥰1
Недавно друзья прислали забавную статью "Лучшие тренеры по ИБ и ИТ. Кто они?". Там перечислено
При этом важно отметить, что тренинг бы не был так хорош и нравился людям, если бы не вся наша команда Luntry! Без крутой команды невозможно поддерживать материал в актуальном состоянии для такой большой области как
6 человек, среди которых удалось попасть и мне, что, конечно, очень приятно)При этом важно отметить, что тренинг бы не был так хорош и нравился людям, если бы не вся наша команда Luntry! Без крутой команды невозможно поддерживать материал в актуальном состоянии для такой большой области как
Cloud Native security и Kubernetes security. Нам постоянно приходиться что пробовать, с чем-то экспериментировать, тестировать на большой выборке разных конфигураций и т.д.vc.ru
Лучшие тренеры по ИБ и ИТ. Кто они? — Карьера в IT на vc.ru
Кадровый голод — одно из главных препятствий, мешающих российской ИТ-отрасли динамично развиваться. Сегодня дефицит специалистов составляет 1 млн человек, к 2027 году это число может увеличиться в 2 раза. Между тем спрос на айтишников в текущем году вырос…
👍12🔥6🤡4❤1🤔1
One-Time Pass Codes for Kyverno – статья о нетривальном использовании
Автор пошёл дальше и показал как с помощью
При деплое ресурса пользователю выдается ошибка с
Конечно, это всё сделано ради забавы и найти применение этому в реальной жизни не представляется возможным. Однако этот кейс в очередной раз показывает насколько гибко можно использовать
Kyverno. Автор предлагает довольно интересный подход для использования исключений в правилах. Если говорить о том, какие варианты в целом можно использовать для исключений, то это:1) Определение исключений в правиле
2) Использование custom resources PolicyException
3) Через ConfigMapАвтор пошёл дальше и показал как с помощью
Kyverno можно организовать работу OTP для исключений в политиках. Вкратце, это делается так:При деплое ресурса пользователю выдается ошибка с
OTP, который он может использовать при следующем деплое и пройти проверку. А сам список OTP кодов обновляется и управляется с помощью ещё одной политики.Конечно, это всё сделано ради забавы и найти применение этому в реальной жизни не представляется возможным. Однако этот кейс в очередной раз показывает насколько гибко можно использовать
Kyverno.👍7🦄3🥰1🤔1
Начнём эту первую неделю июля с образовательного ресурса, а именно Chainguard Academy.
Сами они позиционируют свой ресурс так: "Learn how to make your software supply chain secure by default". Там собрано много всего интересного и полезного:
- Глоссарий по теме
- Различные советы, в духе как правильно выбрать базовый образ, как уменьшить поверхность атаки у образов и т.д.
Кто давно читает наш канал знает, что наша команда максимально за подходы, которые позволяют снизить поверхность атаки, а если какие-то недостатки и/или уязвимости остаются, то через них злоумышленник не может нанести вреда бизнесу. И все это во благо еще того чтобы ваши трудовые будни не превращались в день сурка и тушению пожаров по исправлению уязвимостей, а были обычными плановыми мероприятием и не более ;)
Сами они позиционируют свой ресурс так: "Learn how to make your software supply chain secure by default". Там собрано много всего интересного и полезного:
- Глоссарий по теме
supply chain security
- Полезный open source (Wolfi, Apko, Melange, Sigstore и д.р.) по данной теме (и не мало важно что в некоторых смыслах очень уникальный)- Различные советы, в духе как правильно выбрать базовый образ, как уменьшить поверхность атаки у образов и т.д.
Кто давно читает наш канал знает, что наша команда максимально за подходы, которые позволяют снизить поверхность атаки, а если какие-то недостатки и/или уязвимости остаются, то через них злоумышленник не может нанести вреда бизнесу. И все это во благо еще того чтобы ваши трудовые будни не превращались в день сурка и тушению пожаров по исправлению уязвимостей, а были обычными плановыми мероприятием и не более ;)
Chainguard Academy
Chainguard Academy — Software Supply Chain Security Knowledge Base
Learn how to make your software supply chain secure by default
🔥8❤2
Сегодня мы очень рады сообщить вам, что стали доступны все видеозаписи докладов с прошедшей конференции БЕКОН, посвящённой безопасности контейнеров и контейнерных сред (
Таким образом сейчас уже доступны все материалы с мероприятия:
- Видео
- Презентации
- Фотоотчет
P.S. Теперь уже можно смело готовиться к следующему БЕКОНу ;)
Kubernetes в первую очередь).Таким образом сейчас уже доступны все материалы с мероприятия:
- Видео
- Презентации
- Фотоотчет
P.S. Теперь уже можно смело готовиться к следующему БЕКОНу ;)
❤22👍15🔥8❤🔥3
Маленькая заметка "Kubernetes is a cloud operating system" проводит параллели
В одном из своих докладов ("Kubernetes Resource Model (KRM): Everything-as-Code") я также уже поднимал мысль, что
В общем, такие обсуждения/сравнения периодически поднимаются в индустрии. Одним из самых оригинальных в своих разговорах (при этом с хорошей аргументацией) я помню это сравнение
Kubernetes c операционными системами. Это как просто интересно, так и может быть полезно тем кто только погружается в данную тему.В одном из своих докладов ("Kubernetes Resource Model (KRM): Everything-as-Code") я также уже поднимал мысль, что
Kubernetes это ядро Linux 21 века.В общем, такие обсуждения/сравнения периодически поднимаются в индустрии. Одним из самых оригинальных в своих разговорах (при этом с хорошей аргументацией) я помню это сравнение
Kubernetes c распределённой БД)👍10🔥2🥰2🥴2💩1
Интересная статья с официального блога под названием "Verifying Container Image Signatures Within CRI Runtimes".
Там рассказывается о новых фичах, связанных с проверкой подписи образов, в
1)
2) В
Таким образом:
- Подписи образов контейнеров можно проверять не только на деплое с помощью
Там рассказывается о новых фичах, связанных с проверкой подписи образов, в
CRI-O и Kubernetes. А именно:1)
Container Runtime CRI-O с версии 1.28 может самостоятельно проверять подписи образов.2) В
Kubernetes версии 1.28 появилась новая image pull ошибка с кодом SignatureValidationFailed Таким образом:
- Подписи образов контейнеров можно проверять не только на деплое с помощью
Policy Engines или policy-controller, но и прям на Node возможностями Container Runtime
Про аналогичную возможность на стороне containerd пока ничего неизвестно.👍17
Закончить неделю хотелось бы некоторыми своими размышлениями (не очень радостными), навеянными собственным опытом и общениями с коллегами по индустрии. Речь пойдет про инциденты безопасности в
Если поискать по открытым источникам, то, конечно, найдете такие случаи, но это совсем не отражает реальной картины. Так как наша команда Luntry со многими компаниями взаимодействует по безопасности контейнеров и контейнерных сред, то мы видим абсолютно другую картину. Если без деталей, то там по итогу от запуска майнеров и атаки на
Я думаю, по понятным всем причинам компании открыто не делятся такими историями и складывается не корректная картина о угрозах и возможностях, атакующих ...
P.S. А если мы к этому еще прибавим результаты наших аудитов/пентестов Kubernetes, то такого могло быть потенциальнее куда больше.
Kubernetes. Отдельно отмечу, что в этом сам Kubernetes не виноват, он сам выступает же, по сути, как среда выполнения. Но его слабый контроль и настройка приводят уже к вещам о которых напишем далее.Если поискать по открытым источникам, то, конечно, найдете такие случаи, но это совсем не отражает реальной картины. Так как наша команда Luntry со многими компаниями взаимодействует по безопасности контейнеров и контейнерных сред, то мы видим абсолютно другую картину. Если без деталей, то там по итогу от запуска майнеров и атаки на
CI\CD подсистему до проникновения в корпоративную сеть, заражения сотрудников и удаления части инфраструктуры компании. При этом оставим за скобками те инциденты, в которых так и непонятно каким образом пришел атакующий, так как следы исчезают, где-то на границе контейнерных и классических сред.Я думаю, по понятным всем причинам компании открыто не делятся такими историями и складывается не корректная картина о угрозах и возможностях, атакующих ...
P.S. А если мы к этому еще прибавим результаты наших аудитов/пентестов Kubernetes, то такого могло быть потенциальнее куда больше.
👍5🤡2
Начнем эту неделю с одного занимательно, малоизвестного факта о
Знаете ли вы что в
Тоесть по сути
Самым известным и одним из важных для задач ИБ подобных ресурсов является Audit Policy из группы audit.k8s.io/v1 API, в котором описывается политика аудита! Как вы наверняка помните это
P.S. Такими моментами, конечно, `k8s` расстраивает нашу команду, да и вообще всех разработчиков решений под `k8s`.
Kubernetes.Знаете ли вы что в
Kubernetes есть так называемые "unpublished" API ?!Тоесть по сути
YAML ресурс есть, но вот поработать с ним как с другими YAML ресурсами по RESTful нельзя ...Самым известным и одним из важных для задач ИБ подобных ресурсов является Audit Policy из группы audit.k8s.io/v1 API, в котором описывается политика аудита! Как вы наверняка помните это
YAML ресурс передается в ключах запуска для Kubernetes API server и все. Динамически ее отправить, поправить нельзя, нужен перезапуск Kubernetes API server.P.S. Такими моментами, конечно, `k8s` расстраивает нашу команду, да и вообще всех разработчиков решений под `k8s`.
👍2
Копаясь в недрах
Из его описания можно узнать:"This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination."
Более детальнее об этом написано в KEP-753: Sidecar containers.
По сути это
Это должно упростить ряд задач и повысить стабильность системы.
Kubernetes на GitHub, наша команда наткнулась на очень интересный PR (он кстати уже даже смерджен и будет в v1.28) и называется он "Add SidecarContainers feature"! Из его описания можно узнать:"This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination."
Более детальнее об этом написано в KEP-753: Sidecar containers.
По сути это
initContainers только с полем restartPolicy и стартуют до основных контейнеров и не мешают их завершению!Это должно упростить ряд задач и повысить стабильность системы.
👍10🤩7❤1
Хочется сегодня поделиться одной важной (и возможно даже очень очевидной) мыслью, но к которой врятли можно прийти если просто пользоваться образами контейнеров без погружения в принципы их устройства.
Значит собрались мы вчера расширенным составом нашей команды (
Из-за чего так?
Значит собрались мы вчера расширенным составом нашей команды (
Dev, Sec, DevOps), чтобы посмотреть на проработку одной новой фичи по безопасности образов с разных сторон, разными взглядами и по итогу пришли к очень неутешительным выводам. А именно: "Все подходы, анализы на базе статического анализа позволяют защититься только лишь от легитимного пользователя, но не являются никакой помехой для вредоносного". Под легитимным пользователем мы понимаем пользователя, который никаким образом не пытается обмануть, обойти систему, а вредоносный соответственно готов на это идти. И он это может делать даже не столько ради того чтобы взломать/заразить/... что-то, столько ради того чтобы меньше иметь проблем с выкаткой, с безопасностью и другими compliance вещами в компании. Из-за чего так?
By design в docker много моментов не дальновидных, не очень хороших (часть таких моментов уже обсуждалось на канале и в комментариях не раз) + все недостатки статического анализа. Это определенно заслуживает отдельного доклада, где наша команда Luntry с деталями и примерами всем этим поделиться.👍22🤔5😱2🤮2💩1
xeol - простенький сканер образов контейнеров, SBOM и файловых систем на проверку пакетов на
Полезно чтобы понять, что по пакетам у которых жизненный цикл поддержки закончился, обновлений, фиксов, патчей уже можно даже не ждать и сканеры все равно будут показывать, что та или иная
end-of-life (EOL). Поддерживает ввод Syft, SPDX и CycloneDX SBOM форматы. Саму базу знаний о end-of-life инструмент берет с https://endoflife.date/ (не раз уже писали об этом ресурсе).Полезно чтобы понять, что по пакетам у которых жизненный цикл поддержки закончился, обновлений, фиксов, патчей уже можно даже не ждать и сканеры все равно будут показывать, что та или иная
CVE - Not fixed.👍5🔥1
На протяжении всей моей карьеры мне всегда нравилось быть на стыке практической и академической безопасности и брать лучшее из этих двух миров. Тут на глаза попался академический пейпер "Secrets Revealed in Container Images: An Internet-wide Study on Occurrence and Impact" в котором исследователи очень интересно и системно подошли к анализу наличия секретов в образах контейнеров. Они проанализировали:
-
Результаты можете видеть на скриншотах. Отмечу что вся методология расписаны и даже даны все
- Как и сколько авторы нашли
- Как авторы даже проверили часть найденный секретов и они были рабочими ;)
Не поленитесь и почитайте работу полностью)
-
337,171 образов c Docker Hub и 8,076 с private registries
- 1,647,300 слоев суммарноРезультаты можете видеть на скриншотах. Отмечу что вся методология расписаны и даже даны все
regexp по которым они искали. В конце авторы также дают свои рекомендации как правильно работать с образами и секретами. Мне очень понравилось 2 момента:- Как и сколько авторы нашли
private registries и что там можно было все скачать и даже залить/отравить вредоносный образ- Как авторы даже проверили часть найденный секретов и они были рабочими ;)
Не поленитесь и почитайте работу полностью)
🔥19👍6👏2🤡2