カテゴリー: セキュリティ

  • さくらのクラウドでフルマネージドなAIエージェント実行基盤を構築した話

    さくらのクラウドでフルマネージドなAIエージェント実行基盤を構築した話

    はじめに

    AIエージェントを本番運用しようとすると、インフラ側の課題が意外と多くあります。サーバーの管理、コンテナのデプロイ、シークレットの扱い、監視……。アプリケーションの開発に集中したいのに、インフラ運用に時間を取られる構造になりやすいです。

    今回はそこを解消するために、さくらのクラウドのマネージドサービスを組み合わせて、できる限り運用負荷をゼロに近づけたAIエージェント実行基盤を構築しました。本記事ではその構成と設計の考え方を紹介します。


    全体構成

    構成の概要は以下の通りです。

    エンドユーザー
        ↓
    インターネット
        ↓(さくらのDNS / Gemini)
    ウェブアクセラレータ(Cloudflare Turnstile)
        ↓
    [さくらのクラウド]
        ├── オブジェクトストレージ(静的サイト/フロントエンド)
        └── AppRun(共用型/バックエンド) ← モニタリングスイートで監視
                ↓
            シークレットマネージャ / KMS
            コンテナレジストリ

    フロントエンドはオブジェクトストレージ上に静的サイトとしてデプロイしており、バックエンドはAppRunで動かしています。エンドユーザーからのリクエストはさくらのDNSとウェブアクセラレータを経由してさくらのクラウド内に入ります。さくらのクラウド内はすべてマネージドサービスで構成されており、自前でサーバーを管理する箇所はありません。


    各コンポーネントの役割

    オブジェクトストレージ(フロントエンド)

    フロントエンドはオブジェクトストレージ上に静的サイトとしてデプロイしています。S3互換APIに対応しているため、既存のデプロイフローをほぼ変更せずに利用できます。サーバーを持たずに静的サイトをホスティングできるため、フロントエンドの運用負荷はほぼゼロです。

    AppRun(共用型/バックエンド)

    AIエージェントのバックエンド処理を担うコンテナ実行環境です。フロントエンドからのリクエストを受け取り、AI APIを呼び出して結果を返します。サーバーレスに近い感覚で使えるため、スケーリングやサーバー管理から解放されます。

    Cloudflare Turnstile

    AIエージェントの実行基盤では、Botによる不正リクエストがAI APIトークンの浪費や意図しない負荷につながるリスクがあります。今回はCloudflare Turnstileをフロントエンド・バックエンドの両方に導入し、二重でBot排除を行っています。

    • フロントエンドURL(オブジェクトストレージの静的サイト):アクセス時点でTurnstileによる検証を行い、Botからのアクセスをブロックします。
    • バックエンドURL(AppRun):APIリクエストを受け付ける際にも再度検証し、フロントエンドを迂回した直接アクセスも排除します。

    この二重検証により、AI APIの不正利用やトークンの浪費を防ぐ構成になっています。

    シークレットマネージャ / KMS

    AppRunからAI API(OpenAI、Geminiなど)を呼び出す際のAPIトークンをシークレットマネージャで管理し、KMSで暗号化しています。ソースコードや環境変数にトークンをハードコードするリスクを排除し、APIトークンの管理方法を標準化できます。

    コンテナレジストリ

    AppRunで動かすコンテナイメージを管理します。CI/CDパイプラインからイメージをプッシュし、AppRunがそこからプルする構成にすることで、デプロイフローをシンプルに保てます。

    モニタリングスイート

    AppRunの動作状況を監視しています。稼働状態やエラーをリアルタイムで把握できます。マネージドサービスのため、監視基盤そのものの管理コストもかかりません。

    ウェブアクセラレータ

    CDN機能を担います。静的アセットのキャッシュによる高速化だけでなく、さくらのクラウド内への入口を一本化する役割も果たしています。


    設計のポイント:なぜフルマネージドにこだわったか

    AIエージェントは本質的にステートレスな処理が多く、コンテナ実行環境と相性が良いです。一方で、APIトークンや外部サービスとの連携が増えるため、セキュリティ面の管理コストが高くなりやすいです。

    フルマネージド構成にした主な理由は2つです。

    1. 運用負荷の削減
    サーバーのOSアップデート、ミドルウェアの管理、スケーリング設定——これらをすべてマネージドサービスに委ねることで、アプリケーションの開発・改善に集中できます。

    2. セキュリティの標準化
    シークレットマネージャとKMSを使うことで、APIトークンの管理方法が標準化されます。個々の開発者が独自の方法でトークンを扱うリスクを減らせます。


    さくらのクラウドを選んだ理由

    外資クラウドと比較したとき、さくらのクラウドには国産ならではの強みがあります。データが国内に留まること、円建てでの料金体系、そして日本語サポートです。公共性の高いシステムや、データ主権を重視するプロジェクトでは特に有効な選択肢になります。

    今回の構成で使用したAppRun、オブジェクトストレージ、コンテナレジストリ、シークレットマネージャ、KMS、モニタリングスイートはいずれもさくらのクラウドのマネージドサービスとして提供されており、一つのプラットフォーム内で完結できた点もメリットでした。


    まとめ

    さくらのクラウドのマネージドサービスを組み合わせることで、AIエージェントの実行基盤をフルマネージドで構築できました。フロントエンドはオブジェクトストレージで静的ホスティング、バックエンドはAppRunでコンテナ実行、Cloudflare Turnstileで二重のBot排除——それぞれをマネージドサービスで賄うことで、サーバー管理から完全に解放された構成になっています。

    さくらのクラウドでのAIエージェント基盤構築を検討している方の参考になれば幸いです。


    よくある質問

    Q. さくらのクラウドのAppRunとAWSのECSやCloud Runとの違いは?
    AppRunは国内データセンターで完結するため、データ主権を重視する案件に適しています。またAWSやGCPと異なり円建て料金のため、為替リスクなく安定したコスト管理ができます。

    Q. フルマネージド構成にするとコストは上がりますか?
    初期の利用料は上がる場合がありますが、インフラ管理の人件費や障害対応コストを含めたトータルコストでは削減できるケースが多いです。

    Q. AIエージェントのAPIトークンはどのように管理していますか?
    シークレットマネージャとKMSで暗号化して管理し、ソースコードや環境変数には一切持たせていません。またCloudflare Turnstileでフロントエンド・バックエンド双方への不正アクセスも防いでいます。

    Q. さくらのクラウドだけで本番運用に耐えられますか?
    今回の構成ではAppRun・モニタリングスイート・ウェブアクセラレータを組み合わせることで、可用性・監視・CDNをすべてカバーしています。

  • Claude Codeソースコード流出の全容 — npmソースマップから512,000行が公開状態に

    Claude Codeソースコード流出の全容 — npmソースマップから512,000行が公開状態に

    2026年3月31日、AnthropicのAI開発支援CLI Claude Codeのソースコードがnpmレジストリから流出した。約512,000行、1,900ファイルのTypeScriptがソースマップ経由で丸見えになっていた。

    騒ぎが大きくなった理由はタイミングにもある。わずか5日前の3月26日、Anthropicは未発表モデル Claude Mythos(内部コードネーム Capybara)のブログ下書きをCMSの設定ミスで公開していた。そのとき漏れた約3,000アセットにはベンチマーク情報まで含まれていた。5日間で2度目の漏洩。リリースプロセスそのものの信頼性が問われている。

    何が起きたのか — 59.8MBのソースマップが混入

    セキュリティ研究者 Chaofan Shou氏(@Fried_rice)が、npm上の @anthropic-ai/claude-code v2.1.88に59.8MBのソースマップファイル .map が含まれているのを見つけた。

    ソースマップは、ビルド済みのJavaScriptから元のTypeScriptソースを復元するためのデバッグ用ファイルだ。開発環境でしか使わないはずのもので、公開パッケージに入れてはいけない。それがそのまま混入していた。

    直接原因は.npmignoreの設定漏れ

    Claude CodeのビルドにはBunのバンドラーが使われている。直接の原因と背景は別の話だ。

    直接原因はリリース担当者が.npmignore*.mapを追記し忘れたこと。package.jsonfilesフィールドでの除外もされていなかった。Anthropicは公式声明でリリースパッケージングのヒューマンエラーと認め、顧客データや認証情報は含まれていないとしている。

    一方、背景因子としてBunのIssue #28001がある。2026年3月11日に報告されたもので、development: falseを設定してもBun.serveがソースマップへの参照を出力に残すバグだ。Bunはデフォルトでソースマップを生成するため、明示的に除外しないとパッケージに入ってしまう。

    しかもこれは初めてではない。2025年にもClaude Code v0.2.8とv0.2.28で同様のソースマップ混入が起き、npmレジストリから該当バージョンを削除していた。同じミスの繰り返しだ。

    DMCAは効かなかった — 一度広まったコードは消えない

    流出コードはGitHub上に即座にバックアップされ、ピーク時には41,500以上のフォークがついた。AnthropicはDMCA通知を出し、8,100以上のリポジトリが削除対象になった。

    だが拡散の速度に削除が追いつかなかった。DMCA削除からわずか2時間後にはPythonリライトやRustリライトが出回り、後者は47,000スターを集めている。別言語で書き直すことでDMCAの著作権主張を回避する手法だ。一度広まったコードは消せない。

    流出コードから判明した5つの内部設計

    512,000行のTypeScriptから、Claude Codeの設計思想が見えてきた。

    1. 約40のプラグイン型ツールアーキテクチャ

    Claude Codeはファイル読み込み、Bash実行、Web取得、LSP連携といった機能をそれぞれ独立したツールとして実装している。ツール定義だけで29,000行。すべてにパーミッションゲートがかかっている。

    これらを束ねるクエリエンジンが46,000行。ターミナルUIはReact + Inkで描画し、文字幅計算にはInt32ArrayバッキングのASCIIキャッシュを使って通常の約50倍に高速化している。ゲームエンジンで使われる手法をCLIに転用している。

    2. セッションを超えた記憶 — メモリシステム

    memdir/ というメモリディレクトリが、セッション間のコンテキスト保持を担っている。関連する記憶のスキャン、古い記憶のエージング、チーム間での共有。Claude Codeがコードベースを覚えているように感じるのは、この仕組みのおかげだ。

    3. トークンコストを抑えるキャッシュ最適化

    14個のキャッシュ破棄ベクトルを追跡し、APIコールごとのトークン消費を減らしている。システムプロンプトの変更箇所だけを差分で送るキャッシュ境界管理で、同じプロンプトの再送信を避けている。

    4. マルチエージェント調整

    coordinatorMode.tsがエージェント間のオーケストレーションを受け持つ。プロンプトベースで調整し、「弱い成果物を無批判に承認するな」といった品質管理の指示が埋め込まれている。サブエージェントが並列で動くときの競合回避とマージの制御もここで行う。

    5. 23個のセキュリティ検査を持つBashツール

    Bashツールには23個の検査が組み込まれている。18個のZsh組み込みコマンド制限、ゼロ幅文字のインジェクション防御など。プロンプトインジェクション経由でシステムコマンドが実行されるのを多層で防いでいる。

    未公開機能の発見 — Anthropicの次の一手が見えた

    コードにはまだリリースされていない機能フラグが複数あった。

    KAIROS — 常時稼働する自律デーモンモード

    古代ギリシャ語で「最適なタイミング」を意味するKAIROS。いまのClaude Codeはユーザーの入力を受けてから動くリアクティブなツールだが、KAIROSはバックグラウンドで常時走るデーモンになる。

    • autoDream — ユーザーがアイドル中に、散らばった観測結果を統合し矛盾を除去する「メモリ蒸留」プロセス。/dreamスキルとして実装されている
    • 追記専用ログ — 日次で観測・判断・アクションを記録し、判断根拠をトレースできるようにする
    • GitHubウェブフック購読 — リポジトリのイベントを監視し、PRレビューやIssue対応を自律的にこなす
    • 5分間隔のcronスケジュール — 定期的に<tick>プロンプトを受け取り、能動的に動くかどうかを判断する
    • Briefモード — 常駐アシスタントがターミナルを埋めないよう、極端に短い応答だけ返す出力モード

    実現すれば、コマンドを打って結果を待つ開発スタイルから、AIがバックグラウンドでコードベースを監視し続けるスタイルへ移行する。GitHub CopilotのAgent ModeやCursorのBackground Agentと方向は同じだが、デーモン化はさらに一歩踏み込んでいる。

    Undercover Mode — AI生成を隠すステルス貢献

    undercover.tsは約90行。外部リポジトリでClaude Codeの痕跡を消すモードだ。有効にすると、以下が適用される。

    • Claude Code、Capybara、Tenguなどの内部コードネームを一切出さない
    • 内部Slackチャンネル名やリポジトリ名を出力しない
    • AI生成の痕跡を残さない

    Anthropic社員がオープンソースにClaude Codeで貢献するとき、AIが書いたと分からないようにする仕組みだ。

    この機能にはオフのスイッチがない。コード内のコメントに「There is NO force-OFF」と書かれている。CLAUDE_CODE_UNDERCOVER=1で強制オンはできるが、逆はできない。一方通行の設計になっている。

    AI生成コードの透明性が問われている時期に、AIであることを隠す機能があること自体が論争を呼んでいる。EUのAI Actが求める透明性要件、GitHubのContributor Covenantとの整合性はどうなるのか。そして皮肉なことに、情報漏洩を防ぐためのこのモードが含まれたコード自体が漏れた。

    Anti-Distillation — 競合のモデル蒸留を防ぐ2段構え

    モデル蒸留とは、Claudeの応答を別のモデルの学習データとして転用する行為だ。コードにはこれを防ぐ2系統の仕掛けがあった。

    第1層claude.tsのフラグANTI_DISTILLATION_CCが有効だと、APIリクエストにanti_distillation: ['fake_tools']が付く。サーバー側がこれを受けて偽のツール定義をシステムプロンプトに注入する。競合がトラフィックを記録して学習に使っても、偽ツールの混入で精度が落ちる。GrowthBookのフィーチャーフラグ tengu_anti_distill_fake_tool_injection で制御されている。

    第2層betas.tsのサーバーサイドコネクタがアシスタントの応答テキストを圧縮・署名して返す。傍受しても元の応答を正確に復元できない。

    ネイティブクライアント証明 — DRMライクな正規バイナリ検証

    system.tsで、リクエストのx-anthropic-billing-headercch=00000というプレースホルダーが埋め込まれている。送信直前にBunのネイティブ層、Zig実装のHTTPスタックが計算ハッシュに置き換える。公式バイナリからのリクエストかどうかをサーバーが検証するDRMに近い仕組みだ。

    この技術はオープンソースクローン OpenCode との争いにも絡んでいる。Anthropicは流出の約10日前、3月21日前後に、サブスクリプション料金での内部API不正利用を理由にOpenCodeへ法的脅迫状を送っていた。ネイティブクライアント証明はその技術的な裏付けになっている。

    frustration regex — 正規表現でユーザーの怒りを拾う

    リークの中でSNSが最も盛り上がったのがこれだ。userPromptKeywords.tsに書かれていたユーザーの不満検知用の正規表現。

    /\b(wtf|wth|ffs|omfg|shit(ty|tiest)?|dumbass|horrible|awful|
    piss(ed|ing)? off|piece of (shit|crap|junk)|what the (fuck|hell)|
    fucking? (broken|useless|terrible|awful|horrible)|fuck you|
    screw (this|you)|so frustrating|this sucks|damn it)\b/

    LLMの会社が感情分析を正規表現でやっている。皮肉に見えるが、合理的だ。ユーザーが怒っているかの判定にLLM推論を回すのはコストも遅延も過剰すぎる。正規表現ならマイクロ秒で済む。応答トーンの調整トリガーとしてはこれで十分だろう。

    業界への影響 — コードよりロードマップの流出が痛い

    戦略的サプライズの喪失

    512,000行のコード自体は、時間をかければ再構築できる。だがKAIROSやUndercover Modeのような未発表機能と戦略的方向性は、一度知られたら巻き戻せない。OpenAI、Google、CursorはAnthropicの次の手を見たうえで自社の製品計画を練れるようになった。コードの流出は一時的だが、ロードマップの流出は長く効く。

    npmエコシステムのソースマップ問題

    ソースマップの誤配布はClaude Codeだけで起きた話ではない。ReactやAngularの本番バンドルに混入した例も散発的にある。たとえば2021年、保守系SNS GETTRではソースマップ経由でハードコードされた認証情報が見つかった。Bunのバンドラーがデフォルトでソースマップを生成する仕様は、npmエコシステム全体のビルド設定のもろさを浮き彫りにしている。

    AI生成コードの透明性の議論

    Undercover Modeの発覚は、AIが書いたコードをラベルなしでオープンソースに混ぜることの是非を突きつけた。EUのAI Actは高リスクAIシステムに透明性を求め、GitHubのContributor Covenantも意図的な不正表示を問題視している。AIが書いたコードを人間の手柄に見せる機能を、開発者コミュニティがどう受け止めるか。

    開発者向け再発防止チェックリスト

    Anthropic規模の企業でもソースマップ流出は起きる。npmパッケージを公開するなら、以下の3点は押さえておきたい。

    1. .npmignore*.mapを追記する — ソースマップが公開パッケージに入らないよう明示的に除外する
    2. package.jsonfilesフィールドを指定する — 公開ファイルをホワイトリスト方式で管理する。.npmignoreのブラックリスト方式より確実だ
    3. CI/CDにパッケージ内容チェックを入れるnpm pack --dry-runでパッケージの中身を公開前に確認するステップをパイプラインに追加する

    どれも数分で設定できる。

    まとめ

    項目詳細
    発生日2026年3月31日
    直接原因.npmignoreのソースマップ除外設定漏れ(ヒューマンエラー)
    背景因子Bun Issue #28001(production modeでもソースマップ生成)
    流出規模512,000行 / 1,900ファイル / 59.8MB
    影響顧客データ・認証情報の漏洩なし
    未公開機能KAIROS(自律デーモン)、Undercover Mode、BUDDY、ULTRAPLAN
    GitHub フォークピーク時41,500以上(DMCA対象: 8,100リポジトリ)
    Anthropicの対応ヒューマンエラーと認め、パッケージ差し替え+DMCA通知

    Claude Mythos下書き公開に続く2件目のインシデントで、Anthropicのリリース工程の甘さが露わになった。流出したのはCLIツールの実装であり、AIモデルの重みやトレーニングデータではない。だが未発表のロードマップと内部戦略が競合に筒抜けになったことは、技術面よりビジネス面で響くだろう。

    一方で、流出コードはAIコーディングツールの内部設計を覗ける数少ない実例にもなった。プラグイン型ツール構造、メモリ蒸留、Anti-Distillation。これらの設計パターンは今後のAIツール開発で広く参照されるはずだ。

    よくある質問(FAQ)

    Q. Claude Code流出で自分のデータが漏れた可能性はある?

    A. Anthropicは顧客データや認証情報は含まれていないと明言している。漏れたのはCLIツールのソースコードで、ユーザーのコードやAPIキーは入っていない。ただしClaude Codeの内部動作が明るみに出たことで、プロンプトインジェクション攻撃の精度が上がるリスクは残る。

    Q. ソースマップとは?

    A. .mapファイルのこと。ビルド・圧縮後のJavaScriptから元のTypeScriptなどのソースを復元するための対応表だ。開発時のデバッグ用で、本番環境やパッケージに含めるものではない。

    Q. KAIROSはいつリリースされる?

    A. 公式発表はない。流出コードにフィーチャーフラグとして存在が確認されただけで、開発段階も完成度も分からない。流出を受けて計画自体が変わる可能性もある。

    Q. Undercover Modeは倫理的に問題ないのか?

    A. 見方が割れている。Anthropicの意図は社内ツールの痕跡を外部リポジトリに残さないことであり、悪意のある隠蔽とは限らない。ただしAI生成コードの開示を求める声が強まるなか、AIが書いたことを隠す機能の存在が批判されているのは事実だ。

    Q. 同様のソースマップ流出を防ぐには?

    A. 上の再発防止チェックリストの3点が基本になる。.npmignoreへの*.map追記、package.jsonfilesフィールド指定、CI/CDでのnpm pack --dry-runチェックだ。


    関連記事:

    出典:

  • GPT-5.4はこうしてリークされた — Codex PR・API・スクリーンショット、3つの漏洩と正式リリースまで

    GPT-5.4はこうしてリークされた — Codex PR・API・スクリーンショット、3つの漏洩と正式リリースまで

    2026年2月末、X上で「alpha-gpt-5.4がパブリックモデルのエンドポイントで発見された」という投稿が広まった。削除されたはずのCodex GitHub PRが本物だとも言われていた。そして1週間後の3月5日、OpenAIはGPT-5.4を正式リリースした。リーク情報はほぼ当たっていた。

    GPT-5.4がどのようにして外に漏れ、実際に何が変わったのかを時系列で整理していく。

    GPT-5.4 概要
    出典: DEV Community

    3つのリーク — 偶然が重なった1週間

    GPT-5.4の存在が外部に出たのは、独立した3つの経路からだ。

    1. Codex GitHub PR(2月27日〜3月2日)

    最初のきっかけは、OpenAIのCodexリポジトリに出されたプルリクエストだった。PR #13050には、画像処理の新機能が必要とするモデルバージョンが (5, 4) と記述されていた。つまりGPT-5.4以降でしか動かない機能が実装されていたことになる。

    このPRで実装されていたのは、detail: original パラメータによる画像圧縮スキップ機能だ。従来のモデルでは送信前に画像が自動的に圧縮・リサイズされていたが、このパラメータを指定するとPNG、JPEG、WebPのオリジナルバイトをそのままモデルに渡すことができる。建築図面や医療画像、UI画面のピクセル単位の分析など、圧縮によって劣化が生じると困るユースケースを想定した機能だ。そしてこの機能がGPT-5.4以降でのみ使えるという記述が、新モデルのビジョン能力が大幅に強化されていることを示していた。

    数時間後、その記述は gpt-5.3-codex or newer に書き換えられた。force pushで履歴も消されたが、スクリーンショットはすでに出回っていた。

    3月2日にはPR #13212でも同じことが起きた。gpt-5.4 をモデル引数に指定した関数呼び出しと、「toggle Fast mode for GPT-5.4」というスラッシュコマンドの記述が含まれていた。削除まで約3時間かかったが、そのころにはキャプチャ済みだった。

    2. モデルセレクターのスクリーンショット

    OpenAIの社員Tiboが、CodexアプリのモデルセレクターUIのスクリーンショットを投稿した。GPT-5.3-Codexの隣にGPT-5.4が並んでいる画面だ。投稿はすぐに削除されたが、魚拓はすでに取られていた。

    3. APIエンドポイント

    alpha-gpt-5.4 というラベルが、公開APIの /models エンドポイントに一時的に現れた。X上で複数ユーザーが確認してスクリーンショットを共有し、それが冒頭の投稿の根拠となった。

    3つとも別々のタイミング、別々の人物によるミスだった。1件なら揉み消せたかもしれないが、3件重なれば確定情報として扱われる。

    正式リリース — 3月5日に何が発表されたか

    リークから1週間後の3月5日、OpenAIはGPT-5.4を正式に発表した。位置づけは「プロフェッショナルワーク向けの、最も高性能かつ効率的なフロンティアモデル」だ。

    スペックとベンチマークをまとめる。

    コンテキストウィンドウ

    API版で100万トークンに対応した。OpenAI史上最大のサイズになる。リーク時には200万トークンという情報も出回っていたが、公式発表では100万トークンに落ち着いた。それでもGPT-5の40万トークンから2.5倍の拡張だ。

    ベンチマーク

    指標GPT-5.2GPT-5.4
    GDPval(知識ワーク)83%(過去最高)
    投資銀行モデリング68.4%87.3%
    SWE-Bench Pro57.7%
    OSWorld-Verified47.3%75.0%
    BrowseComp+17%(GPT-5.2比)

    GPT-5.2と比べて、個々の回答に誤情報が混入する確率が33%減った。レスポンス全体のエラー率も18%下がっている。

    GPT-5.4 Capability Stack
    出典: DEV Community

    Computer-Use(コンピュータ操作)

    GPT-5.4は汎用モデルとして初めて、ネイティブのコンピュータ操作機能を搭載した。アプリケーションをまたいだ複雑なワークフローをAIエージェントが直接実行できる。CodexやAPIと組み合わせれば、マルチステップの自律タスクをそのまま動かせる。

    モデルバリエーション

    3つのバリエーションで展開されている。

    • GPT-5.4:標準版。ChatGPT Plus以上で利用可能
    • GPT-5.4 Thinking:推論に特化。Plus、Team、Proプランで利用可能
    • GPT-5.4 Pro:最高性能。ProおよびEnterpriseプラン限定。BrowseCompで89.3%を記録

    トークン効率

    GPT-5.2と同等の問題解決を、より少ないトークン消費で達成できるようになった。つまりAPI利用者にとっては、性能が上がりながらコストも抑えられるアップデートになる。

    GPT-5.4 Model Selection Map
    出典: DEV Community

    API価格とプラン

    GPT-5.4のトークン単価は、GPT-5.2より改善されている。OpenAI公式の発表では、入力・出力ともにコスト効率が向上しており、API経由で使うコストに対して得られる性能の比率が上がっている。

    Thinking版(GPT-5.4 Thinking)は推論トークンの追加コストがかかる構造だ。ただし複雑なタスクでは推論ステップを挟むことで回答の試行回数が減り、リトライや後処理のコストを含めたトータルが下がるケースもある。単純なQ&AにThinkingを使うのは過剰だが、コードレビューや多段階の計算では費用対効果が出やすい。

    プランごとのアクセス範囲は以下のとおりだ。

    プラン月額GPT-5.4GPT-5.4 ThinkingGPT-5.4 Pro
    Plus$20利用可利用可不可
    Team$30/人利用可利用可不可
    Pro$200利用可利用可利用可
    Enterprise要問合せ利用可利用可利用可

    API経由での利用は、ChatGPTのプランとは別に従量課金として請求される。

    リーク情報はどこまで正確だったか

    冒頭の投稿の主張を振り返ると、こうなる。

    • 「alpha-gpt-5.4がエンドポイントで発見された」→ 事実
    • 「Codex GitHub PRリークは100%本物」→ 事実
    • 「来週早々に登場する」→ ほぼ正確(投稿から5日後にリリース)
    • 「盤面をリセットする世代間飛躍」→ ベンチマーク上は大幅な改善。ただし評価は使う人間次第

    唯一外れたのは、コンテキストウィンドウのサイズだ。リーク時の「200万トークン」に対し、公式では「100万トークン」だった。内部のアルファ版でテストされていたスペックが、リリースまでの間に変更されたと考えるのが自然だろう。

    200万から100万への半減には、いくつかの理由が考えられる。まずレイテンシの問題だ。コンテキストが長くなるほど推論時間が伸びる。GPT-5.4はプロフェッショナルワーク向けのモデルとして位置づけられており、応答速度とのバランスを取った結果、100万トークンに落ち着いた可能性が高い。もう一つは段階リリース戦略だ。200万トークン対応を将来のバージョンに温存し、アップデート時の目玉機能として使うという読み方もできる。

    また、リーク時にはもう一つ噂があった。「会話をまたいで状態を保持するステートフルAI」の実装だ。従来のモデルはセッションごとにリセットされるが、ステートフルモードでは記憶や作業状態を持ち越せる。この機能については、正式発表では触れられなかった。開発中ではあるが、プライバシーとコストの問題を解決できていないため別途発表される可能性が残っている。

    GPT-5シリーズの進化ペース

    GPT-5シリーズは2025年8月の初版リリースから、1〜3ヶ月間隔でアップデートを続けてきた。半年で3回のメジャーアップデートというペースはGPT-4時代より明らかに速い。

    バージョンリリース時期主な進化
    GPT-52025年8月初版。推論能力の飛躍
    GPT-5.22025年11月マルチモーダル強化
    GPT-5.32026年1月Codex統合、エージェント強化
    GPT-5.42026年3月Computer-Use、1Mコンテキスト

    競合他社も同様のペースで動いている。AnthropicはClaude 4.5・4.6を2026年に入って相次いでリリースし、GoogleはGemini 2.5でマルチモーダルと長文コンテキストの性能を引き上げた。三社とも3ヶ月以内のサイクルでフラッグシップモデルを更新しており、AI能力のコモディティ化が加速している局面だ。

    computer-useという機能に絞ると、AnthropicはClaude 3.5の段階から先行して提供していた。OSWorldのベンチマークでも一時期Claudeが上位を占めていた。GPT-5.4はOSWorld-Verifiedで75.0%を記録し、GPT-5.2の47.3%から大幅に向上させた。OpenAIが半年かけてchromecast操作からデスクトップ全体の自動化まで対応域を広げた形で、Anthropicの先行優位は縮まっている。

    開発者への影響

    GPT-5.4のスペック変化は、実際に使う開発者にとって具体的な変化をもたらす。

    1Mトークンのコンテキストウィンドウにより、大規模コードベースの一括分析が現実的になった。従来は分割して投入していたファイル群を、リポジトリごとまとめて渡してアーキテクチャ上の問題点を指摘させるといった使い方が成立する。コンテキスト切れによる情報の断絶を避けられる点は、長いセッションを前提とする開発タスクで特に効いてくる。

    Computer-Useの搭載は、エージェントの自律性を一段引き上げる。ブラウザ操作やGUIアプリへの入力など、これまでAPIでは届かなかった領域を自動化できる。Seleniumや専用スクレイパーを用意しなくても、「このサイトにログインしてデータを取ってきて」という指示をそのまま実行できるようになる。

    Codexとの統合という観点では、PRレビューから修正・テスト実行までの一連のフローを自動化する構成が視野に入る。GPT-5.4はCodexのバックエンドとして動き、コードの意図を読んでレビューコメントを付け、修正案を生成し、テストを走らせて結果を確認する。一人の開発者が抱える反復作業の大部分を委任できる構成だ。

    API利用者にとっては、性能とコストの比率が改善している点がシンプルにうれしい。同じ品質の出力をより少ないトークンで得られるなら、月の請求額を変えずにより多くのタスクをこなせる。

    参考リンク

  • 第3回:さくらのクラウドで構築するモダンアーキテクチャ GitHub Actions × Self-hosted Runner

    第3回:さくらのクラウドで構築するモダンアーキテクチャ GitHub Actions × Self-hosted Runner

    GitHub ActionsとSelf-hosted RunnerでVPC内DBにmigrateを実行する方法

    AppRun構成でCI/CDを成立させる実践設計


    📚 さくらのクラウドで作るモダンアーキテクチャ(全5回)


    はじめに

    AppRunを使ったモダン構成で、ほぼ確実にぶつかる問題があります。

    それが

    VPC内部にあるデータベースに、CI/CDからどうやってmigrateを流すか

    という問題です。

    通常のCI/CDでは、

    • GitHub Actions
    • GitLab CI
    • CircleCI

    などのクラウドCIが使われます。

    しかしこれらは インターネット上の環境で実行されるため、VPC内部には直接アクセスできません。

    今回の構成では、

    • データベースはVPC内
    • DBはグローバル公開しない
    • AppRun専有型を利用

    という設計なので、

    CIからDBに直接アクセスすることができません。


    なぜ普通のCIではダメなのか

    構成を整理します。

    GitHub Actions

    Internet

    AppRun

    VPC Router

    Database

    ここで問題になるのは

    GitHub ActionsはVPCの外にいる

    という点です。

    つまり、

    • DBを公開しない限り
    • CIはDBに接続できない

    という状態になります。

    しかしDBを公開するのは、セキュリティ的に好ましくありません。


    解決策:Self-hosted Runner

    この問題を解決するのが

    Self-hosted Runner

    です。

    これは簡単に言うと、

    GitHub Actionsの実行環境を自分のサーバーに置く仕組み

    です。

    つまり、

    • RunnerをVPC内に配置
    • GitHub ActionsのジョブをRunnerで実行

    することで、

    CIからVPC内部のリソースにアクセスできるようになります。


    Runner配置の構成

    今回のシリーズでは以下の構成を採用します。

    GitHub Actions

    Self-hosted Runner

    VPC Router

    Database

    RunnerをVPC内部に配置することで、

    • DBアクセス
    • migrate実行
    • 内部API接続

    が可能になります。


    Runnerを配置するセグメント

    第2回で紹介したネットワーク構成を思い出してください。

    VPC
    ├─ public-app-seg
    ├─ private-db-seg
    └─ runner-seg

    Self-hosted Runnerは

    runner-seg

    に配置します。

    理由は以下です。

    • AppRunと役割が異なる
    • DBアクセスを制御しやすい
    • CI用リソースを分離できる

    CI用のサーバーは、必ず専用セグメントに分離するのが安全です。


    Runnerのもう一つの問題:インターネットに出られない

    RunnerをVPC内部に配置すると、もう一つ問題が発生します。

    それは

    Runnerがインターネットに出られない

    という問題です。

    RunnerはCI実行時に以下の通信を行います。

    • GitHub Actions API
    • pip install
    • npm install
    • Docker image pull
    • 外部APIアクセス

    そのため 外向き通信が必須になります。


    NAT VMの役割

    ここで必要になるのが

    NAT VM

    です。

    NAT VMは、

    VPC内部のサーバーがインターネットへ出るための出口

    として機能します。

    構成は以下のようになります。

    Runner

    VPC Router

    NAT VM

    Internet

    RunnerはNAT VMを経由してインターネットへ接続します。


    AWSとの違い

    AWSでは

    • NAT Gateway

    を利用します。

    一方、さくらのクラウドでは

    NATはVMで構築する

    のが一般的です。

    ただしメリットもあります。

    • コストが安い
    • 構成の自由度が高い
    • 通信制御が細かくできる

    NAT VMを含めた全体構成

    最終的なネットワーク構成は以下になります。

    Internet

    Cloudflare

    AppRun[VPC]
    ├─ public-seg
    │ └─ NAT VM

    ├─ runner-seg
    │ └─ Self-hosted Runner

    └─ private-db-seg
    └─ Database

    通信フロー:

    Runner → NAT VM → Internet → GitHub
    Runner → VPC Router → Database

    この構成により

    • CI/CD
    • VPC内部通信
    • DB保護

    を両立できます。


    Runnerセットアップ

    RunnerはGitHubからスクリプトを取得して起動します。

    mkdir actions-runner
    cd actions-runnercurl -o actions-runner.tar.gz -L https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gztar xzf actions-runner.tar.gz./config.sh --url https://github.com/your-repo --token TOKEN
    ./run.sh

    これでRunnerがGitHubと接続されます。


    GitHub Actions設定例

    Djangoのmigrate実行例です。

    name: migrateon:
    push:
    branches:
    - mainjobs:
    migrate:
    runs-on: self-hosted steps:
    - uses: actions/checkout@v4 - name: Install dependencies
    run: |
    pip install -r requirements.txt - name: Run migrate
    run: |
    python manage.py migrate

    重要なのはここです。

    runs-on: self-hosted

    これによりジョブは

    VPC内部のRunner

    で実行されます。


    Runner運用で気をつけること

    Runnerは公開しない

    RunnerはCI実行環境です。

    外部公開すると攻撃対象になります。

    必ずVPC内部に配置します。


    Runnerは専用セグメントに置く

    CI環境は分離します。

    理由:

    • セキュリティ
    • 負荷分離
    • トラブル影響範囲

    Runnerは使い捨ても可能

    高度な構成では

    • Runner自動生成
    • Job終了後削除

    という設計もあります。

    今回はシンプル構成を採用します。


    まとめ

    AppRun構成でCI/CDを成立させるには

    Self-hosted Runner + NAT VM

    が必要になります。

    理由はシンプルです。

    • DBはVPC内部
    • CIはインターネット
    • Runnerは内部
    • Runnerは外に出る必要がある

    だから

    RunnerをVPC内に置き
    NAT VMでインターネットに出る

    この構成が最もシンプルで安全です。


    次回予告

    次回は

    AppRun専有型と共用型の違い

    を解説します。

    ここを理解していないと、

    • VPC接続できない
    • スイッチ接続できない
    • ネットワーク設計が破綻する

    という事故が起きます。

    AppRun設計の核心です。


    よくある質問(FAQ)

    Q1. GitHub ActionsからVPC内のデータベースに接続できますか?

    通常のGitHub Actionsはインターネット上で実行されるため、VPC内部のデータベースには直接接続できません。
    そのため、VPC内にSelf-hosted Runnerを配置し、そのRunner上でCIジョブを実行する構成が必要になります。


    Q2. Self-hosted Runnerとは何ですか?

    Self-hosted Runnerとは、GitHub Actionsのジョブを自分のサーバーで実行できる仕組みです。
    通常はGitHubのクラウド環境でジョブが実行されますが、RunnerをVPC内に配置することで内部リソースへ安全にアクセスできます。


    Q3. Self-hosted Runnerはどこに配置するべきですか?

    Self-hosted Runnerは専用のセグメント(例:runner-seg)に配置するのが推奨です。
    AppRunやデータベースと役割が異なるため、ネットワークを分離することでセキュリティと運用性が向上します。


    Q4. Runnerはインターネットに接続する必要がありますか?

    はい。Runnerは以下の通信を行うため、外向き通信が必要です。

    • GitHub Actions API
    • パッケージダウンロード(pip / npm)
    • Dockerイメージ取得
    • 外部APIアクセス

    そのためVPC内のRunnerはNAT VMなどを経由してインターネットへ接続する必要があります。


    Q5. NAT VMとは何ですか?

    NAT VMとは、VPC内部のサーバーがインターネットへアクセスするための出口となるサーバーです。
    RunnerはNAT VMを経由することで、GitHubやパッケージリポジトリへアクセスできます。


    Q6. AWSの場合はどう構成しますか?

    AWSでは通常、

    • NAT Gateway
    • ECS / EC2 Runner
    • GitHub Actions

    の組み合わせで同様の構成を作ります。
    さくらのクラウドではNAT Gatewayの代わりにNAT VMを構築するケースが多いです。


    Q7. データベースをグローバル公開してCIから接続するのはダメですか?

    可能ではありますが推奨されません。
    DBを公開すると攻撃対象が増えるため、VPC内部に閉じたままSelf-hosted Runner経由で操作する方が安全です。

  • さくらのクラウドSOC2 Type1取得 ― 国産クラウドの信頼性が一段上がった

    さくらのクラウドSOC2 Type1取得 ― 国産クラウドの信頼性が一段上がった

    何が起きたか

    2026年1月30日、さくらインターネットはさくらのクラウドについて SOC2 Type1 報告書を新たに取得したと発表した。基準日は 2025年10月31日。

    ここで押さえておきたいのは、今回の対象がデータセンターではなくクラウドサービスそのものだという点だ。つまり、物理インフラの管理だけでなく、ユーザーが直接触るサービスレイヤーのセキュリティ統制を第三者が評価したことになる。その結果、データセンターからサービスへと SOC 対応の範囲が一段広がった。

    この動きは、近年のAIを活用した自律型セキュリティ診断の進化と合わせて見ると、クラウドサービスのセキュリティ体制が攻めと守りの両面から強化されていることがわかる。

    SOC2 とは何か

    まず前提を整理しておこう。SOC2(Service Organization Control 2)は、米国公認会計士協会(AICPA)が策定した、サービス提供組織の内部統制を評価する監査基準だ。評価の軸になるのが Trust Service Criteria(信頼サービス規準) と呼ばれる 5 つの領域になる。

    規準内容
    セキュリティ不正アクセスからの保護
    可用性サービスの安定稼働
    処理の完全性データ処理の正確性
    機密性機密情報の適切な管理
    プライバシー個人情報の保護

    独立した監査人がこれらの規準に沿って統制の状況を評価する。

    Type1 と Type2 の違い

    Type1Type2
    評価の対象ある一時点での統制の設計一定期間にわたる統制の運用
    例え設計図を見る実際の運用を見る
    期間スナップショット通常 6〜12 ヶ月
    信頼度設計の妥当性を確認設計が継続的に機能していることを確認

    言い換えれば、Type1 は「仕組みがきちんと設計されているか」のスナップショット評価。一方、Type2 は「その仕組みが実際に機能し続けているか」の継続評価だ。したがって、Type1 を取得してから Type2 に進むのが一般的な流れになる。

    さくらインターネットの SOC 取得の歩み

    では、今回の取得はどのような背景から生まれたのか。実は突然のものではない。さくらインターネットが長年積み重ねてきたセキュリティ対応の延長線上にある。

    時期取得内容
    2017年5月石狩データセンターで SOC2 Type1 を初取得
    2020年10月SOC2 Type2 および SOC3 報告書を取得
    2025年7月SOC2 / SOC3 報告書を更新
    2026年1月さくらのクラウドで SOC2 Type1 を新たに取得

    このように、データセンターの物理セキュリティから始まり、Type2 への昇格を経て、今回はクラウドサービス単体での取得に至った。この段階的な拡大は、SOC 対応の成熟度を示している。

    国産クラウドの SOC2 対応状況

    それでは、さくらインターネットの取得を文脈づけるため、主要な国産クラウド事業者の SOC2 対応状況を整理してみよう。

    事業者SOC2 Type1SOC2 Type2特記事項
    KDDI(KDDIクラウド)取得済8 年連続取得通信キャリア系で最も長い実績
    IIJ(IIJ GIO)取得済取得済DC 含む包括的な SOC 対応
    GMOクラウド取得済ConoHa 等一部サービスが対象
    NTT Com(SDPF)取得済取得済グローバル展開に伴う SOC 対応
    さくらインターネットDC + クラウドDC のみ今回クラウド単体の Type1 を新規取得

    この中で特に目を引くのは、KDDI が Type2 を 8 年連続で維持している点だ。さくらインターネットはデータセンターでは Type2 まで到達しているものの、クラウドサービス単体では今回が Type1 の起点となる。そのため、次のステップは当然、クラウドサービスでの Type2 取得だろう。

    SOC2 と他のセキュリティフレームワークの位置づけ

    ただし、SOC2 はクラウドセキュリティを評価するフレームワークの一つにすぎない。他にもいくつかの基準がある。ここでは、日本で実務に関わる主要な基準を横並びで比較する。

    観点SOC2ISMS(ISO 27001)ISMAPCSA STAR
    策定元AICPA(米国)ISO/IEC(国際)日本政府CSA(国際)
    評価方式監査人によるレポート認証機関による審査政府の評価委員会自己評価 or 第三者評価
    主な用途委託先管理・B2B 評価情報セキュリティ全般政府調達の前提条件クラウド固有のリスク評価
    公開範囲NDA ベースで開示認証取得の事実は公開登録リストを公開レジストリで公開
    日本での浸透度エンタープライズ中心広く普及官公庁必須まだ限定的

    この中で特に注目すべきは ISMAP(政府情報システムのためのセキュリティ評価制度) だ。2020年に導入され、約 1,200 の管理策で構成される。政府クラウドに採用されるためには ISMAP 登録が事実上の前提条件となっている。

    さくらインターネットは 2023年11月にガバメントクラウドに条件付きで採択された。その後も要件達成を進め、2025年12月時点で 122 項目中 116 項目の技術要件を達成済みとされる。こうした背景を踏まえると、今回の SOC2 取得もガバメントクラウド対応の流れの一環と見ることができる。

    実務面での影響 — なぜ気にすべきか

    ここからは、今回の SOC2 取得がクラウド利用者にとって具体的にどう影響するかを見ていく。

    1. クラウド選定時の客観的な判断材料が増える

    クラウドサービスを導入する際、「セキュリティは大丈夫か」という問いに対して、ベンダーの自己申告ではなく独立した監査人による評価報告書を確認できるようになる。特に、エンタープライズ案件や ISMS 取得企業では委託先の統制評価を求められる場面が増えている。そうした場面で SOC2 報告書はそのまま判断材料として使える。

    2. 国産クラウドの選択肢が広がる

    データ主権やレイテンシの観点から国産クラウドを選びたいケースは少なくない。しかし、これまでは SOC2 未取得という点がネックになることがあった。今回の取得により、さくらのクラウドも SOC2 という国際的に認知された基準を満たし、AWS や GCP と同じ土俵で比較検討できるようになった。

    3. コンプライアンス対応の工数を減らせる

    自社で SOC2 や ISMS の認証を維持している企業にとって、利用するクラウドサービスが SOC2 報告書を持っていれば、委託先管理の監査工数を大幅に削減できる。逆に言えば、SOC2 報告書がないクラウドを使っている場合、自社で独自に統制評価を行う必要があり、その分のコストと時間がかかっている。

    SOC2 報告書を確認する際の7つのチェックポイント

    実際に SOC2 報告書を閲覧する機会を得たとき、どこを見ればよいのか。以下の 7 つのポイントを押さえておけば、報告書の内容を正しく評価できる。

    1. 対象範囲(Scope): どのサービスが対象か。「さくらのクラウド」全体か、特定コンポーネントか
    2. 選択された Trust Service Criteria: 5 つのうちどれが評価対象か。セキュリティのみの場合もある
    3. 監査意見(Opinion): 無限定適正意見か、限定付き意見か、不適正意見か
    4. 例外事項(Exceptions): 統制の逸脱が発見されていないか
    5. 補完的統制(Complementary User Entity Controls): 利用者側で実装すべき統制が何か
    6. サブサービス組織の取り扱い: データセンターなど外部委託先の統制をどう扱っているか
    7. 基準日 / 評価期間: Type1 なら基準日、Type2 なら評価期間を確認

    この中で特に見落としやすいのが「補完的統制」だ。SOC2 報告書は「サービス提供者側の統制」を評価したものであり、利用者側で対処すべきセキュリティ対策が別途記載されている。これを無視してしまうと、SOC2 を取得したサービスを使っているにもかかわらず、セキュリティインシデントが発生するという事態になりかねない。報告書を「取得済み」の事実だけで安心するのではなく、中身を読んで自社側の対応事項を把握することが不可欠だ。

    報告書の閲覧方法

    なお、SOC2 報告書は一般には公開されない。NDA 等の条件のもとで開示されるのが通常だ。そこで、主要クラウドプロバイダの報告書へのアクセス方法を整理しておく。

    プロバイダアクセス方法
    AWSAWS Artifact(マネジメントコンソール内で NDA 同意後にダウンロード)
    Google CloudCompliance Reports Manager(同意後にダウンロード)
    Microsoft AzureService Trust Portal(NDA 同意後)
    さくらのクラウド営業担当またはカスタマーセンター([email protected])に問い合わせ

    AWS・GCP・Azure がセルフサービスで報告書にアクセスできるのに対し、さくらのクラウドは問い合わせベースだ。そのため、クラウド選定の検討フェーズで報告書を確認したい場合は、早めに連絡しておくことをおすすめする。

    今後の展望 — Type2 への道のりと注目ポイント

    一般的に、SOC2 Type1 を取得した組織は 1〜2 年以内に Type2 への移行を目指す。さくらインターネットはデータセンターでは既に Type2 を取得しているため、クラウドサービスでの Type2 取得も時間の問題だろう。

    加えて、さくらインターネットは近年、インフラ面でも大きな動きを見せている。

    • GPU クラウド: 高火力シリーズで NVIDIA H100/H200 を提供、2025年に TOP500 で世界 49 位にランクイン
    • データセンター投資: 石狩 DC の大規模拡張に 53 億円を投じ、2026年に新棟稼働予定
    • ガバメントクラウド: 2023年11月に条件付き採択、技術要件の達成が進行中

    このように、インフラの拡大とセキュリティ認証の強化が並行して進んでいる。クラウドサービスの信頼性は性能だけでは測れない。だからこそ、第三者評価の積み重ねが、選ぶ側にとっての判断材料になる。

    よくある疑問

    SOC2 を取得していれば安全なのか

    SOC2 はあくまで「統制が設計・運用されているか」を評価したものであり、「絶対にセキュリティインシデントが起きない」ことを保証するものではない。報告書に記載された補完的統制を利用者側で実装しなければ、SOC2 取得済みサービスを使っていてもリスクは残る。

    Type1 だけで十分か

    Type1 は設計の妥当性を確認したスナップショット評価だ。そのため、継続的に統制が機能しているかは Type2 でなければ確認できない。委託先管理の観点からは、Type2 の方が信頼性が高い。ただし、Type1 の取得自体が「統制を設計し、監査を受け入れる体制がある」ことの証明にはなるため、まったく無意味ということではない。

    ISMAP と SOC2 はどちらが上か

    両者は目的と評価方式が異なるため、単純な上下関係にはない。ISMAP は日本政府の調達要件であり、SOC2 は国際的な委託先管理の基準だ。両方を持っていることが、国内外の顧客に対する信頼性の幅を広げる。

    まとめ

    • SOC2 Type1 は、内部統制の設計が適切であることを第三者が評価したもの
    • 今回は「さくらのクラウド」サービス単位での取得がポイント
    • 国産クラウドの SOC2 対応は KDDI、IIJ、NTT Com が先行しており、さくらはクラウド単体での Type1 が起点
    • ISMAP やガバメントクラウドの文脈と合わせて読むと、国産クラウドのガバナンス体制は着実に厚みを増している
    • 報告書を閲覧する際は、対象範囲・監査意見・補完的統制を必ず確認する
    • SOC2 報告書を「取得済み」の事実だけで終わらせず、中身を確認して自社の対応事項を把握することが不可欠

    参考リンク

  • 【驚異の96%】AI自律ペンテストツールShannonが変えるセキュリティ診断の未来 — 誤検知ほぼゼロで脆弱性を自動発見・実証

    【驚異の96%】AI自律ペンテストツールShannonが変えるセキュリティ診断の未来 — 誤検知ほぼゼロで脆弱性を自動発見・実証

    Shannon とは何か

    Shannon は、KeygraphHQ が開発した完全自律型の AI ペネトレーションテストツールだ。従来のスキャナーが「脆弱性の可能性」を報告するのに対し、Shannon は実際にエクスプロイトを実行し、再現可能な PoC(概念実証)付きで報告する。

    コマンド一つで起動し、認証処理(2FA/TOTP を含む)からブラウザ操作、レポート生成まで人手を介さず完了する。XBOW Benchmark で 96.15% の成功率を記録し、GitHub では 16,500 以上のスターを獲得している。

    「No Exploit, No Report」— 証拠ベースの脆弱性検出

    Shannon の最大の特徴は Proof-by-Exploitation(実証による証明) というアプローチだ。

    従来のセキュリティスキャナーは、パターンマッチやシグネチャベースで「脆弱性の疑いがある箇所」を大量に報告する。結果として誤検知(False Positive)が多発し、開発チームのトリアージ工数が膨大になることが課題だった。

    しかし、Shannon はこの問題を根本から解決する。

    1. ソースコード解析で攻撃対象を特定
    2. 実際にブラウザや CLI で攻撃を実行
    3. エクスプロイトに成功した場合のみレポートに記載
    4. 再現手順をコピー&ペースト可能な形式で提供

    つまり、レポートに載った脆弱性はすべて「実際に突破できた」ものであり、誤検知がゼロに近い。Help Net Security は 2026年2月の記事で「Open-source AI pentesting tools are getting uncomfortably good(OSS の AI ペンテストツールが不気味なほど優秀になってきた)」と評している。

    従来ツールとの比較

    Shannon の立ち位置を明確にするため、代表的なセキュリティツールと比較する。

    観点OWASP ZAPBurp SuiteSonarQubeSnykShannon
    検出方式シグネチャファジング+手動AST ルールCVE DBLLM コード解析
    検証方法レスポンス分析プロキシ検査静的のみCVE 照合実エクスプロイト
    誤検知率高(40-60%)中(20-30%)高(30-50%)低(5-10%)極低(<5%)
    ソースコード不要不要必要依存関係のみ必要(ホワイトボックス)
    実行時間15-30 分数時間(手動含む)2-5 分30 秒60-90 分
    認証フロー対応基本のみ手動設定N/AN/ATOTP/2FA/OAuth

    特に注目すべきは誤検知率の差だ。ZAP が OWASP Juice Shop に対して 150 以上のアラートを出すのに対し、Shannon は 20 件超の脆弱性を報告する。そしてその 20 件はすべて実際に突破できたものだ。開発チームのトリアージ工数は桁違いに変わる。

    4 フェーズのアーキテクチャ

    Shannon は Anthropic の Agent SDK をベースに構築されたマルチエージェントシステムで、以下の 4 フェーズで動作する。

    Phase 1: 偵察(Reconnaissance)

    ソースコード解析と外部ツール(Nmap、Subfinder、WhatWeb、Schemathesis)を組み合わせ、攻撃対象のサーフェスをマッピングする。ソースコードを読むことで、UI に表示されない隠しエンドポイントやデバッグ用パスも特定できる。

    Phase 2: 脆弱性分析(Vulnerability Analysis)

    OWASP カテゴリごとに並列で専門エージェントが動作し、データフロー解析を通じて脆弱性候補を特定する。現在対応しているカテゴリは以下の 4 種類だ。

    カテゴリ検出対象の例
    InjectionSQL インジェクション、コマンドインジェクション、SSTI
    XSSReflected / Stored / DOM-based XSS
    SSRFサーバサイドリクエストフォージェリ
    Broken Auth認証バイパス、権限昇格、IDOR、JWT アルゴリズム混同

    ホワイトボックスである利点はここにある。たとえばソースコード上で SELECT * FROM Users WHERE email='${email}' のような文字列補間を見つけると、その入力パラメータを追跡し、サニタイズの有無まで確認したうえでエクスプロイトを構成する。ブラックボックスの総当たりとは精度が違う。

    Phase 3: エクスプロイト(Exploitation)

    各エージェントがブラウザ自動操作やコマンドライン経由で実際に攻撃を実行する。再現できなかった脆弱性は破棄され、レポートには含まれない。

    Phase 4: レポート生成(Reporting)

    再現可能な PoC、影響範囲、修正推奨事項を含む包括的なセキュリティ評価レポートを自動生成する。スクリーンショットとログが証拠として添付される。

    XBOW Benchmark — 96.15% の文脈

    Shannon Lite は XBOW Benchmark のヒントなし・ソースコード参照ありバージョンで 104 問中 100 問を突破し、96.15% を達成した。

    ただし、この数字にはいくつか重要な文脈がある。

    • Shannon はホワイトボックス(ソースコード参照あり) で評価されている
    • XBOW プラットフォーム自体はブラックボックスで 75-85% の成功率
    • 人間のトップクラスのペンテスターは 40 時間の作業で約 85%

    言い換えれば、ソースコードへのアクセスがあるという条件下での数字だ。それでも、人間が 40 時間かかるところを 1〜1.5 時間で 96% という事実は、ツールの有効性を十分に示している。

    実プロジェクトでの検出実績

    Shannon は複数のやられアプリ(意図的に脆弱性を仕込んだ学習用アプリ)で実力を実証している。

    OWASP Juice Shop

    20 件以上の高影響度脆弱性を発見。認証バイパス、SQL インジェクションによるデータベース窃取、権限昇格、IDOR、SSRF を確認。

    c{api}tal API

    約 15 件の Critical / High 脆弱性を検出。コマンドチェイニングによる root レベルのインジェクション、UI に存在しないレガシーエンドポイント経由の認証バイパス、マスアサインメントによる権限昇格を特定。

    OWASP crAPI

    15 件以上の Critical / High 脆弱性を発見。JWT アルゴリズム混同攻撃(alg:none を含む)、インジェクションによるデータベース侵害、トークン転送付き SSRF を検出。XSS 防御に対する誤検知はゼロだった。

    OWASP Top 10 カバレッジと補完戦略

    Shannon が現状カバーしているのは OWASP Top 10(2021)の 4 カテゴリだ。残りはツールの組み合わせで補う必要がある。

    OWASP カテゴリShannon補完ツール
    A01: アクセス制御の不備対応
    A02: 暗号化の失敗一部SSL Labs、testssl.sh
    A03: インジェクション対応
    A04: 安全でない設計一部脅威モデリング(手動)
    A05: セキュリティの設定ミス一部Lynis、CIS Benchmarks
    A06: 脆弱なコンポーネント未対応Snyk、Trivy
    A07: 識別と認証の失敗対応
    A08: ソフトウェアとデータの整合性未対応Sigstore、SLSA
    A09: ログと監視の失敗未対応ELK、Splunk
    A10: SSRF対応

    一方で、Shannon は万能ではない。ライブラリの既知脆弱性(Log4Shell 等)やインフラ設定ミスは検出範囲外だ。SAST/SCA と組み合わせることで初めて実効的なセキュリティパイプラインになる。

    DevSecOps パイプラインへの組み込み方

    Shannon は実際にエクスプロイトを実行するツールであり、本番環境での実行は厳禁だ。推奨される統合ポイントは以下のとおり。

    開発 → ユニットテスト → ビルド → SAST/依存関係スキャン →
      ステージングデプロイ → 結合テスト → 【Shannon 実行】 →
      手動承認 → 本番デプロイ

    実行環境の要件

    • ネットワーク分離: ステージング環境を本番と隔離(専用 VPC またはネットワークポリシー)
    • データリセット: スキャン後にデータベースをスナップショットから復元
    • 専用テストアカウント: 本番認証情報は絶対に使わない
    • 書面による承認: アプリケーションオーナーからの実行許可

    Lite でも定期実行はできる

    なお、Shannon Pro には GitHub Actions 等との CI/CD 連携が組み込まれているが、Lite でも cron + Docker で週次スキャンを回すことは可能だ。レポートは JSON / Markdown で出力されるので、完了後に Slack Webhook や GitHub Issue に結果を流すスクリプトを組めば、チームへの共有も自動化できる。60〜90 分かかるため PR 単位のゲートには向かないが、週末夜間のバッチ実行なら十分実用的だ。

    コスト感

    • Shannon Lite: 無料(AGPL-3.0)
    • API コスト: 1 回のスキャンで $16〜50(Anthropic Claude API 利用料)
    • 実行時間: 中規模アプリで約 60〜90 分
    • リソース: Docker 必須、RAM 6GB 以上推奨

    週次スキャンで年間 $2,600〜5,000 程度。年 1 回の外部ペネトレーションテスト(200〜500 万円)と比べると、コスト効率は大きく改善する。ただし、Shannon は人間のペンテスターの代替ではなく補完だ。ビジネスロジックの脆弱性や設定ミスは依然として人間の目が必要になる。

    Lite と Pro の違い

    Shannon LiteShannon Pro
    ライセンスAGPL-3.0(OSS)商用ライセンス
    対象セキュリティチーム・研究者エンタープライズ
    コード解析単一ファイル解析LLM 駆動のデータフロー解析(複数ファイル横断)
    CI/CD 連携GitHub Actions / GitLab CI / Jenkins
    デプロイセルフホストクラウド or セルフホスト
    推奨規模〜5 万行10 万行以上

    とはいえ、Lite でも十分な検出力はある。まずは Lite で自社のステージング環境を試し、規模が大きくなったら Pro を検討するのが現実的だ。

    注意点と限界

    Shannon を導入する前に把握しておくべき制約がある。

    1. ホワイトボックス専用: ソースコードがなければ動かない。SaaS のセキュリティテストには使えない
    2. 検出範囲が狭い: OWASP Top 10 のうち 4 カテゴリのみ。ビジネスロジック脆弱性や設定ミスは対象外
    3. 本番実行不可: 実際にデータを書き換える攻撃を行うため、本番環境では使えない
    4. LLM の限界: レポートに LLM 由来の不正確な記述が混入する可能性がある。人間によるレビューは必須
    5. API コスト: 継続的に利用するとトークン消費が積み上がる。コスト管理が必要
    6. 実験的モデルサポート: Anthropic Claude が推奨。OpenAI/Gemini は実験的で結果が不安定

    まとめ

    Shannon は「脆弱性を見つけて終わり」ではなく、実際にエクスプロイトを成功させて証明するという新しいアプローチを取る AI ペンテストツールだ。

    • 誤検知ほぼゼロ: 報告された脆弱性はすべて実証済み
    • 96.15%: XBOW Benchmark(ホワイトボックス)での成功率
    • 60〜90 分: 人間のペンテスターが 40 時間かかる作業を自動化
    • 年間 $2,600〜: 外部診断の 1/10 以下のコスト

    セキュリティ対策の実効性を客観的に検証するハードルは高いのが現状だ。Shannon のようなツールを開発フローに組み込むことで、「本当に攻撃可能か」を継続的に検証できるようになる。

    ただし、人間のペンテスターの代替にはならない。SAST、SCA、DAST と組み合わせた多層防御の一要素として位置づけるのが正しい使い方だ。

    OSS の Lite 版が公開されているので、まずはステージング環境で試してみてほしい。

    関連記事

    参考リンク