第14回 Webアプリケーションセキュリティの常識知ってるつもり?「セキュリティの常識」を再確認(3/4 ページ)

» 2005年06月16日 13時46分 公開
[杉山俊春(三井物産セキュアディレクション),ITmedia]

 ここでは、よく行われる検査手法としてBlackBoxテストについて詳細な説明をしていく。

 前述した通り、BlackBoxテストによるWebアプリケーションの検査は、基本的に不正な文字列をアプリケーションに渡して、その反応を見る作業である。これらの不正入力が内部で正しくフィルタリングされていない場合、アプリケーションは何らかの想定外の動作をすることになる。この結果から、どの不正文字列に対しては安全であるか、どの不正文字列に対して脆弱であるかを判定することができる。

 もちろん、ソースコードを見ない検査であるため、「脆弱性は100%存在しない」と断言することはできない。しかし、攻撃者の立場から考えられる入力を数多く試してみることにより、検査対象アプリケーションの安全性は確かなものになる。

自動検査ツールによるBlackBox検査

 Webアプリケーションの検査パターンを手動で逐一入力していくはとても手間のかかる作業である。検査対象となる個所は、Webアプリケーションで利用されるすべてのパラメータであり、そのそれぞれに対して、検査パターンを試さなくてはならない。そこで、簡単な検査パターンを、手間をかけずに自動で作業を行ってくれる自動検査ツールがある。

 自動検査ツールは大きく2種類に分けることができる。

  1. Well-KnownのWebアプリケーションの検査を行う
  2. Webアプリケーションを自動巡回して検査を行う

 前者のWell-KnownのWebアプリケーションの検査が対象とするのは、Webサーバプログラムと一緒にデフォルトでインストールされるCGIや、一般に広く使われているフリー、もしくはシェアウェアのWebアプリケーションである。

 また、Webアプリケーションだけでなく、一般的な名前のディレクトリやファイルの検索を行うものもある(例えば、「admin」、「*.back」など)。これらを検査することによって、管理用のプログラムを不正利用されることを防いだり、バックアップファイルを直接閲覧することによるアプリケーションのソースの漏えいを防いだりすることができる。

 これらの検査を行うツールは、フリーのアプリケーションとしてインターネット上で入手可能である。代表的なツールを以下に示す。

Wiktoの例 簡単な設定で自動的にチェックを行ってくれる(Wiktoの例)

 後者のWebアプリケーションを自動巡回する検査では、Well-KnownのWebアプリケーションの検査よりも手動に近い検査を自動で行うものである。この種のツールで使えるものとしては、フリーのものはまだなく、商用のもののみとなっている。自動巡回を行う検査ツールの特徴としては、以下のものが挙げられる

Webサイトのリンク等を辿って自動巡回する
自動的に不正文字を入力し、Webアプリケーションの出力を見て脆弱かどうか自動判別する

 自動検査ツールを使うとWebアプリケーションの検査が非常に楽になる。しかし、自動巡回検査ツールは欠点もある。それを以下に列挙する。

すべての画面を巡回できるとは限らない
入力が複数画面にまたがる場合に対応していない
すべての状態で検査できるとは限らない
すべての脆弱性を検査できるわけではない

 例えば、静的コンテンツのみが対象であれば、リンクをたどるだけで自動巡回が可能である。しかし、対象としているWebアプリケーションでは、ほとんどの場合が動的にコンテンツを生成しており、巡回漏れが生じてしまう。また、Webアプリケーションの構成や、内部アルゴリズムの推測など、人の判断が絡んでくる個所についても当然ながら検査することはできない。

手動によるBlackBox検査

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ