8月20日、GBHackersが「Claude AI Finds Authentication Bypass Flaws in Multiple SAML Implementations」と題した記事を公開した。この記事では、AnthropicのClaude CodeをAI支援の脆弱性調査パイプラインとして活用し、複数のオープンソースSAML実装で認証バイパスを含む重大な脆弱性を発見した研究について詳しく紹介されている。
AIがSAML実装の脆弱性を「組織的に」掘り起こす
Eric Chiangは、AnthropicのCyber Verification Programに参加し、Claude Codeを使ったマルチエージェント環境を構築した。アプローチが特徴的で、既知の脆弱性パターンをモデルに再現させるのではなく、脅威モデルを与えてコードベースを自律的に探索させる設計にしている。
なお、Anthropic Cyber Verification Programは、AnthropicがセキュリティリサーチャーにClaude Codeへのアクセスを提供し、実際の脆弱性調査に活用してもらうことでAIの有用性と安全性を検証する取り組みだ。研究者はClaudeを使って実際のコードベースやプロトコルを調査し、その成果をAnthropicにフィードバックする形をとる。
ワークフローは2段階で構成される。
- 「ガジェット」フェーズ: XMLパーサー、正規化処理、署名処理における危険な挙動の候補を洗い出す
- 「ファインディングス」フェーズ: 確認されたガジェットを組み合わせ、エンドツーエンドのPoC(概念実証)エクスプロイトを生成する
中間結果はJSONL形式で保存され、パイプラインが有望なリードを優先し、重複排除や無関係な問題の除外を自動化する仕組みになっている。コストのかかるエクスプロイト検証に入る前にノイズを削る設計は、実用的なAI支援調査の手法として参考になる。
SAMLとは何か——なぜ今も広く使われているのか
SAML(Security Assertion Markup Language)は、企業のシングルサインオン(SSO)を実現するために広く使われているXMLベースの認証・認可プロトコルだ。2005年に標準化されたにもかかわらず、エンタープライズ向けSaaSやクラウドサービスのほぼすべてが対応を継続しており、GoogleやMicrosoft、Salesforceなど主要サービスの企業向けSSOでも現役で使われている。
これほど普及している理由は、IDプロバイダー(IdP)とサービスプロバイダー(SP)を分離するアーキテクチャが、大規模な組織のID管理に適しているからだ。一方で、XMLデジタル署名の複雑な仕様に依存している点が、実装上の落とし穴を生み続けている。異なるライブラリがXMLのパース・正規化・署名検証を微妙に異なる方法で実装することで、攻撃者が悪用できる隙間が生まれやすい構造になっている。
発見された認証バイパスの中身
Chiangが報告した完全な認証バイパスは4件。
| プロジェクト | 内容 |
|---|---|
| Authentik | SAMLのNameIDへのコメントインジェクションでID値を切り詰め、アカウントなりすましが可能(CVE番号は元記事時点で未確認) |
| litesaml/lightsaml | SAML Responseのシグネチャラッピング攻撃(CVE番号は元記事時点で未確認) |
| OneUptime | SAML Responseのシグネチャラッピング脆弱性 |
| Java saml-client | 同上 |
シグネチャラッピング攻撃(Signature Wrapping Attack)とは、署名ライブラリが検証するXML要素と、アプリケーションコードが実際に処理するXML要素の間の曖昧さを突く手法だ。正当な署名を持つアサーションをそのままに、悪意のある別のアサーションをアプリケーションに処理させることができ、「任意ユーザーとしてログインできる」状態が生まれる。
Node.jsのxml-cryptoエコシステムでは、XML処理命令の扱い方の違いが正規化(canonicalization)の差異を生み、OneUptimeではSAMLのNameIDの解釈がダウンストリームのアプリケーションロジックで変わるメールアドレス切り詰め問題が確認された。
Authentikの件が示す「AI加速」の現実
Authentikで発見されたバグには付随して興味深い事実がある。同じ脆弱性を8人の独立した研究者が同時に報告したという。
これはAIツールが脆弱性探索を加速させている可能性を示す事例として、セキュリティコミュニティで注目されている。発見の速度が上がれば、オープンソースメンテナーへの報告負荷も比例して増す。Chiangはこの点を懸念として明示しており、「AIは研究者がプロトコルの前提を組織的・大規模にテストするのを助ける一方、すでに手薄なOSSメンテナーへの報告負担を増やす可能性がある」と結論づけている。
DoSリスクと見落とされがちな問題
認証バイパス以外にも、サービス妨害(DoS)に関連する問題が複数確認された。
- Go xmldsigライブラリ: 署名検証時の二次関数的なメモリ割り当て問題を修正
- JavaScript xmldom: 同様のメモリ割り当て問題があり、Nodeベースの複数のSAMLライブラリに影響
- PythonのSAMLパッケージ: libxmlsec1経由で危険なXML署名変換(XSLTベース)が可能で、未認証リクエストから極めて大きなドキュメントを生成できる
開発者へのメッセージ
記事の結論は明快だ。カスタムのSAML実装は作るな。
具体的に推奨される対策は以下の通り。
- 新しい堅牢な署名検証APIを採用する
- 厳格な要素選択を実装する
- 変換の許可リスト(allowlist)を使用する
- パーサーに制限を設ける
- メンテナンスが継続されているIDライブラリを使用する
SAMLはXML Digital Signatureの複雑さに起因する問題を長年抱えており、異なるコンポーネントがXMLのパースや正規化を微妙に異なる方法で行うことが攻撃面になり続けている。
詳細はClaude AI Finds Authentication Bypass Flaws in Multiple SAML Implementationsを参照していただきたい。