ウェブサイトの攻撃兆候検出ツール iLogScanner 解析対象ログ
解析対象ログ詳細
LogScannerで解析を行うことができるログファイルや、対応しているサーバソフトウェアのバージョンについて解説します。
また、解析を行うためのログ出力の設定についても合わせて解説します。
iLogScannerで解析可能なログファイル
アクセスログ
iLogScannerは次のウェブサーバソフトウェアとアクセスログフォーマットに対応しています。
- ウェブサーバソフトウェア
-
Microsoft インターネット インフォメーション サービス
(IIS 6.0、7.0、7.5、8.0、8.5) - プラットフォーム
-
Windows
- ウェブサーバソフトウェア
-
Apache HTTP Server(1.3系、2.0系、2.2系、2.4系)
- プラットフォーム
-
Windows、Linux
エラーログ
iLogScannerは次のウェブサーバソフトウェアとエラーログフォーマットに対応しています。
- ウェブサーバソフトウェア
-
- Apache HTTP Server(2.0系、2.2系)
- Apache HTTP Server(2.4系)
- プラットフォーム
-
Windows、Linux
認証ログ
iLogScannerは次のサーバソフトウェアとログフォーマットに対応しています。
- サーバソフトウェア
-
sshd
- プラットフォーム
-
Linux
- デフォルトの出力先
-
/var/log/secure 注釈
/var/log/messages
- サーバソフトウェア
-
vsftpd
- プラットフォーム
-
Linux
- デフォルトの出力先
-
/var/log/vsftpd.log
- サーバソフトウェア
-
vsftpd
- プラットフォーム
-
Linux
- デフォルトの出力先
-
/var/log/xferlog
-
注釈OSのバージョンによりデフォルトの出力先が異なります
W3C拡張ログファイル形式
「インターネット インフォメーション サービス (IIS) マネージャー」のウェブサイトの「ログ記録」において、ログファイルの形式が「W3C」になっている必要があります。
また、フィールドの選択 オプションにおいて次の必須項目が有効になっている必要があります。
必須項目
- 日付(date)
- 時間(time)
- クライアントIPアドレス(c-ip)
- ユーザ名(cs-username)
- サーバIPアドレス(s-ip)
- サーバポート(s-port)
- メソッド(cs-method)
- URI Stem(cs-uri-stem)
- URIクエリ(cs-uri-query)
- プロトコルの状態(sc-status)
- ユーザエージェント(cs(User-Agent))
IISログファイル形式
「インターネット インフォメーション サービス (IIS) マネージャー」のウェブサイトの「ログ記録」において、ログファイルの形式が「IIS」になっている必要があります。
以下はIIS6.0/7.0/7.5/8.0/8.5のIISログファイル形式のログ項目一覧です。
IIS6.0/7.0/7.5/8.0/8.5のIISログ項目一覧
- クライアントIPアドレス
- ユーザ名
- 要求日付
- 要求時刻
- サービス名
- サーバIPアドレス(s-ip)
- 処理時間
- 受信バイト数
- 送信バイト数
- サービス状態コード
- システム状態コード
- メソッド
- URI Stem
- URI クエリ
Common Log Format
Apache HTTP Serverの設定で、Common Log Format(デフォルトで定義されているニックネーム「common」形式)のアクセスログが出力されている必要があります。また、先頭からの書式がCommon Log Formatと同じCombined Log Format(デフォルトで定義されているニックネーム「combined」形式)であれば解析することが可能です。
Apache HTTP Serverのアクセスログ出力設定例
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
Apache HTTP ServerのCommon Log Format(CLF)書式
- %h
-
リモートホスト
- %l
-
(identd からもし提供されていれば) リモートログ名
- %u
-
リモートユーザ
- %t
-
リクエストを受付けた時刻。CLFの時刻の書式(標準の英語の書式)。
- \"%r\"
-
リクエストの最初の行
- %>s
-
最後のステータス
- %b
-
レスポンスのバイト数。HTTPヘッダは除く。CLF書式。
Apacheアクセスログのフォーマット指定
Apache アクセスログのフォーマット指定ができます。フォーマットには「表 Apache HTTP ServerのCommon Log Format(CLF)書式」の項目が出力されている必要があります。また、各項目の区切り文字として「半角スペース」が設定されている必要があります。Apache HTTP Serverの設定で設定できる書式指定子(以下の「入力可能な書式指定子」に示す項目)のみ入力可能とします。
【入力例】 LogFormat "%t %h %l %u \"%r\" %>s %b" common
【入力可能な書式指定子】
%h %l %u %t %r %s %b %% %a %A %B %C %D %e %f %i %m %n %o %p %P %q %T %U %v %V %X %I %O %{Foobar}C %{Foobar}e %{Foobar}i %{Foobar}n %{Foobar}o
-
※Foobarは、「任意の文字列」
ModSecurity 2.5系、2.6系、2.7系、2.8系が出力するログ形式
ModSecurity 2.5系、2.6系、2.7系、2.8系が出力するApacheのエラーログ形式で、ModSecurityの設定で次の必須項目が有効になっている必要があります。
必須項目
- アクセス日時
-
Sat Dec 12 11:20:50 2009
- Apacheのエラーレベル
-
error
- アクセス元IPアドレス
-
client 192.168.1.1
- メッセージ
-
msg “SQL Injection Attack”
- タグ
-
tag “WEB_ATTACK/SQL_INJECTION”
- リクエストURI
-
uri "/query.php"
- リクエストの固有番号
-
unique_id "Sjr2An8AAAEAABJlx2kAAAAJ"
Apacheエラーログのフォーマット指定
Apache 2.4系をご利用の場合、エラーログのフォーマット指定ができます。フォーマットには以下の表の項目が出力されている必要があります。Apache HTTP Serverの設定で設定できる書式指定子(以下の「入力可能な書式指定子」に示す項目)のみ入力可能とします。
-
※フォーマット指定において、%Mを%{u}tより前に指定した場合、解析が正しく行われません。%Mを%{u}tの後に指定したログを使用して解析を実行してください。
- %{u}t
-
現在時刻(マイクロ秒を含む)
- %m
-
モジュール名
- %l
-
ログレベル
- %P
-
プロセスID
- %T
-
スレッドID
- %a
-
リモートIPアドレス
- %M
-
ログメッセージ
【入力例】 ErrorLogFormat "[%{u}t] [%m:%l] [pid %P:tid %T] [client %a] %M"
【入力可能な書式指定子】
%% %a %{c}a %A %{Foobar}e %E %F %{Foobar}i %k %l %L %{c}L %{C}L %m %M %{Foobar}n %P %T %{g}T %t %{u}t %{cu}t %v %V \ %
-
※Foobarは、「任意の文字列」
ModSecurityによるApache エラーログの出力例
[Sat Dec 12 11:20:50 2009] [error] [client 192.168.1.1] ModSecurity: Warning. Pattern match "(?:\\b(?:(?:s(?:elect\\b(?:.{1,100}?\\b(?:(?:length|count|top)\\ b.{1,100}?\\bfrom|from\\b.{1,100}?\\bwhere)|.*?\\b(?:d(?:ump\\b.*\\bfrom|ata_type)|(?:to_(?:numbe|cha)|inst)r))|p_(?:(?:addextendedpro|sqlexe)c|(?:oacreat|prepar)e|execute(?:sql)?|makewebtask)|ql_(? ..." at ARGS:id. [file "/usr/local/apache2/conf/modsec2/modsecurity_
crs_40_generic_attacks.conf"] [line "66"] [id "950001"] [msg "SQL Injection Attack"] [data "or 1="] [severity "CRITICAL"] [tag "WEB_ATTACK/SQL_INJECTION"] [hostname "centos5.localdomain"] [uri "/query.php"] [unique_id "Sjr2An8AAAEAABJlx2kAAAAJ"]
syslog
以下のいずれかのsyslog形式で出力されている必要があります。
- RSYSLOG_TraditionalFileFormat
-
rsyslogdのデフォルトフォーマット(旧来のsyslog形式)
- RSYSLOG_FileFormat
-
高精度タイムスタンプ、タイムゾーン情報を含む
sshdのログは、OSのバージョンによってデフォルトの出力先が異なります。
解析を行う際には、対象のログファイル中に hostname sshd[xxxx] の記載があることを確認してください。
(hostnameにはお使いのサーバのホスト名、xxxxには数値が入ります)
sshdのログ出力例
Jul 17 05:51:04 server1 sshd[4111]: Failed password for user13 from 14.142.135.209 port 50103 ssh2
rsyslogのログ出力設定例
rsyslog.confに下記の設定を追加します。
$ActionFileDefaultTemplate RSYSLOG_FileFormat
または
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
vsftpd形式
vsftpd形式のログは、設定により出力先を任意のログファイルまたはsyslogから選択できます。
iLogScannerで解析を行う場合は、vsftpd形式のログをログファイルに出力する必要があります。
以下はvsftpd形式のログ項目一覧です。
vsftpd形式のログ項目一覧
- 出力日時
- プロセスID
- ユーザ名
- 処理結果
- 処理名
- リモートIPアドレス
- パスワード
- 詳細メッセージ
- ファイルサイズ
- 転送レート
vsftpd形式のログ出力設定
vsftpd形式のログを出力するためには、vsftpd.confで下記の設定を行います。
xferlog_enable=YES かつ xferlog_std_format=NO かつ syslog_enable=NO
または
xferlog_enable=YES かつ dual_log_enable=YES かつ syslog_enable=NO
wu-ftpd形式
以下はwu-ftpd形式のログ項目一覧です。
wu-ftpd形式のログ項目一覧
- 出力日時
- 転送にかかった時間
- リモートホスト名
- ファイルサイズ
- 転送されたファイル名
- 転送の種類
- 特殊な操作が行われたことを示す文字
- 転送の方向
- ユーザ種別
- ユーザ名
- サービス名
- 認証メソッド
- 認証メソッドにより復帰したユーザID
- 転送状態
wu-ftpd形式のログ出力設定
wu-ftpd形式のログを出力するためには、vsftpd.confで下記の設定を行います。
xferlog_enable=YES かつ xferlog_std_format=YES
または
xferlog_enable=YES かつ dual_log_enable=YES
更新履歴
-
2014年10月9日
掲載