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

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

被害拡大の背景には日本企業に特有の事情も

 Struts 2の被害状況を確認するために、辻氏は実際に被害に遭った企業に対してヒアリングも行っている。そして、攻撃が単独で行われたのではなく、複数のグループが同時に関与しているらしいことを確認した。

 「攻撃者は、システムに侵入した後にバックドアを仕込みます。そうしたツールの1つに、Webブラウザを通じてコンピュータを操作できるWebshellがあります。ある企業へのヒアリングで、このWebshellが複数設置され、しかも複数のIPアドレスから操作されていたことがわかりました。単独で複数のWebshellを操っていた可能性もありますが、どちらかというと複数の人あるいはグループが一斉に攻撃を仕掛けてきたと見るべきでしょう」(辻氏)

 Struts 2のような枯れていない攻撃対象を普段から調査しておき、脆弱性が見つかったら一斉に攻撃を仕掛けるというやり方が広く普及しているわけだ。見つかった脆弱性は、修正パッチの提供と併せて公表されることが多い。だが、修正パッチの提供と同時に攻撃が急増するということは、速やかにパッチを当てない、または当てることができない企業が多いと見越しているのだろう。また、パッチが当てられるまでに攻撃を行うための仕組みの構築に余年がないとも考えられる。

 加えて辻氏は、被害拡大の背景には"日本企業に特有の事情"もあるのではないかと指摘する。特有の事情とは、「一度導入したシステムを長期間使い続ける傾向が強い」こと、「ベンダーやSIerにシステム構築から運用保守までを任せきりにして、自社ではシステムを把握できていないケースが多い」ことなどだ。

 「現在で言えば、例えばWindows XPがその一例でしょう。OSに限らず、日本の企業には、一度導入したシステムを長期間使い続ける傾向が見られます。また、米国企業のように情報システム部門が自社のシステムに対して強いガバナンスを効かせるのではなく、SIerに管理を任せきりにして自社システムのことを把握できていないことも、対策がスムーズに進まない原因の1つと考えられます。

 私は、企業にインシデントが起きた際、どのようなプレス発表を行うかに注目しているのですが、この中で『運用を外部に任せていたため』といった説明が見られるケースが少なくありません。こうしたところからも、自社システムの把握/管理をユーザー企業側で十分に行えていないのではないかと感じます」(辻氏)

 脆弱性の修正パッチが速やかに適用されないという問題は、かねてから指摘されてきたことだ。その背景に、システムの運用管理を社外に委託し、その管理責任への意識が希薄になっているという事情があるのだとしたら、脆弱性対策への対応がスムーズに進まないのも残念だがやむをえないのもかもしれない。

 こうした"攻撃する側"、"攻撃される側"の事情も踏まえ、辻氏は「Strutsの脆弱性を突く攻撃が実際にどのくらいの規模で行われているのか、正確には把握できていません。しかし、表面化しているインシデントが氷山の一角だとしたら、攻撃は今後も当分の間、続くと見てよいと思います」と話す。

Strutsを利用する企業はどうすればよいのか? セキュリティ診断を受ける際のポイントは?

 それでは今後、企業はどのような対策を打っていけばよいのだろうか。

 基本的には、「最新バージョンのソフトウェアを利用し、脆弱性の修正パッチが配布されたら速やかにそれを当てる」といった基本的な対策をしっかりと行うことが重要だ。今回、Struts 2で見つかった脆弱性は、EOL(End Of Life:開発終了)を迎えたStruts 1には該当しないものであった。しかし、そのことをもって「枯れた古いシステムだから助かった」という考えは持たないようにすべきである。

 「枯れていることと、サポートされないことは別の話です。サポートされないソフトウェアを利用していると、問題が見つかったときに詰んでしまいます。原則として最新のものを使うべきです。

 ただし、昨今では攻撃方法が公になってから実際の攻撃が行われるまでの時間がどんどん短くなっており、最新バージョンに速やかにアップデートする仕組みを構築している企業であっても対策が間に合わず、被害に遭う可能性が高くなっています。したがって、被害に遭わないような仕組みを運用し続けることは今までどおり、とても大切ですが、今後は被害に遭った際いかに早く発見し、被害を最小限に止められるかという視点も重要であると言えます」(辻氏)

 また、Strutsに関しては、「セキュリティ診断テストで脆弱性が見過ごされてしまう場合があるので、診断前に『そのテストで何を検証するのか』を十分に確認してほしい」と訴える。今日、企業が実施する診断テストで、Strutsをネットワーク診断テストの対象とするのか、それともWebアプリケーション診断テストの対象とするのかが曖昧になっているケースが少なくない。そのため、ユーザー側がStrutsの脆弱性診断までカバーされると思っていたところ、実際には診断対象から漏れていたという話が聞かれる。診断を行わない場合でも、また診断を行って脆弱性が見つからなかった場合でも、テスト事業者からの報告レポートにはその記載がなく、見過ごされてしまうケースもある。

 そして、セキュリティ診断テストを行う際には、外部からの攻撃に耐えられるかどうかということではなく、「脆弱性の発見」を主目的に据えることが大切だという。そもそも、辻氏が行うペネトレーション・テストも、「サイトを擬似的に攻撃して、それに耐えられるか」を調べるのではなく、「効率良く脆弱性を見つけ、その対策を施すこと」を主目的にしている。したがって、システム内部の情報をテスト事業者との間で事前に共有するなど、依頼側と検査側の協力が不可欠となる。

 「これは病気の診断と似ています。病院に行き、症状に関して何の情報を伝えないまま、糖尿病なのか、それとも骨折なのかを診断してもらうのは難しいでしょう。事前に自分の状態を伝えることで、適切な診断と処置をしてもらえるようになるのです」(辻氏)

 例えば、辻氏が提供する次のWebページの内容を参考にすれば、検査の依頼側が事前に、自社で利用しているStruts 2のバージョンを調べることができる。

【関連情報:Apache Struts 2のバージョンの調べ方】

 なお、Struts 2の脆弱性については、根本的な解決策として、今日では「Struts 2の利用をやめる」という選択肢をとることもできる。Strutsは、もともと旧バージョンのJava EE(J2EE 1.4など)では標準でカバーされていなかった機能を補うために登場したフレームワークだが、現在のJava EE(Java EE 5以降)では、JavaServer Faces(JSF)によってStrutsの機能を代替することが可能になっている。事実、海外では、JSFを包含し、最新のアプリケーション・サーバ製品での対応が進むJava EE 6への移行が急ピッチで進んでいる。

これからは"人の脆弱性"が焦点に

 最後に、辻氏の今後の活動テーマについても話を聞いた。

 辻氏は現在、より個人にフォーカスしたセキュリティにも関心を広げ始めているという。「ソーシャル・エンジニアリング」という言葉もよく耳にするようになったが、最近の標的型攻撃は"人の脆弱性"を突くケースが増えているからだ。

 「セキュリティは、しばしば鎖に例えられ、弱いところから破られる"Weekest Link"だと言われます。たとえ企業側の対策を強化しても、そこで働く"人の脆弱性"が突かれれば、結局は全体に被害が及びます。企業に勤めている人だけでなく、その配偶者や子供など家族が攻撃の糸口になる可能性もあるのです。こうした攻撃をどう防ぐかに取り組んでいきたいと思います」(辻氏)

日本オラクルの社員犬キャンディと記念撮影
日本オラクルの社員犬キャンディと記念撮影

 もう1つ、「やさしいセキュリティ」の実現も強い関心のあるテーマだ。これまでのセキュリティは、「厳しいセキュリティ」を求める"セキュリティ至上主義"といった感が強かった。そのため、セキュリティは難しいもの、面倒臭いものとして敬遠され、結果的に対策がとられにくくなり、脆弱性が生まれ、放置されることにもつながってきた。

 「北風と太陽の例で言えば、セキュリティはこれまで北風のような存在でした。これを太陽のようなものにして、誰もが心地よく、積極的に取り込んでいきたいと思えるような存在にしたいと思っていますが、そのためにどうすればよいか……。こちらはまだ手探りの状態です」(辻氏)

【関連情報: NTTデータ先端技術の関連サービス】

URL:http://www.intellilink.co.jp/
関連部署:オラクル事業部
TEL:03-5843-6897
E-mail:oracle-sales@intellilink.co.jp

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]