アーカイブ
Apache Struts 2の脆弱性が、サポート終了のApache Struts 1にも影響
~国内でいまだ大量稼働するStruts 1利用企業に、直ちに緩和策を~
2014年4月24日 | 注意喚起
更新情報
- よく寄せられる質問へのリンクを追加しました。
- お客様からお問い合わせをいただきましたので、弊社で検証した環境情報を追記しました。本文中「(2014/04/25追記)」とある部分をご覧ください。
- 推奨する対策に含まれる正規表現の記載を修正しました。本文中「(2014/04/25修正)」とある部分をご覧ください。
- 今回の脆弱性を悪用した攻撃を検知しました。
- よく寄せられる質問を追加しました。
- Struts 2の脆弱性を修正したバージョン2.3.16.2がリリースされたことを追記しました。
- 新たに割り当てられた共通脆弱性識別子CVEを追記しました。
注意喚起情報は、ラックメールマガジン(臨時号)にて、
いち早く皆様にお知らせしています
配信をご希望の方はこちらからご登録いただけます。
株式会社ラック サイバー・グリッド研究所は、Apache Struts 2 に存在するとされた、リモートの第三者による任意のコード実行を許す脆弱性(CVE-2014-0094)と同様の問題がApache Struts 1 においても存在していることを確認しました。(2014/05/01追記)この問題には、4月30日付けで、共通脆弱性識別子CVE-2014-0114が割り当てられました。
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コードが実行され、ファイルシステムの破壊や、バックドアの設置など様々な被害を受ける恐れがあります。
影響を受ける可能性のあるバージョン
- Apache Struts 1.(今回当研究所が注意喚起)
- ※当研究所で実際に脆弱性を検証したバージョンは1.1、1.2.9、1.3.10(Apache Struts 1シリーズ最終版)ですが、他のバージョンも影響を受けると考えられます。
- ※(2014/04/25追記)当研究所で検証した具体的な環境は以下のとおりです。なお、これ以外の環境に脆弱性がないわけではありません。
Tomcat 7.0.53 | Tomcat 8.0.5 | |
---|---|---|
Struts 1.1 | 脆弱性あり(u) | 脆弱性あり(w) |
Struts 1.2.9 | 脆弱性あり(u) | 脆弱性あり(u,w) |
Struts 1.3.10 | 脆弱性あり(u) | 脆弱性あり(u,w) |
(u)...Unix(CentOS 6.5)、(w)...Windows 7 Pro SP1
脆弱性の検証内容はアプリケーションサーバーにより異なり、Tomcat 7.0.53では以降のアプリケーションの稼働を阻害できること、Tomcat 8.0.5では任意のJavaコードの実行が可能であることをもって脆弱性ありとしました。
これはあくまでも確認できた内容であり、実際に攻撃を受けた際の被害はこれに留まらないおそれがあります。
- Apache Struts 2.0.0~2.3.16(CVE-2014-0094で注意喚起済み)
- ※CVE-2014-0094で修正済みとされる2.3.16.1においても、修正が不十分であり、攻撃が可能な状況です(CVE-2014-0112)。詳細は、以下の「推奨する対策」をご確認ください。
当社での攻撃再現
Struts1で動作するテスト環境のアプリケーションに対して攻撃し、パスワードファイルを窃取する様子
攻撃の様子:
パスワードファイルが表示されている様子:
推奨する対策
《Struts 1の場合》
サポートが終了しているため、公式アップデートは提供されないと思われます。しかし、提供ベンダーが個別のサポートを実施していることもありますので、その場合は当該ベンダーの指示に従ってください。そうでない場合は、次のような影響緩和策が有効です。
- (2014/04/25修正)不正な文字列がパラメータに含まれる場合(正規表現:「(^|\W)[cC]lass\W」に合致するパラメータ名が含まれる場合等)にリクエストを拒否するフィルタ機能を実装する。
なお、Apache Strutsプロジェクトより公開された情報(http://struts.apache.org/announce.html#a20140424)はStruts2向けの回避策ですが、こちらに掲載されている正規表現も参考になります。 - WAF、IPSなどネットワーク側で当該攻撃を遮断する。
《Struts 2の場合》
CVE-2014-0094では2.3.16.1で修正されているとされていますが、修正が不十分であることが報告されています※。
(2014/05/01追記)CVE-2014-0094、CVE-2014-0112及びCVE-2014-0113の脆弱性を修正したバージョン2.3.16.2がリリースされましたので、これを適用してください。
- ※http://www.mbsd.jp/news20140422.html
【2014/04/25 18:00追記】攻撃を検知しました
当社のセキュリティ監視センター「JSOC」において、本日に入ってから今回の脆弱性を悪用した攻撃を6件検知しました。
これらの攻撃は、日本国外の2つのIPアドレスから行われました。
※JSOCのお客様へ
- JSOCでは、攻撃を検知したお客様へは、別途ご連絡をしておりますので、ご安心ください。
- JSOCから連絡がないお客様は、JSOC の Web ポータルよりインフォメーションの情報を確認いただきますようお願いいたします。
関連情報
- Apache Struts Security Bulletins S2-020(http://struts.apache.org/release/2.3.x/docs/s2-020.html)
- Common Vulnerabilities Exposures (CVE) CVE-2014-0094(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0094)
- Struts up to 2.3.16.1: Zero-Day Exploit Mitigation(http://struts.apache.org/announce.html#a20140424)
- Common Vulnerabilities Exposures (CVE) CVE-2014-0112(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0112)
- Common Vulnerabilities Exposures (CVE) CVE-2014-0113(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0113)
- Common Vulnerabilities Exposures (CVE) CVE-2014-0114(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0114")
当社の注意喚起情報に関するよく寄せられる質問は、こちらをご参照ください。
注意喚起情報は、ラックメールマガジン(臨時号)にて、
いち早く皆様にお知らせしています
配信をご希望の方はこちらからご登録いただけます。