2016年に Apache Struts で発覚した脆弱性は前年比約3倍

2016年に Apache Struts で発覚した脆弱性は前年比約3倍

企業で Webサイトを構築する際、多くのケースで Webサーバと Webアプリケーションが用いられているかと思います。こうした Webサーバには、Windowsサーバで使われている「Internet Information Services(IIS)」やオープンソースの「Apache HTTP Server(以下、「Apache」)」が広く一般的に使用されており、そうした Webサーバの環境に適した形で様々な Webアプリケーションが提供されています。

Apache の場合、こうした Webアプリケーションを開発する上で便利なモジュール群を提供する Java Webアプリケーションフレームワーク「Apache Struts」が存在しています。Apache同様に、Apache Struts はオープンソースで開発されており、古くから多くのユーザに活用されてきました。2007年には Apache Struts 2 がリリースされ、今日では Java Webアプリケーションフレームワークのデファクトスタンダードとして世界中に普及しています。

しかし、この Apache Struts については、利用者が多く、注目を集めている反面、過去には深刻な脆弱性が見つかっています。また Apache Struts の脆弱性については、2016年11月16日に「独立行政法人情報処理推進機構(IPA)」から Apache Struts 2 の脆弱性を特集したコンテンツ「Apache Strut2 の脆弱性対策情報一覧」なども公開されています。

■Apache Struts の脆弱性について
トレンドマイクロが調べたところ、こうした Apache Struts の脆弱性が、2016年は既に 16件見つかっており、前年の 5件と比較して約3倍に増加しています。これらはいずれも「共通脆弱性識別子(Common Vulnerabilities and Exposures、CVE)」が採番されており、「共通脆弱性評価システム(Common Vulnerabilities Scoring System、CVSS)」によって評価されています。

図1:
図1:CVSSv2 で深刻度が「危険」、「警告」、「注意」に分類された Apache Struts の脆弱性数の年別推移(2016年12月2日時点)

  • 脆弱性の評価
    こうした CVSS における脆弱性評価には、「どこから攻撃可能であるか」、「攻撃する際に必要な条件の複雑さ」、「攻撃するために認証が必要であるか」、「機密性、完全性、可用性への影響」といった評価基準が設けられており、発見された脆弱性の深刻度を判断する上で重要な項目となっています。

    図:

  • 攻撃が成功する可能性が高い脆弱性
    前述の項目の観点から見ると、遠隔からの攻撃が可能で、攻撃の複雑さが低く、さらには攻撃前の認証が不要といった条件の脆弱性は、実際の攻撃に悪用され、攻撃が成功する可能性が高いと言えます。
    2016年に Apache Struts で見つかった脆弱性 16件は、すべて遠隔からの攻撃が可能で、攻撃前に認証が不要でした。さらには 16件中 7件が攻撃の複雑さが低いという条件まで満たしていました。こうした脆弱性を放置した場合、どのようなリスクがあるのでしょうか。

  • 脆弱性を悪用された場合の攻撃シナリオ
    2016年6月には、Apache Struts 2 の RESTプラグインに、リモートから任意のコード実行が可能となる脆弱性が判明し、6月の時点で既に実証コードが公開されていました。当時、多くのシステム管理者が確認と対応に追われていたかと思います。
    こうしたリモートから任意のコード実行が可能となる脆弱性を悪用された場合、情報漏えいや Webサイト改ざんといった被害につながる可能性があり、最悪のケースではサイバー犯罪者に自社のサーバを操作され外部のサーバに対して攻撃を仕掛けてしまう恐れもあります。

    図2:
    図2:「Apache Struts 2」の RESTプラグインの脆弱性に対する攻撃シナリオ

    Apache Software Foundation からは既にこの脆弱性に対応したバージョンがリリースされており、未対応の企業は早急にアップデートをすることをお勧めします。

    このような攻撃シナリオを想定した場合、やはり深刻な被害につながりやすい「分散型サービス拒否(DDoS)」や任意のコード実行を引き起こすような脆弱性には注意が必要と言えるでしょう。では、こうした脆弱性にはどのように対応すれば良いのでしょうか。

■サーバを守るために実施すべき脆弱性対策
Apache Struts に限らず、どのようなオペレーティングシステム(OS)、ミドルウェアでも深刻な脆弱性が発見される可能性があります。そのため、自社が運用するサーバに対しては以下のような脆弱性対策の検討、実施をお勧めします。

  • 更新プログラムの適用
    OS、ミドルウェアに対しては、過去に深刻な脆弱性が見つかっています。こうした脆弱性が発覚した場合、脆弱性を狙った攻撃通信が世界的に増加し、サイバー犯罪者が活発に攻撃を仕掛けてくる傾向があります。ベンダから提供される修正プログラムを迅速、かつ漏れがないように適用してください。そのためには、自社のサーバがどういった OS やミドルウェアを使っているか、あらかじめ把握し、最新の脆弱性情報をキャッチアップすることが重要です。

  • セキュリティソリューションの導入
    更新プログラムを適用するだけなく、セキュリティソリューションによる脆弱性対策も重要です。ベンダからの更新プログラムの提供が遅れる場合や更新プログラムの検証等に時間を要し、迅速に適用できない場合があります。そうしたケースに備え、脆弱性を狙った攻撃に対するセキュリティソリューション導入の検討をお勧めします。

■トレンドマイクロ製品による対策
トレンドマイクロでは、こうしたサーバが抱える脆弱性のリスクを守るため、統合型サーバセキュリティソリューション「Trend Micro Deep Security™(以下、Deep Security)」を提供しています。Deep Security はサーバにインストールするソフトウェア型(ホスト型)のセキュリティ対策製品です。ウイルスの侵入を防ぐ「不正プログラム対策」、OSやアプリケーション、ミドルウェアの脆弱性を突いた攻撃を OS のネットワーク層でブロックする「IPS(侵入防御)」、外部の不正な URL への通信をブロックする「Webレピュテーション機能」、「ファイアウォール」、ファイルやレジストリに改ざんが発生した際に管理者に通知する「変更監視」、「セキュリティログ監視」等のセキュリティ機能を 1つの製品で実装しています。

また、トレンドマイクロでは、公開サーバのセキュリティ強化を検討するユーザにとって役立つ情報を公開しています。詳細については、以下のページを参照してください。

セキュリティの専門家が考える 公開サーバセキュリティのあるべき姿: