ラックのサイバー・グリッド研究所は4月24日、Apache Struts 2に存在するとされた「リモートの第三者による任意のコード実行を許す脆弱性(CVE-2014-0094)」と同様の問題がApache Struts 1においても存在していることを確認したと発表した。

Apache Strutsは、Apacheソフトウェア財団のApache Strutsプロジェクトで開発とサポートがおこなわれているオープンソースのJava Webアプリケーションフレームワーク。

現在は、「Struts 2」がサポートされているが、2008年10月4日に最終版が公開され、2013年4月5日でサポート終了となった「Struts 1」においても、同様の脆弱性が存在する。しかし、Struts 1はサポート終了しており、当該プロジェクトからは公式なアナウンスは出ておらず、今後も正規の更新プログラム提供もされないものと考えられる。

一方、Struts 1が稼働しているWebサイトは、官公庁や公益法人、銀行などを含めて国内に数多く存在しており、提供ベンダーからの個別サポートなど個々で特別な対応を行ってない限り攻撃に関して脆弱な状態のままと推測という。また、昨年発見されたStruts 2の脆弱性の多くが攻撃に悪用された実績からして、攻撃は必ず発生する前提で対応する必要があると考えられる。

攻撃手法として、Apache Strutsには、Javaクラスローダーを外部から操作可能な脆弱性があり、同脆弱性の悪用を目的とした特別なリクエストを受け取った場合、任意のJavaコードが実行され、ファイルシステムの破壊や、バックドアの設置など様々な被害を受ける恐れがある。

攻撃の様子

文字列を付加

パスワードファイルが表示されてしまう

推奨する対策としては、提供ベンダーが個別のサポートを実施していることもあるので、その場合は当該ベンダーの指示に従うよう呼びかけている。サポートを行なっていない場合には、影響緩和策として、不正な文字列がパラメータに含まれる場合(正規表現:「(^|\W)[cC]lass\W」に合致するパラメータ名が含まれる場合など)に、リクエストを拒否するフィルタ機能を実装する「WAF」や「IPS」などネットワーク側で当該攻撃を遮断するといった対策が有効となる。

また、Struts 2の場合、CVE-2014-0094では2.13.16.1で修正されているとされているが、修正が不十分であることが報告されており、報告されている暫定対応を行うか、今後リリースされるバージョンを適用する。