【注意喚起】Apache Struts2の脆弱性発覚!即時の対応を!

2017年9月12日(火) ニュース

9月6日、IPA(独立行政法人 情報処理推進機構) より、Apache Struts2に関する脆弱性報告がありました。
https://www.ipa.go.jp/security/ciadr/vul/20170906-struts.html
今回はApache Struts2の脆弱性対策について解説していきます!

Apache Struts2はフレームワークソフトウェアの一つ

まずはStrutsが何なのかを解説して参りましょう。
Strutsとはクレイグ・マクラナハンが作成したソフトウェアであり、2000年にApacheソフトウェア財団に寄付されたJavaのWebフレームワークソフトウェアです。

Webアプリケーションを開発する際に、使用するアーキテクチャやクラスをそれぞれ連携させる必要があります。その連携する方法や仕組みはどのWebアプリケーションであろうがほとんど共通しており、アプリケーションごとに新しく構築し直すことは非常に手間のかかる作業です。
その手間をなくすために生まれたのがフレームワークです。フレームワークはWebアプリケーション開発に必要なアーキテクチャを内包した開発キットのようなものだとイメージしてください。
こういったフレームワークの登場によって、開発効率が非常に良くなりました。
フレームワークにもオープンソース化されたものや有料で販売されているものがあります。その中でもApache Strutsはオープンソースで配布されているフレームワークです。
Apache Struts公開後は目まぐるしく普及し、Webフレームワークのデファクトスタンダードにまでなりました。
広く普及したApache Strutsですが2008年にリリースを終了し、新しくApache Struts2が発表されています。Struts2はStrutsでの改善点を活かして全く別のフレームワークとして開発されています。

Apache Struts2の脆弱性とは?

Apache Struts2の脆弱性は度々発見されており、今年3月にもApache Struts2に関する脆弱性の報告がありました。
前回の脆弱性とは内容が異なるので、未対応の場合は脆弱性対策を行う必要があります。
前回の脆弱性対象バージョンは2.12〜2.3.33、2.5〜2.5.12です。

今回は、Apache Struts2のRESTとよばれるプラグインを用いている場合のXMLリクエストの処理に脆弱性があるとのことです。攻撃者はこの脆弱性を利用し、悪意ある細工をしたXMLリクエストをApache Struts2が動作するサーバに送信することにより、そのサーバ上で任意のコードが実行可能となります。

<影響を受けるバージョン>

Struts 2.1.2 から Struts 2.3.33, Struts 2.5 から Struts 2.5.12
IPA では Apache Struts 2.3.33, 2.5.12 にて攻撃コードが動作することを確認しています。


ちなみに、今年3月の脆弱性は被害としては同様で、サーバ上で任意のコードが実行可能となるものですが、起因となったのはファイルアップロード処理の脆弱性でした。

任意のコードが実行可能となるということは、攻撃者が意のままにサーバを操作することが可能になることを意味します。最終的な被害としては、直接的にはサーバ上から閲覧可能な重要なデータの流出が考えられます。
また、Webサーバの設定が変更されることにより、別の攻撃のための踏み台として利用されるというようなことが考えられます。

対策方法

Apache Struts2提供元であるApache Software Foundationから、2.5系列については本脆弱性を修正したバージョン2.5.13が公開されています。
2.3系列については、2.5.13リリース時点でバージョンアップが公開されていませんでしたが、現在は2.3.34が公開されています。
http://struts.apache.org/download.cgi#struts25101
対策としては、このバージョンを適用することです。
万が一apace Struts2を利用している場合は即時のアップデートを行ってくださいね。

このように、公開されているフレームワークを利用することによるメリットは大きいのですが、今回のような脆弱性が発見されると、広く利用されており、かつそれが知られやすくなる結果、攻撃されやすくなるという点もあります。
したがって、インターネットに公開するWebサイトを運営する場合は、WAFなどセキュリティ対策も行いましょう!

Writer:SecurityTIMES編集部