NessusでVPSサーバーの脆弱性診断 ApacheのTraceメソッド

NessusでVPSサーバー(CentOS6.2)の脆弱性診断を行った際、ApacheのTraceメソッドが重要度”Medium”として診断レポート報告されました。
 
Apacheで”Trace”メソッドが有効になっていて、外部から情報を搾取されるリスクがあるようです。
 
※Nessusについては以下の記事参照。
NessusでVPSサーバーの脆弱性診断

Nessusのレポートでは、対策方法も記載されています。
 
Apacheの設定ファイルに下記記述を追加して、Apacheを再起動します。
“TraceEnable Off”
 
せっかくなので、HTTPのTraceメソッドについて実際にリクエストを送って確認してみました。
 

Telnetを使ってTraceメソッドを確認


 
①Apache設定ファイルに”TraceEnable Off”が無い状態
 
青字が入力した部分で、それ以外はサーバーからの応答部分です。
“HOST:”の部分にリクエストを送るサイトのドメイン名を入力します。”HOST”部分の入力したらリターンを2回押下します。
 
“HTTP/1.1 200 OK”から続く通常のサーバーからのレスポンスとクライアント側から入力したTraceメソッドのリクエストが表示されます。

# telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
TRACE /index.html HTTP/1.1
 HOST: wp.example.com
 
HTTP/1.1 200 OK
Date: Tue, 12 Nov 2013 00:10:44 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: message/http
 
3e
TRACE /index.html HTTP/1.1
HOST: wp.example.com
 
0
 
Connection closed by foreign host.

 
②Apache設定ファイルに”TraceEnable Off”を設定した状態
 
同様にTraceメソッドを送ると、今度は”HTTP/1.1 405 Method Not Allowed”と応答され、Traceメソッドが使えなくなっていることが確認できます。

# telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
TRACE /index.php HTTP/1.1
 HOST: wp.example.com
 
HTTP/1.1 405 Method Not Allowed
Date: Tue, 12 Nov 2013 00:08:32 GMT
Server: Apache
Allow:
Content-Length: 306
Connection: close
Content-Type: text/html; charset=iso-8859-1
 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method TRACE is not allowed for the URL /index.php.</p>
<hr>
<address>Apache Server at wp.example.com Port 80</address>
</body></html>
Connection closed by foreign host.
関連記事の目次
VPSサーバーでスナップショットを取得
~障害に備え、リカバリーポイントを作成。
VPSサーバーにログインして、設定内容を確認
~グローバルIPアドレス確認、SSHキーを作成。
VPSサーバーにSSHでログイン
~Tera Term、SSH、公開鍵認証方式
yumコマンドで最新のパッケージにアップデート
~全パッケージを最新にアップデート
Apacheのインストール
~yumコマンドでApacheインストール、iptablesでファイアウォールの設定
PHPとMySQLをインストール
~yumコマンドでPHP、MySQLインストール
WinSCPを使ってWordPressをアップロード
~WinSCPをクライアントPCにインストール、ファイルアップロード方法
WordPressをインストール
~MySQLでWordPress用データベース作成、wp-config.phpファイルの設定
CentOSのファイアウォール設定
~iptablesを使ってネットワークフィルタリング設定を一から行う
OpenSSHの設定をよりセキュアに
~ログイン制限、ポート変更、認証方式
ApacheでTCPのTraceメソッドを無効にする
~Apacheの設定変更、Telnetで動作確認
ヘッダーにApacheバージョンが表示されないようにする
~Apacheの設定変更、Telnetで動作確認
Apacheでディレクトリ内一覧表示を無効にする
~autoindex_moduleのロードを無効にする
セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
~MySQLの匿名ユーザーにパスワードを設定、または削除
PHPのバージョンが表示されないようにする
~php.iniの設定変更
WordPressディレクトリのパーミッションをセキュアに
~WordPress用ディレクトリの所有グループ、ユーザー、パーミッション設定
パーマリンク設定時のApache設定
~WordPressパーマリンクの設定、Apache .htaccessの設定
WordPressテーマの選定
~テーマ追加の特徴フィルターの項目、テンプレートキング
WordPressで画像のアップロード、サイズ調整、リンクを設定
~アップロード画像の画像サイズ、サムネイル、画像編集、リンク設定
更新可能なRPMパッケージのリストをメールで送信する
~yumコマンド、Bashスクリプト、Cron
Linuxでディスク使用量が多いディレクトリを調べる方法(1)
~du --max-depth
Linuxでディスク使用量が多いディレクトリを調べる方法(2)
~duコマンド、sortコマンド
WordPressデータベースのバックアップとリストア
~コマンドラインでバックアップ、リストア
WordPressのバージョンアップと旧バージョンへの戻し
~データベースとディレクトリのバックアップ、リストア
BashスクリプトでWordPressデータベースを自動バックアップ
~MySQLデータベースをBash、Cronを使って自動バックアップ、メール通知
BashスクリプトでDos攻撃など大量アクセスのログを検知
~Apacheアクセスログ、Dos、Cron、メール通知
テーマ作成
 
ブートストラップ3を使って自作テーマ作成
~Bootstrap3、自作テーマ作成、TwentyFourteen
Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
~Bootstrap3のスタイルをカスタマイズ
 
WordPresssショートコード
 
簡単なショートコードを作ってみる
~ショートコードの作り方
ショートコードを使って関連記事のリンクを自動で挿入
~ショートコードの簡単なサンプル
ショートコードを使ってディレクトリ内のファイル名を取得し、投稿内にリンクを挿入
~カスタムフィールド利用、PHPで日本語文字列検索などのコーディング
 
AJAX、AngularJSなどその他応用
 
WordPress投稿内でAngularJSを使用
~AngularJS、Bootstrap、アコーディオン
Bootstrap3で作成したナビゲーションメニューをAngularJSに変更
~AngularJS、Bootstrap、自作テーマheder.php
WordPressでAngularJSを使ったGoogleマップを使えるようにする
~AngularJSを使って投稿内にGoogleマップ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です