DevSecOps Talks
8K subscribers
96 photos
1 video
108 files
1.38K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
LFK: Lightning Fast Kubernetes Navigator

Всем привет!

Если вам надоел k9s или вы хотите «что-нибудь» новое, то LFK может вас заинтересовать!

Да, всё так – ещё один TUI для работы с кластером Kubernetes.

Он предлагает следующее:
🍭 Удобная навигация от кластера то метаинформации о существующих ресурсах
🍭 Отображение данных о потребляемых ресурсах
🍭 Vim-style навигация!
🍭 Работа с несколькими кластерами
🍭 Разные возможности по работе с ресурсами: от поиска до создания и изменения
🍭 Возможность персональной настройки и ещё много всего

Детальное описание возможностей LFK представлено в GitHub-репозитории.

Помимо этого там очень-очень-очень много скриншотов и небольших демо, которые наглядно демонстрируют утилиту и её возможности.
👍41
Какие образы используются в кластере?

Всем привет!

Одна компания начала миграцию своих базовых образов на наработки от Chainguard (минималистичные образы, в которых содержится минимальное количество уязвимостей).

В рамках миграции у них возник запрос: «Нужен дашборд, на котором будет отображаться информация о том, какие контейнеры используют образы Chainguard, а какие – нет».

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

Казалось бы, всё просто, но есть нюансы:
🍭 Для самой очевидной проверки ОС внутри контейнера в нём должна быть оболочка, но это не всегда так (например, distroless-образы)
🍭 «Вытаскивать» образ из Kubernetes-манифеста? Не всегда получится, т.к. многие используют digest, а не image:tag
🍭 Использование сканеров, которые анализируют образы и, в том числе, отображают информацию об ОС? Это не всегда происходит корректно, да и для runtime это не всегда подойдёт в моменте

Чтобы решить задачу, Автор начал смотреть в сторону ядра ОС, которое «знает всё».

В итоге получилось следующее: получение информации о pid контейнера, извлечение информации о нём с узла, анализ принадлежности образа к нужной версии ОС.

Вся собранная информация передаётся в Grafana, в которой отображается информация о % операционных систем, используемых в базовых образах.

Больше деталей о реализации и о характерных для неё нюансах можно узнать в статье.

«Утилиту», созданную Автором для решения задачи можно найти вот в этом GitHub-репозитории.

Да, статья написана для Chainguard, но их можно «заменить» на любые иные образы. Сам подход останется прежним.
👍41
Насколько пригоден Opus 4.6 для поиска уязвимостей?

Всем привет!

Команда ZeroPath провела небольшое исследование. Они проанализировали 435 известных уязвимостей в С, у каждой из которых есть свои CVE, с использованием Opus 4.6.

Команда использовала разные «наборы» prompt и инструментов для поиска. Результаты, в зависимости от выбранного набора, различались, хоть и не сильно.

Набор данных, над которым проводился анализ, был взят из вот этого исследования и опубликован (его можно найти по ссылке).

Далее команда определила свой подход: на вход LLM было передано 2 набора функций – уязвимые и исправленные (patched). После того, как модель дала свои «ответы» команда проверяла насколько она правильно определила (не) уязвимые функции.

Итог получился такой: с хорошими prompt и правильно подобранными инструментами, модель нашла 28,5% уязвимостей.

Но были и некоторые нюансы: большое количество ложных срабатываний, (не) всегда консистентные результаты.

Подробные результаты с цифрами, комментариями, нюансами и выводами, сформированными по результатам исследования, представлены в статье.
4🤔3🖕1
Kobe: Kubernetes-кластер «по запросу»

Всем привет!

Допустим, для целей тестирования новой версии ПО требуется Kubernetes-кластер.

Можно постоянно «держать их под рукой», но это не всегда целесообразно.

Иногда нужен «эфемерный кластер», который существует только на время тестирования.

Эту задачу поможет решить Kobe – open-source проект, который предоставляет такие вот кластеры «по запросу».

Состоит он из нескольких ключевых компонентов:
🍭 Operator. Запускается в host-кластере и контролирует ClusterPool, ClusterInstance, ClusterLease. Т.е. все компоненты, которые помогают контролировать предоставленные кластеры, их количество, доступность и т.д.
🍭 HTTP API. Обработка запросов на создание временных кластеров
🍭 Pool Manager. Управление созданными кластерами: создание, временное предоставление, удаление

В качестве pools – тех самых кластеров – могут выступать разные сущности.

Например, k3s (вариант по умолчанию), k0s, CAPI и не только.

Подробности о возможности Kobe можно посмотреть в GitHub-репозитории и в официальной документации проекта.

Важно (!): проект достаточно молодой и могут быть некоторые нюансы, связанные с его работоспособностью
4
Безопасная разработка: Rust

Всем привет!

Мы неоднократно писали про материалы от Trail of Bits и их Security Handbook.

Ресурс продолжает развиваться и недавно команда выпустила раздел, посвященный безопасности Rust.

Он содержит разделы:
🍭 Security Overview. Общая информация о нюансах безопасности, характерных для Rust
🍭 Dynamic Analysis. Набор рекомендаций, как осуществлять динамический анализ, какие утилиты использовать
🍭 Static Analysis. Аналогично динамическому, но только для анализа исходных текстов
🍭 Supply Chain Security. Описание работы с пакетами и возможностей
cargo, которые могут пригодиться

Это далеко не всё, что есть в разделе посвящённом Rust. Как обычно, никакой воды, всё по делу, много примеров и рекомендаций.

Рекомендуем к ознакомлению!
3
AI-проекты для анализа ПО

Всем привет!

По ссылке можно найти статью от Semgrep, в которой команда сравнивает разные AI-проекты, которые помогают искать уязвимости в ПО.

Всего рассматривается 3 «типа»:
🍭 Skill Boosting. Добавление skills к LLM, чтобы они «рассуждали», как исследователь безопасности ПО при его анализе
🍭 SAST с LLM. Использование результатов работы SAST «на вход» LLM для дальнейшей работы
🍭 Генерация exploit’ов. Использование AI-проектов в качестве «помощника» при генерации «доказательств актуальности уязвимости» за счёт генерации exploit’ов

Для каждого «типа» Автор приводит несколько open-source инструментов, которыми можно воспользоваться, их краткое описание.

Чтобы было проще подобрать инструмент «под себя», их разделили на «логические» блоки: для исследователей уязвимостей; для тех, кто часто работает с C/C++; для оптимизации процесса разметки и т.д.

Возможно, вы уже что-то из этого используете или планируете. Делитесь своим опытом в комментариях! ☺️
5👎1
LLM Inference в Kubernetes

Всем привет!

Статья описывает опыт Автора, в которой он разворачивает LLM-модель локально, в своём кластере Kubernetes.

Для этого он использует следующие технологии: vLLM, KEDA, GAIE, llm-d, Karpenter и не только.

После небольшого взгляда на концептуальную архитектуру предлагаемого решения начинается самое интересное – реализация.

Автор описывает разделы:
🍭 Использование Karpenter для управления GPU-узлами
🍭 О чём важно помнить при работе с GPU в Kubernetes
🍭 Настройка Ingress и TLS с Istio и Cert Manager
🍭 Установка и настройка модели (qwen-3.6-27B-fp8)
🍭 Конфигурация автоматического масштабирования с использованием Keda и не только
🍭 Настройка мониторинга, контроль использования GPU

Весь путь, пройденный Автором, описан максимально детально: все команды, конфигурационные файлы, ссылки на инструментарий, важные уточнения (опыт, полученный на ошибках) – всё это есть в статье.

Если вы думали реализовать нечто подобное, то статья точно может быть вам полезной!
🔥2👏1🤡1
VulnHunter: анализ исходного кода с AI-агентами

Всем привет!

Недавно команда Capital One передала свой проект – VulnHunter – в open-source.

Согласно описанию, в отличие от «традиционных» SAST, полагающихся на определённые шаблоны/правила, VulnHunter «размышляет как злоумышленник», что возможно за счет использования AI.

Он позволяет определять то, что на самом деле эксплуатируемо, анализирует пути атаки и предоставляет свидетельства, подтверждающие наличие уязвимости.

Для этого используется 3 основных skill:
🍭 Hunt. Поиск «опасных конструкций» в исходном коде. После их выявления запускается многоступенчатый процесс, в результате которого пользователь получает только то, что на самом деле значимо
🍭 Fix. Создание эксплойта, тестов, подготовка исправления, повторный запуск тестов и, если всё хорошо, оформление PR
🍭 Verify. Read-only агент, задача которого – убедиться в том, что устранение уязвимости было осуществлено

Можно использовать разные модели, но лучше всего VulnHunter работает с Claude Opus.

Выглядит достаточно интересно, но как работает «по факту» - вопрос.

Возможно, что кто-то уже сталкивался с решением, как оно вам?
6🤡2
Создание OSS Kubernetes Console с MCP

Всем привет!

Решений, которые анализируют кластеры Kubernetes и запускаемые в них контейнеры на предмет ИБ-дефектов, очень много.

Многие из них дают очень хорошие результаты. Нюанс в наличие контекста.

Т.е. покажи не то, что «нашёл сканер», а то, «что это значит для моей инсталляции».

И вот тут как раз возникает много вопросов. Например, как сделать из этого нескончаемого потока сигналов что-то осмысленное.

С этими мыслями Автор статьи предлагает своё видение ответа на этот вопрос – OSS Kubernetes Console с MCP.

Он собирает следующий набор инструментов:
🍭 Falco для анализа запущенных контейнеров
🍭 Trivy для поиска уязвимостей в образах контейнеров
🍭 Kyverno в качестве Policy Engine
🍭 Kubescape для анализа конфигурации кластера

Результаты от всех решений «собираются вместе» и анализируются, обладая общим контекстом.

Важно(!): для анализа используется Claude Code (на случай, если вы захотите попробовать предлагаемый концепт)

Это позволяет превратить «В контейнере запущен shell» в нечто вроде «В Kubernetes-ресурсе, созданном из образа с известными уязвимостями, запущен shell. Конфигурация ресурса не соответствует принятым в компании политикам».

Подробности предлагаемого Автором подхода можно найти в статье или в GitHub-репозитории.

Кстати, в GitHub-репозитории можно найти несколько skills, созданных Автором: от triage до remediation.
Nomos: контроль действий AI-агентов

Всем привет!

Использование AI-агентов постепенно становится общей практикой. При этом недоверие к ним всё равно остаётся – «а что если он сделает что-то не то?».

Чтобы несколько повысить уровень безопасности при работе с ними можно посмотреть на open-source проект Nomos.

Он представляет из себя нечто вроде «межсетевого экрана», который «стоит» между агентами и целевой системой.

Это нужно для того, чтобы:
🍭 Контролировать чтение чувствительной информации (секретов)
🍭 Влиять на потенциально опасные команды (rm -rf, kubectl delete, git push и т.д.)
🍭 Сканировать MCP-ответы на наличие потенциальных инъекций
🍭 Собирать свидетельства аудита (audit traces) и не только

«Из коробки» Nomos предоставляет несколько политик контроля. Их можно изменять и расширять по усмотрению пользователя.

Подробнее об архитектуре, запуске, настройке и результатах работы Nomos можно узнать в GitHub-репозитории проекта.
OpenAnt: поиск Иб-дефектов в ПО с использованием LLM

Всем привет!

OpenAnt – ещё один представитель класса решений, которые используют LLM для того, чтобы искать ИБ-дефекты в ПО и сокращать количество «шума».

Концепт аналогичный многим: на первом «этапе» он ищет потенциальные недоработки, на втором – пытается их эксплуатировать, а пересечение результатов этапов – то, на что стоит обратить внимание.

Работает он примерно так:
🍭 Анализирует кодовую базу
🍭 Строит графы вызовов (call graphs)
🍭 Пытается выявить участки кода, доступные «извне»
🍭 Анализирует source/sink с использованием LLM
🍭 Пытается проверить сработки путём их эксплуатации

«Из коробки» реализована поддержка Anthropic, OpenAI и Google. В планах у ребят реализация поддержки большего количества моделей.

На текущий момент поддерживаются языки: Go, Python, JS/TS (beta), C/C++ (beta), PHP (beta), Ruby (beta), Zig (beta) и Swift (beta).

Подробнее об OpenAnt можно прочесть в GitHub-репозитории проекта.

Важно (!): некоторая функциональность OpenAnt всё ещё находится в стадии «beta», т.к. проект активно развивается
2🖕1
Luxury Yacht: GUI для управления кластерами Kubernetes

Всем привет!

«Я попробовал разные GUI для Kubernetes, но не смог найти то, что нужно именно мне, поэтому сделал своё» - комментарий Автора о причине создания Luxury Yacht.

Как и большинство подобных решений она позволяет:
🍭 Получать сводную информацию по кластеру (утилизация ресурсов, количество узлов, последние events, данные о ресурсах и т.д.)
🍭 Управление несколькими кластерами их единого UI с возможностью «переключения»
🍭 Получение информации и поиск интересующих ресурсов
Возможность делать diff конфигураций
🍭 Делать port-forward,
exec
🍭 Редактировать yaml- файлы не покидая UI и не только

Так в чём же разница?

Автор выделяет несколько возможностей: максимально удобный просмотр логов, построение «карты взаимодействия/связности» ресурсов, возможность расположения объектов «под себя», управление узлами (cordon, drain, delete) и не только.

Выглядит Luxury Yacht достаточно приятно и ненагруженно. Посмотреть можно вот тут и в GitHub-репозитории проекта.

Довелось ли вам использовать этот GUI и что вы о нём думаете?
😁2🗿1
Deployah: «быстрый» deploy в Kubernetes

Всем привет!

Deployah – open-source утилита, которая упрощает процесс разворачивания приложений в кластере Kubernetes.

«Внутри» она содержит всё необходимое: helm, kubectl, kind. За счёт этого требуется всего лишь создать небольшой конфигурационный файл – deployah.yaml, а дальше она сама сделает всё необходимое.

Работает это примерно так:
🍭 Анализ конфигурации. Поиск ошибок и неточностей, чтобы устранить их заранее
🍭 Адаптация конфигурации. Выбор требуемой среды для разворачивания, подстановка необходимых переменных
🍭 Запуск. Создание Helm Values, установка Helm Release в выбранном кластере

Сама спецификация требует заполнения трех обязательных полей - apiVersion, project и components.

Для управления кластерами, в которых будут созданы ресурсы, используется ещё один конфигурационный файл - deployah.platform.yaml.

В нём необходимо указать основные параметры. Например, nodeSelector, securityContext, storageClass и т.д.

Используя эту информацию и данные о конфигурации запускаемого приложения Deployah как раз и создаст необходимые Values для установки Helm Chart.

Подробнее о возможностях утилиты, её настройках и сценариях использования можно прочесть в GitHub-репозитории проекта.

P.S. А если вам интересно "а зачем оно вообще надо", то ответ Автора, раскрывающий мотивацию создания Deployah можно найти
тут ☺️
4
Awesome: LLM4Cybersecurity

Всем привет!

Сегодня хотим рассказать вам про ещё одну Awesome-подборку.

В ней собрана информация о возможных способах применения и возможностях LLM, применительно к информационной безопасности.

Awesome разбит на разделы:
🍭 LLM Assisted Defense
🍭 Vulnerability Detection
🍭 Program/Vulnerability Repair
🍭 FUZZ
🍭 Insecure Code Generation и не только

Для каждого раздела собраны ссылки на релевантные материалы по теме. В среднем получается около 50 ссылок на каждую.

Внутри можно найти материалы в том числе по безопасной разработке: использование LLM для поиска ИБ-дефектов, для устранения или для подтверждения возможности эксплуатации того, что было найдено.
👍32
XSS Laboratories

Всем привет!

XSS Laboratories – open-source проект, в котором неожиданно! собраны лабораторные работы, обучающие тому, что такое XSS и какие они бывают.

Всего доступно 9 лабораторных:
🍭 Introduction to XSS Basics
🍭 Stored XSS Attacks
🍭 DOM-based XSS
🍭 Advanced XSS Techniques
🍭 Edit/View Functionality XSS и не только

Итого – 5 Reflected, 3 Stored и 1 DOM XSS.

Если нет желания запускать локально, то лабораторные можно посмотреть вот тут.

Приятного изучения и практики!
4
Drogonsec: комплексный анализ ПО

Всем привет!

Drogonsec – open-source сканер, который объединяет в себе сразу несколько типов анализа: Secrets, SAST и SCA.

В результате работы формируется единый отчёт, в котором всё структурировано по типам практик. При желании их можно «включать» и «отключать».

Secrets анализирует как текущую директорию, так и историю (при необходимости можно отключить) на наличие чувствительных данных.

Для SAST поддерживается более 20 языков, среди которых: Python, Java, JS, TS, Golang, Kotlin, C/C++ и не только. Суммарно доступно более 150 правил, которые можно добавлять самостоятельно.

SCA по классике – анализ манифестов и определение «подходящих» CVE. При необходимости Drogonsec позволяет выгрузить SBoM-файл.

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

Доступно «подключение» как к локальной LLM (Ollama, DeepSeek Coder), так и к внешним (Anthropic, OpenAI, Azure и т.д.).

Больше подробностей про Drogonsec можно найти в GitHub-репозитории и в официальной документации на утилиту.
👍31
Поиск ИБ-дефектов с LLM: идемпотентность

Всем привет!

«Может ли LLM найти один и тот же ИБ-
дефект дважды?»
- именно этот вопрос задала себе команда Snyk.

Для того, чтобы ответить на него ребята запустили 300 сканирований.

Один и тот же исходный код. Один и тот же prompt. Один и тот же harness. Несколько раз.

Что получилось? Ответ можно найти в достаточно объемной статье (~ 29 минут на прочтение).

tl;dr – результаты могли отличаться от запуска к запуску.

А если хочется деталей, то они есть внутри и «разбиты» на разделы:
🍭 Результат №1. Повторяемость LLM варьируется от конфигурации
🍭 Результат №2. LLM-агенты и SAST нашли разные ИБ-дефекты
🍭 Результат №3. Более дорогие LLM не всегда показывали лучшие результаты

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

Проводили ли вы у себя подобные исследования и какие были результаты?
2
KubeShark: использование LLM в Kubernetes

Всем привет!

KubeSharkskill для работы с Kubernetes. Основная его задача – генерировать и/или исправлять конфигурации в ресурсах.

Основная проблема, которую пытался решить Автор – галлюцинации, которые зачастую случаются при работе LLM с Kubernetes.

Для этого он реализовал следующий подход:
🍭 Изучение контекста. Версия кластера, используемый namespace, окружение, тип ресурса
🍭 Анализ failure modes. Поиск наиболее подходящего из 6 сценариев (небезопасная конфигурация, некорректная работа с ресурсами, проблемы с сетью и т.д.)
🍭 Загрузка сценариев. На основании предыдущего шага выбирается набор подходящих инструкций для диагностики
🍭 Формирование рекомендаций. Предложение по тому, как можно решить выявленные проблемы
🍭 Генерация артефактов. Создание манифестов, Helm Charts, политик и т.д., в которых реализовано предложенное исправление
🍭 Проверка. Dry-run, валидация наработок, проверка консистентности

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

Такой подход, по мнению Автора, сильно сокращает вероятность того, что LLM «добавит что-то от себя».

Примеры задач, которые поможет решить KubeShark: создай `deployment` с N репликами, `requests/limits` и `ingress`; проверь конфигурацию на наличие проблем безопасности; создай роль с минимальными привилегиями, для сервиса X, который должен уметь делать Y и т.д.

Подробнее про KubeShark можно прочесть в GitHub-репозитории или в официальной документации.
JavaScript Analysis for Pentesters

Всем привет!

В статье можно найти достаточно объёмное и подробное руководство о том, на что обращать внимание при анализе JavaScript-приложений.

Статья написана с точки зрения «атакующего», но может быть полезна и тем, кто «защищает».

Материал разбит на части:
🍭 Static Analysis
🍭 Dynamic Analysis
🍭 (De) obfustation
🍭 Bypass Code Protection и не только

В каждом разделе приводится много теории, примеров и пояснений.

Есть даже небольшая «лабораторная работа» по анализу обфусцированного кода.

Кстати, помимо этой, у Автора можно найти ещё много интересных статей, посвященных информационно безопасности приложений.

Рекомендуем!
2
VulnReach: композиционный анализ с учётом достижимости

Всем привет!

VulnReach – open-source проект, который комбинирует практики композиционного анализа, taint-анализа и анализ данных во время эксплуатации ПО.

На основе этих данных формируется RBoM – Runtime Bill Of Materials.

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

Для подтверждения своего «мнения», VulnReach предоставляет информацию о пути выполнения программы, который привёл к уязвимому методу.

На текущий момент поддерживается Python. Для Java, JavaScript реализован анализ call graphs, но функциональность всё ещё является экспериментальной.

В дальнейшем планируется добавление Golang, C# и PHP.

Подробнее о проекте можно прочесть в GitHub-репозитории или на официальном сайте.

Кстати, в репозитории есть скриншоты, чтобы лучше ознакомиться с тем, как именно VulnReach «выглядит» и какую информацию он предоставляет.
3