Apache Tomcatに含まれる脆弱性(CVE-2017-12617)に関する脆弱性検証レポート
2017/10/04 初版
2017/10/10 更新
2017/10/20 更新
NTTデータ先端技術株式会社
鈴木 涼太
2017年9月21日にJason Shepherd氏によって報告された、Apache Tomcatに含まれるリモートからの任意のファイルアップロードが行われる脆弱性(CVE-2017-12617)についての検証を実施し、脆弱性の悪用が可能であることを確認しました。
1. 本脆弱性の概要
「Apache Tomcat」とは、Apache Software Foundationによりオープンソース・ソフトウェアとして提供されている、Java Webアプリケーションを実行するためのソフトウェアです。
同氏は、当該ソフトウェアにおいて書き込み可能な設定を行っている状態で、不正なPUTリクエストを受付けた場合に、任意のファイルアップロードが行われる脆弱性(CVE-2017-12617)が存在することをRed Hat Bugzillaで報告しています。※1
本脆弱性はHTTPリクエストのPUTメソッドの入力値の検証が不十分であることに起因しています。
本脆弱性は、2017年9月16日にApache Software Foundationによって発表された脆弱性であるCVE-2017-12615に対する修正バージョンとして公開されたApache Tomcat 7.0.81に含まれており、CVE-2017-12615と同様の攻撃手法が可能となるものです。※2
本脆弱性に関連する脆弱性として、VirtualDirContextが有効時にJSPファイルのソースコードを閲覧できる脆弱性であるCVE-2017-12616が公表されています。
図1. 攻撃例
図1は、本脆弱性に対する攻撃の一例として、インターネットから内部ネットワークへ攻撃者が不正なPUTメソッドを含んだHTTPリクエストを送信することにより攻撃を試行する模式図を示しています。
2. 本脆弱性の影響を受ける環境
本脆弱性の影響を受ける可能性がある環境は以下の通りです。
- Apache Tomcat 9.0.0.M1 から 9.0.0
- Apache Tomcat 8.5.0 から 8.5.22
- Apache Tomcat 8.0.0.RC1 から 8.0.46
- Apache Tomcat 7.0.0 から 7.0.81
3. 本脆弱性を利用した攻撃の検証
攻撃コードとして、概念実証(PoC)コードにより本脆弱性に対する攻撃を試行し、脆弱性を悪用可能であることを検証しました。
3.1. 検証環境
疑似攻撃者 | 疑似被害者 | |
---|---|---|
OS | KaliLinux 2017.01 64bit | CentOS 7.0 64bit |
アプリケーション | PoC実行ペネトレーション用ソフトウェア | Docker 1.12.6-32 tomcat:7.0-jre8(Docker Container)
Debian 9.1 Tomcat 7.0.81.0 Open-JDK8u141-b15-1 |
3.2. 攻撃手法
Tomcatの設定ファイルweb.xml上でinit-paramパラメーター配下にreadonlyパラメーターをfalseとして設定にしているサーバーに対して、任意のJavaコードを含んだjspファイルをPUTメソッドによって送信します。図2でweb.xmlの内容を示します。
図2. Tomcatの脆弱な設定例(web.xml)
図3. 攻撃コードの送信
図3は、標的となるサーバーに対して送信する攻撃コードの内容の一部となります。
具体的にはサーバー上で実行したいjavaコードを記述したjspファイルをあらかじめ作成しておき、図3に示されるHTTPリクエストを用いて、作成したファイルを攻撃対象サーバーへアップロードすることでファイル内に記述された任意のJavaコードを攻撃対象サーバー上で実行させることが可能となります。
本検証では、攻撃が成功した場合に”Exploit Success.”と記述されたHTMLページを表示させる攻撃を試行します。
3.3. 検証結果
図4に示す結果の通り、攻撃コードの実行により、宛先サーバー上で任意に指定したjspファイルの配置に成功しました。
図4. jspファイルの配置に成功した結果
4. 本脆弱性に対する対策
4.1. 現在推奨されている対策
2017年10月5日現在、Apache Software Foundationより本脆弱性が修正された以下バージョンが公開されており、当該バージョンへのアップデートが推奨されています。
- Apache Tomcat 9.0.1
- Apache Tomcat 8.5.23
- Apache Tomcat 8.0.47
- Apache Tomcat 7.0.82
回避策として、設定ファイルweb.xmlにおいて、init-paramパラメーター配下にreadonlyパラメーターをtrueとして設定し、PUTメソッドを使用したHTTPリクエストを受け付けない設定が推奨されています。※3
4.2. 不正アクセス監視機器による対策
4.2.1. 当社が確認している不正アクセス監視機器の対応状況
各製品ベンダーの本脆弱性への対応状況に関する情報、及び本検証による各製品での検知結果は以下の通りです。表2に公式シグネチャーの提供状況、表3に当社のカスタムシグネチャー提供状況、また、本検証によって得られた各製品のシグネチャー検知可否の結果を記載します。
種別 | 製品ベンダー/ 製品 |
製品ベンダー提供のシグネチャー | 検知 結果 |
---|---|---|---|
IDS/IPS | IBM QRader Network Security GX/XGS Series |
X-Press Update(XPU):XPU3710.16175 ・HTTP_Apache_Tomcat_PUT_Windows_Code_Exec ・HTTP_Apache_Tomcat_PUT_Code_Exec |
- |
McAfee Network Security Platform NS/M Series |
Signature Set:8.7.111.3 ・HTTP: Apache Tomcat PUT JSP File Upload (CVE-2017-12615 and CVE-2017-12617) |
○ | |
WAF | Imperva SecureSphere |
メーカーよりカスタムポリシーの作成手順が 公開されています。 | - |
NGFW | Palo Alto PA Series |
Application and Threat Content:Version 737 ・Apache Tomcat Remote Code Execution Via JSP Upload Vulnerability |
- |
Check Point NGFW Series |
IPS Software Blade: ・Apache Tomcat PUT Method Arbitrary File Upload Remote Code Execution (CVE-2017-12615) |
- |
種別 | 製品ベンダー/ 製品 |
当社カスタムシグネチャーの提供状況 | 検知 結果 |
---|---|---|---|
IDS/IPS | IBM QRader Network Security GX/XGS Series |
当社作成のカスタムシグネチャーにより、攻撃パターンの検出が可能です。 | ○ |
McAfee Network Security Platform NS/M Series |
当社作成のカスタムシグネチャーにより、攻撃パターンの検出が可能です。 | ○ | |
WAF | Imperva SecureSphere |
- | - |
NGFW | Palo Alto PA Series |
- | - |
Check Point NGFW Series |
- | - |
参考文献
- ※1: Bug 1494283-(CVE-2017-12617) CVE-2017-12617 tomcat:Remote Code Execution bypass for CVE-2017-12615
https://bugzilla.redhat.com/show_bug.cgi?id=1494283 - ※2: Apache Tomcat 7.x vulnerabilities
https://tomcat.apache.org/security-7.html#Fixed_in_Apache_Tomcat_7.0.81 - ※3: Apache Tomcat における脆弱性に関する注意喚起
https://www.jpcert.or.jp/at/2017/at170038.html
機器別当社対応サービス
IDS/IPS
- INTELLILINK IDS/IPSセキュリティ監視・運用サービス
http://www.intellilink.co.jp/business/security/scrutiny_01
WAF
- INTELLILINK WAFセキュリティ監視・運用サービス
http://www.intellilink.co.jp/business/security/scrutiny_05
NGFW
- INTELLILINK UTMセキュリティ監視・運用サービス
http://www.intellilink.co.jp/business/security/scrutiny_06
更新履歴
2017/10/04 | 初版作成 |
---|---|
2017/10/10 |
|
2017/10/20 |
|
本件に関するお問い合わせ先
NTTデータ先端技術株式会社
お問い合わせフォーム
- ※ 各規格名、会社名、団体名、製品名は、各社の商標または登録商標です。
Tweet