SQL インジェクション攻撃を検知するツール「iLogScanner」の利用方法


[初回公開] 2008年05月13日

インターネット上に動く Web アプリケーションやシステムがハッキングされたり情報漏洩する要因の 1 つに SQL インジェクションと呼ばれる攻撃に遭ったときがあり、その SQL インジェクション攻撃があったかを検知するツール「iLogScanner」の利用方法について紹介する。

SQL インジェクション攻撃を検知するツール「iLogScanner」の利用方法

1.SQL インジェクションとは

SQL インジェクションとは、ソフトやアプリケーションの脆弱性を利用してデータベースの情報を読み書きする実行文(SQL 文)を利用した攻撃である。



SQL インジェクション攻撃が成功すると、データベースに保存されているデータを参照したり、全データを削除することができる。
そのため、個人情報の漏洩やデータの改ざんといった被害が生じる。

例えばシステムにログインする場合に ID(カラム名:id)とパスワード(カラム名:pw)に合致するデータがデータベースにあるか参照する仕組みがあるとする。
ログインの画面で ID には「1」、パスワードには「OR ‘1’=’1」を入力すると下記の SQL が実行されるが、WHERE にどのような条件があっても「1 = 1」が常に成功する条件となるため、データの参照が成立してしまう。

SELECT {データ取得するカラム} FROM {対象テーブル} WHERE id=’1′ AND pw=’OR ‘1’=’1′

2.SQL インジェクションを防止する方法

SQL インジェクションを防止する方法する方法としては、ソフトまたはアプリケーションで入力された値をそのまま SQL に利用しないように入力文字のチェックを行うか、プレースホルダーと呼ばれる SQL を組み立てる際に後から挿入するようにプログラムを行う。

3.SQL インジェクションを検知する方法

SQL インジェクションを検知する方法としては、WAF(Web Application Firewall)と呼ばれるシステムを利用して自動的かつリアルタイムに攻撃を遮断するか、Web サーバのログを参照して攻撃の有無を確認する方法がある。



前者の WAF を利用するとウィルス対策ソフトのようにさまざまな攻撃パターンに対応しているため、システム管理者の手間は軽減されるが有償であることが多い。

対して後者の Web サーバのログの確認は攻撃をリアルタイムで検知することは難しいが、攻撃の有無や攻撃方法を知ることができる。
ログを目視で探す方法もあるが、IPA が無用で提供している「iLogScanner」を利用するとログを 1 行ずつ見なくても SQL インジェクションの攻撃を検知することができる。

4.iLogScanner とは

iLogScanner とは IPA(独立行政法人情報処理推進機構)が無料で提供している Web サーバのアクセスログから攻撃と思われる痕跡を検出するためのツールである。

リリース当初はログをアップロードして利用していたが、現在ではオフライン版として手元の Windows パソコンでログを解析することができる。

以前の iLogScanner の利用の様子

あくまでログから攻撃の有無を探すツールであるため、稼働しているシステムやアプリケーションの脆弱性を検査するものではない。

iLogScanner で解析可能なログは次の通りである。

  1. アクセスログ
    1. IIS6.0/7.0/7.5/8.0/8.5のW3C拡張ログファイルタイプ
    2. IIS6.0/7.0/7.5/8.0/8.5のIISログファイルタイプ
    3. Apache HTTP Server1.3系/2.0系/2.2系/2.4系のcommonタイプ(カスタムフォーマット対応)
  2. エラーログ
    1. Apache HTTP Server2.0系/2.2系、ModSecurity 2.5系/2.6系/2.7系/2.8系のタイプ
    2. Apache HTTP Server2.4系、ModSecurity 2.5系/2.6系/2.7系/2.8系のタイプ
  3. 認証ログ
    1. sshd(syslog)
    2. vsftpd(vsftpd形式、wu-ftpd形式)


また、iLogScanner を実行させるためには Java の実行環境(JDK)が必要となる。

5.iLogScanner の使い方

iLogScanner の使い方としては、iLogScanner をダウンロードした Windows パソコンに Web サーバのログを指定して実行するだけでよい。

操作画面をマウスとキーボードで操作する GUI 版とコマンドプロンプトでコマンドで操作する CUI 版の 2 種類が用意されている。

GUI 版は「iLogScanner.jar」をダブルクリックして起動し、表示される画面よりアクセスログの形式やアクセスログの場所を選択してボタン「解析開始」をクリックするとログの解析結果が画面に表示される。

また、CUI 版はコマンドプロンプト起動した後に「iLogScanner.bat」を下図のようにログの種類やログの場所をオプション値として指定して実行することで出力先のフォルダに結果が記載されたファイルが生成される。

iLogScanner を実行している様子

関連記事

コメントを残す