KNOWLEDGE - COLUMN ナレッジ - コラム

【エバンジェリスト・ボイス】狙われる!Apache Struts2 の脆弱性

サイバー・セキュリティ・ソリューション(CSS)部
エバンジェリスト 内山 史一

こんにちは。 CSS 部 エバンジェリストの内山です。  

過ごしやすい季節になってきたような気がします。
一頃の猛暑はもうすっかり影をひそめ、夜は虫の音が聞こえるようになりました。
いよいよ秋の訪れも近いですね。

2018 8 22 日、 Apache Software Foundation は、 Apache Struts2 の脆弱性 (CVE-2018-11776) に関する情報を公開しました。
本脆弱性の概念実証コードも公開されており、攻撃に悪用される危険性が高まっています。
ただし、本脆弱性が悪用される前提として幾つかの条件を満たす必要があるため、私の感覚になってしまいますが、 2017 3 月に公開された脆弱性 (CVE-2017-5638) と比較すると、緊急性は劣るかなと感じています。
とはいえ、概念実証コードが公開された脆弱性については、影響を受ける Apache Struts2 を利用している場合、ただちに影響を受ける状況でなくても修正済みソフトウェアの適用を推奨いたします

外部サイト: [Apache Struts 2 Documentation] Security Bulletins S2-057

外部サイト: [JPCERT] Apache Struts 2 の脆弱性 (S2-057) に関する注意喚起

Apache Struts2 においては、過去、複数のサービス運用妨害( DoS )や任意のコード実行可能な脆弱性が公開されており、その中には国内や海外で悪用が確認されたものもあります。
Apache Struts2 は、国内の多くの Web サイトで利用されている Web アプリケーションフレームワークです。
そのため、危険な脆弱性を放置した場合、情報漏えいや改ざん等の被害を受ける可能性のある対象システムが潜在的に多くなってしまうと言えるでしょう。
事実、近年では Apache Struts2 の脆弱性をついた攻撃により、国内および海外で情報漏えい事案が発生しております。
本エントリーではこの辺りをふまえ、以下ポイントに絞って話を進めたいと思います。

 ・過去事例を振り返る
 
 ・なぜ、狙われやすいのか

 ・更なる攻撃増加の可能性?

【過去事例を振り返る】
ここでは、過去に大きな被害を引き起こした Apache Struts2 の脆弱性に関する事例を振り返りたいと思います。
Figure-1 は、 2017 3 月~ 6 月にかけ、 Apache Struts2 の脆弱性を悪用され、不正アクセスの発生を公表したサイトごとに「漏えいした可能性のある情報」をまとめたものです。

  uchiyamaFigure-1_情報漏えいのあった可能性のあるサイト_872x479 Figure-1 :情報漏えいの可能性のあったサイト(公開情報をもとに作成)


一部サイトでは、 2017 3 6 ( 日本時間 ) に公開された脆弱性 (CVE-2017-5638) が悪用されたと公表しておりますが、時期的にその他のサイトについても当該脆弱性の悪用の可能性が高いと考えられます。
各サイトの公表情報の細かな内容は割愛しますが、驚くべきは、脆弱性 (CVE-2017-5638) が公表されてから攻撃発生(被害にあう)までのリードタイムが短い、この 1 点につきると思います。

一般的には危険度の高い脆弱性情報が公開された場合、「速やかに最新バージョンへアップデートしましょう」という対策の案内になるのですが、こと「 Apache Struts2 」に関しては、そのスピード感では間に合わない可能性が起こりうる気がします。
脆弱性の危険度と攻撃コードの公開状況によっては、まずテストサイトを最新バージョンにアップデートし、動作確認を行ったうえで本番サイトのアップデートを行う、といった堅確なプロセスを辿ることは必ずしも正解ではないかもしれません。
2017 3 月より続いた、国内サイトの情報漏えい事案を契機に、 Apache Struts2 を利用する公開 Web サーバーの運用保守を見直された企業も多いのではないでしょうか。

外部サイト: [JPCERT] Apache Struts 2 の脆弱性 (S2-045) に関する注意喚起

外部サイト: [IPA] 更新: Apache Struts2 の脆弱性対策について (CVE-2017-5638)(S2-045)(S2-046)


【なぜ、狙われやすいのか】
Apache Struts2 の脆弱性は、なぜ攻撃者に狙われやすいのでしょうか。
リモートでコード実行可能な脆弱性が多い、脆弱性の有無を調査しやすい等、攻撃者が Apache Struts2 の脆弱性を好む理由は複数あるのだろうと思います。
攻撃者目線で考えると、リモートから攻撃が実行でき、かつ攻撃条件が複雑でない方が好まれます。
Apache Struts2 は、内部処理に Java に似たコードをコンパイルなしで実行できる OGNL(Object Graph Navigation Library) というライブラリを利用しています。
このため、 Apache Struts2 の処理に何らかの不備がある場合、攻撃者が送りつけた HTTP リクエストに埋め込まれた悪意のあるコードが、 OGNL によって実行されてしまいます。
つまり、攻撃者が外部から任意のコードを実行することが可能なわけです。

ちなみに前項で挙げた脆弱性 (CVE-2018-5638) はこの OGNL を利用したものですが、 Figure-2 のとおり、未だにこの脆弱性を狙った攻撃通信 166 件がハニーポットに着弾していることからも、 Apache Struts2 の脆弱性が攻撃者に狙われやすいという一旦を垣間見ることができるのではないでしょうか。
uchiyamaFigure-2_CVE-2018-5638_1456x360

  Figure-2 CVE-2018-5638 を狙った攻撃通信の検知状況(観測期間: 2018 6 1 日~ 8 31 日)

【更なる攻撃増加の可能性?】
ここまで、 Apache Struts2 の脆弱性(特にリモートで任意のコード実行可能なもの / RCE Remote Code Execution )がいかに攻撃者に狙われやすいかを見てきました。
最後に、セキュリティベンダーの Palo Alto Networks より、 2018 9 9 ( 米国時間 ) に公開された情報をお知らせしたいと思います。
この情報によると、新たな「 Mirai 」の亜種には 16 種類の脆弱性をターゲットとするエクスプロイトが組み込まれ、その中に Apache Struts2 の脆弱性 (CVE-2018-5638) が含まれていることが分かりました。
同社によると、 Apache Struts2 の脆弱性を標的とした「 Mirai 」の亜種が確認されたのは今回が初めてとしています。

Mirai 」の亜種は、ブロードバンドルータや Web カメラ等の IoT デバイスに感染するマルウェアです。
Mirai 」の亜種に感染したデバイスは、ボットネットに組み込まれ、攻撃者にリモートから命令を受け DDoS 攻撃等に悪用されるわけですが、この情報をふまえると、 Apache Struts2 の脆弱性を狙う攻撃通信が増加するのでしょうか?
今後も「 Mirai 」の亜種に代表される IoT ボットネットの動向は見逃せませんね。

外部サイト: [Palo Alto Networks] Multi-exploit IoT/Linux Botnets Mirai and Gafgyt Target Apache Struts, SonicWall (英語)


外部サイト: [Security NEXT] IoT ボット、感染対象を「 Apache Struts 2 」やセキュリティ製品にも拡大


今後も脅威動向を注視し、皆さまのセキュリティ対策強化にお役に立てる情報を提供してまいります。
それでは、次のエントリーでお会いしましょう!

当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エバンジェリストによるコラムやセミナー情報、
IDグループからのお知らせなどをメルマガでお届けしています。

メルマガ登録ボタン

内山 史一

株式会社インフォメーション・ディベロプメント 先端技術部 エバンジェリスト

この執筆者の記事一覧

関連するナレッジ・コラム

ITエンジニアの現地作業 ミスを減らす!作業本番のポイントとは

NTTのIP網移行と、通信の未来とは

ITエンジニアの現地作業 ミスを減らす!事前準備のポイントとは