[初回公開] 2008年05月13日
インターネット上に動く Web アプリケーションやシステムがハッキングされたり情報漏洩する要因の 1 つに SQL インジェクションと呼ばれる攻撃に遭ったときがあり、その 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 で解析可能なログは次の通りである。
- アクセスログ
- IIS6.0/7.0/7.5/8.0/8.5のW3C拡張ログファイルタイプ
- IIS6.0/7.0/7.5/8.0/8.5のIISログファイルタイプ
- Apache HTTP Server1.3系/2.0系/2.2系/2.4系のcommonタイプ(カスタムフォーマット対応)
- エラーログ
- Apache HTTP Server2.0系/2.2系、ModSecurity 2.5系/2.6系/2.7系/2.8系のタイプ
- Apache HTTP Server2.4系、ModSecurity 2.5系/2.6系/2.7系/2.8系のタイプ
- 認証ログ
- sshd(syslog)
- vsftpd(vsftpd形式、wu-ftpd形式)
また、iLogScanner を実行させるためには Java の実行環境(JDK)が必要となる。
5.iLogScanner の使い方
iLogScanner の使い方としては、iLogScanner をダウンロードした Windows パソコンに Web サーバのログを指定して実行するだけでよい。
操作画面をマウスとキーボードで操作する GUI 版とコマンドプロンプトでコマンドで操作する CUI 版の 2 種類が用意されている。
GUI 版は「iLogScanner.jar」をダブルクリックして起動し、表示される画面よりアクセスログの形式やアクセスログの場所を選択してボタン「解析開始」をクリックするとログの解析結果が画面に表示される。
また、CUI 版はコマンドプロンプト起動した後に「iLogScanner.bat」を下図のようにログの種類やログの場所をオプション値として指定して実行することで出力先のフォルダに結果が記載されたファイルが生成される。
関連記事
CSS で float したリンクが小さくなる場合の解決方法
CSS の float を利用すると div タグなど特定の領域やリストタグ(li タグ)を縦並びから横並びにすることができるが、float で指定した a タグのリンクが範囲が小さくなりマウスやタップが反応しな…
LINE 公式アカウントを作成して友だち追加した人に一斉にプッシュ通知する方法
LINE は友だち同士で連絡や会話する以外に、公式アカウントを作成してそのアカウントに友だち追加してくれた人に案内(プッシュ通知)して販売促進につなげる活用方法があり、公式アカウントの作成…
動画を再生する中でスライダーを利用して指定の位置で早送りや巻き戻しを行いたい場合に指定位置から再生されなかったり、反応しないことが発生することがあり、正常に再生できない場合の対応方法…