Apache Struts 2に深刻な脆弱性、国内でも攻撃を観測場合によってはリクエストの制限などの回避策を推奨

Apache Software Foundationは米国時間の2013年7月16日、深刻な脆弱性を修正するアップデート「Struts 2.3.15.1」を公開した。

» 2013年07月18日 20時58分 公開
[高橋睦美,@IT]

 Apache Software Foundationは米国時間の2013年7月16日、Webアプリケーションフレームワーク「Struts 2」の新バージョン「Struts 2.3.15.1」を公開した。深刻な脆弱性を修正するもので、同Foundationは早急なアップデートを推奨している。

 Struts 2は、JavaによるWebアプリケーション開発に広く使われているフレームワークで、国内でも多くのサービスが採用している。

 今回修正された脆弱性(S2-016)は、Struts 2.0.0から2.3.15までに存在する。

 DefaultActionMapperの処理に問題があり、「action:」や「redirect:」「redirectAction:」といったプレフィックスを含むリクエストを受け取ると任意のJavaコードが実行され、リモートからコードを実行される可能性があるという、非常に危険度の高い脆弱性だ。しかも、この脆弱性を突く実証コード(Proof of concept)もともに公開されており、Apache Software Foundationは深刻度を「Highly Critical」としている。

 セキュリティ企業のラックによると、Struts 2のセキュリティアップデートが公開された直後に当たる日本時間の7月17日から、Apache Struts2の脆弱性を狙う攻撃が急増している。それまでは平均20件前後のペースだったが、7月17日には80件以上に増加しており、被害報告も寄せられているという。同社はこの事態を受け、注意喚起情報を公開した。

ラックが観測したApache Struts2の脆弱性を悪用した攻撃件数の推移(同社の注意喚起より)

 根本的な対策は、脆弱性を修正したバージョン2.3.15.1にアップデートすることだ。しかし、Webアプリケーションの互換性検証などに時間を要する場合には、

  • Webアプリケーションに対するリクエストで、あらかじめ許可した文字列や値のみを受け取るように制限する
  • 「action:」や「redirect:」「redirectAction:」といったプレフィックスを含んだリクエストを受け取る必要がない場合は、それを制限する
  • Webアプリケーションで受け取るリクエストの長さを400バイト未満に制限する(400バイト前後の長さの攻撃が多く観測されているため)

といった回避策を取るよう推奨している。また、IPS製品の導入も有効という。

 ラックは、公開アプリケーションでStruts 2を利用している場合、外部からの攻撃の影響を受ける可能性が高いと指摘。手元のWebサーバのログに「action:」「redirect:」や「redirectAction:」といった文字列が含まれていないかどうかをチェックし、攻撃を受けていないかどうか確認するよう推奨している。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。