ホームページをホームページにしよう!計画
- 其の四-
サーバログの解析


 ウェブサーバは、稼動している状況やアクセスの状態をログファイルに残します。例えば、ANHTTPDではエラー・参照先・ユーザエージェント・プロセス・ISAPI・トレースなどのログを記録します。ウェブサーバ以外のメールサーバやFTPサーバを稼動させるとさらに多くのログが記録されます。

 ログは、ネットワークに障害が発生した時、いつからどこで異常が発生しているかを知る手がかりとして非常に重要です。ログから原因を知り迅速に対応することができるからです。また、ネットワーク異常だけでなく、不正なアクセスや攻撃の検出にもログは役立ちます。

 具体的にANHTTPDを例にあげて、ログを解析してみます。

 YahooBB************.bbtec.net - - [07/Mar/2002:21:25:38 +0900] "GET / HTTP/1.0" 200 57

 上は、ホスト YahooBB************.bbtec.net から 07/Mar/2002:21:25:38 +0900GET / HTTP/1.0 のリクエストがあり、結果は 200 で返したのは 57 バイトでした、という意味です。結果200というのは正常に終了しましたということです。ユーザ認証を使用するとホスト名と年月日日時の間の - - がユーザ名になります。

 結果の所に記録される数字の一覧
数字 意味
400 リクエストURLに、prn, con, nul, lpt1, com1 などのデバイス名が含まれるか、リクエストURLに /../../../ のようにディレクトリ移動が連続するときに出ることもある。
401 ユーザ認証のあるURLにアクセスし、認証に失敗した。ただ単に認証に失敗した場合かもしれませんが、連続で多数の401エラーは、不正なアクセスの疑いを持つべきです。
403 デフォルトインデックスが存在しないURLにアクセスしたときに出る。ディレクトリを覗こうとしている可能性もある。または、アクセス制限のあるパスにアクセスして拒否された場合やルートよりも上位のディレクトリを参照しようとした場合にも403エラーが出る。
404 リクエストURLで指定されたディレクトリやファイルが存在しない。リクエストURLでファイル名が省略された場合にデフォルトインデックス(index.htmlなど)が存在しない場合にも404エラーになる。
500 CGIのプログラムミスの場合がほとんど。
501 FORM で METHOD="POST" のときに ACTION でCGIファイルではなく HTMLファイルなどを設定している場合。
503 サーバ負荷が大きすぎてリクエストを処理しきれない場合。

 さて、不正アクセスにはいくつか種類があります。  ウェブサーバの脆弱性をつくというのは

62.47.*.* - - [14/Mar/2002:06:10:01 +0900] "GET /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 134

のようなものがあります。バイト数の多いGETリクエストを送信してサーバをハングアップさせようとしています。

 また、最近特に多いのがウィルスによるリクエストです。いつぞやのニムダは以下のようなログが残ります。

218.*.*.184 - - [11/Mar/2002:08:20:33 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:33 +0900] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:34 +0900] "GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:35 +0900] "GET /d/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:36 +0900] "GET /scripts/..%5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:37 +0900] "GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:38 +0900] "GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:38 +0900] "GET /msadc/..%5c../..%5c../..%5c/..チ../..チ../..チ../winnt/system32/cmd.exe HTTP/1.0" 400 206
218.*.*.184 - - [11/Mar/2002:08:20:39 +0900] "GET /scripts/..チ../winnt/system32/cmd.exe HTTP/1.0" 400 206
218.*.*.184 - - [11/Mar/2002:08:20:40 +0900] "GET /sc?/c+dir HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:41 +0900] "GET /scripts/..?../winnt/system32/cmd.exe HTTP/1.0" 400 206
218.*.*.184 - - [11/Mar/2002:08:20:42 +0900] "GET /scripts/..?../winnt/system32/cmd.exe HTTP/1.0" 400 206
218.*.*.184 - - [11/Mar/2002:08:20:43 +0900] "GET /scripts/..5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:43 +0900] "GET /scripts/..5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:44 +0900] "GET /scripts/..%5c../winnt/system32/cmd.exe HTTP/1.0" 404 215
218.*.*.184 - - [11/Mar/2002:08:20:45 +0900] "GET /scripts/..%2f../winnt/system32/cmd.exe HTTP/1.0" 404 215


という感じです。

 この手のウィルスではニムダやコードレッドが有名ですが、幸い ANHTTPD はエラーログが残るだけで感染はしません。ただ、気を付けなければならないのが、リクエスト元は確実に感染しているということです。つまり、ログのIPアドレスやホスト名を辿ってURLに入力してアクセスしてみたりしては絶対にいけません。感染ります。

 未知なるウィルスや攻撃がいつ現れるかはわかりません。サーバ管理者は常にネットワークを監視し障害に備えなければなりません。アー大変じゃ、大変じゃ。だけど楽しいマイサーバ。そういうわけで今回は薄い内容のまま終了。



ホーム← 其の壱へ← 其の弐へ← 其の参へ← 其の四 →其の伍へ


Copyright(C)2001-CurrentYear bayashi.net. All Rights Reserved.
このページの情報は自己責任による利用を原則とし、作者(ダイ)はあらゆる損害や被害について一切責任を負いません。