- iLogScannerとは何ですか?
「iLogScanner」は、ウェブサーバのアクセスログからウェブアプリケーション脆弱性を狙った攻撃と思われる痕跡を検出する為のツールです。
今までは特別なスキルが必要だったウェブサーバのアクセスログ解析が、「iLogScanner」を使えば誰でも簡単に行うことができ、今すぐ危険な攻撃と思われる痕跡の有無を確認することが出来ます。
攻撃と思われる痕跡の有無を確認することにより、必要なセキュリティ対策が明らかになります。
- 攻撃と思われる痕跡を全て網羅し、確実に検出するものではありません。また誤検出の場合もあります。
- iLogScannerで攻撃が検出された場合や、特に攻撃が成功した可能性が検出された場合は、ウェブサイトの開発者やセキュリティベンダーに相談されることを推奨します。
- iLogScannerは簡易ツールであり、ウェブサイト攻撃のアクセスログが無ければ脆弱性を検出しません。また、実際の攻撃による脆弱性検査は行っていません。攻撃が検出されない場合でも安心せずに、ウェブサイトの脆弱性検査を行うことを推奨します。
- 解析対象アクセスログ、解析対象エラーログについて、検出が可能な形式がきまっております。必ず、「操作手順
」の「2.5 アクセスログファイル形式」、「2.6 エラーログファイル形式」をご確認ください。形式が異なる場合、脆弱性の検出が行われない、または脆弱性が検出されません。
ウェブブラウザ上で実行するJavaアプレット形式のツールとなっているので、ホームページを見ることができる環境ならば、どこでも簡単に使用することができます。
- iLogScannerは無料で使用できるのですか?
「iLogScanner」は無償で提供され、情報を一切外部に送信することが無いので、手軽にダウンロードして実行することが出来ます。
- iLogScannerが検出できるウェブアプリケーション攻撃の種類を教えてください。
次の脆弱性を狙ったウェブアプリケーション攻撃の痕跡を検出します(2010年5月現在)。
- SQLインジェクション
SQLインジェクションとは、データベースと連携したウェブアプリケーションに問合せ命令文の組み立て方法に問題があるとき、ウェブアプリケーションへ宛てた要求に悪意を持って細工されたSQL文を埋め込まれて(Injection)しまうと、データベースを不正に操作されてしまう問題です。これにより、データベースが不正に操作され、ウェブサイトは重要情報などが盗まれたり、情報が書き換えられたりといった被害を受けてしまう場合があります。
- OSコマンド・インジェクション
OSコマンド・インジェクションとは、ウェブサーバ上の任意のOSコマンドが実行されてしまう問題です。これにより、ウェブサーバを不正に操作され、重要情報などが盗まれたり、攻撃の踏み台に悪用される場合があります。
- ディレクトリ・トラバーサル
ディレクトリ・トラバーサルとは、相対パス記法を利用して、管理者が意図していないウェブサーバ上のファイルやディレクトリにアクセスされたり、アプリケーションを実行される問題です。これらにより、本来公開を意図しないファイルが読み出され、重要情報が盗まれたり、不正にアプリケーションを実行されファイルが破壊されるなどの危険があります。
- クロスサイト・スクリプティング
クロスサイト・スクリプティングとは、ウェブサイトの訪問者の入力をそのまま画面に表示する掲示板などが、悪意あるスクリプト(命令)を訪問者のブラウザに送ってしまう問題です。これにより、アンケート、掲示板、サイト内検索など、ユーザからの入力内容をウェブページに表示するウェブアプリケーションで、適切なセキュリティ対策がされていない場合、悪意を持ったスクリプト(命令)を埋め込まれてしまい、ウェブページを表示した訪問者のプラウザ環境でスクリプトが実行されてしまう可能性があります。その結果として、cookieなどの情報の漏洩や意図しないページの参照が行われてしまいます。
- その他(IDS回避を目的とした攻撃)
その他(IDS回避を目的とした攻撃)とは、16進コード、親パス等の特殊文字を使用して偽装した攻撃用文字列で攻撃が行われることによりアプリケーションの妥当性チェック機構を迂回し、SQLインジェクション、クロスサイトスクリプティング等の攻撃を行うことを狙ったものです。また、ワームなどが悪用するウェブサーバの脆弱性を突いた攻撃でも、このような特殊文字が使われます。それぞれの攻撃に応じた対策が必要になります。
注)IDS : 侵入検知システム(Intrusion Detection System)
また、解析レベルを「詳細」で解析を行うと次のウェブアプリケーションへの攻撃の可能性を検出します(2010年5月現在)。
- 同一IPアドレスから同一URLに対する攻撃の可能性
同一のIPアドレスからの攻撃痕跡が一定件数に達しています。基準値を超えているため、攻撃を受けている可能性があります。
- アクセスログに記録されないSQLインジェクションの可能性
ウェブサーバが「SQLインジェクション」の攻撃の影響を受けている可能性を示すものです。同一IPアドレスから行われたリクエストに対するウェブサーバからのエラー応答が、基準値に達しています。
- ウェブサーバの設定不備を狙った攻撃の可能性
ウェブサーバの設定不備を狙った攻撃を受けている可能性があります。
対象となる設定不備は以下の通りです。
- PUTメソッドの設定不備
- FrontPage Server Extensionsの設定不備
- Tomcatの設定不備
- iLogScannerが動作する環境を教えてください。
「iLogScanner」が動作する環境は、次を想定しています。
| オペレーティングシステム |
Microsoft Windows XP Professional SP3 |
| ウェブブラウザ |
Internet Explorer 7 |
| Java実行環境(JRE) |
Sun Microsystems社 J2SE Runtime Environment(JRE) 6.0 (最新版ダウンロード) |
その他、次の環境においては一部動作可能であることを確認しております。
- 次に記載した環境での動作を保証するものではございません。オペレーティングシステム/ウェブブラウザ/JREのバージョン、利用者環境等の違いにより、動作が異なる場合もございますので、予めご了承ください(2010年5月現在)。
| |
オペレーティング
システム |
ウェブ
ブラウザ |
Java実行
環境(JRE) |
動作 |
| 1 |
Microsoft Windows XP Professional SP2 |
Internet Explorer 6 |
JRE 6.0 |
〇 |
| 2 |
Internet Explorer 7 |
JRE 6.0 |
〇 |
| 3 |
Internet Explorer 6 |
JRE 6.0 |
〇 |
| 4 |
FireFox3 |
JRE 6.0 |
〇 |
| 5 |
Microsoft Windows XP Professional SP3 |
Internet Explorer 6 |
JRE 6.0 |
〇 |
| 6 |
Internet Explorer 7 |
JRE 6.0 |
〇 |
| 7 |
Internet Explorer 8 |
JRE 6.0 |
〇 |
8 |
FireFox3 |
JRE 6.0 |
〇 |
| 9 |
Microsoft Windows 7 Professional |
Internet Explorer 8 |
JRE 6.0 |
〇 |
| 10 |
FireFox3 |
JRE 6.0 |
〇 |
| 11 |
Microsoft Windows Vista Business (@) |
FireFox3 |
JRE 6.0 |
○ |
12 |
Linux (CentOS 5) |
FireFox3 |
JRE 6.0 |
〇(A) |
〇:正常動作する △:一部を除き正常動作する ×:動作しない
- Windows Vista + IE7 で保護モードが有効の場合、iLogScannerは正常に動作しません。保護モードを無効にしてしまうと、ブラウザを悪用する不正なソフト(ウイルス、スパイウェア)などの動きを抑えることができなくなってしまいますので、セキュリティの観点からWindows Vista + IE7上での実行は推奨していません。また、Windows Vista はブラウザがFirefox3であればユーザの権限に関わらず正常動作します。しかし、Internet Explorer 7(保護モードON)使用時と比較するとセキュリティ性が高くない為、Firefoxでの実行は推奨していません。
- Linux 上でFireFox3を使用しツールを実行したところ、ModSecurity版の解析においてアクセスログとエラーログのマージが行われない現象がありました。そのため、Linux上での実行は推奨しておりません。(ModSecurity版でのその他の動作(アクセスログ解析と統計情報)は正常に動作しております。)
- 攻撃と思われる痕跡はどのように検出しているのですか?
ウェブサーバのアクセスログに記録されたリクエストのクエリ文字列から、ウェブアプリケーションへの攻撃によく見られる文字列が存在した場合に検出しています。
それぞれの攻撃でよく見られる文字列は次のような意味のある文字列になります。
| 攻撃種別 |
文字列 |
| SQLインジェクション |
- SQLステートメントで使用されるキーワード
- データベースのシステムテーブル名
- SQLステートメントで使用される関数
- システムストアドプロシージャ名
- システム拡張ストアドプロシージャ名
|
OSコマンド・インジェクション |
- コンピュータの基本ソフトウエアを操作するための命令文やそれらのパラメータ文
|
| ディレクトリ・トラバーサル |
|
| クロスサイト・スクリプティング |
- スクリプト関数
- HTMLタグ文字列
- イベントハンドラ
|
| その他(IDS※回避を目的とした攻撃) |
|
※ IDS : 侵入検知システム(Intrusion Detection System)
- 一般的なGETメソッドを使用したウェブアプリケーションについて、リクエストのクエリ文字列から攻撃と思われる痕跡を検出しています。
- 一般的なPOSTメソッドを使用したウェブアプリケーションについては、リクエストのクエリ文字列がアクセスログに出力されない為、攻撃と思われる痕跡をiLogScannerで検出することはできません。
- ウェブアプリケーションへ無差別に攻撃するような一部の攻撃は、 POSTメソッドによる攻撃の場合でもリクエストのクエリ文字列がアクセスログに出力される場合がある為、iLogScannerで検出できる場合があります。
- 攻撃が成功した可能性が高いかどうかを検出することができるのは、SQLインジェクションの攻撃と思われる痕跡からのみとなります。
- 解析レベルを「詳細」に設定したときに行われる「攻撃が行われている可能性」はどのように検出しているのですか?
オプション選択画面で解析レベルの詳細を選択時、以下3項目による解析を行っています。これらは、以下の基準値や条件を設定し、その基準値を超えた場合や条件を満たした場合に攻撃の可能性があると判断しています。また、一部ではウェブサーバのアクセスログに記録されたリクエストのクエリ文字列から、ウェブアプリケーションへの攻撃によく見られる文字列が存在した場合に検出する方法をとっています。
- 同一IPアドレスから同一URLに対する攻撃の可能性
攻撃検出用シグネチャによる解析結果に対して、以下の基準にて、再解析を行います。表中の条件を全て満たす場合、攻撃と判断します。
| No. |
攻撃判定の条件 |
| 条件1 |
同一IPアドレスから同一URL(CGI、ASP、JSP等を含むウェブアプリケーション全般)に対する攻撃痕跡が一定件数に達している。
|
| 条件2 |
同一IPアドレスからの攻撃痕跡が一定件数に達している。
|
※標準解析による脆弱性5種類の分類は問いません。
- アクセスログに記録されないSQLインジェクションの可能性
アクセスログに次の表中の条件を全て満たすリクエストが記録されている場合、ログに記録されないタイプのSQLインジェクション攻撃が行われた可能性があると判断します。
| No. |
攻撃判定の条件 |
| 条件1 |
アクセスログに記録されたリクエストの応答コード(サーバレスポンス)が5xx番台であること。
かつPOSTメソッドであること。
|
| 条件2 |
条件1に合致するリクエストが
- 同一IPアドレスにより
- 一定時間以内に規定数回以上行われている
|
- ウェブサーバの設定不備を狙った攻撃の可能性
| No. |
対象 |
攻撃判定の条件 |
| 1 |
PUTメソッドの設定不備 |
リクエストのメソッドがPUTであり、リクエストに対する応答コードが201であること |
| 2 |
FrontPage Server Extensionsの設定不備 |
FrontPage Server Extensionsの設定不備を狙うような、特定ファイルURLに対するリクエストが行われていること |
| 3 |
Tomcatの設定不備 |
Tomcatの設定不備を狙うような、特定ファイル(URL)に対するリクエストが行われていること |
- 攻撃が成功した可能性が高い痕跡はどのように検出しているのですか?
攻撃を受けた際、ウェブサーバのアクセスログに内部エラーが発生したログや攻撃成功時に記録されるログなどの、特徴的なログが記録されている場合、攻撃が成功した可能性が高い痕跡として検出しています。
- ウェブアプリケーションの実装や使用するサーバソフトウェアによっては、アクセスログに特徴的なログが記録されず、攻撃が成功した可能性が高い痕跡を検出できない場合もあります。
- ウェブサーバのアクセスログに記録された攻撃の痕跡は、攻撃を受けたことが記録として残っているのみで、攻撃を受けた結果(攻撃の成功可否)については記録されていません。このため、iLogScannerの解析だけでは、攻撃の成功/失敗について確実な判断をすることはできません。
- 攻撃が成功した可能性が高いかどうかを検出することができるのは、SQLインジェクションの攻撃と思われる痕跡からのみとなります。
- 攻撃が成功した可能性が高い痕跡が検出されない場合でも、攻撃と思われる痕跡が検出された場合は製作者またはセキュリティベンダーに相談することをお勧めします。
- 解析結果で攻撃があったと思われる痕跡が検出されたのですが、どうすればよいですか?
痕跡が検出された場合は、製作者またはセキュリティベンダーに相談することをお勧めします。
- なお、iLogScannerは簡易ツールであり、実際の攻撃による脆弱性検査は行っていません。攻撃が検出されない場合でも安心せずに、ウェブサイトの脆弱性検査を行うことをお勧めします。
- 解析することができるエラーログを出力するModSecurityのバージョンは?
iLogScannerは以下のウェブサーバソフトウェアのエラーログフォーマットに対応しております。
| ウェブサーバソフトウェア |
エラーログフォーマット |
| Apache HTTP Server(2.0系、2.2系) |
ModSecurity 2.5系が出力するエラーログ形式 |
- 攻撃があったと思われる件数があるのに、その内、ModSecurityで検出・遮断した件数が0件なのですがどうしてでしょうか?
- ModSecurityおよびAppacheのバージョンはiLogScannerが対応しているバージョンになっていますか?
「9.解析することができるエラーログを出力するModSecurityのバージョンは?」を参照してください。
- 結果レポートの表の「検出対象脆弱性」項目の「上記以外の分類(ModSecurity)」に検出数が出力されていませんか?
ModSecurityでエラーログに出力する名称が「iLogScanner」で検出対象としている脆弱性とは異なる場合、結果レポートの表の「検出対象脆弱性」項目の「上記以外の分類(ModSecurity)」に検出数を表示しています。そちらの項目をご確認ください。
- ModSecurity のルールを設定していますか?
ModSecurityで遮断/検出するためのルールが設定されているかどうか確認してください。
- エラーログ出力項目に以下の項目が表示されるように設定されてますか?
「iLogScanner」で解析処理を行う場合、以下の項目が必須になっています。
ModSecurityの設定に以下の項目が含まれているかどうかをご確認ください。
【必須項目】
- アクセス日時
- Apacheのエラーレベル
- アクセス元IPアドレス
- タグ
- リクエストURI
- リクエストの固有番号
- その他
アクセスログとエラーログが記録している時期が異なる為、マッチングができなかったと言う可能性があります。アクセスログおよびエラーログのデータ内容をご確認ください。
- Javaアプレット画面が表示されませんが、何が原因と考えられますか?
- JREがインストールされていますか?
Javaアプレットを動作させるためには、JREが必要になります。Sun Microsystems社のダウンロードサイトから、「J2SE Runtime Environment(JRE) 6.0」をダウンロードしてインストールしてください。
- インストールされているJREのバージョンが6.0より古いバージョンではないですか?
「iLogScanner」が動作するJREのバージョンは6.0となります。JRE 6.0をインストールしてください。
- ウェブブラウザのセキュリティ設定でJavaアプレットが起動するように設定されていますか?
「操作手順
」の「2.2.ウェブブラウザの設定」を参考にして、Javaアプレットが起動するように設定してください。
- 実行中、「入力されたログフォーマットが不正です。」という旨のメッセージが表示されます。どうすればよいですか?
オプション設定画面のアクセスログのフォーマットを入力する項目「ログフォーマット:」に正しく書式指定子が入力されているか、または、必須になっている書式指定子が入力されているかご確認ください。ログフォーマットの詳細については、「操作手順
」の「2.5 アクセスログ形式」に記載しております。ご確認ください。
- 実行中、「指定されたディレクトリは、存在しないか書き込み権限がありません。」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
解析結果の出力先として指定されたディレクトリへの書き込みが許可されていない可能性があります。ディレクトリのセキュリティ設定をご確認ください。
- 実行中、「メモリが不足しています」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
解析するアクセスログファイルに1行が非常に大きいログがある場合、Java Plug-inでエラーが発生する場合があります。この場合、Javaの起動パラメータ「-Xmx(size)m」を指定してJavaが使用するメモリの最大サイズを大きくしてください(デフォルトでは64MBです)。設定方法の例は「操作手順
」の「2.3.Javaの設定」をご確認ください。
- 実行中、「システムエラーが発生しました」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
エラーメッセージに記載されているエラーコードをメモとしてお控えいただき、下記のお問合わせ先へご連絡ください。
- 実行画面の表示で英数字以外の文字が全て"□"で表示されてしまいます。どうすればよいですか? 利用環境は、Vline Linux4.2/FireFox2.0/JRE5です。
詳細は、Tips集に記載しております。「操作手順
」の「6.Tips集」をご確認ください。
- iLogScannerが動作しません。利用環境は、WinXP/Firefox/JRE6です。どうすればよいですか?
JRE6のバージョンは新しいでしょうか。
JRE6の古いバージョンにてFireFoxでJavaアプレットを起動した際、FireFoxがハングアップする現象が確認されております。
JRE6 update20 以降にアップデートしてください。
- 「SQLインジェクションによるホームページ改ざん行為」はiLogScannerで検出できるでしょうか?
「SQLインジェクションによるホームページ改ざん行為」が行われたことを検出することはできません。改ざん行為が行われた可能性が高い痕跡を検出することはできます。
- 検査結果などのデータをIPAに送信していますでしょうか?
現在は、クライアントからIPAへデータの送信は一切行っておりません。
- 実行中、「ファイルまたはディレクトリが存在していません。」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
実行途中でファイルまたはディレクトリが消された可能性があります。選択したファイルまたはディレクトリを確認してください。
- 実行中、「入力ファイルのログタイプ形式が不正です。」という旨のメッセージが表示され、解析処理が行われません。どうすればよいですか?
アクセスログまたは、エラーログのログタイプが異なるか、または必須項目が出力されていない可能性があります。アクセスログについての詳細は、「解析対象のアクセスログ詳細」、エラーログについての詳細は「解析対象のエラーログ詳細」をご確認ください。
- 実行中、「入力ファイルに必須のカラムデータが存在していません。」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
ウェブサーバのアクセスログかどうか今一度ご確認をお願いいたします。また、アクセスログのログタイプが異なるか、必須項目が出力されていない可能性もありますので、ログの項目の確認をお願いいたします。アクセスログについての詳細は、「解析対象のアクセスログ詳細」をご確認ください。
- 実行中、「当ツールを実行する許可が取消しされました。」という旨のメッセージが表示され、処理が中止されました。どうすればよいですか?
実行時に表示された署名確認画面でキャンセルを選択されませんでしたでしょうか。署名確認画面がキャンセルされた場合は、当ツールは実行されません。
※ツール実行時に表示された署名確認画面の署名内容を必ず確認してください。
※一度、ウェブブラウザを閉じ、再度、ウェブブラウザを起動していただく必要があります。
- 解析にはどのくらい時間がかかりますか?
下記に示したアクセスログおよび環境での平均値を記載いたします。
※アクセスログを解析レベル標準で解析した結果になります。
- 解析用アクセスログファイル
・IIS5.0/6.0のW3C拡張ログファイル形式のアクセスログファイル
全ての行で脆弱性が検出されるアクセスログファイル
IIS_W3C-1:ファイルサイズ2MB/14446行(脆弱性 14442件)
IIS_W3C-2:ファイルサイズ2MB/7200行(脆弱性 7196件)
・IIS5.0/6.0のIISログファイル形式のアクセスログファイル
全ての行で脆弱性が検出されるアクセスログファイル
IIS-1:ファイルサイズ2MB/14336行(脆弱性 14336件)
IIS-2:ファイルサイズ2MB/7200行(脆弱性 7196件)
・Apache1.3系/2.0系/2.2系のcommon形式のアクセスログ
全ての行で脆弱性が検出されるアクセスログファイル
Apache-1:ファイルサイズ2MB/14616行(脆弱性 14616件)
Apache-2:ファイルサイズ2MB/7192行(脆弱性 7192件)
- 動作環境
| CPU: |
Intel Pentium4 2.8GHz |
| Memory: |
1GB |
| OS: |
Microsoft Windows XP Professional SP3 |
| Javaランタイムパラメータ: |
最大ヒープサイズ256MB(-Xmx256m) |
- 平均処理時間(単位:秒)
| ・IIS_W3C-1 |
118.2 秒 |
| ・IIS_W3C-2 |
67 秒 |
| ・IIS-1 |
116 秒 |
| ・IIS-2 |
66 秒 |
| ・Apache-1 |
118.4 秒 |
| ・Apache-2 |
65 秒 |
※各自の動作させる環境によって時間の差異は発生します。ご了承下さい。
- 今回のバージョンアップで追加した機能は何ですか。
今回のバージョンアップで追加した機能の内容は以下の通りです。
- より多くの脆弱性を検出できるようになりました。
- SQLインジェクションの検出パターンを増加
- OSコマンド・インジェクションの検出パターンを増加
- クロスサイト・スクリプティングの検出パターンを増加
- 同一IPアドレスからの攻撃の可能性
- アクセスログに記録されないSQLインジェクションの可能性
- ウェブサーバの設定不備を狙った攻撃の可能性
- 解析対象アクセスログを増やしました。
- IIS5.0/5.1/6.0/7.0のIISログファイルタイプのアクセスログ解析処理の追加
- Apache HTTP Server 1.3系/2.0系/2.2系のcommonタイプのカスタムフォーマット対応
- ModSecurity2.5が出力するApacheのエラーログファイルを元にModSecurityで検出・遮断したデータを解析し、結果レポートを出力する機能を追加しました。
- 動作する環境を増やしました。