DoS攻撃に利用可能な「XML爆弾」の例を紹介している。
Dismantling an XML-Bomb « Didier Stevens
このような

データでDTDのENTITYの定義でe1はe0を2つつなげているので文字数が倍に増えるようにする。
同じようにe2, e3...と定義していくと、31個のENTITYを持つデータは1kB以内で作れるが、e30をXMLバーサーが解釈した時点で1GB (2^30)になる。 どんどん大きくできるので、リソース不足によるDoS攻撃に使える。
回避方法としては、DTDを解釈しないようにするか、アプリケーション・ファイアウォールを使う。
...とはいってもこういった攻撃はDTDに限ったことではないので、パッチを当てる、アプリケーション・ファイアウォールを使う、という基本の実践が必要ということだろうなあ。


Leave a comment