SAML認証はほぼ修復不能なほど破られている

Black Hat Europe 2025:複数のハッキング手法により、研究者は有効なSAMLドキュメントをアプリケーションに提示しつつ、XML署名検証をバイパスすることが可能になる。

研究者らは、SAMLベースの認証を破るための新たな手法を発見し、古くなりつつも依然として広く利用されているこの認証プロトコルが提供するセキュリティ上の保証を、さらに損なう結果となった。

SAML(Security Assertion Markup Language)は、20年以上にわたりエンタープライズ向けシングルサインオン(SSO)技術の中核を担ってきた。

水曜日に開催されたBlack Hat Europeカンファレンスでの講演において、PortSwiggerのセキュリティリサーチャーであるZak Fedotkin氏は、XML処理の微妙な欠陥を悪用してプロトコルを破る新たな手法を実演した。

Fedotkin氏が開発したハックにより、RubyおよびPHPのSAMLエコシステムにおいて完全な認証バイパスを達成する方法が示された。

複数のセキュリティ上の弱点が関与しており、これらが属性汚染(attribute pollution)、名前空間の混乱(namespace confusion)、さらに新種のvoid canonicalization攻撃などの開発につながった。詳細はPortSwiggerのブログ記事で説明されている。

この講演は、SAMLのセキュリティ上の欠点に関する以前の研究を基盤としており、脆弱なGitLab Enterprise Edition 17.8.4インスタンスに対する攻撃デモも含まれていた。

複数のパーサーレベルの不整合を悪用することで、他の複数のSAML実装に対しても、信頼性が高くステルス性のあるエクスプロイトを開発する道が開かれた。

攻撃が可能だったのは、複数のハッキング手法により、攻撃者が有効なSAMLドキュメントをアプリケーションに提示しながら、XML署名検証を完全にバイパスできてしまうためである。

Ruby-SAMLのエクスプロイトと過去の研究を組み合わせることで、PortSwiggerのチームはメールアクセス制御をバイパスし、偽造されたSAML Responseを作成して新規アカウントを作成し、最終的には名前がまだ明かされていないSaaSプラットフォーム上で認証を回避することに成功した。

Fedotkin氏は、こうした脆弱性を他の実環境のSAMLデプロイメントで特定・悪用するためのオープンソースツールキットを公開している。

「基盤からの作り直し」なしでは、パッチ適用だけでは不十分

PortSwiggerは、Ruby-SAML 1.12.4の脆弱性の詳細を4月にメンテナーへ共有した。対応するCVE-2025-66568およびCVE-2025-66567の脆弱性は12月初旬に修正された。

セキュリティチームは、最新のセキュリティパッチやバージョンアップを適用することで、SAMLおよびXMLセキュリティライブラリを最新の状態に保つ必要があるが、それだけでは不十分な可能性がある。OAuthは、SAMLよりも保守が行き届き、固有のセキュリティ上の弱点が少ない、より新しいSSO技術を提供している。しかし、SAMLに依存するサービスプロバイダーの基盤が巨大かつ長年にわたり構築されてきたことから、単純に切り替えるというのは多くの組織にとって現実的な解決策ではないと、Fedotkin氏はCSOに語った。

研究者は、包括的かつ持続的な対策には、既存のSAMLライブラリの大幅な再構築が必要だと述べている。

「このような変更は、互換性の破壊やリグレッションを引き起こす可能性がありますが、XMLパース、署名検証、カノニカライゼーションロジックの堅牢性を確保するためには不可欠です」とFedotkin氏は結論づけた。「この基盤的な作り直しが行われない限り、SAML認証は、ほぼ20年にわたり存在し続けているのと同じ種類の攻撃に対して脆弱なままでしょう。」

翻訳元: https://www.csoonline.com/article/4105030/saml-authentication-broken-almost-beyond-repair.html

ソース: csoonline.com