DevSecOps Talks – Telegram
DevSecOps Talks
7.44K subscribers
85 photos
94 files
1.23K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Forwarded from Security Wine (бывший - DevSecOps Wine) (Denis Yakimov)
Опрос: что вы думаете о DevSecOps?

Коллеги из PT расшифровали доклад с PHDays о применении Security Gym в обучении разработчиков писать безопасный код: "Безопасность для айтишников: как научить разработчиков устранять уязвимости и создавать безопасные приложения". Помимо теории (описания уязвимости в коде), обучение также предполагает написание функциональных и security-тестов, участие в CTF.

Также PT запустили опрос: "Что вы думаете о DevSecOps?", в котором просят пользователей Habr рассказать о том, как обстоят дела с безопасной разработкой в компании. Предлагаю помочь им собрать как можно больше данных для исследования :)

#talks #dev
Привет!

Продолжая тематику визуализации и использования OPA для контроля состояния кластера по ИБ можно обратить внимание на Gatekeeper Policy Manager.

Он представляет из себя read-only web-интерфейс, в котором можно получить информацию об используемых политиках:
🍭 Статус политики
🍭 Код политики, написанный на REGO
🍭 Детальная информация о нарушениях политик (Violations)
🍭 Есть возможность отображения всех нарушений в табличной форме (Report View)

Недавно вышло обновление – v0.5.0, про которое можно почитать в обзорной статье и в changelog соответственно
Всем привет!

Во многих рекомендациях по ИБ (да и не только) рекомендуется указывать Resource Quotas. Одной из сложностей, с которой можно столкнуться – непонятно сколько именно требуется CPU и RAM для создаваемого ресурса.

В качестве «отправной» точки можно использовать Goldilocks: утилита, используя Vertical Pod Autoscaler (VPA), может подсказать:
🍭 Guaranteed QoS (Current/Guaranteed)
🍭 Burstable QoS (Current/Burstable)
🍭 Рекомендации по оптимизации (YAML-шаблоны с Requests и Limits)

Суть работы проста – утилита создает VPA для каждого deployment, после – "запрашивает" у него информацию и отображает ее пользователю.

Больше сведений о том, как задать Resource Quotas, можно найти в статье Ultimate Kubernetes Resource Planning Guide
Привет!

Интересная статья от Aqua Security про «Advanced Persistent Threat Techniques Used in Container Attacks», подготовленная командой Nautilis (R’n’D команда Aqua).

В каждой атаке было идентифицировано следующее:
🍭 Running a vanilla container image. Использование Alpine-образа
🍭 Escaping to the host. Mount файловой системы host для последующего получения доступа
🍭 Downloading a malicious noscript. Загрузка и исполнение noscript cronb.sh
🍭 Loading and executing the malware. Выполнение атаки, например, установка cryptominer и сокрытие присутствия

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

P.S. Всех с пятницей! ☺️☺️☺️
👍1
Привет!

Статья, посвященная контролю outbound traffic. Ребята начали с того, что ответили на вопрос – «А какие внешние соединения устанавливаются нашими приложениями?». После получения ответа команда задумалась о том, как лучше всего контролировать трафик в долгосрочной перспективе:

🍭 Нужна возможность написания политик, контролирующих трафик от specific source до specific destination
🍭 Требуется возможность использования DNS
🍭 Alerting, в случае если трафик отправляется на недоверенный источник

Ребята не смогли найти решение, которое соответствовало бы всем требованиям (статья от 2020 года) и решили начать с малого – контролировать трафик по портам с использованием Network Policy и Calico в качестве CNI.

Посмотрели в сторону Istio, но такое решение их не устроило. Дальше? DNS inspection! Однако и тут были сложности – доступные на тот момент enterprise-решения не могли быть «помещены» в K8S. К чему в итоге пришла команда после попыток и анализа различных подходов?

Ответом стали «эксклюзивные» proxy для всех внешних сервисов, с которыми устанавливаются соединения. Возможно, звучит немного страшно и overkill, но такой подход устроил команду, и она его реализовала. Как именно – рассказано в самом конце статьи ☺️
Всем привет!

Peirates – open source утилита, которую можно использовать для penetration test кластеров Kubernetes.
Основной фокус – privilege escalation и lateral movement.

На текущий момент поддерживаются такие возможности как:
🍭 Reverse shell на node, через pod с hostPath-mounting
🍭 Извлечение service account tokens из secret
🍭 Запуск token-dumping команды для всех pods
🍭 Получение IAM учетных данных из AWS или GCP
🍭 Распространение самого себя в другие pods, эмулируя lateral movement

Утилита обладает удобным интерфейсом - меню, из которого можно выбрать требуемое действие. Чуть больше информации можно прочитать по ссылке. Важно (!): Peirates attacks Kubernetes cluster. Talk to your lawyer and the cluster owners before using this tool.
Несколько дней назад обновилась Container Security платформа от Palo AltoPrisma Cloud Compute Edition v. 21-08.

Главное в этом обновлении:
🍏 Песочница для анализа образов и контейнеров перед их деплоем. Она запускается на отдельной линуксовой ВМ и анализирует активность процессов, файловой системы и сети контейнера. Результаты сообщает в консоль;
🍏 Новые фичи у встроенного WAF — теперь есть поддержка Windows хостов и Service Mesh (LinkerD, Istio);
🍏 Автоматическое создание Pull Request (GitHub) для уязвимостей в зависимостях приложений. Поддерживается Go, Python, Java, and JavaScript (Node.js).

Помимо этого, продукт получил сертификацию Red Hat, появилась обратная совместимость дефендеров с прошлыми версиями консоли, новые виды уведомлений и многое другое.

Подробности по ссылке.
Привет!

Иногда спрашивают – «Что такое DevSecOps?», «Что такое контейнеры?», «Чем Kubernetes отличается от Docker?» и т.д.

Люди ищут информацию
для того, чтобы погрузиться в тематику и узнать про нее больше. Обилие информации тут играет «плохую шутку» - глаза разбегаются и не всегда понятно на что обратить внимание.

Есть awesome-подборки, которые агрегируют данные по различным тематикам/направлениям. Но они, скорее для тех, кто уже немного освоился.

Что делать тем, кто только начинает погружаться?
Рекомендуем посмотреть на «Aqua Cloud Native Wiki» от Aqua Security. Отличная «мини-википедия», в которой собрано много информации:
🍭 DevSecOps
🍭 Cloud Native Applications
🍭 Kubernetes
🍭 Containerized Architecture и многое другое!

Множество полезной информации, консолидированной в едином ресурсе.
Удобно читать и изучать ☺️
Я календарь перевернул - и снова третье сентября!
На постик я сейчас взгляну - и снова третье сентября!

Всем привет!
И снова пятница, первая пятница осени, календарь перевёрнут и со всех дворов и окрестностей на нас льётся осенняя лирика!

Тем временем, мы рады поделиться очень полезной статьей про mTLS от ребят из Buoyant.io

Казалось бы, о TLS сломано столько копий, ну что здесь может быть нового?
Тем не менее, статья может быть полезной и опытным Devops инженерам, и тем более начинающим специалистам.
В статье кратко и понятно излагаются и объясняются основные бенефиты решения такие как:

🍩 Аутентификация для микросервисов
🍩 Проверка подлинности
🍩 Certificate management
🍩 Использование с servicemesh

И самое интересное - короткий и понятный гайд как начать использовать и получить профит от mTLS в своей k8s среде!

Ссылка как всегда ниже. Приятного чтения! 👇

https://buoyant.io/mtls-guide/
Привет!

Datreeутилита, которая позволяет предотвращать misconfigurations путем анализа манифестов на соответствие требованиям ИБ и лучшим практикам.

«Из коробки» доступны проверки (в количестве 30 штук) для таких сущностей как:
🍭 Workload
🍭 Containers
🍭 CronJob
🍭 Networking
🍭 Deprecations
🍭 Others

У утилиты есть web-интерфейс, отображающий информацию об активных проверках и о результатах ее (утилиты) деятельности. Подробнее можно почитать в документации, а если хочется немного «поиграть» с утилитой – то можно воспользоваться Katacoda! ☺️
Привет!

HashiCorp подготовили интересную обзорную статью про один из механизмов аутентификации – AppRole. В статье раскрывается принцип работы:
🍭 Для получения токена аутентификации в Vault приложение должно предоставить Role ID (нечто вроде Username) и Secret ID (нечто вроде Password).
🍭 Role ID и Secret ID должны передаваться в приложение через различные каналы.
🍭 Secret ID должен передаваться только в определенные моменты времени (например, при старте приложения).

Сам концепт напоминает двухфакторную аутентификацию: мы знаем Username (Role ID) и нам нужен одноразовый идентификатор – OTP (Secret ID).

В статье приводится схема распределения доставки Role ID и Secret ID с использованием response wrapping (обратную процедуру, unwrapping, может сделать только уполномоченный client).

В завершении – описываются 11 (!) шагов этой процедуры. Желаем приятного чтения! ☺️

P.S. Также в статье даются простые и понятные аналогии для абстракций Vault, что упрощает общее понимание концепций, в которых он работает. И множество отсылок на полезные материалы в документации решения.
Всем привет!

Интересная подборка с возможными способами Docker Breakout:

🍭 Mounted Docker Socket
🍭 Container Capabilities и Privileged
🍭 Runc exploit (CVE-2019-5736)
🍭 Docker API Firewall Bypass
🍭 Writable hostPath Mount

Рассматриваются примеры эксплуатации, предоставляются ссылки на более детальную информацию о том или ином способе «побега» (в случае, если это допустимо)

P.S. Кстати, на ресурсе еще много чего интересного, с чем можно ознакомиться с точки зрения практической безопасности и тестирования на проникновение
Всем привет!

Статья, посвященная Indicators of Compromise от SysDig. Приводится краткое описание IoC и способов, как его можно идентифицировать (да, преимущественно с SysDig, на практики можно использовать и с другими инструментами):

🍭 Увеличенное использование CPU/RAM
🍭 Аномальный сетевой трафик (исходящий)
🍭 Назначение Cluster-Admin Role
🍭 Аномальная активность пользователей
🍭 Повышенный сетевой трафик (входящий)
🍭 Изменения в файловой системе
🍭 Аномалии в DNS запросах
🍭 Увеличение http response
🍭 Запуск неизвестного процесса
🍭 HTTP 403 и 404

С одной стороны – вроде бы ничего нового, с другой – приятно иметь структурированный перечень и краткие пояснения перед собой ☺️

P.S. Всех с пятницей! Отлично отдохнуть на выходных!
Привет!

Vault-CSI-Provider – утилита, которая позволяет делать инъекции секретов в pods через механизм Secrets Store CSI.
Это может быть удобнее схемы с Sidecar контейнером и подстановкой секретов через механизм Annotations.

Пример использования доступен по ссылке:
🍭 Запуск Minikube и установка HashiCorp Vault
🍭 Создание Secrets, Policy, Role и AuthMethod (Kubernetes)
🍭 Создание SecretProviderClass с конфигурацией HashiCorp Vault
🍭 Создание Pod, оптимизация конфигурации для использования ранее определенного SecretProviderClass

Если
вдруг вас заинтересует указанный способ, просим обратить внимание на «This project is currently supported as a Beta product, but relies on Alpha Kubernetes APIs and the CSI secrets store driver which is also Alpha»
Привет!

По ссылке можно посмотреть видео, посвященное безопасности Docker. В первой части приводится общее описание концепций безопасности Docker: Container Security – Namespaces – Isolating, Userns-remap, CGroups – Restricting, Capabilities – Control, Seccomp / AppArmor – Control.

Далее производится разбор возможностей Escape из контейнера:
🍭 Published Vulnerabilities – Kernel bugs
🍭 Runtime bugs
🍭 Host volume mounts
🍭 Privileged containers
🍭 Dockerd / Containerd access
🍭 Docker.sock
🍭 Containerd.sock
🍭 Docker network 2375/tcp, 2376/tcp

В целом видео достаточно интересное и насыщенное (всего 30 минут), единственный недостаток – отсутствие интерактивности
Threatspec – это open source инструмент, который реализует моделирование угроз путем добавления специальных аннотаций в исходный код. Кроме основного назначения, идея инструмента заключается в устранении стены между командами разработки и специалистами ИБ за счет совместной работы по интеграции процесса моделирования угроз на самом начальном этапе.

Работу с утилитой можно сгруппировать на 3 основных блока:
🍡Установка. Выполняется через pip. После установки утилита инициализируется в конкретном репозитории, в рамках этого процесса генерируется конфиг-файл, который можно скорректировать, например, указать другие репозитории для сканирования
🍡Настройка. Выполняется добавление аннотаций в исходный код (пример приведен далее)
🍡Запуск и генерация отчета. Запускается threatspec, на выходе получается графический отчет с блоками кода и потенциальными проблемами

Аннотации
Внутри threatspec находится парсер, который разбирает файлы с исходным кодом и выполняет поиск аннотаций. Парсер реализован на питоне и поддерживает работу с несколькими MIME типами для понимания какие комментарии необходимо разобрать (например, C, C++/C#, XML…).

Пример использования аннотации может выглядить следующим образом:
// @accepts arbitrary file writes to WebApp:FileSystem with filename restrictions
// @mitigates WebApp:FileSystem against unauthorised access with strict file permissions
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
Где accepts означает «принятие» конкретной угрозы, а mitigates – устранение угрозы с использованием определенной меры.
После запуска threatspec можно получить отчет (для примера картинка прилагается далее).

Более детальную информацию об инструменте и полном перечне аннотаций можно получить здесь: https://github.com/threatspec/threatspec
Привет!

Простая и КРАЙНЕ НАГЛЯДНАЯ статья, описывающая общее устройство сети Kubernetes.

От создания pod
до контроля доступа к нему из-за пределов кластера:
🍭 Создание pod, изолированная сеть, сетевой доступности к контейнеру нет (извне/изнутри кластера)
🍭 «Соединение» pod network и host network, роль CNI в этом процессе, сетевая доступность контейнера на уровне node
🍭 ClusterIP – абстракция, позволяющая общаться с контейнерами, расположенными на разных nodes, сетевая доступность контейнеров на уровне кластера
🍭 NodePort и LoadBalancer – или как сделать контейнеры доступными извне! Описание взаимосвязи сущностей NodePort и LoadBalancer
🍭 Управление «внешней» доступностью при помощи LoadBalancer и Ingress Controller – в чем концептуальная разница и что это такое

Рекомендуем к прочтению! Множество схем, которые «эволюционируют» вместе с увеличением количеством абстракций, что упрощает общее восприятие и помогает разобраться что к чему ☺️
Всем привет!

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

Турецкий стартап, как бы это ни звучало неожиданно, Kondukto.io разработал и вывел на рынок весьма неплохое решение по направлению Vulnerability Orchestration.
Система ориентирована по большей части на направление Application Security, однако пока еще небольшой вендор, открыто идет на контакт с заказчиками и уверяет что большинство Feature Request'ов может обработать в небольшие сроки.
Итого платформа представляет из себя централизованную SaaS консоль, расположенную в Amazon, интегрируемую с различными toolchain в области DevSecOps и позволяющую быстро и удобно агрегировать обнаруженные уязвимости, репортить их и следить за их жизненным циклом.
Платформа работает как с инфраструктурными уязвимостями полученными от Nessus сканеров и Tenable инсталляций, так и контейнерными и уязвимостями в коде.
Прелесть платформы в том что сама платформа выполняет только функции агрегации и трекинга уязвимостей, источники же она использует как уже имеющиеся в вашей инфраструктуре, так и идущие из коробки тулзы:

🍩 SASD/DAST сканеры кода
🍩 Trivy сканер docker образов
🍩 CLI утилита, интегрированная в пайплайны большинства CI/CD систем
🍩 IAC сканеры
🍩 IAM анализаторы
и многие другие.

Процесс обработки уязвимостей, их репортинга через различные issue трекеры от Jira до тяжелых энтерпрайзных ServiceNow прозрачен, понятен и удобен и позволяет в любой момент времени быстро получить инфромацию о статусе кейса, его истории и выполнять активную обработку задачи. И конечно же, многие действия могут и должны быть автоматизированы.

Ссылка на сайт продукта ниже, и помните: Using Jira doesn't make you Agile 🤪

https://kondukto.io/
Привет!

Tilt – удобный инструмент для разработчиков, который поможет им в поиске ошибок при разработке контейнеров и микросервисных приложений.

Ключевые функции Tilt:
🍭 Отслеживает изменения в исходном коде и автоматически запускает build/push deployments для k8s
🍭 Поддержка приложений, состоящих из нескольких компонент/микросервисов
🍭 Предоставляет web-console, в которой отображается информация о deploy, можно посмотреть логи build и deploy процессов
🍭 Возможно использовать Tilt вместе с Helm charts

При помощи графического интерфейса,
кроме получения информации о deploy и логах, можно увидеть в чем именно (в какой сущности) заключается ошибка, что сократит время потенциального debug.

Краткое видео об основных возможностях можно посмотреть вот тут, а небольшую обзорную статью с базовым примером установки и использования – вот тут. И, конечно же, ссылка на repo ☺️
Привет!

Интересная статья от SNYK, в которой рассматриваются некоторые их продукты для обеспечения безопасности Python Application.

«Ваш код, используемые open source компоненты, контейнеры, конфигурация элементов ИТ-инфраструктуры (IaC)»
- то, что можно проанализировать при помощи решений от SNYK:
🍭 Snyk Code – статический анализатор (SAST)
🍭 Snyk Open Source – анализ open source компоненты (SCA)
🍭 Snyk Container – анализ образов контейнеров на наличие уязвимостей и иных ИБ-дефектов
🍭 Snyk Infrastructure as Code – анализ конфигурационных файлов

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

Отдельно хочется отметить Snyk Advisorбесплатный online ресурс, который можно использовать для выбора оптимальной зависимости или образа контейнера, используемого в качестве базового ☺️