Semmleのセキュリティ研究者であるMan Yue Moは、一般的なApache Struts Webアプリケーションフレームワークにリモートコード実行を可能にする重要な脆弱性問題を公開し、リモート攻撃者がサーバー上で悪質なコードを実行できる可能性があることを指摘しています。
Apache Struts RCEのセキュリティ欠陥問題により、Webサーバーを占有できるapache strutsの脆弱性をついたハッキングが可能に!
Apache Strutsは、Javaプログラミング言語でWebアプリケーションを開発するためのオープンソースフレームワークで、Vodafone、Lockheed Martin、Virgin Atlantic、IRSなどFortune 100企業の65%を占める、企業で広く使用されています。
この脆弱性(CVE-2018-11776)は、Apache Strutsのコアにあり、特定の構成下では、Strutsフレームワークのコアへ、信頼できない入力をおこなった場合、検証が不十分なために発生してしまうといいます。
新たに発見されたApache Strutsエクスプロイトは、Webサーバー上の特別な細工をしたURLを訪問するだけで起動され、攻撃者は悪質なコードを実行し、最終的にはアプリを実行する対象サーバーを完全に制御できるといいます。
Struts2脆弱性問題の影響を確認する方法
Apache Strutsでサポートされているバージョン(Struts 2.3からStruts 2.3.34、Struts 2.5からStruts 2.5.16まで)やサポートされていないApache Strutsバージョンを使用するアプリケーションは、追加のプラグインが有効になっていなくてもこの脆弱性に対して潜在的に脆弱です。
この脆弱性はStrutsの一般的に使用されるエンドポイントに影響を及ぼします。Strutsは公開される可能性が高く、悪意のあるハッカーに攻撃経路を広げます。
Apache Strutsの実装は、次の条件を満たす場合、報告されているRCEの欠陥に基づいて脆弱な状態です。
alwaysSelectFullNamespaceフラグは、Struts設定ではtrueに設定されている場合。
Struts設定ファイルには、オプションのnamespace属性を指定しないか、ワイルドカードネームスペースを指定する “action”タグまたは “url”タグが含まれている場合。
研究者によれば、アプリケーションが現在脆弱ではないとしても、「Struts設定ファイルの意図しない変更により、将来アプリケーションが脆弱になる可能性があるといいます。
信用格付け機関のEquifaxは、公開されたApache Strutsの脆弱性(CVE-2017-5638)にパッチを当てていなかったため、1億4,700万人の消費者の個人情報が流出していたといいます。
Equifaxの違反は会社に6億ドル以上の損失をもたらしました。
「Strutsは、公開されているアクセス可能な顧客対応のWebサイトに使用されており、脆弱なシステムは容易に識別でき、この欠陥は容易に悪用されます」と、SemmleのQLエンジニアリングの共同設立者で副社長のPavel Avgustinov氏はコメントしています。
ハッカーは数分で方法を見つけることができ、データを流出させたり、侵害されたシステムからのさらなる攻撃を仕掛けることができます。
重大なApache Strutsバグのためにリリースされたパッチ
Apache Strutsは、Strutsバージョン2.3.35および2.5.17のリリースでこの脆弱性を修正しました。 Apache Strutsを使用する組織や開発者は、できるだけ早くStrutsコンポーネントをアップグレードするよう勧告されています。
以前Apache Strutsの致命的な脆弱性が明らかになったことで、PoCの悪用方法が1日以内に公開され、脆弱性をついた攻撃が発生、重要なインフラストラクチャや顧客のデータが危険にさらされました。
ユーザーと管理者は、Apache Strutsコンポーネントを最新のバージョンにアップグレードすることを強く推奨します。
Semmle Security Research TeamがApache Strutsで重大なRCEの欠陥を報告したのは今回が初めてのことではありません。 過去の問題から1年足らずで、Apache Strutsに同様のリモートコード実行脆弱性(CVE-2017-9805)を公開しました。
セキュリティ研究者は、Apache Struts Webアプリケーションフレームワークで新たに発見されたリモートコード実行(RCE)脆弱性(CVE-2018-11776)に対するPoCの悪用手口を本日公開しています。