サムネイル

reverse-skillとは AI自動ルーティングのセキュリティスキル集

  • 0

GitHubで reverse-skill を探すと、末尾に s が付いた別リポジトリが並んで出てきます。1文字違いなのに中身は別物で、片方は手で呼び出す8個のスキルパック、もう片方は公開から3ヶ月足らずでスター2万を超えたルーターです。ここでは s が付かないほう、投げたタスクをAIが読んで行き先を自動で決める reverse-skill を分解します。

名前がそっくりな別物 reverse-skillとreverse-skillsを先に分ける

同じ「リバースエンジニアリング用のスキル集」に見えますが、設計思想が真逆です。

項目
reverse-skills
reverse-skill
スキルの選び方
使う人が手で呼ぶ
タスクを読んでAIが選ぶ
中身
8スキル IDAとFrida中心
40を超える分野別ディレクトリ
導入
npx skills add
git clone
スター
約1,900
約21,000
リポジトリ
P4nda0s/reverse-skills
zhaoxuya520/reverse-skill

公式の説明文は「Reverse Engineering / Authorized Penetration Testing / Security Research Skill Router Pack」。スキルパックではなく Skill Router Pack。この一語が性格の違いです。対応クライアントも Claude Code だけでなく Kiro、Cursor、Cline が挙がっています。

投げた一言で行き先が決まる RULES.mdから始まる三段の振り分け

入口は RULES.md です。ここに「タスクを受け取ったら何をどの順で読むか」が書いてあり、エージェントはまずこれを踏みます。

そこから先は三段構えになっています。速い経路が skills/MASTER-ROUTING.md、判断が割れたときに引く全量マトリクスが skills/routing.md、そして両者が参照する設定の実体が skills/config/routing.json です。ルールの正はJSONに一本化されていて、表もスクリプトもそこを見に行く形になっています。

skills/routing.md の振り分け軸は3つ。解析対象そのもの(Target Type)、使う人の言い方(User Intent)、道具の名前(Tool)です。実際の行はこうなっています。

  • Binary exe/dll/so/elfida-reverse/
  • Malware / virus samplemalware-analysis/SKILL.md
  • Go / Rust stripped binarygo-rust-reverse/
  • BurpSuite / web proxy / interceptpentest-tools/SKILL.md

つまり「このAPKを解析して」と言えばよくて、apk-reverse というディレクトリ名を覚えている必要がない。ここが手動パックとの決定的な差です。では、その「言えばよくて」の部分は何で判定されているのか。中を開くと、思ったより素朴でした。

振り分けの正体は正規表現 excludeが誤爆を止めている

routing.json のルール1件は、label(人間向けの名前)、skill(飛ばす先のパス)、keywords(判定条件)でできています。判定条件はさらに mustexcludemustAllnote に分かれます。

APK解析のルールはこうです。

{
  "label": "APK reverse",
  "skill": "apk-reverse/SKILL.md",
  "keywords": [
    { "must": "\\bapk\\b|smali|jadx|apktool|\\bandroid\\b" }
  ]
}

LLMに「よしなに判断して」と丸投げせず、正規表現で決め打ちしています。力技に見えますが、同じ言葉を投げれば毎回同じスキルに飛ぶ再現性が手に入ります。

個人的に効いていると思うのが exclude です。android という単語は、アプリ本体を解析したいときにも、Androidアプリのサーバー側を触りたいときにも出てきます。must だけで拾えば後者までAPK解析へ飛ぶ。誤爆する語をルールごとに引き算できる欄が最初から用意されている時点で、実際に運用して踏んだ跡が見えます。

APKからLLMセキュリティまで 40を超える分野別ディレクトリ

skills/ の下は46ディレクトリあり、そのうち config ops references scripts tests の5つは支援用です。残りの40強が分野そのものです。

  • リバース系: apk-reverse ida-reverse ghidra-reverse radare2 go-rust-reverse js-reverse dotnet-reverse macos-reverse protocol-reverse binary-diff
  • 解析と追跡: malware-analysis digital-forensics threat-hunting
  • 攻撃と監査: pentest-tools pwn-chain attack-chain api-security code-audit database-security windows-ad identity-federation cloud-k8s
  • ハードと電波: firmware-pentest hardware-security ot-ics radio-sdr wifi-wireless
  • 新しい面: supply-chain-security llm-security

IDAとFridaを軸にバイナリとモバイルへ深く潜る reverse-skills に対して、こちらは横に広い。制御系の ot-icsllm-security が同じ棚に並ぶ構成は、今のセキュリティ実務の守備範囲をそのまま写した感じがあります。

ただ、これだけ広い道具箱をAIが自分で選んで走れるということは、間違った相手に走る危険も同じだけ広がるわけです。そこの手当てが、このリポジトリで一番よくできている部分でした。

認可が下りるまで動かない scope gateという前段

RULES.md に定義された実行手順の中に、こういう一行があります。

MUST NOT ACT against targets until auth.status=granted and network_profile set

対象に対して何かする前に、認可の状態と対象ネットワークの範囲を確定しろ、という条件です。case-init を走らせるか ops/scope-contract.md を参照して、誰の許可でどこまでを触るのかを先に固定する。ここが済むまで能動的な操作へ進ませない作りになっています。

注意書きとして末尾に添えるのではなく、実行チェーンの前段に判定として置いてある。公式の説明文でも Penetration Testing の前に Authorized が付いています。当然ながら、使う対象は自分の資産か、書面で許可を取った範囲に限ります。

記録が勝手に残る設計 Evidence Finding Pathと完了条件

作業はケース単位で進み、記録は Evidence、Finding、Path の3層に分かれます。Evidence が集めた現物、Finding がそこから読み取れた事実、Path が影響に繋がる経路です。ops/evidence-finding-path.md に3つの繋ぎ方が定義されていて、後からレポートを書き起こすときに材料が揃っている状態を狙っています。

タスクの完了条件も6項目のチェックとして決められています。正式なレポート生成、フローチャートを最低1枚、匿名化して field-journal へ書き戻し、調べた知識を references/ へ保存、コミュニティ貢献の確認、インデックスの更新。原文には「If ANY answer is 'no' → task is NOT complete」と書かれています。

面白いのは Anti-Laziness という項目です。ルールを読んだあとに「了解しました、タスクを教えてください」と返して止まるのは失敗である、と明記されています。エージェントがサボる典型パターンごとに反論表が用意されている。公式説明にある Self-evolving knowledge base の実体もここで、使うたびに field-journalreferences/ が太っていきます。

導入はgit clone 1つ ツールインデックスの更新まで

導入自体はクローン1回です。

git clone https://github.com/zhaoxuya520/reverse-skill.git

そのあとにプラットフォーム別のツールインデックス更新を走らせます。WindowsはPowerShell、Linux、macOS、Kaliはbashのスクリプトが用意されていて、ローカルにどの解析ツールが入っているかを skills/tool-index.md へ反映させる作りです。RULES.md 側には「ツールのパスを推測するな、tool-index.md の絶対パスを読め」という条項があるので、ここを飛ばすとその先の手順が成立しません。

実務で入れるなら、ライセンスが1本ではない点も先に見ておいてください。本体はMITですが、CTF-Sandbox-Orchestrator の部分はGPLv3、Pentest Swarm AI はAGPL-3.0で、こちらはCLIやMCP経由で呼ぶだけでソースは同梱されません。組織で使うときに確認を求められるのは、たいていこの区別のほうです。

まとめ 手動の8スキルパックと自動ルーター どちらを入れるか

扱う対象がAndroidやiOS、バイナリに固定されていて、自分でスキルを選ぶことに抵抗がないなら reverse-skills で足ります。8個なら覚えられますし、npx skills add で入って軽い。

対象が案件ごとに変わる、あるいは調査から報告書までの手順を毎回同じ形に固定したいなら reverse-skill です。ルーティングそのものより、認可の確認と記録の残し方が手順に組み込まれている部分に価値があると思っています。

判断はすぐつきます。skills/routing.md を開いて、自分が普段扱っている対象が表のどこに乗っているかを見てください。行が見つかって、その先のスキルがやりたいことと噛み合っていれば、あとはクローンするだけです。

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!