HOME情報セキュリティ情報セキュリティ対策脆弱性対策ウェブサイトの攻撃兆候検出ツール iLogScanner

本文を印刷する

情報セキュリティ

ウェブサイトの攻撃兆候検出ツール iLogScanner

  • トップページ
  • 操作手順(PDF形式)
  • 機能説明
  • 解析対象ログ詳細
  • FAQ
  • オフライン版

解析対象ログ詳細

iLogScannerで解析を行うことができるログファイルや、対応しているサーバソフトウェアのバージョンについて解説します。
また、解析を行うためのログ出力の設定についても合わせて解説します。

iLogScannerで解析可能なログファイル

アクセスログ

iLogScannerは次のウェブサーバソフトウェアとアクセスログフォーマットに対応しています。

ウェブサーバソフトウェア プラットフォーム アクセスログフォーマット
Microsoft インターネット インフォメーション サービス
(IIS 6.0、7.0、7.5、8.0、8.5)
Windows W3C拡張ログファイル形式
IISログファイル形式
Apache HTTP Server(1.3系、2.0系、2.2系、2.4系) Windows、Linux Common Log Format

エラーログ

iLogScannerは次のウェブサーバソフトウェアとエラーログフォーマットに対応しています。

ウェブサーバソフトウェア プラットフォーム エラーログフォーマット
Apache HTTP Server(2.0系、2.2系) Windows、Linux ModSecurity 2.5系、2.6系、2.7系、2.8系が出力する
エラーログ形式
Apache HTTP Server(2.4系)

認証ログ

iLogScannerは次のサーバソフトウェアとログフォーマットに対応しています。

サーバソフトウェア プラットフォーム ログフォーマット デフォルトの出力先
sshd Linux syslog /var/log/secure ※
/var/log/messages
vsftpd vsftpd形式 /var/log/vsftpd.log
wu-ftpd形式 /var/log/xferlog
※OSのバージョンによりデフォルトの出力先が異なります

W3C拡張ログファイル形式

「インターネット インフォメーション サービス (IIS) マネージャー」のウェブサイトの「ログ記録」において、ログファイルの形式が「W3C」になっている必要があります。

ログファイル形式(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」になっている必要があります。

ログファイル形式(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日 掲載