Struts 2の脆弱性を突いたサイバー攻撃が頻発! その理由は? 企業がとるべき対策は?

Oracle Java & Developers編集部
2013-10-09 12:00:00
  • このエントリーをはてなブックマークに追加

このところ、Strutsの脆弱性を突いたサイバー攻撃が頻発している。なぜStrutsが狙われるのか、とるべき対応は? NTTデータ先端技術でセキュリティ診断テストのスペシャリストとして活動する辻伸弘氏に聞いた。

狙われるStruts 2利用サイト。顧客情報が漏洩した企業も

 2013年に入り、Webアプリケーション・フレームワーク「Apache Struts 2」の脆弱性を突いたサイバー攻撃による被害報告が相次いでいる。5月には国内ECサイトが不正アクセスを受け、顧客のクレジットカード情報が多数漏洩。開発元のアパッチ・ソフトウェア・ファウンデーションは脆弱性を修正したセキュリティ・アップデートのリリースに追われた。

 ところが、7月17日(日本時間)に配布されたセキュリティ・アップデートに関しては、リリース直後から、まさにその脆弱性を突いた攻撃が急増していることが判明。19日にはJPCERT/CCが脆弱性への対応について注意喚起を行うに至った。Struts 2を巡り攻撃者に翻弄されていると言ってもよいほどの状況である。

 ご存じのとおり、Struts 2は2007年にリリースされたWebアプリケーション・フレームワークだ。JavaによるWebアプリケーション開発のデファクト・スタンダードであったStruts 1の後継として、日本国内では広く利用されてきた。

 それでは、ここにきてStruts 2の脆弱性を突く攻撃が急増した背景には何があるのだろうか。また、ユーザー企業や開発会社は、どのような対策をとるべきなのか。NTTデータ先端技術 セキュリティ事業部の辻伸弘氏に聞いた。

Apache、Tomcatが枯れていく中で、攻撃者のターゲットはStruts 2に移った

NTTデータ先端技術 セキュリティ事業部の辻伸弘氏
NTTデータ先端技術 セキュリティ事業部の辻伸弘氏

 辻氏は、セキュリティ診断テストのスペシャリストだ。企業から依頼を受け、情報システムにセキュリティ面の問題がないかどうか、診断ツール(擬似的な攻撃ツール)と人手を組み合わせて脆弱性の実証を試みる、いわゆるペネトレーション・テスト(侵入テスト)を行うペンテスターである。ブログやメディアへの寄稿、講演などを通して情報セキュリティの動向や対策などに関する情報を活発に発信している、情報セキュリティ業界のエバンジェリスト的存在でもある。

 辻氏によれば、セキュリティ診断テストには、大別して「Webアプリケーションに含まれる脆弱性を診断するテスト」と「ネットワーク上の脆弱性を診断するテスト」の2つがある。辻氏の担当分野は、後者のネットワーク脆弱性に関する診断だ。

 また、テスト・サービスの内容は、ツールによる診断結果をレポートするものから、診断結果を基に対策を提案するコンサルティングまで広範にわたる。辻氏は対策の提案まで含めたコンサルティング業務を主に担当しており、Struts 2を利用し、実際に被害に遭った企業へのヒアリングも実施している。

 辻氏は今年に入り、Struts 2の脆弱性に関して次の2つの検証レポートを上梓している。

 これらのレポートでも報告されているStruts 2の脆弱性について、辻氏は次のように説明する。

 「私たちが検証したのは、『任意のJavaコードが実行できる』という脆弱性です。この脆弱性の原因は、入力値の処理において、値をObject Graph Navigation Language(OGNL)式として評価していることにあります。攻撃者は、この脆弱性を悪用して、ターゲットとなるシステム(PC)の制御を誘導するプログラムをダウンロードさせ、特定サーバのポートとの間でコネクションを確立させます。この攻撃が成功すると、リモートからターゲット・システムを操作することが可能になります」

 つまり、攻撃者は自分のPCから、ターゲットとなるシステムのOSコマンドを自由に実行できてしまうというわけだ。また、Struts 2が狙われることについては、まだ"枯れていない"ことが背景にあると推測している。

 「Struts 2は最初のリリースからすでに6年が経っていますが、Struts 2以前に誕生したWebサーバのApacheやアプリケーション・サーバのTomcatといったミドルウェアと比較すると、まだ枯れていないという印象があります。ApacheやTomcatが時間をかけて少しずつ枯れてきた中で、攻撃者のターゲットは、まだソフトウェア的にも脆弱性的にも十分に枯れていないStrutsに移ってきたのだと見ています」(辻氏)

攻撃者はactionで検索して攻撃対象をリスト化。攻撃はツールを数クリックして完了

 また辻氏は、攻撃が増加した背景として「攻撃しやすい環境」にあることを指摘する。Struts 2では、サーブレット(アクション・クラス)を呼び出す際、クラス名に「.action」という拡張子を付加する傾向がある。攻撃者は、この決まり事を手掛かりにして、Struts 2を利用したサイトを日々、検索しているのだという。

 「Google検索でinurlやfiletypeといった検索オプションを使うと、日本国内でStruts 2を利用しているWebサイトを簡単に探すことができます。攻撃者は普段からこうした検索を行ってStruts 2を使っているWebサイトのリストを作成し、脆弱性が公になった時点で即座に攻撃を仕掛けられるように準備していると考えられます。その他のソフトウェアについても、調査方法は異なるものの同様に普段から情報収集を行っているでしょう。もし私が攻撃者だったとしてもそうしますから」(辻氏)

 実際、ハクティビスト※1の一面を持つことで知られるアノニマスは、普段からそうした攻撃対象サイトのリストを作成し、関係者間で共有しているという。近年のサイバー攻撃は、愉快犯や政治犯というよりは、金銭窃取を目的にした組織犯罪として行われることが多く、そうした犯行グループは"日々の調査"を当然のように行っていると考えられる。

※1 社会的/政治的な行為としてハッキング活動を行う者または集団。

 加えて、「攻撃しやすい環境」になった背景には、攻撃を行うためのツールやコードが誰でも簡単に使えるようになったこともあるようだ。

 「ネット上に出回っている攻撃ツールやコードを使えば、わずか5つ程度の手順で、攻撃対象のPCの制御を攻撃者の手元に持ってくることができます。そのため、例えば『まずファイルを送り込むためにはツールの◯◯をクリック』、『次に◯◯というコマンドを打ち込む』、『最後に◯◯を実行する』などといった内容の数行程度の攻撃マニュアルがあれば、誰でも簡単に攻撃ができてしまうのです」(辻氏)

 Struts 2の脆弱性が公表された直後に攻撃が急増した背景には、このような事情がある。脆弱性が公表されたら、事前に作成しておいた対象サイトのリストを基に、攻撃ツールを使って一斉に攻撃を仕掛けるわけだ。最近では、犯行グループ内で作業を分担し、よく事情を知らない者をアルバイト的に雇って攻撃に加担させるケースも増えているという。さらに、攻撃に使用するボットネット※2を販売したり、時間貸しでレンタルしたりするサイトも存在するという。

※2 攻撃者によって乗っ取られ、外部からの指示(コマンド)によって他サイトへの攻撃などを行うコンピュータ・ネットワーク。数百万台のコンピュータから成る大規模なボットネットが摘発された例もある。