サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2) - (page 4)

池田雅一(テクマトリックス)

2007-09-13 20:22

 アプリケーションに意図しない動作をさせるには、入力データに想定していなかったデータを使用するか、想定していないタイミングでページの呼び出しを行う必要がある。従って脆弱性の確認テストでは入力データに想定していなかったデータを使用するか、想定していないタイミングでページを呼び出す以下のようなチェックを行う。

入力データのテスト
想定していないデータ種類のテスト
・数値項目に英字や記号を入れるなどのテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
メタキャラクタのテスト
・「'」「"」「<」「>」「&」「;」「|」「\」など特別な意味を持つデータを入力するテストを実施。
・設計どおりの処理(エラー処理など)がされているかを確認する。
選択肢以外のデータのテスト
・ラジオボタン、チェックボックス、セレクトリストで指定している選択肢以外のデータを入力するテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
Hiddenフィールド、Cookie書き換えテスト
・Hiddenフィールド、Cookieを他の値に書き換えるテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
非常に大きな桁数のデータのテスト
・通常10桁程度しかないパラメータに1000桁のデータなどを入れるテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
境界値前後のテスト
・たとえば、0〜100の値をとる項目に対し、「-1,199,101」といったデータを入力するテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
非常に大きな数字、非常に小さな数字のテスト
・数値項目に99999999999999999999、-99999999999999999999、0.0000000000000001、-0.0000000000000001といったデータを入力するテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
パラメータの削除のテスト
・正常なリクエスト時に送信されるパラメータを削除するテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
パラメータ値削除のテスト
・正常なリクエスト時に送信されるパラメータの値を削除するテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
呼び出しのテスト
処理フローを無視した呼び出し
・たとえば、画面遷移が「ページA」→「ページB」→「ページC」という処理で、ページAにアクセスした直後にページCへアクセスするテストを実施する。
・設計どおりの処理(エラー処理など)がされているかを確認する。
同時呼び出し
・異なるユーザーで同時にログインしてみるなど、異なるユーザーで同時に同じ処理を行うテストを実施する。
・同時に行った処理が別の処理として行われているかを確認する。

 入力データのテストでは、すべてのパラメータ、Cookieをテスト対象とする必要があるが、Javas Scriptでエラーチェックを行っていた場合や、Hiddenフィールドやラジオボタンなどはブラウザでは値の変更ができない。このような場合、「Paros」のようなリクエストを書き換えられるツールを使用したり、保存したHTMLファイルを書き換えてテストを実施する。具体的な方法についてはツールのマニュアルなどを参照してほしい。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]