2013年6月頃より急増している Webサイト改ざんの原因の一つは、Webアプリケーションミドルウェアなどの未修正の脆弱性を利用されたことにあります。Webサイトの改ざんやWebサイトへの不正侵入を防ぐための第一歩は、脆弱性を修正することです。SIDfmを利用してApache Strutsの脆弱性を管理する方法をご紹介します。
Apache Strutsは、Java EE (Java Platform, Enterprise Edition) 仕様のWebアプリケーションフレームワークです。WebアプリケーションフレームワークやWebアプリケーションミドルウェアやCMS (Contents ManagementSystem) は、手軽に素早くWebサイトを構築できるため、広く利用されています。しかしながら、手軽にWebサイトを構築することだけを目的に導入されたソフトウェアは、運用が疎かになっており脆弱性が未修正のままであることがあります。
Apache Struts に関する主な脆弱性とニュース
まず、2013年7月に大きなニュースとなりJPCERT/CCからも注意喚起が発表されたApache Strutsの脆弱性に関するセキュリティアドバイザリと関連ニュースをご紹介します。
OSベンダーやアプリケーションベンダーが発表するセキュリティアドバイザリやリリース情報などは、システムの脆弱性管理を行う上で重要かつ必要な情報です。また、それらの脆弱性に関連するUS-CERT、JC3 (旧CIAC)、IPA、JPCERT/CCなどの機関から発表される注意喚起などの情報も、脆弱性の脅威や影響を判断するために役立ちます。但し、OSベンダーやアプリケーションベンダーが発表するセキュリティアドバイザリの発表形式や発表方法は、それぞれに異なっていますので複数のOSやアプリケーションを利用している場合は、その分の手間が必要となります。
Apache Struts のセキュリティアドバイザリ
- S2-017 A vulnerability introduced by manipulating parameters prefixed with “redirect:”/”redirectAction:” allows for open redirects (CVE-2013-2248)
- S2-016 A vulnerability introduced by manipulating parameters prefixed with “action:”/”redirect:”/”redirectAction:” allows remote command execution (CVE-2013-2251)
注意喚起・ニュース
- Apache Struts の脆弱性 (S2-016) に関する注意喚起 (JPCERT/CC)
- V-200: Apache Struts DefaultActionMapper Redirection and OGNL Security Bypass Vulnerabilities (JC3)
- Apache Struts2の脆弱性を悪用した攻撃が急増、ラックが緊急で注意喚起 (ITPro)
- 「 止まらないウェブ改ざん!」~ ウェブサイトの管理の再検討を! ~ (IPA)
Apache Strutsのバージョンを確認する
前述のApache StrutsからのアドバイザリやインターネットニュースやJPCERT/CCなどの機関から発せられたセキュリティ情報に触れた場合、疑問となるのが自分が管理するシステムに影響する脆弱性なのか、ということです。実際のところ、自分のシステムへの脆弱性の影響の有無を判断するためには、アドバイザリや注意喚起を知る前に、システムで利用しているOSやアプリケーションのバージョンや構成を知ることが必要です。OSやアプリケーションのバージョン確認方法は、OSやアプリケーション毎に固有であり、その確認方法を知っておくことは大切です。ここでは、Apache Strutsのバージョン確認方法をご紹介します。なお、SIDfmのコンテンツ内にはOS、アプリケーションやアプライアンスなどのバージョン確認方法を記載しています。
Apache Struts のバージョン確認方法
Apache Strutsのバージョンは、.jarファイルを展開した後のMETA-INF/MANIFEST.MFファイル内に記述されています。確認する .jar ファイルは、Apache Struts 1では、struts.jarファイル、Apache Struts 2では、struts2-core-<version number>.jarファイルとなります。Apache Struts 2は、ファイル名にバージョン番号が含まれているため、それにより確認することもできます。ファイル名は、環境により異なる場合があります。
.jarファイルを展開します。
% unzip struts2-core-2.3.15.1.jar
META-INF/MANIFEST.MFファイル内のSpecification-Version/Implementation-Versionの値を確認します。
% more META-INF/MANIFEST.MF Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: 1.6.0_32 (Apple Inc.) Built-By: rene Build-Jdk: 1.6.0_32 Specification-Title: Struts 2 Core Specification-Version: 2.3.15.1 Specification-Vendor: Apache Software Foundation Implementation-Title: Struts 2 Core Implementation-Version: 2.3.15.1 Implementation-Vendor-Id: org.apache.struts Implementation-Vendor: Apache Software Foundation Export-Package: org.apache.struts2;uses:="javax.servlet.http,javax.ser
SIDfmで利用中のApache Strutsに存在する脆弱性を調べる(例. Apache Struts 2.3.15)
では、Apache Strutsのどのバージョンにどのような脆弱性が存在するのでしょうか。ここでは、Apache Struts 2.3.15を例にSIDfmを利用して、利用中のApache Strutsのバージョンに存在する脆弱性とそのリスクを調べ、評価する方法をご紹介します。
3 ステップで簡単に検索できます。
SIDfmを利用して、Apache Struts 2.3.15に存在するセキュリティホールを調べる方法をご紹介します。SIDfmは、アプリケーションとバージョンの組合せを認識(例外有り)し検索しますので、手順は非常に簡単です。
- https://sid.softek.jp/security/listを表示します。
- 「製品」タブに、「Struts 2.3.15」を入力します。「Apache Struts 2.3.15」でも可能です。
- 「検索」ボタンを押します。
- 検索結果表示欄にApache Struts 2.3.15に存在するセキュリティホール42件が表示されます。
リスク指標を一覧で比較確認できます。
検索結果表示欄では、できる限り多くの指標を見せながらも、リスクの判断に必要な指標を分かりやすく表示しています。すべての指標は更に絞り込むことが可能となっていますので、対処が必要なリスクの特定が容易となり、セキュリティホールマネージメントに役立ちます。
- セキュリティホールタイトルです。セキュリティホールに影響のあるアプリケーション名や影響結果などを的確にまとめています。
- 最大CVSS指標です。1つのコンテンツ内に複数のCVEが含まれる場合には、その内の最大のCVSS値(10が最大)を表示します。
- CVSSの詳細項目と攻撃コードの有無です。セキュリティホールの影響を受けた際に、組織やシステムが受ける内容を詳細に分析します。
- SIDfm独自の危険度と影響範囲です。CVSS値が割り振られていないセキュリティホールの判断に利用します。
- 影響のある製品です。セキュリティホールに影響のあるOSとアプリケーションのすべてが表示されます。
- CVS番号です。1つのコンテンツに複数のセキュリティホール(CVE)が関係する場合があります。
- セキュリティホールに関係するニュースを表示します。セキュリティホールが一般にどのように扱われているかの判断や、影響度の指標としても利用できます。
セキュリティホールの詳細は必要な情報をタブで見やすく
個々のセキュリティホールコンテンツは、リスク判断に最も重要なCVSS指標を大きく固定で表示し、その他の概要や対処方法などはタグ切替で必要な時に必要な情報にアクセスできます。難しくなりがちなセキュリティホール情報を分かりやすくするための工夫があります。
SIDfmで負担を無くし確実な脆弱性管理ができます
これまでの一連の作業をいつ発表されるか分からないセキュリティアドバイザリに対して毎日続けることは、大変な負担です。SIDfmはOSやアプリケーションに脆弱性が発見された際に、その脆弱性内容をセキュリティアナリストが分析し、関連する周辺情報と共にデータベースに登録します。ユーザが事前に、OSやアプリケーションの情報を SIDfmのフィルタに登録しておくことにより、「脆弱性情報のチェック」「脆弱性関連情報のチェック」「脆弱性内容の分析」「脆弱性の自システムへの影響評価」の負担を無くし、確実に脆弱性を管理できるようになります。
フィルタに登録すれば、後はSIDfmにお任せください。
フィルタへの登録は、組織のリスク判断基準に合わせて細かく設定できます。1つのフィルタに、標準で5アイテム登録できます。通知メールは、4つのタイミングで送信できます。