Перейти к содержимому
GoldenWing 360°

Claude Code Security Skills: 34 защитных плейбука из реальной студийной практики

34 защитных security-плейбука для LLM-coding-агентов вроде Claude Code, Cursor и GitHub Copilot. Open source под MIT, дистиллированы из реальных мандатов студии.

Mag. Deni Khachukaev

Mag. Deni Khachukaev

Основатель и креативный директор

5 августа 2026 г.10 мин. чтения

Дени Хачукаев — CEO, исполнительный креативный директор и цифровой стратег с более чем 13-летним международным опытом в Вене, ОАЭ и Калифорнии.

Claude Code Security Skills: 34 defensive Playbooks, Security-Dashboard mit Schild — GoldenWing Blog-Cover
Содержание

Повод: звонок, которого мы не ждали

Среда, конец апреля. Постоянный клиент пишет, коротко, тревожно: его сайт на WordPress несколько часов ведёт себя странно. Берёмся, тянем за первую ниточку и через три часа понимаем: не один сайт, а 30 из 37 установок WordPress на одном хостинг-аккаунте скомпрометированы. Семейство веб-шеллов, циркулирующее годами под именем "Sid Gifari", расползлось по всему аккаунту.

Сигнатура была однозначной и неприлично предсказуемой. Три дыры, всегда одни и те же: непропатченная тема с маркетплейса с известным RCE-issue 14-месячной давности. Никакого login-lockout, значит брутфорс через XML-RPC. Никакого мониторинга целостности файлов, поэтому веб-шелл лежал в plugin-root замаскированный как wp-cache.php, и неделями его никто не замечал.

Следующая неделя у нас была занята не столько самой работой по очистке. Она рутинная: локализовать веб-шеллы, захэшировать, восстановить оригиналы из source-tree WP-Core, форензически проверить содержимое БД, ротировать пароли, раскатать defense-pack на все 37 сабов, настроить cron под Wordfence и file-integrity, валидировать бэкапы.

Нас занимало другое: мы уже трижды записывали шаги именно для этого сценария. Один раз после похожего инцидента два года назад, один раз как внутренняя best-practice-документация, один раз как руководство для junior-коллеги. Знание было каждый раз. Но лежало на трёх разных Notion-страницах, в старой Confluence-вики и в Markdown-файле во внутреннем репозитории.

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

Сегодня мы публикуем библиотеку, которая из этого выросла.

Что это за библиотека

claude-security-skills, это open-source-коллекция из 34 защитных security-плейбуков для LLM-coding-агентов. Работает с Claude Code, Cursor, GitHub Copilot, Codex CLI, Cline, Gemini CLI. Везде, где агент может читать структурированные промпты из workspace.

Каждый skill, это Markdown-файл с YAML-frontmatter (name, description). Coding-агент семантически сопоставляет описание с тем, о чём сейчас идёт разговор, и автоматически подтягивает подходящий плейбук в контекст. Команду набирать не нужно. Агент сам распознаёт "ага, это про hardening WordPress" и следует соответствующим шагам.

13 доменов, 34 skill, лицензия MIT, v1.0.0 выходит сегодня.

Мандаты, из которых выросла библиотека

Бесплатная консультация

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

Записаться

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

Мандат 1: консолидация хостинг-аккаунта после инцидента с веб-шеллом

Тот самый инцидент из вступления. Что превратило очистку в библиотеку, так это понимание: безопасность WordPress на shared-хостинге решается не на уровне сайта, а на уровне аккаунта. Один скомпрометированный поддомен достаточен для lateral movement через cross-account file permissions или общих DB-пользователей.

Из этого мандата вышли три skill: wordpress-hardening (уровень сайта), shared-hosting-isolation (account-level defense pack с file-integrity-cron, mu-plugin audit-backdoor и автоматическим plugin-patch-status-report), и incident-response-wordpress (порядок форензики, что из логов сохранять, когда уведомлять хостера).

Coding-агент, у которого эти три skill в контексте, не может "просто поставить" WordPress-сайт. Он сначала проверяет, в каком hosting-setup находится, смотрит file permissions на уровне аккаунта, предлагает defense pack и реализует его.

Мандат 2: greenfield-hardening VPS под SaaS-бэкенд

Клиент поднял новый VPS на Hetzner Cloud, Debian 12, планирует NestJS-бэкенд с Postgres под Production. Классический greenfield, без legacy. Нас попросили один раз пройтись по setup с полными защитными стандартами, прежде чем туда попадёт хоть одно приложение.

В итоге мы выдали восемь последовательных шагов конфигурации: правила UFW, SSH key-only с fail2ban, автоматические security-обновления без автоматической перезагрузки, Postgres с listen address на localhost и лимитами connection-pool, стратегия бэкапов с off-site encryption через restic в B2, защита origin-IP в Cloudflare с Authenticated Origin Pulls (так что direct-IP bypass невозможен), secrets-management через systemd-environment-файлы с правами 600 и Vault read-only пользователем для приложения, плюс мониторинг с fail2ban-вебхуками в приватный Slack-канал.

Эти восемь шагов в той же последовательности уже трижды реализовывались в предыдущих VPS-hardening. Из этого мандата вышли skill vps-hardening-debian, cloudflare-origin-protection, postgres-listen-hardening, secrets-management-systemd, backup-strategy-restic и fail2ban-monitoring: шесть skill из одного мандата.

Мандат 3: security-аудит распределённой агентской платформы

Клиент эксплуатирует собственную LLM-агентскую платформу: серверный кластер, оркестрирующий задачи, плюс worker-клиенты, работающие в изолированных контейнерах, плюс NATS-message-bus между ними. Нас привлекли провести security-аудит перед более широкой бетой.

Findings, которые удивили нас больше всего:

  • NATS работал без ACL. Любой worker мог подписаться на все subject, в том числе те, которые предназначались другим worker. Скомпрометированный worker мог бы прочитать всю task-queue.
  • Tool-calls от агента к серверу не делали re-validation авторизации. Агент получал JWT при initial-connection и потом использовал его для каждого tool-call, без refresh, без сужения scope под каждый call.
  • MCP-серверы полностью доверяли агенту. MCP-tools исходили из того, что агент ответственно валидирует input. Чего агент, разумеется, не делает, когда input приходит из источников, способных к prompt-injection.

Из этого аудита вышли skill nats-acl-patterns, mcp-server-hardening, prompt-injection-defense и agent-jwt-rotation. Плюс более длинный skill distributed-agent-architecture-review, документирующий методологию аудита.

Мандат 4: inheritance-аудит NestJS-кодбейза 12-месячной давности

Клиент перенял backend-сервис у предыдущего подрядчика: 12 месяцев кода, около 40 000 строк, без документации, прежний lead недоступен. Бриф: "дайте отчёт, что здесь внутри и где горит".

Мы прогнали воспроизводимый процесс аудита в такой последовательности: сначала gitleaks (три секунды, ловит забытые API-ключи в git-history; нашли семь, два ещё активны). Потом semgrep с auto-ruleset (две минуты, ловит 80 процентов паттернов OWASP Top 10; 23 finding, четыре критических). Потом CodeQL для анализа потоков данных (полчаса, ловит то, что не ловит semgrep; три дополнительных finding, все три действительно exploitable). Потом ручной architecture-review по auth- и data-flow-путям.

Итого: три часа wall-time, 18 actionable finding, отчёт на 14 страниц с severity, воспроизводимостью и предложением fix по каждому finding.

Из этого мандата вышел skill codebase-audit: последовательность, выбор инструментов, что в какой output-отчёт идёт, когда ручные review-шаги неизбежны.

Как это технически работает

Каждый skill, это Markdown-файл с двумя обязательными полями во frontmatter:

---
name: wordpress-hardening
description: Use this skill when working on WordPress sites,
  addressing security vulnerabilities, hardening shared hosting
  environments, or responding to webshell incidents.
---

Тело содержит плейбук в виде прозы: диагностические шаги, конкретные команды, типичные ошибки, чек-лист верификации. Простой язык, никаких таблиц перекрёстных ссылок построчно. Агент лучше понимает семантический контекст, читая нормальные инструкции, чем разбирая mapping-матрицу.

Coding-агент при старте загружает skill из директории .claude/skills/ (или эквивалентного пути своей платформы) и сопоставляет description семантически с тем, о чём идёт разговор. Когда вы говорите "Я мигрирую Express-сервер на Cloudflare Workers", он автоматически подтягивает релевантные skill (origin-hardening, secrets-management, специфика Workers) в контекст. Команду набирать не нужно.

Для программного использования есть index.json. Кто строит свой tooling вокруг, например MCP-сервер, отдающий skill как resources, или CI-систему, бутящую агента перед каждым PR с подходящим subset, может через него читать полный каталог.

Установка, это git clone в project-root или в ~/.claude/skills/ для глобального использования. Никаких npm-зависимостей, никаких build-шагов, никакого runtime. Только Markdown-файлы.

Пять skill, которые стоит выделить

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

wordpress-hardening

Якорь всей библиотеки. Трёхуровневый подход: уровень аккаунта (изолировать все sub на одном хостинг-аккаунте, настроить defense-pack-cron), уровень сайта (Wordfence плюс 2FA плюс login-lockout плюс file-integrity-monitor), форензика (mu-plugin как read-only audit-backdoor, ежечасно логирующий хэши wp-config.php, .htaccess и всех plugin-root). Когда агент работает на WordPress-кодбейзе и предлагает мутации файлов, он сначала проверяет, в чистом ли состоянии сайт.

ai-agent-guardrails

Ответ на вопрос "что будет, если агент запустит bulk-операцию, которую не сможет откатить?". Паттерн: dry-run-first, плюс confirm-threshold (--apply с N-й write-операции, по умолчанию N=1 для деструктивных операций). Плюс логирование всех мутаций в append-only-файл, против которого агент перед каждым --apply должен проверить, не выполнял ли он уже эту же операцию. Предотвращает класс "агент случайно удалил 10 000 строк из БД, потому что неверно понял гарантию идемпотентности".

codebase-audit

Методология приёма незнакомых кодбейзов (см. Мандат 4 выше). Последовательность, выбор инструментов, формат вывода. Coding-агент с этим skill при первом контакте с проектом строит AUDIT-FINDINGS.md в repo-root, против которого работает с тех пор, вместо того чтобы каждую сессию начинать с нуля.

prompt-injection-defense

Паттерн, который мы называем "untrusted-since-confirm". Когда агент обрабатывает внешний input (Markdown из user-submission, содержимое email, output tool, который сам LLM-генерирует), этот input помечается untrusted с момента получения и остаётся таким, пока не пройдёт человеческий confirm. Конкретно: никаких tool-calls, никаких sub-agent-spawns, никаких API-writes на основе untrusted-content без явного approval. Предотвращает класс "PDF со скрытыми instructions выполняется агентом".

dach-compliance

Якорь под наш локальный рынок. Impressum, политика конфиденциальности, AGB по праву AT/DE/CH; cookie-consent по TTDSG/DSG; договоры обработки данных при использовании US-subprocessors. Когда агент строит новую страницу для DACH-клиента, он проверяет, существуют ли три обязательные страницы и корректно ли они линкованы, прежде чем сигнализировать production-ready.

Плюс ещё 29: hardening Postgres, паттерны архитектуры бэкенда, email-security с DMARC/DKIM/SPF, mobile-app-security, secrets-management, паттерны session/auth, защита origin-IP, и так далее. Полный список в репозитории.

Сознательные дизайн-решения

Три решения, которые мы приняли явно, потому что они не самоочевидны:

Только защита. Никакого red-team-материала, никаких exploit-PoC, никаких skill, обучающих агентов пробивать WAF. Мы обращаемся к командам, которые шиппят production-код, а не к pen-тестерам. Это решение исключает целый класс возможных skill, что делает библиотеку меньше. Это намеренно.

Опыт важнее полноты. Каждый skill в библиотеке взят из конкретного мандата, над которым мы работали. Никакого теоретического материала, никаких skill по темам, в которых у нас нет собственной практики. Лучше опубликуем 34 skill в полной глубине, чем 200 наполовину.

Multi-platform-формат. Skill, это чистый Markdown с YAML-frontmatter, без tool-специфичного кода. Мы тестируем в основном против Claude Code, но Cursor, Copilot, Codex CLI и Gemini CLI грузят их так же. Pull request под специфику платформ приветствуются. Compliance-mapping (OWASP, PCI-DSS, ISO 27001) сознательно не часть библиотеки: это работа аудитора, а не coding-агента. Что нужно агенту, это ясная инструкция на читаемом языке.

Что дальше

Следующая партия skill в работе, все из текущих или недавно завершённых мандатов:

  • postgres-hardening (RLS-паттерны, лимиты connection-pool, pgaudit-setup), из multi-tenant-SaaS-мандата
  • terraform-iac-security (provider-auth, шифрование state-file, drift-detection), из cloud-миграции для клиента в Q1
  • threat-modeling-with-agent (на базе STRIDE, ведомый через агента), из двух architecture-review, в которых мы использовали агента как структурированного партнёра по интервью для threat-modeling
  • kubernetes-cluster-hardening (PodSecurityStandards, NetworkPolicies, миграция на PSA), из cluster-аудита, который сейчас идёт

Параллельно мы изучаем MCP-server-wrapper, который отдаёт skill как центральный resource, чтобы вы не клонировали в каждый проект, а ваш агент тянул живьём из index.

Дальнейшие посты этой серии последуют. Сегодняшний companion-материал на dev.to разбирает десять антипаттернов, которые мы регулярно видим в AI-generated коде в Production: хорошее вводное чтение перед тем, как поставить библиотеку.

Подключайтесь или работайте с нами

Репозиторий: github.com/GoldenWing-360/claude-security-skills, лицензия MIT, pull request приветствуются. Курируемая prompt-library в wiki показывает, как активировать skill в живой сессии.

Companion-материал на dev.to: 10 Security Mistakes Claude Code and Copilot Make in Production.

Если вы хотите применить эти паттерны к вашему стеку, будь то WordPress-конгломерат после инцидента, greenfield-VPS-setup с защитой origin Cloudflare, аудит ваших LLM-интегрированных backend-сервисов или приём незнакомого кодбейза, напишите нам. Мы делаем это профессионально.

Была ли эта статья полезна?

Поделитесь ею с другими.

Ваш контакт

Mag. Deni Khachukaev

Mag. Deni Khachukaev

Основатель и креативный директор

Дени Хачукаев — CEO, исполнительный креативный директор и цифровой стратег с более чем 13-летним международным опытом в Вене, ОАЭ и Калифорнии.

Готовы к вашему проекту?

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