Shikata Ga Nai

Private? There is no such things.

AI監査エージェント「Hound」

Hello there, ('ω')ノ

Houndの思考構造:人間の監査脳を再現する

人間の監査者はコードを1行ずつ読むのではなく、頭の中に「システムの地図」を描き、 そこに「信頼境界」「値の流れ」「権限の関係」「不変条件」などを配置していく。 HoundはこのプロセスをAIで再現するため、次のような構造を持つ。

  1. Graph Builder(知識グラフ生成)  コードを小さな「カード(スライス)」に分割し、それぞれの関数・変数・状態変化を  グラフのノードとエッジとしてマッピングする。  ノードには「前提」「観察」「不変条件」などのメモを付与できる。  例:onlyOwner が特定の関数に存在しない → 権限逸脱の可能性。

  2. Agent(ジュニア監査AI)  コードをグラフのノード単位で探索し、気になる部分を注釈しながら進む。  不明点があれば「上司」に質問して次の手を仮説として立てる。

  3. Guidance(シニア監査AI)  仮説を統括する推論担当。  「この変数はどこで更新され、どの関数で検証されているか?」  といった脆弱性の仮説を戦略的に立案する。

  4. Finalize(QA検証)  最後に全経路を再解析し、矛盾や誤検知を整理。  結果はレポート形式で出力される。


コードを読む「観点」をAIが学ぶ

Houndは「関数が危険かどうか」を直接判定するのではなく、 関係性の中で不整合を探す。 たとえば:

  • グラフ上で「onlyAdminが付与されている関数」と「権限境界」が一致していない
  • totalAssets = sum(strategyAssets)」という不変条件が特定のパスで破れている
  • fee ≤ 1000bps」という前提が、別の関数で上書きされている

こうした「論理のゆがみ」が検出された瞬間、Houndはその箇所を重点監査ポイントとしてマークする。


実際の運用フロー(SecondSwapの監査例)

  1. グラフ構築  hound.py graph build コマンドで5種類のグラフを生成(構造・権限・値の流れなど)。

  2. 監査実行  hound.py agent audit secondswap --time-limit 180  ジュニアAIが探索し、シニアAI(GPT-5)が仮説を出す。

  3. 仮説検証と再構築  矛盾を発見したらグラフを再更新。  例:「onlyS2Adminが宣言されているのに、delist()でチェックされていない」  → 不整合がハイライトされ、AIが自動で「権限検証欠如バグ」と分類。


重要な哲学

Bernhard Muellerが強調しているのは次の2点:

  1. 量より質の仮説生成  無数のパターンを試すより、深い推論で数本の正しい道筋をたどる方が  遥かに多くのバグを発見できる。

  2. 人間の認知構造をAIに写す  仮定・不変条件・役割分担・レビューなど、  人間組織の監査構造そのものをAIにも持たせることで、  再現性の高い監査思考を構築できる。


まとめ

Houndは、AIを単なるコードスキャナではなく、 「論理矛盾を嗅ぎ分けるデジタル監査者」として設計している。

開発者や監査担当がこのプロセスを理解すると、 AIに頼るだけでなく、自分の頭でも同じ「認知グラフ」思考を再現できる。 つまり、バグを「探す」のではなく、論理が破綻している箇所を見つけるという セキュリティ専門家の本質的な洞察を、AIと共有することが可能になる。

Best regards, (^^ゞ