2024年9月30日月曜日

Ruby-SAMLの脆弱性(XML署名ラッピング攻撃)

こんにちは、富士榮です。

XML署名ラッピングによるRuby-SAMLの脆弱性が報告されていますね。


CVE-2024-45409としても登録されています。

内容としては割とオーソドックスなXML署名の実装の問題っぽいですね。

XML署名の特徴としてJWSとは違いドキュメント全体ではなく要素を指定して署名をおこなうことができる点、署名された値そのものも当該XMLの内部に埋め込まれることが挙げられます。
今回は部分的な署名を行うことができるという点について悪用された感じですね。上記の例で言うと、真ん中にあるalice@customer.comの値を含むid=dead[....]beefの部分に対して署名値が生成される一方で、攻撃者が偽の値をXML内に埋め込んだ同じid=dead[...]beefの部分は署名されない、ということが起きてしまうわけです。

この攻撃は2012年にJPCERTが以下のペーパーを出していたり、と過去もしばしば起きている話なので、実装する際は先人の知恵に頼りながらやっていけるといいでしょう。
参考)JPCERTの資料



0 件のコメント: