DevSecOps Talks
6.39K subscribers
55 photos
66 files
915 links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Привет!

Есть отличный способ сэкономить 65$ и посетить (хоть и виртуально) одно из самых интересных мероприятий, посвященных контейнерам!

Конечно же, речь идет про KubeCon 2021, который пройдет 4-7 мая в online-формате. Регистрация ДО 15 февраля будет стоить всего 10$ (вместо стандартных 75$).

Согласно данным организаторов, за эту сумму вы получите «full-access to the keynotes, breakout sessions, solutions showcase, networking, games and more!»

Зарегистрироваться можно по ссылке.

P.S. Также есть free-версия, ограниченная «access to the daily keynotes, solutions showcase and sponsor demo theater only». Если захотите посетить Security Day (устраивается отдельно), то это будет стоить дополнительных 20$
Привет!

Отличные новости для вторника! Стали доступны материалы с конференции Zero-trust, организованной Kong (spoiler: их реально много). Все доступно без регистрации и sms!

Примеры того, что можно найти по ссылке:

🍭 How To Do Kubernetes Security When You Don’t Know Anything About Kubernetes Security
🍭 Zero-Trust for Containers and Kubernetes
🍭 API Threat Protection: Learning From Real Life Examples
🍭 Learnings from CNCF’s Envoy and OPA Creators Matt Klein and Tim Hinrichs

И много другое ) Материалов много, есть не только video, но и статьи, e-books и отчеты. Надеемся, что вам пригодится!
Привет!

О важности анализа компонент ПО много и часто говорят. И не зря! По ссылке приведена очень интересная история, о том что может пойти не так, если не контролировать что находится в ПО и как оно туда попадает.

Что сделал автор?
🍭 Получил package.json, который содержал перечень npm-пакетов, используемых PayPal
🍭 Обратил внимание, что часть пакетов является private (отсутствовали в public репозиториях)
🍭 Создал собственные версии указанных пакетов в public репозиториях с указанием идентичных имен
🍭 Исследователь отметил, что при наличии идентичного пакета в public/private репозитории «выиграет» public. Иногда «выигрывает» бОльшая версия пакета
🍭 Собрал немного данных у Компании с помощью data exfiltration через DNS. Как? Ответ находится в статье ☺️

Аналогичный "трюк" он провернул с Microsoft, Apple, PayPal, Shopify, Netflix, Tesla, Yelp и Uber 😊
Всем привет!

Наткнулись на интересный проект, которые агрегирует решения по ИБ, актуальные в том числе и для DevSecOps.

Карточка решения включает в себя:
🍭 Краткое описание решения
🍭 Ссылка на официальный сайт
🍭 Тип – enterprise или open source
🍭 Поддерживаемые ОС – Windows/Linux

Проект продолжает развиваться, можно предложить собственные решения для того, чтобы их добавили. О том, как это сделать, написано по ссылке на GitHub 😊
- О нет!
- О нет!
- О да-а-а! Сегодня пятница!
А это значит что ты знаешь что это значит! 🖖🏻
Это значит - время сбавить обороты, начать готовиться к выходным, а ещё самое время провести Chaos Engineering кластера в PROD!

Сломать PROD?!
Не просто сломать PROD, а сломать и посмотреть как именно сломается. Это и есть самое веселое в Chaos Engineering.

Стресс-тест кластера Kubernetes/Openshift может выявить некорректную конфигурацию или наоборот помочь убедиться в достаточной отказоустойчивости.
А ещё, это можно сделать весело!

И в этом поможет Kubeinvaders! Все сразу становится ясно, если сказать что это классический Invaders, только вместо элиенов (та-дам!) поды в кластере!! 😱

🍩 Управляй своим battleship’ом прямо в терминале
🍩 Истребляй полчища Alien-pod’ов
🍩 Анализируй метрики

И самое главное!

🍩 Тимлид не докопается, потому что ты занят Chaos Engineering!

Ссылка на GitHub ниже, установка простая, для всего остального есть кластер PROD👇

https://github.com/lucky-sideburn/KubeInvaders
Привет!

Небольшая, но интересная новость, которую вы может быть пропустили. Не знаете, какой сканер выбрать для анализа образов контейнеров? Используете Docker?

Попробуйте запустить команду… docker scan! Docker и SNYK объявили о партнерстве и добавили эту функцию by default в версии Docker >= 2.3.6.0. При запуске вас спросят согласны ли вы с использованием стороннего сервиса (в данном случае – SNYK), после чего образ отсканируется и будет предоставлен результат.

Дополнительные возможности команды представлены на картинке ☺️

Примечание: сканирование local images находится в стадии beta. Подробности на официальной странице Docker
Всем привет!

Это птица? Это самолёт? Это Network Policy Editor for Kubernetes!
Сколько копий сломано по безопасности сети в Kubernetes, сколько слов об этом сказано, но так мало говорят о том, как конфигурировать сетевые правила удобно.

Безусловно, декларативное описание настроек это хорошо и правильно. Весь Kubernetes на этом построен. Но как все же порой хочется, чтобы унылый текст конфигураций превратился в нечто более наглядное и user-friendly.
И вот, свершилось! То чего многие так ждали! Интерактивный редактор сетевых политик!

Проект Cilium представляет ряд решений по управлению сетью в Kubernetes. Однако Network policy Editor for Kubernetes выделяется среди них своей нежной заботой об администраторе Kubernetes. Да, может и не труЪ, зато красиво и понятно.

Как пользоваться? Все просто:
🍩 На схеме обозначить ресурсы
🍩 Наглядно описать сетевое правило
🍩 Убедиться что все верно
🍩 Готово!

Дальше NPEK переформатирует правило в манифест и его можно применять в кластере!
С радостью делимся ссылкой на редактор, а подробную информацию о проекте можно найти на сайте разработчика 👇

https://cilium.io/blog/2021/02/10/network-policy-editor

P.S. с портативных браузеров редактор не открывается, иначе будет неудобно с ним работать ☺️
Всем привет!

В библиотеке IEEE Xplore есть интересная статья про контейнеры и безопасность. Она называется Container Security: Issues, Challenges, and the Road Ahead (апрель 2019).

Цель этой статьи со слов авторов – помочь разобраться в требованиях к ИБ в части контейнеров и дать более четкое представление о возможных уязвимостях и атаках.

Авторы проанализировали различную литературу, сформировали 4 глобальных типа требований по безопасности (они называют это use cases) с разбивкой по способу реализации (software/hardware) и для каждой составили модель угроз с описанием угрозы, атаки, примера исполнения и варианта устранения.

Пример 1:
🍡Use case I: защита контейнеров от запускаемых в них приложений
🍡Угроза: Уязвимости в образах
🍡Атака: Remote Code Execution
🍡Сценарий: Эксплуатация уязвимости CVE-2014-6271 (ShellShock)
🍡Решение: периодические сканирование образов на уязвимости

Пример 2:
🍡Use case 2: защита взаимодействий между контейнерами
🍡Угроза: бесконтрольный сетевой доступ между контейнерами
🍡Атака: сканирование портов, поиск уязвимостей
🍡Сценарий: использование скомпрометированного контейнера для поиска и сканирования контейнеров, размещенных в других сетях с иным уровнем доступа
🍡Решение: разделение контейнеров по виртуальным сетям с различным уровнем доступа, мониторинг аномального поведения

Эти материалы также дополняются достаточно подробным описанием стандартных механизмов защиты, реализуемых в ОС Linux (такие как namespaces, SELinux и пр.).

В качестве итога статьи приводится сводная таблица, охватывающая все описанные угрозы и меры по их устранению с указанием источников на дополнительные материалы.

Ссылка на статью: https://ieeexplore.ieee.org/document/8693491
Всем привет!

Свежие новости с передовой от команды Team Nautilus (Aqua Security).

Группировка TeamTNT запустила новую кампанию против сред, в основе которых лежит Docker и Kubernetes.

Они выложили пачку вредоносных образов на Docker Hub, предназначенных для атак на некорректно сконфигурированный docker daemon, KubeFlow дашборды и Weave Scope с целью хищения учётных записей облачных провайдеров, криптомайнинга, использования backdoor-в и запуска червя для поиска следующей жертвы. По словам автора это первая столь масштабная кампания, направленная на массовое и систематическое сканирование Интернета для поиска "проблемных" сред контейнеризации и оркестрации для проведения дальнейших атак.

В статье также указано название репозитория Docker Hub и приведён поименный перечень вредоносных образов с кратким описанием того, что делает каждый из них.

Почитать можно здесь: https://blog.aquasec.com/teamtnt-campaign-against-docker-kubernetes-environment
Всем привет!

Если вы часто ошибаетесь при написании YAML файлов или «никак не можете найти ту самую ошибку» в существующем, то вам может пригодиться вот этот сайт: https://containership.github.io/konstellate-editor/?utm_sq=g0ojaltgko

Работает просто – создание YAML файлов практически через drag’n’drop!

Выбираете тип того, что хотите создать, например:

🍭 Pod!
🍭 Добавляете metadata и, например, labels
🍭 Указываете необходимые значения параметров, поступаете аналогично со spec!
🍭 Готово, осталось только сохранить и пользоваться!

Помимо этого можно использовать существующие файлы для того, чтобы понять, как они структурированы (сайт графически группирует логически связанные объекты) или найти «ту самую ошибку» (она будет обведена красным)
Привет!

Что общего у инструментации (instrumentation) и защиты контейнеров? На первый взгляд – ничего, но это только на первый ☺️

Про инструментацию очень мало статей на русском языке, а этот подход зачастую используется в интерактивных сканерах (Interactive Application Security Testing) и не только. Но интернет помнит! Есть статья 2013 года, в которой описаны такие вещи как:

🍭 Инструментация исходного кода
🍭 Инструментация байт-кода
🍭 Инструментация бинарного кода
🍭 Статическая бинарная инструментация
🍭 Динамическая бинарная инструментация

Скорее всего не все ссылки или указанные в статье инструменты доступны/поддерживаются. Но сам принцип, описанный в статье, остается!

Так при чем тут контейнеры? Все просто! Те, кто дочитают статью до конца увидят, что ее автор – D1g1 – основатель и бессменный лидер одного из лучших каналов по безопасности контейнеров - k8s (in)security 😊 Очень рекомендуем! Сами читаем и многое для себя узнаем!

👉 Ссылка на канал Дмитрия: https://t.me/k8security
👉 Ссылка на статью Дмитрия: https://xakep.ru/2013/09/11/61232/
Неделя короткая, зато более-менее спокойная, есть время на подумать. Сегодня предлагаю поговорить за резервные копии конфигурации Kubernetes.
Как пишут в нашей базе знаний, если есть почти работающий кластер (c) с которого нужно срочно мигрировать и полчаса времен, можно воспользоваться тулой https://github.com/WoozyMasta/kube-dump.

Можно запускать:
📍разово на локальной машине как скрипт, но должны быть установлены jq и yq (скорее всего они у вас есть);
📍разово в виде контейнера на локальной машине;
📍разово и как cron job в Kubernetes.

Можно сделать дамп как всего кластера, так и отдельных ресурсов в отдельных неймспейсах. Круто, что автоматически можно залить в Git, но будьте внимательны с секретами.
Привет!
Сегодняшний пост будет коротким, потому что не поделиться таким - просто грех!

Наткнулись на интерактивную карту ядра Linux.
Все что вы хотели узнать про работу ядра в операционной системе, но боялись спросить - все отражено на карте, все кликабельно и наглядно!
На схеме представлены модули и компоненты:

🍩 Основные подсистемы ОС
🍩 Зависимости процессов, модулей и устройств
🍩 Послойная структура от hardware до системных процессов

Схема может очень пригодиться для как для более глубокого понимания устройства операционной системы, так и для структурирования уже имеющегося понимания.
Ну а про наглядность нечего говорить, куда лучше увидеть самому.

Карта доступна по ссылке на GitHub. На мобильных браузерах может не работать, лучше заходить с десктопа:

https://makelinux.github.io/kernel/map/
Привет!

Многим нравится осуществлять конфигурацию кластером Kubernetes с использованием терминала, но, есть те, кто верит, что «лучше 1 раз увидеть, чем сто раз услышать!».

Именно для тех, кто ищет удобный web ui для Kubernetes,
рекомендуем обратить внимание на проект Headlamp. Согласно статье, он:

🍭 100% open source
🍭 Активно поддерживается
🍭 Может быть расширен при помощи плагинов
🍭 Позволяет делать read/write – операции, а не read-only

Более подробно с решением можно познакомиться, почитав документацию 😊
Всем привет!

Нашли простую и лаконичную статью от Isaac Z. Schlueter (одного из авторов npm), в которой приводятся рекомендации о том, как минимизировать ущерб или не допустить реализацию supply chain attack (о них мы недавно писали) на примере использования npm.

Если кратко, то:

🍭 Использование scope для внутренних пакетов (предопределенное имя, начинающееся с @)
🍭 Использование. npmrc файла в корне проекта с указанием @mycompany:registry = https://registry.mycompany.local/, что позволит использовать локальный реестр «по умолчанию»
🍭 Корректно настраивать proxy
🍭 Анализировать причины нарушения сборок (звучит очевидно, но происходит не всегда)
Большинство из нас регулярно пользуется продуктами HashiCorp вроде Terraform, Vault и Consul, а вот про Nomad многие только слышали. Это оркестратор, в том числе для контейнеров, концептуально отличный от Kubernetes. Краткий экскурс в терминах k8s:
https://www.hashicorp.com/blog/a-kubernetes-user-s-guide-to-hashicorp-nomad
Всем привет!

Сегодня за инструменты. kube-psp-advisor - утилита от Sysdig, которая помогает упростить разработку Pod Security Policies (политики для реализации контекстов ИБ в Kubernetes). Она может работать как с реальной конфигураций Kubernetes, так и с конкретными YAML файлами, содержащими спецификацию подов (например, с Deployment, DaemonSet и пр)

Утилита имеет 2 команды:
🍡kube-psp-advisor inspect - выполняет подключение к API серверу кластера и сканирует workload-ы в конкретном namespace или во всем кластере, затем генерирует PSP
🍡kube-psp-advisor convert - анализирует YAML, затем генерирует PSP

Установка утилиты осуществляется одним из вариантов:
🍡Через Krew плагин
🍡Сборка (make build)
🍡Контейнер

Дополнительную информацию, такую как описание сценариев использования, пример политик и пр, можно найти по ссылке: https://github.com/sysdiglabs/kube-psp-advisor?utm_sq=gn81msojq4
Привет!

Компания Sonatype расширила свое предложение, добавив туда Nexus Container и расширив возможности Lifecycle добавлением Infrastructure as Code Pack.

Nexus Container
позволяет сканировать образы на наличие уязвимостей и compliance-несоответствий, но, что наиболее интересно на наш взгляд: «Not only do we continuously monitor your containers to identify vulnerabilities and share available fixes once in-production, we’re the only solution that can enforce Data Loss Protection and prevent zero-day malware and network attacks, tunneling, and breaches». Container DLP engine – звучит интересно, что из себя представляет на практике пока не очень понятно (как только протестируем – расскажем!)

Infrastructure as Code помогает выбирать наиболее безопасные open-source компоненты для использования в вашей инфраструктуре

Немного подробней можно почитать тут:
🍭 Nexus Container: https://www.sonatype.com/nexus/container?topnav=true
🍭 Infrastructure as Code: https://www.sonatype.com/nexus/infrastructure-as-code?topnav=true
Всем привет!

Бывают случаи, когда необходимо создать контейнер из другого контейнера (runner в CI, сбор дополнительных метрик). Как это можно сделать?

Есть несколько основных «стратегий»:
🍭 Docker in Docker, DinD – официальный образ, который позволяет запускать контейнер внутри контейнера we need to go deeper. Нюанс – ему требуется –privileged
🍭 Docker out of Docker, DooD – реализуется через mount /var/run/docker.sock, что позволяет использовать docker engine хоста для запуска контейнера «по соседству». Нюанс – можно получить информацию о контейнерах на хосте
🍭 Альтернативные runtime – реализуется при помощи «подмены» runtime, например, на sysbox-runc

Более подробно про это можно почитать в статье. В целом практика, хоть и существует, не является безопасной и рекомендуемой.

А вы используете такие подходы? Если да, то зачем и почему без этого нельзя обойтись?
Всем привет!

Kyverno – это инструмент для работы с политиками в Kubernetes, который может использоваться как для сканирования ресурсов кластера на соответствие лучшим практикам, так и для реализации этих практик путем блокировки или изменения API запросов. Важной особенностью является то, что управление политиками осуществляется аналогично управлению ресурсами Kubernetes. Это значит, что а) изучение нового языка (как в случае с OPA используется Rego, например) не требуется и б) управление политиками можно реализовать через стандартные утилиты, такие как kubectl.

Что можно делать с Kyverno?
🍡Проверять, изменять или генерировать любые ресурсы (например, генерировать квоты для namespaces при необходимости)
🍡Блокировать ресурсы или генерировать отчеты о нарушении политик
🍡Проверять политики и ресурсы в CI/CD сборке до применения в кластере, используя Kyverno CLI и пр.

Как работает Kyverno?
🍡Kyverno запускается в кластере как динамический admission controller,
🍡Посредством webhook получает проверяющие или изменяющие HTTP запросы с kube-apiserver
🍡Применяет соответствующие политики контроля
Установить Kyverno можно или напрямую из манифеста, или используя Helm.

Более подробная информация находится здесь: https://kyverno.io/docs/

А есть ли примеры?
Примеры есть. Один из них представлен ниже.

Запрет на использование пользователя с правами root
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: disallow-root-user
spec:
validationFailureAction: audit
rules:
- name: validate-runAsNonRoot
match:
resources:
kinds:
- Pod
validate:
message: "Running as root user is not allowed. Set runAsNonRoot to true"
anyPattern:
- spec:
securityContext:
runAsNonRoot: true
- spec:
securityContext:
runAsUser: ">0"
- spec:
containers:
- securityContext:
runAsNonRoot: true
- spec:
containers:
- securityContext:
runAsUser: ">0"

Больше примеров можно найти по ссылке: https://github.com/kyverno/kyverno/blob/main/samples/README.md