情報セキュリティ

ウェブサイトの攻撃兆候検出ツール 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

  1. 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

  1. 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の設定で設定できる書式指定子(以下の「入力可能な書式指定子」に示す項目)のみ入力可能とします。

  1. フォーマット指定において、%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 \ %

  1. 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日

    掲載