Comments
Description
Transcript
TRACEメソッドについて - コンピュータ・ハイテック
TRACE メソッドについて - TRACEメソッドについて - コンピュータ・ハイテック 株式会社 平成18年5月23日 Copyright (c) 2006 COMPUTER HI-TECH INC., 1 TRACE メソッドについて 目次 はじめに.................................................................................................................................................... 4 1. 用途................................................................................................................................................ 4 2. 対象者............................................................................................................................................ 4 1. TRACEメソッドについて .................................................................................................................. 6 1. TRACEメソッドとは?................................................................................................................... 6 2. 発行方法........................................................................................................................................ 7 2. TRACEメソッドの危険性................................................................................................................. 8 3. TRACEメソッドの制御 ..................................................................................................................... 9 1. 有効性の確認方法 ....................................................................................................................... 9 2. 無効にする方法 ..........................................................................................................................10 3. 変更を確認する方法...................................................................................................................12 Copyright (c) 2006 COMPUTER HI-TECH INC., 2 TRACE メソッドについて Copyright (c) 2006 COMPUTER HI-TECH INC., 3 TRACE メソッドについて 1. はじめに 1.1 用途 この文章には、 * TRACE メソッドの役割 * TRACE メソッドの危険性 * TRACE メソッドの有効・無効の確認方法 * TRACE メソッドの有効・無効化方法 * TRACE メソッド無効化後の確認方法 が記述されております。 1.2 対象者 TeamFile サーバがインストールされた Linux マシンに対して管理者権限でアクセスできるサイ ト管理者 Copyright (c) 2006 COMPUTER HI-TECH INC., 4 TRACE メソッドについて Copyright (c) 2006 COMPUTER HI-TECH INC., 5 TRACE メソッドについて 1. TRACE メソッドについて 1. TRACE メソッドとは? TRACEメソッドは、WebDAVがベースとしているHTTP1.1 で定義された「メソッド」です。「メソ ッド」とは、HTTPプロトコルをサポートするサーバ(通常のWebサーバやTeamFileサーバ)に対し、 Webクライアント(ブラウザやTeamFileクライアント)から要求を送るための方法を表します。 2006 年現在、WebDAV サーバは勿論、一般的な Web サーバの多くが HTTP1.1 をサポート しておりますので、TRACE メソッドは標準で装備しています。(Apache 系 Web サーバではデフォ ルトで有効になっています) TRACE メソッドは、Web クライアントがリクエストした内容に幾つかの情報を付加して、そっくり そのままクライアントに「送り返す」(トンボ返しする)機能を有しています。 TRACE メソッドは以下の役割を果たす目的で導入されました。 * HTTP レベル(つまりアプリケーション層)でリクエストがサーバに届いているかどうかを確認 する(Ping のイメージです) * クライアントから発行されたリクエストが通過した HTTP プロキシサーバの情報を取得する (Via ヘッダ) * クライアントから特定の段数にあるプロキシサーバを指定して情報を得る(Max-Forwards ヘッダ) 何れも、HTTP レベルで正しくリクエストが送受信されるのかを確かめる目的で利用されます。 ですので、初期導入時のネットワーク環境の確認やテスト中に利用されることがあります。 TeamFile では、TRACE メソッドを使用しておりませんが、Apache の標準設定に従い、有効化 されております。 Copyright (c) 2006 COMPUTER HI-TECH INC., 6 TRACE メソッドについて 2. 発行方法 IE などのブラウザから標準的なアクセス方法で TRACE メソッドを発行することはできません。 発行するには、ActiveX や Ajax などの特殊な方法が必要となります。 (例) ActiveX を使って発行する (以下のコードは動かさないで下さい) <script type="text/javascript"> var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp.open("TRACE", "http://www.teamfile.com/",false); xmlHttp.send(); xmlDoc=xmlHttp.responseText; alert(xmlDoc); </script> Copyright (c) 2006 COMPUTER HI-TECH INC., 7 TRACE メソッドについて 2. TRACE メソッドの危険性 TRACE メソッドには危険性があることが、以下の攻撃方法によって明らかになりました。 【 名前 】 Cross-Site tracing (XST、クロスサイトトレーシング) ( http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf ) 【 攻撃方法 】 クライアントのリクエストが「トンボ返し」されることを利用して、クライアントだけが知り得る情報を 盗聴します。 具体的には、以下の情報がクライアントから漏れてしまう危険性があります。 * Cookie の情報 * ユーザ ID・PW 情報 【 危険性 】 * TeamFile では Cookie を使用しておりませんので問題ございません * ユーザの ID/PW の盗聴の恐れがございます。但し、SSL 通信下では問題ございません 【 対策方法 】 * TRACE メソッドを無効にする * HTTPS のみを使用する(盗聴の防止) Copyright (c) 2006 COMPUTER HI-TECH INC., 8 TRACE メソッドについて 3. TRACE メソッドの制御 1. 有効性の確認方法 (1) (Apache 2.0.55 以降の場合) 「TraceEnable」というディレクティブが設定されていないか どうか確認 (Linux マシン上から操作) $ su # cd /usr/local/teamfile/www/conf # grep TraceEnable * 「TraceEnable Off」という設定がなければ有効ということになります。 (2) アクセスして確認する Linux マシン上から以下のリクエストを発行してください。 # telnet localhost 80 Trying 127.0.0.1... Connected to localhost.teamfile.com (127.0.0.1). Escape character is '^]'. TRACE /teamfile/ HTTP/1.1 ← 以下の 2 行を入力ください Host: test ← このあと、Enter キー2 回を押してください 以下のように表示された場合、有効になっています。 HTTP/1.1 200 OK Date: Fri, 19 May 2006 08:10:40 GMT Server: Apache/2.0.55 (Unix) DAV/2 ・・・ Transfer-Encoding: chunked Content-Type: message/http 29 TRACE /teamfile/ HTTP/1.1 ← リクエストがトンボ返しされていることが判ります Host: test Copyright (c) 2006 COMPUTER HI-TECH INC., 9 TRACE メソッドについて 0 1.3 無効にする方法 以下の手順に従い、TRACE メソッドを無効化することができます。 【 Apache 2.0.54 以前の場合 】 (1) 設定ファイル(/usr/local/teamfile/www/conf/conf.d/ mod_dav_tf.conf)への記述 ・・・(最後の行に記述ください) 1) LoadModule rewrite_module modules/mod_rewrite.so 2) <IfModule mod_rewrite.c> 3) RewriteEngine on 4) RewriteCond %{REQUEST_METHOD} ^TRACE 5) RewriteRule .* - [F] 6) (2) </IfModule> 設定が正しく行われているかどうかの確認 $ su # /usr/local/teamfile/www/bin/apachectl configtest 以下のように表示されたら、正常に設定できたことになります。 Syntax OK 以下の用に表示された場合、エラーメッセージと共に開発元までお知らせください。 Syntax error on line ・・・ なお、 このコマンド実行により、サービスが停止することはございません。 (3) TeamFile サーバプロセスの再起動 # /etc/init.d/teamfile restart Copyright (c) 2006 COMPUTER HI-TECH INC., 10 TRACE メソッドについて 【 Apache 2.0.55 以降の場合 】 (1) 設定ファイル(/usr/local/teamfile/www/conf/conf.d/mod_dav_tf.conf)への記述 ・・・(最後の行に記述ください) 7) TraceEnable Off ・・・ (2) 設定が正しく行われているかどうかの確認 $ su # /usr/local/teamfile/www/bin/apachectl configtest 以下のように表示されたら、正常に設定できたことになります。 Syntax OK 以下のように表示された場合、エラーメッセージと共に開発元までお知らせください。 Syntax error on line ・・・ なお、 このコマンド実行により、サービスが停止することはございません。 (3) TeamFile サーバプロセスの再起動 # /etc/init.d/teamfile restart Copyright (c) 2006 COMPUTER HI-TECH INC., 11 TRACE メソッドについて 1.4 変更を確認する方法 TeamFile サーバプロセスの再起動が終了しましたら、TRACE メソッドが無効化されていることを 以下の手順によりご確認ください。 Linux マシン上から以下のリクエストを発行してください。 # telnet localhost 80 Trying 127.0.0.1... Connected to localhost.teamfile.com (127.0.0.1). Escape character is '^]'. TRACE /teamfile/ HTTP/1.1 ← 以下の 2 行を入力ください Host: test ← このあと、Enter キー2 回を押してください 以下のように表示された場合、TRACE メソッドが禁止されております。 HTTP/1.1 403 Forbidden ← このメッセージが表示されていることを確認下さい Date: Tue, 23 May 2006 07:39:11 GMT Server: Apache/2.0.54 (Unix) DAV/2 mod_ssl/2.0.54 OpenSSL/0.9.7g TeamFile/2.0.0-6 Vary: Accept-Encoding Content-Length: 332 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /teamfile/ on this server.</p> <hr> <address>Apache/2.0.54 (Unix) DAV/2 mod_ssl/2.0.54 OpenSSL/0.9.7g TeamFile/2.0.0-6 Server at test Port 80</address> </body></html> 「HTTP/1.1 200 OK」と表示された場合には、何らかの設定不良がございます。お手数ですが、 Copyright (c) 2006 COMPUTER HI-TECH INC., 12 TRACE メソッドについて 開発元までご連絡ください。 以上 Copyright (c) 2006 COMPUTER HI-TECH INC., 13 TRACE メソッドについて Copyright (c) 2006 COMPUTER HI-TECH INC., 14 TRACE メソッドについて 2. Copyright © 2006 COMPUTER HI-TECH, INC. 無断転載禁じます。 TeamFile は COMPUTER HI-TECH, INC. の登録商標です。 TeamFile のロゴは COMPUTER HI-TEC, INC.の商標です。 ここに記載されているその他の名称及びマークは各社の商標です。 コンピュータ・ハイテック株式会社 (COMPUTER HI-TECH, INC.) 〒110-0015 東京都台東区東上野 3-18-7 上野駅前ビル Copyright (c) 2006 COMPUTER HI-TECH INC., 15 TRACE メソッドについて Copyright (c) 2006 COMPUTER HI-TECH INC., 16