ニュース

Apache Struts 2の脆弱性への攻撃が急増、ラックやJPCERT/CCが注意喚起

リモートから任意のコードを実行可能、バックドアの設置例も

 NTTセキュリティ・ジャパン株式会社は、7日に開発元のApache Software Foundationが情報を公開した「Apache Struts 2」の脆弱性を悪用した攻撃について、検知件数の集計をツイートし、注意を喚起している。

 これによれば、攻撃は3月7日17時ごろから始まり、20時にピークを迎えた後、翌8日23時ごろに再びピークを迎えている。その後9日19時過ぎまで攻撃が継続しているという。

 脆弱性は、multipart/form-data 形式のリクエストを処理する「Jakarta Multipart parser」の処理に起因するもので、パケットに細工をしたユーザーからリモートで任意のコートが実行される可能性があり、すでに実証コードも公開されている。

 影響を受けるバージョンは「2.3.5~2.3.31」と「2.5~2.5.10」。Jakarta Multipart parserはデフォルトで有効となっており、この脆弱性の影響を受ける環境は多い。Apache Software Foundationでは、すでに脆弱性を修正したバージョン「2.3.32」および「2.5.10.1」を配布しており、早急な更新を推奨している。





 同じく注意喚起を行っている一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)では、Apache Tomcat上に配置したStrutsアプリケーションに対し、実証コードを用いて細工を施したHTTPリクエストを送信することで、リモートから任意のコードが実行されたとの検証結果を公開している。なお、サーブレットフィルターを用いてリクエストの前処理を行うことで、脆弱性の影響を回避できるとのことだ。

 株式会社ラックが運営するJSOC(Japan Security Operation Center)でも、3月7日ごろより、脆弱性を悪用した攻撃が増加傾向にあることを確認。さらに3月9日頃からは、ウェブサイトにバックドアを設置するなど、重大な被害に繋がる恐れのある攻撃を検知しているという。

 SSL/TLSで暗号化された通信経路で攻撃が行われた事例も確認しており、こうした場合は、SSLアクセラレーターを設置するなど復号が可能な環境でなければ、ネットワーク上で脅威に対応するIDS/IPSでは、検知は困難だという。また、脆弱性を悪用する攻撃コードが一般的なリクエストURLではなく、Content-TypeというHTTPヘッダーに挿入されるため、ウェブサーバーのログには攻撃の証跡が記録されない可能性が高いとのこと。さらに、一見存在しないファイルに対する攻撃でも、リクエストURLに指定されたパスで最新版ではないApache Struts 2が稼働していれば、攻撃の影響を受けることを確認しているとのことだ。

 このため、脆弱性の影響を受ける可能性が疑われるシステムは、安全性の確認が取れるまで一時的にネットワークから隔離を行うなども検討すべきとしている。

【追記 2017年3月17日 18:50】
 記事初出時、JPCERT/CCが検証した結果として、使用するパーサーを「Jakarta Stream Multi Part Request」に変更する回避策を挙げていましたが、この方法でも脆弱性の影響を受けることが同じくJPCERT/CCの検証で確認されたため、該当する記述を削除しました(2017年3月17日付記事『Apache Struts2の脆弱性、「Jakarta Stream Multi Part Request」でも影響』参照)。