サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性 - (page 4)

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

2008-01-15 08:00

検査方法

 CSRFの検査は、実際にセッションが有効な状態で、実際に処理を実行するリクエストを送信し、想定どおり処理が行われているかどうかを確認することだ。先の例であれば、ログインしている状態で、リクエストdを送信し、パスワードの変更や商品の購入などの処理が行われているかどうかを確認します。これらの処理が行われている場合、脆弱性があると判断できます。

対策

 CSRF対策の基本は、実際に処理を行うリクエスト(例ではリクエストdとなる)が、ユーザーが意図したとおりに行われたものかどうかをアプリケーションで判断することだ。その判断は、攻撃者が推測できない情報をリクエストに付加することで可能になる。具体的には、以下のいずれかを正しく行うことだ。

 詳細については、「開発者のための正しいCSRF対策」に詳しく書かれている。

1. ワンタイムトークンを使用する。

2. パスワード認証を行う。

3. CAPTCHAを使用する。

 今回までは、よく発見される脆弱性について検査方法を説明してきた。安全なアプリケーションかどうかを判断するには、全てのパラメータ、URLに対して、今回までに説明した方法でひとつずつ脆弱性の検査を実施する必要がある。

 たとえば、10個のURLと各URLにパラメータが10個ずつあるとすると、10×10=100個の検査をひとつの検査パターンについて実施しなければならない。このため、検査パターンが10個(検査パターンはURLエンコードなどを含めると非常に多く存在します)あったとすると、100×10=1000パターンの検査を実施しなければならないため、人の手による検査では非常にコストがかかってしまう。

 そこで、検査コストを抑えるために、AppScanのような自動検査ツールが必要になる。次回は、AppScanを例とした自動検査ツールによる検査手法について説明する。

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

ZDNET Japan クイックポール

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

NEWSLETTERS

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

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

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