DevSecOps Talks
7.1K subscribers
71 photos
86 files
1.09K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
CyberCamp 2025: call for papers!

Всем привет!

CyberCamp возвращается! Мероприятие, посвященное развитию как теоретических, так и практических навыков по информационной безопасности ищет спикеров!

В этом году CyberCamp будет длиться целую неделю (ну почти): с 20 по 25 октября 2025 года, дни докладов – 21,22 и 23 октября.

Темы по безопасной разработке и DevSecOps в наличии:
🐾 Безопасность приложений (исходный код, компоненты и т.д.)
🐾 Защита цепочки поставки ПО
🐾 Управление секретами
🐾 Защита API
🐾 Управление приоритетами при устранении ИБ-дефектов в безопасной разработке
🐾 Защита окружения разработки (VCS, CI/CD, Registry и т.д.)
🐾 Защита контейнеров: от Docker до Kubernetes

Если у вас есть что рассказать, то все просто: заполняете форму на сайте, после чего с вами свяжутся представители программного комитета и уточнят данные.

Что делать, если «вашей темы» нет в списке? Все равно заполнять форму и подаваться с докладом!

Важную информацию о датах можно найти на сайте мероприятия. Ждем ваших заявок и до встречи на CyberCamp 2025!

P.S. CFP открыт до 15-ого июня 2025 года 🟢
Please open Telegram to view this post
VIEW IN TELEGRAM
CPU Limits и throttling в Kubernetes

Всем привет!

Еще один отличный материал, посвященный управлению ресурсами в Kubernetes. А именно – когда (не) надо использовать CPU Limits при работе с контейнерами.

Сперва Автор описывает общий концепт: что такое CPU Requests и CPU Limits, для чего они используются и как все это связано с cgroups v2.
Если упростить, то CPU Limits определяют максимальное время использования процессора в
рамках «окна», равного 100 ms.

Грубо говоря, если установлен CPU Limit, равный 0.4, то на реализацию задачи, которой требуется 200 ms процессорного времени уйдет… 440 ms.
Причина проста – в первые 100 ms было использовано лишь 40 ms времени процессора, остальные 60 ms – простой и ожидание нового «окна».

Для некоторых приложений это не столь значимо, для некоторых – достаточно критично. Например, могут не сработать liveness probes, могут быть пропущены heartbeat-события и многое другое.

В завершении статьи Автор дает рекомендации о том, когда (не) нужно использовать CPU Limits и о том, как можно идентифицировать throttling.

Кстати, статья – это лишь некоторое summary доклада, презентация которого доступна по ссылке в статье (~ 100 слайдов, посвященных тематики).

Много графиков, пояснений и формул, что позволят лучше разобраться в вопросе и решить для себя – а стоит ли использовать CPU Limits.
SecDim: теория и практика по безопасной разработке!

Всем привет!

Еще один сайт, на котором можно найти (местами бесплатную) теорию и практику по разработке безопасного ПО.

На сайте можно найти:
🍭 Теорию по принципам Secure Design
🍭 Основы безопасной разработки
🍭 Разборы реальных случаев (например, Stack Overflow Outage в 2016)
🍭 Безопасная работа с GitHub Actions
🍭 Безопасное программирование на Java, Golang, Python, JS и т.д.

Понравилась, как реализована практика: есть небольшое видео, в котором объясняется концепт уязвимости. Далее нужно поправить существующий код и пройти тесты. И тут есть нюанс – важно не только исправить дефект, но и сохранить работоспособность приложения.

Сами тесты «лежат рядом» и можно посмотреть, что и как проверяется на случай, если застряли и «непонятно, что от вас хотят»

Все это можно «скачать и разбирать» локально или воспользоваться возможностями, предоставляемыми SecDim.
Trail of Bits: Fuzzing!

Всем привет!

Trail of Bits продолжает развивать свой Testing Handbook. Теперь в нем можно найти информацию по одной из самых «пугающих» и сложных тем в Application Security, а именно – Fuzzing.

Команда собрала подборку для:
🍭 C/C++ (libFuzzer, AFL++, LibAFL)
🍭Rust (cargo-fuzz)
🍭Python (Atheris)
🍭Ruby (Ruzzy)
🍭OSS-Fuzz

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

Да, это «лишь капля в море», но может стать хорошей отправной точкой для начала. Кстати, в разделе «Additional resources» есть ссылки на дополнительные материалы по теме для углубленного изучения.

Помимо этого в Testing Handbook можно найти информацию о статическом анализе на примере Semgrep и материалы по тестированию Web-приложений. Об этом мы писали тут и тут.
Устройство файловой системы контейнеров

Всем привет!

«Как каждый контейнер получает свою собственную файловую систему?» - с этого вопроса началось небольшое исследование, описанное в статье.

Сперва Автор создает простой контейнер на базе Alpine и помещает внутрь него файл hello_there.txt.

Да, этот самый файл можно найти и в операционной системе хоста по пути /var/lib/docker… А еще там есть разные папки - diff, merged и именно этому посвящена остальная часть статьи.

Эти данные необходимы для управления overlayfs, которую использует Docker. Грубо говоря, есть несколько «директорий» (не совсем так, но для концепта подойдет):
🍭 Lower, доступную только для чтения. Именно там хранится то, что было в изначальном образе
🍭 Upper (она же Diff), в которую можно записывать. Тот самый «дополнительный слой образа», который создается при старте контейнера
🍭 Merged. Соединение Upper и Lower

После пояснения основных концептов на крайне наглядных примерах (схемы с комментариями) Автор создает файловую систему контейнера, имитируя деятельность Docker.

В итоге имеем отличную статью, которая позволяет лучше разобраться в том, как именно устроены и работают контейнеры. Рекомендуем!
Поиск секретов с PSCommitSecretScanner

Всем привет!

PSCommitSecretScannerPowerShell-модуль, который позволяет искать секреты в git-репозиториях.

Доступен следующий функционал:
🍭 Сканирование public или internal GitHub repo
🍭 Анализ последних commits
🍭 Фильтрация результатов (например, покажи данные за X последних дней)

«Под капотом» - набор регулярных выражений для поиска секретов разного вида: AWS Keys, GitHub Tokens, Slack Webhooks, JWT и т.д. С полным списком ознакомиться можно тут.

Кстати, многое в работе PSCommitSecretScanner было позаимствовано у другого проекта – PSSecretScanner, который также использует возможности PowerShell для поиска секретов.
Обновление JCSF!

Всем привет!

Мы обновили наш фреймворк по аудиту и защите контейнерной инфраструктуры JCSF! Благодаря ему можно как провести аудит собственной контейнерной инфраструктуры, так и запланировать дальнейшие действия в области защиты сред контейнеризации.

В новом релизе:
🍭 Добавили домен по аудиту standalone Docker
🍭 Доработали раздел по защите манифестов
🍭 Исправили определения и добавили детализацию по проверкам

Детальная информация по новому релизу и сам фреймворк доступны по ссылке.

Напомним, что мы будем очень рады, если вы присоединитесь к совершенствованию JCSF и станете его контрибьютором.
Виртуальные машины внутри контейнеров

Всем привет!

K8s умеет много всего, в том числе запускать и управлять виртуальными машинами. Реализуется это с помощью KubeVirt.

Статья Learn KubeVirt: Deep Dive for VMware vSphere Admins подробно раскрывает основные моменты, связанные с этой технологией.

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

В конце автор подводит итог о плюсах\минусах технологии и применимости ее в реальной жизни.

PS. От себя добавим: возможности по управлению виртуальными машинами сильно зависят от дистрибутива K8s. Например в OpenShift это будут одни возможности, в каком-то другом дистрибутиве иные. Обращайте на это внимание!
Как Kubernetes управляет контейнерами?

Всем привет!

Еще одна статья из серии «как оно работает под капотом?». На этот раз Автор разбирается в том, как именно Kubernetes управляет контейнерами.

Начинается все с просто аналогии:
🍭 Есть некая сущность, которая определяет то, что она хочет создать (спецификация)
🍭Есть еще одна сущность, которая может принимать спецификацию и транслировать ее в нечто более «низкоуровневое»
🍭Последняя сущность принимает все, что получилось выше и запускает контейнеры, используя возможности Linux

Да, это очень и очень упрощенная модель, но она позволяет понять основные концепции.

Далее, после небольшой справки по процессам в Linux (запуск, изоляция), начинается самое интересное!

Процессы, управление ресурсами через `cgroups`, и многое другое! Автор разбирает это все на примерах создания pod в кластере Kubernetes, а также рассматривает происходящее «с точки зрения узла», на котором все это создается.

Крайне наглядно и полезно, рекомендуем!
LLSoftSecBook.pdf
881.9 KB
Low-Level Software Security for Compiler Developers

Всем привет!

Впереди майские праздники и есть немного свободного времени, например, для того, чтобы что-то почитать.

Если вы искали материал по теме безопасной разработки, то предлагаем вам ознакомиться с электронной книгой в приложении – Low-Level Software Security for Compiler Developers.

В ней содержится много интересной и полезной информации (~ 71 страница) о том, с какими нюансами можно столкнуться при работе с компиляторами.

Внутри можно найти:
🍭 Memory vulnerability based attacks
🍭 Covert channels and side-channels
🍭 Supply chain attacks
🍭 Underhanded code и не только

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

P.S. Есть еще несколько версий книги: git-версия книги, доступная вот тут и web-версия, доступная вот тут.
БеКон 2025!!!

Всем привет!

Уже в третий раз будет проводиться самая ожидаемая конференция, посвященная практическим аспектам ИБ контейнеров и сред контейнеризации – БеКон!

В этом году нас ждет 10 докладов по различным темам:
🍭 Советы по использованию Policy Engine
🍭 Управление трафиком с Cilium
🍭 «Минималистичные ОС» - Talos
🍭 Соответствие требованиям ФСТЭК
🍭 Безопасность ML-кластеров и не только

Программа, как и всегда, получилась крайне насыщенной и интересной. И, что радует, Организаторы продолжают фокусироваться на технических деталях. Поэтому, воды – минимально, «мяса» - максимально!

Само мероприятие пройдет в Москве, 3 июня 2025 года. Подробности приведены на сайте конференции.

Также рекомендуем вступить в канал, в котором будут освещать организационные моменты и саму конференцию.

P.S. До повышения цен на билеты осталось 3 дня. Если хотели посетить, но не могли решиться – сейчас самое время! ☺️
Руководство по установке Talos Linux!

Всем привет!

Talos Linux – яркий представитель «минималистичных ОС», в которой практически нет исполняемых файлов, оболочки (shell), возможности подключения через SSH.

Задача простая – запустить Kubernetes и работать уже с ним. Такой подход может быть интересен, как ИТ-службам (за счет более простой поддержки), так и ИБ (за счет сокращения поверхности атаки, обусловленной ограниченной возможностью пользователя влиять на систему).

Устанавливается Talos из специально подготовленных образов (как для систем виртуализации, так и для физических хостов).

Но как быть в случае, если используемый провайдер не предоставляет возможности использования собственного образа?

Ответ на этот вопрос, а точнее – полноценную инструкцию, можно найти в статье. Автор описывает весь путь.

Получается примерно следующее:
🍭 Использование kexec для запуска Talos Linux в любом окружении
🍭 Проверка и корректировка настроек сети
🍭 Использование talosctl или Talm для установки ОС на диск
🍭 Еще одна проверка сети и все готово к использованию!

Детальное описание всех шагов с комментариями и примерами запускаемых команд приведено в статье. И, как обычно, полезные ссылки на материалы по теме!
Курсы по OWASP Top-10 от Snyk!

Всем привет!

Недавно Snyk выпустили обучающий курс по материалам OWASP Top-10. И нет, это не web, это не API, это не Mobile… Это про Open Source Software!

Внутри можно найти:
🍭 Known Vulnerabilities
🍭 Compromise of Legitimate Package
🍭 Name Confusion Attacks
🍭 Untracked Dependencies и не только

Каждый раздел содержит теоретическую базу и примеры на разных языках программирования. Например, это могут быть C#, C++, Golang, Java, JS, PHP.

В завершении раздела есть небольшой квиз для проверки усвоения материала.

Все доступно без регистрации (ну почти, можно и через GitHub) и абсолютно бесплатно.
Kube-merge: управление Kubernetes Context

Всем привет!

Бывает так, что требуется подключаться сразу к нескольким кластерам Kubernetes.

Использовать --kubeconfig не всегда удобно. Для упрощения задачи можно воспользоваться утилитой – Kube-merge.

Она позволяет:
🍭 «Соединять» несколько kubeconfig-файлов в ~/.kube/config
🍭 Настраивать резервные копии и восстанавливаться из них
🍭 Добавлять, удалять и переименовывать различные контексты
🍭 Получать информацию о контекстах и переключаться между ними

И главное – делать это просто и интуитивно понятно. Примеры использования утилиты можно найти в repo-проекта. Работает как с Linux, так и с Windows-окружением.

А что вы думаете по поводу таких утилит? Трата времени или все-таки нечто полезное?
Distroless Images: что это и зачем?

Всем привет!

Distroless Images – минималистичные образы контейнеров, в которых нет «ничего лишнего». Если вам недостаточно такого определения и хочется узнать о них больше, то рекомендуем обратиться к статье.

В ней Автор раскрывает такие темы, как:
🍭 Что такое Distroless Images
🍭 Какие они бывают и для чего их используют
🍭 Сравнение Distroless Images с «обычными» образами
🍭 Ограничения, присущие Distroless Images
🍭 Как искать ошибки (debug) при использовании Distroless Images в Kubernetes и не только

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

Уже в следующий понедельник 19 мая в 18:00 ребята из AM Live и разработчики платформы «Штурвал» проведут горячий батл мнений: Знание контейнеров: путь к большим деньгам в ИТ или временный хайп?

Соберут всех, кто знает индустрию изнутри, чтобы обсудить, действительно ли знание Docker и Kubernetes в топе нужных навыков или это проходящая мода, которая никак не влияет на успешный карьерный трек?

Вот про что поговорят:

🍭 Насколько знания контейнеризации повышают конкурентоспособность и стоимость специалиста на рынке?
🍭 Кто сейчас нужен больше — IT-специалист или IT generalist?
🍭 Опыт работы с «ванильным» K8s VS с коммерческой платформой: есть ли разница?
🍭 Что делать, если Kubernetes вообще не нравится?
🍭 Площадки для обучения контейнеризации: норм или стрем?

И это только часть вопросов ⚡️

Подробности и регистрация тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Kubernetes: диаграмма-как-код!

Всем привет!

Начинаем новую рабочую неделю с чего-нибудь простого, а именно – k8s-to-mermaid! Утилиты, которая позволяет визуализировать связь ресурсов Kubernetes в виду Mermaid-диаграмм.

На вход подается набор манифестов, после чего она их обрабатывает и генерирует Mermaid class diagrams.

Связи ресурсов определяются по следующим типам:
🍭 Uses. Например, Deployment использует некий ConfigMap
🍭 Mounts. Используется в случае, если ресурс монтирует volume. Пример - StatefulSet использует PersistentVolumeClaim
🍭 Targets. Отображение Services, «направленных» на ресурсы на основании селекторов
🍭 Controls. Показывает HorizontalPodAutoscaler, контролирующий Deployment и/или StatefulSet
🍭 Applies To: Отображение NetworkPolicy, примененную к определенным ресурсам

Пример того, что получается «на выходе» можно посмотреть в repo проекта.

Если вам интересны тема «Диаграммы, как код», то про это мы писали тут, тут и тут.

А вы используете нечто подобное?
Подпись образов контейнеров с Sigstore и HashiCorp Vault

Всем привет!

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

Для этого используются: Cosign (CLI-утилита для подписи образов), Policy Controller (Admission Controller, который будет проверять наличие подписи и ее валидность) и HashiCorp Vault (для хранения ключей, используемых для подписи).

А дальше та самая инструкция:
🍭 Генерация ключей для подписи
🍭 Настройка разрешений для подписи и ее проверки
🍭 Подпись образов контейнеров
🍭 Настройка Policy Controller
🍭 Тестирование!

Каждый шаг детально описан, есть примеры конфигурационных файлов и используемых команд.

В конце статьи есть раздел, в котором описан набор ограничений, с которыми можно столкнуться, если вы решите реализовать нечто подобное у себя.
2025 OSS Blackduck.pdf
2.5 MB
Open Source Security and Risk Analysis Report

Всем привет!

В приложении можно скачать отчет (~ 32 страницы) от Blackduck, посвященный вопросам обеспечения безопасности при работе с open source.

В отчете можно найти много статистики. Например:
🍭 Количество ПО, при разработке которого используется open source
🍭 Насколько увеличился % использования open source при разработке ПО
🍭 Топ-10 наиболее «популярных» CWE (да-да, Improper Input Validation все еще на первом месте)
🍭 Использование open source компонентов, которые не обновляются и многое другое

Цифры, пояснения, комментарии – все на месте, как и у любых аналогичных отчетов.

В целом материал очень неплох для просмотра «по диагонали» и понимания общей картины происходящего в мире open source.
Методика ИБ-оценки web-приложений

Всем привет!

В repo можно найти объемный материал, в котором структурирована информация о том, как проводить анализ безопасности web-приложений.

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

Информация структурирована по разделам:
🍭 Discovery
🍭 Configuration
🍭 Design
🍭 AuthN/Z
🍭 Input Handling
🍭 Cryptography

Для каждого раздела описывается что надо делать и (не всегда) чем это можно (рекомендуется) проверять.

Например, для AuthN Автор разбирает вопросы, связанные с Password Recovery, Account Management, MFA, управления сессиями.

В итоге получилось отличное руководство, которое можно и нужно использовать при проведении аудитов web-приложений.

Либо, если у вас уже есть опыт в подобных работах
– найти что-то новое для себя и переиспользовать ☺️

Рекомендуем!
Kube-recycle-bin: «корзина» для Kubernetes

Всем привет!

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

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

В repo можно ознакомиться с проектов Kube-recycle-bin. Принцип ровно такой же, как у знакомой «Корзины». Мы что-то удаляем. Оно не удаляется навсегда и, при необходимости, это что-то можно восстановить.

Работает это примерно так:
🍭 Создаем Recycling Policy, в которых описано что помещать в корзину и в каких namespaces
🍭 Создаем тестовые ресурсы
🍭 Удаляем их
🍭 Проверяем содержимое «корзины»
🍭 Восстанавливаем в случае необходимости

Kube-recycle-bin поддерживает все ресурсы Kubernetes. Подробнее с проектом можно ознакомиться в репозитории.

А с вашей точки зрения – полезная ли утилита или просто «развлечение на вечер пятницы»?