Похек
@poxek
Фото Как при помощи LLM детектить абьюз CI/CD-пайплайнов #CI_CD #DevSecOps #AppSec #ThreatDetection #LLM Исследователи Elastic Security Labs разработали open-source шаблон cicd-abuse-detector, сочетающий извлечение 50+ regex- и metadata-сигналов из diff с LLM-анализом (Claude через Code CLI). Шаблон работает без Python и custom runtime: в представленной реализации используются стандартные shell-утилиты, bash и Claude Code CLI. Метод позволяет детектить техники вроде pull_request_target-эксплойтов, double base64-обфускации и LD_PRELOAD-инъекций на этапе анализа изменений (например, в PR). Суть проблемы Злоумышленники используют легитимные триггеры (например, on: pull_request_target), чтобы в привилегированном контексте базового репозитория исполнять код из недоверенных форков. Это позволяет эксфильтрировать секреты через env-дампы (например, env -0 | awk '/^secret_/' | base64 -w0 | base64 -w0) или через загрузку артефактов с path: ., включая чувствительные файлы вроде .git/config, содержащие GITHUB_TOKEN. Дополнительно атакующие могут расширять привилегии воркфлоу, например, через permissions: {id-token: write, contents: write}, увеличивая потенциальный ущерб при компрометации. Техника детекта Описанный Elastic детектор работает в 4 фазы (в их реализации — на ubuntu-latest ранере): Фильтрация diff по CI-путям (.github/workflows, .gitlab-ci.yml, Dockerfiles, .vscode/tasks.json) с лимитом ~10к символов на файл Извлечение сигналов regex (secrets_context: ${{ secrets.XXX }}, ld_preload: LD_PRELOAD=malicious.so, vscode_auto_task: runOn: folderOpen) LLM-анализ (Claude): контекстный reasoning по сигналам и изменениям с JSON-выводом (severity, confidence, evidence) Alerting (Slack, Issues, PR-fail) + индексация в Elasticsearch (logs-cicd.abuse-*) для корреляции по actor/platform Таким образом LLM выступает как слой анализа, понимающий, что именно происходит в пайплайне. Проверка Подход валидировался через сопоставление с реальными техниками атак. Elastic проверял сигнатуры и логику детектора на основе публичных исследований, известных offensive-инструментов и разборов инцидентов. В репозитории есть набор тестовых примеров изменений (diff), которые используются как базовый датасет для ручной проверки детектора. Источник GitHub @poxek | MAX | Блог | YT | RT | VK
Если у вас установлено приложение,
вы можете сразу перейти в канал