Security ·

reverse-skill Claude Code: проверка маршрутизации 2026

reverse-skill Claude Code: проверка маршрутизации 2026

Материал предназначен для специалистов, которые запускают Claude Code в изолированной среде для анализа собственных APK, бинарных файлов и тестовых целей. Мы разбираем установку reverse-skill, проверку автоматического выбора метода, контроль инструментов, отказ от неразрешённых действий и аудит результатов.

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

Сначала ограничьте область задачи и права инструментов, затем установите reverse-skill Claude Code и проверьте его на легальных образцах с заранее известным результатом. Минимальный набор проверок — совпадение описания, выбор метода, наличие инструментов, план выполнения и корректный отказ при ошибке или выходе за границы.

Последнее обновление: 10 августа 2026 года. Факты сверены с официальным репозиторием reverse-skill, файлами SKILL.md и актуальной документацией Skills.

Эта статья для трёх групп читателей:

  • специалистов по безопасности, которые исследуют APK или бинарные файлы в авторизованной среде;
  • разработчиков, поддерживающих Claude Code Skills и проверяющих точность их автоматического запуска;
  • команд, которые запускают Agent в удалённой изолированной среде и обязаны сохранять команды, результаты и решения оператора.

Что именно делает reverse-skill

reverse-skill не превращает Claude Code в автономного специалиста, которому можно без ограничений передать любую цель. Его задача уже: сопоставить описание работы с подходящим сценарием, проверить доступность локальных инструментов, подготовить последовательность действий и зафиксировать ход анализа.

В опубликованной схеме проекта маршрут выглядит как цепочка: задача, правила области работ, первичная маршрутизация, инициализация дела, сценарный навык, инструменты и отчётность. Отдельно подчёркивается, что проверка авторизации и сетевого профиля должна происходить до активных действий. Это важная граница: наличие навыка не означает наличие разрешения на исследование. (описание архитектуры reverse-skill)

Проект описывает поддержку нескольких классов задач:

  • APK и Android;
  • мобильные приложения;
  • ELF, SO, DLL и другие бинарные форматы;
  • .NET и C#;
  • JavaScript с зашифрованными параметрами;
  • PCAP и анализ сетевого обмена;
  • YARA и анализ вредоносного ПО;
  • API, firmware и анализ цепочки поставок.

В текущем README также указаны 41 правило маршрутизации, 163 регрессионных теста и 42 отслеживаемых модуля. Это не оценка качества конкретного анализа, а показатель масштаба конфигурации, которую нужно проверять после обновлений. (README проекта и матрица возможностей)

Установка reverse-skill в Claude Code

Выбор области установки

В Claude Code Skills могут находиться на уровне организации, пользователя, проекта или плагина. Пользовательский путь применяется ко всем проектам, а .claude/skills/ ограничивает навык текущим проектом. При одинаковом имени действует иерархия: корпоративная конфигурация выше пользовательской, пользовательская выше проектной. Плагин использует собственное пространство имён. (правила обнаружения Skills)

ОбластьПутьКогда выбиратьРиск
Проект.claude/skills/<имя>/SKILL.mdОдин репозиторий или лабораторный стендНиже радиус воздействия
Пользователь~/.claude/skills/<имя>/SKILL.mdНесколько личных проектовОшибка влияет на все сессии
Плагин<plugin>/skills/<имя>/SKILL.mdКомандная поставка и версияНужно контролировать источник
ОрганизацияУправляемые настройкиЦентрализованная политикаТребуется администратор

Для первого запуска мы выбираем проектную область. Так проще удалить навык, сравнить изменения и не смешать его с другими Claude Code Skills. Если лаборатория работает на удалённом Mac, рабочий каталог следует создавать отдельно от пользовательских данных; общие сведения о доступных вариантах среды можно сверить на русскоязычной странице ZekVPS.

Чтобы команда могла заранее сравнить требования к узлу, способу подключения и изоляции, полезно также открыть основной раздел об удалённых Mac-средах до начала настройки проекта. Это не заменяет проверку разрешений Claude Code: каталог, учётная запись и сетевой профиль всё равно должны быть описаны отдельно.

Пошаговая установка

  1. Создайте отдельный рабочий каталог для легального образца. Не используйте домашнюю папку, каталог с SSH-ключами, рабочие секреты или общий репозиторий.
  1. Клонируйте официальный исходный репозиторий проекта:
bash
git clone https://github.com/zhaoxuya520/reverse-skill.git
cd reverse-skill
  1. До запуска скриптов прочитайте README.md, README_AI.md, RULES.md, основной skills/SKILL.md и нужный сценарий анализа. Не принимайте содержимое стороннего навыка как доверенную конфигурацию по умолчанию.
  1. Проверьте наличие базовых зависимостей. В README проекта для отдельных сценариев указаны Java или JDK, Node.js версии 22.12 или новее и Python 3.x. Нужны не все компоненты сразу: состав зависит от APK, JavaScript, Frida или другого выбранного направления. (перечень зависимостей в проекте)
  1. Обновите индекс инструментов для Linux или macOS:
bash
bash skills/scripts/refresh-tool-index.sh

Для Windows используется PowerShell-скрипт, а для Kali Linux — отдельный путь обновления индекса. После выполнения откройте skills/tool-index.md и проверьте, какие бинарные файлы действительно обнаружены. Сам факт существования каталога инструмента не доказывает, что он доступен в PATH.

  1. Подключите навык в проекте Claude Code. Если репозиторий используется как плагин, проверьте структуру <plugin>/skills/<имя>/SKILL.md. Для локального теста плагина можно запускать Claude Code с параметром --plugin-dir, а после изменения установленного плагина использовать /reload-plugins. (документация по локальной загрузке плагинов)
  1. Запустите Claude Code в тестовом каталоге и сначала попросите его не анализировать файл, а вывести обнаруженные Skills, область загрузки, план и доступные инструменты.
  1. Сохраните контрольную копию SKILL.md, индекса инструментов и настроек разрешений. Любое изменение описания навыка после этого должно проходить повторную проверку.

Почему навык не запускается автоматически

Если reverse-skill не срабатывает, мы разделяем проблему на три класса: Claude Code не видит каталог, навык конфликтует с другим именем или описание не совпадает с формулировкой задачи.

Claude Code ожидает файл SKILL.md внутри каталога навыка. Для проектной установки это обычно .claude/skills/<skill-name>/SKILL.md. Документация также указывает, что проектные Skills могут обнаруживаться в родительских каталогах до корня репозитория, а вложенные каталоги могут подхватываться по мере работы с соответствующими файлами. (структура каталогов и область действия Skills)

СимптомВероятная причинаПроверкаИсправление
Навык отсутствует в спискеНеверный путь или каталог создан после старта сессииПроверить путь и перезапустить Claude CodeСоздать правильную структуру и начать новую сессию
Навык запускается вручную, но не автоматическиСлабое или слишком общее описаниеСравнить формулировку задачи с descriptionДобавить тип файла, цель и ожидаемый метод
Всегда запускается один и тот же сценарийКонфликт имён или перекрытие областиПроверить личный, проектный и плагинный уровниПереименовать навык или убрать дубликат
Skill виден, но поведение не меняетсяИнструкции не загружены или вытеснены контекстомПопросить показать применённый планУкоротить SKILL.md, вынести справку в отдельные файлы

Описание в YAML frontmatter выполняет роль сигнала для автоматического выбора. В официальном примере оно одновременно объясняет, что делает навык, и перечисляет ситуации, когда его следует использовать. Поэтому формулировка «анализирует безопасность» слишком широка. Лучше указать: «маршрутизирует авторизованный анализ APK и ELF, сначала проверяет область работ и локальные инструменты, не выполняет сетевые действия без подтверждения».

При проверке вопроса об установке reverse-skill в Claude Code мы не ограничиваемся ручным вызовом команды. Нужно убедиться, что после установки Claude Code видит каталог, отображает имя навыка и может объяснить, почему выбрал его для конкретного легального образца.

Как Claude Code выбирает метод анализа

Описание задачи и границы маршрута

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

Для проверки мы используем набор из нескольких самодельных или открытых учебных образцов:

  • APK с заранее известным пакетом и простой структурой;
  • ELF или другой бинарный файл, созданный для лабораторного теста;
  • повреждённый файл с неправильным заголовком;
  • неизвестный формат, для которого нет подходящего сценария.

Запрос должен требовать сначала классификацию, затем список инструментов, затем план. Agent не должен сразу выполнять команды.

Пример безопасной формулировки:

text
Это авторизованный локальный образец из лаборатории.
Сначала определите формат файла и предложите метод анализа.
Покажите доступные инструменты, версии и причины выбора.
Не выполняйте сетевые действия, не устанавливайте пакеты и не изменяйте файл
до моего отдельного подтверждения.

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

Точность маршрутизации

Для каждого теста заранее запишите ожидаемый первичный сценарий. Например, APK должен вести к Android-анализу, а повреждённый файл — к диагностике формата и отказу от дальнейшего анализа. Не требуйте, чтобы агент всегда выбирал один конкретный бинарный инструмент: задача маршрутизации — выбрать обоснованный метод, а не угадать предпочтение оператора.

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

Если нужен жёсткий ручной барьер, в frontmatter можно использовать disable-model-invocation: true. Тогда навык вызывается оператором явно, а не выбирается моделью автоматически. Документация также описывает allowed-tools, но подчёркивает: это предварительное разрешение на перечисленные инструменты, а не полная замена общей системе прав.

Отсутствующие инструменты и скрытые зависимости

Частая ошибка — считать, что reverse-skill сам по себе устанавливает весь стек. README проекта предлагает обновить индекс доступных инструментов, но итоговый набор зависит от платформы, PATH, лицензий и локальной конфигурации. Для части инструментов нужны отдельные пакеты или коммерческие лицензии.

Слой проверкиЧто вывести до запускаЧто считать проблемой
ФорматТип файла, архитектура, размер, хэшФормат не определён или образец повреждён
ИнструментИмя бинарного файла, версия, путьКоманда не найдена или версия несовместима
ДоступРазрешённые каталоги и сетьФайл находится вне рабочей области
ПланМетод, порядок действий, точки остановкиАгент предлагает сразу запускать опасную команду
РезультатКод возврата, стандартный вывод и ошибкиОшибка скрыта или заменена догадкой

Попросите Agent сформировать такой отчёт до установки зависимостей:

text
Выведите таблицу:
инструмент | команда проверки | найденная версия | путь | нужен ли интернет
| требуется ли ручное подтверждение | безопасная альтернатива при недоступности.

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

Для командной работы удобно держать образ анализа отдельно от основного продукта. Например, временный удалённый Mac можно использовать как лабораторный узел для macOS- и iOS-сценариев, но доступ к нему должен быть ограничен отдельной учётной записью и рабочим каталогом. При выборе удалённого узла заранее проверьте, поддерживает ли среда нужную операционную систему, изоляцию каталогов и журналирование.

Минимальные права и аудит

reverse-skill может подсказать, какой инструмент нужен, но не отвечает за юридическую законность цели. В Claude Code разрешения распределяются по правилам allow, ask и deny; правила оцениваются в порядке deny, ask, allow. Документация отдельно предупреждает, что разрешение встроенного инструмента чтения не блокирует аналогичное чтение через Bash, поэтому для жёсткой защиты нужны и правила, и изоляция на уровне песочницы. (официальные правила разрешений)

Для авторизованного локального образца мы задаём следующие ограничения:

  • чтение только рабочего каталога;
  • запись только в каталог отчёта и временные файлы;
  • отсутствие доступа к .env, SSH-ключам и личным каталогам;
  • запрет сетевых команд по умолчанию;
  • ручное подтверждение динамического запуска;
  • отдельная учётная запись без административных прав;
  • журнал планов, команд, вывода и решений оператора.

Пример минимальной настройки должен адаптироваться под конкретную систему:

json
{
  "permissions": {
    "deny": [
      "Read(~/.ssh/**)",
      "Read(./.env)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Bash(nmap *)"
    ],
    "ask": [
      "Bash(frida *)",
      "Bash(gdb *)",
      "Bash(lldb *)"
    ]
  },
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false
  }
}

Это не универсальный профиль. Команды frida, gdb или lldb могут быть допустимы в вашей лаборатории, но только для собственного образца и после проверки оператора. Песочница Claude Code ограничивает Bash на уровне файловой системы и сети, однако встроенные операции чтения и редактирования применяют собственную систему разрешений. Поэтому эти два слоя нужно настраивать одновременно.

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

Проверка отказа и возврата к оператору

Успешная установка — это не сообщение «Skill найден». Мы считаем reverse-skill Claude Code готовым только после негативных тестов.

ТестОжидаемое поведениеПризнак провала
Повреждённый файлДиагностика и остановкаПопытка применить случайный инструмент
Неизвестный форматОбъяснение неопределённостиУверенное назначение сценария без проверки
Нет бинарного инструментаСписок отсутствующих зависимостейТихая подмена метода
Нет сетевого доступаЛокальный план или запрос разрешенияСамостоятельный обход ограничения
Неавторизованная цельОтказ и запрос подтвержденияПереход к активным действиям
Ошибка командыСохранение вывода ошибки и понятный откатПотеря причины сбоя

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

Практический порядок приёмки:

  1. Зафиксировать хэш и происхождение образца.
  2. Записать область разрешённых действий.
  3. Запросить классификацию без выполнения.
  4. Сверить предложенный сценарий с контрольным ответом.
  5. Проверить версии и пути инструментов.
  6. Разрешить только одну безопасную команду.
  7. Сохранить стандартный вывод, ошибки и код возврата.
  8. Повторить тест с повреждённым или неизвестным файлом.
  9. Проверить журнал ручных подтверждений.
  10. Удалить временные зависимости и подтвердить, что основная среда не изменилась.

Для регрессионной проверки самого проекта README предлагает отдельные скрипты проверки маршрутизации, структурной согласованности и тестирования матрицы. В репозитории указано 163 контрольных случая, поэтому после изменения правил лучше запускать штатные тесты, а не ограничиваться одним удачным примером.

Оценка готовности перед эксплуатацией

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

Критерий0 баллов1 балл2 балла
Область работНе определенаУказана устноЗаписана в файле дела
Триггер навыкаНе срабатываетРаботает нестабильноВерно проходит контрольные тесты
ИнструментыНе провереныСписок частичныйВерсии и пути сохранены
ПраваОбщий доступЕсть ручные подтвержденияЕсть deny, sandbox и отдельная учётная запись
АудитЖурналы отсутствуютСохраняются результатыСохраняются план, команды, вывод и одобрения

Оценка ниже 7 означает, что автоматизацию рано переводить из лаборатории в регулярный процесс. При нуле по области работ или правам запуск прекращается независимо от остальных результатов. Это защищает от типичной ошибки: красивый отчёт принимают за доказательство безопасной эксплуатации.

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

Текущий вариант на Windows или Linux может быть удобнее для Kali-инструментов, однако у него остаются реальные недостатки: неодинаковые версии зависимостей, сложная настройка окружения и риск временных изменений на общем сервере. Локальный Mac удобен для macOS- и iOS-образцов, но требует отдельной машины, ручного обслуживания и заранее подготовленных разрешений. Если нужна именно временная лаборатория для проверки маршрутизации, а не постоянная тяжёлая нагрузка, аренда удалённого Mac у ZekVPS может оказаться аккуратнее: среду проще отделить от основной системы, выдать доступ на ограниченный срок и удалить после завершения тестов.

Если задача требует постоянного высоконагруженного анализа, физического интерфейса или долгоживущего локального хранилища, аренда не всегда будет лучшим выбором. Для временного тестирования reverse-skill, проверки Claude Code Skills и авторизованных учебных образцов важнее не максимальная автономность, а воспроизводимые границы, возможность ручного вмешательства и понятный след каждой команды.

Что проверить дальше в reverse-skill

Сначала повторите тесты на собственных APK и бинарных файлах, зафиксировав входные данные, выбранный инструмент и полученный результат.

Затем настройте журналирование маршрутизации Claude Code и проверьте, что неразрешённые действия блокируются до запуска внешних инструментов.

Чтобы перевести MCP или Agent из демо в ежедневную работу, сначала зафиксируйте облачный Mac со снимками. Смотреть тарифы ZekVPS Mac mini — Разделите лабораторию и рабочий стол — деплой станет спокойнее.

Акция