クロスサイトリクエストフォージェリ

24時間365日戦える営業マンを作りあげます。ホームページコンサルタント山田直毅(なおたか)です。


WEBシステムの脆弱性診断が一般的になってきましたが、日々新しい要素が追加されています。その1つとして、mixiで起こった「ぼくはまちちゃん」騒動で有名になったのが「クロスサイトリクエストフォージェリ」です。フォージェリとはforgery:偽造・捏造という意味合いを持ちます。技術的には、外部サイトからのHTTPリクエストにより想定外の処理を実行させる攻撃のことを指します。


最近ではログインが必要なサービスが多いですが、ログイン状態が保存されるのは一般的にブラウザのcookie(クッキー)です。cookieの有効期限はブラウザを閉じても継続設定することができますので、ログインが必要なサービスにアクセスしただけでログイン状態になっていることがあります。これはユーザにとって非常に便利なのですが、これをセキュリティホールとして狙うと、ログイン状態にあるユーザが悪意のあるページにアクセスした際、あたかもそのユーザがログインした状態でサービスを利用したような挙動を引き起こすことができます。


例えば、「ぼくはまちちゃん」という日記を書くリクエストを送信するプログラムを記述した悪意のあるページがあるとします。そこにmixiにログインした状態をcookieに残したままアクセスすると、(今は既に対応がなされていますので、実際にはそうなりませんが、)あたかも正規の会員が日記を投稿したように動作してしまいます。URLと送信しているパラメータ(インターフェース)が把握できれば、それを偽装してHTTPリクエストを送信することができますので、どんなWEBシステムであってもこの脆弱性のターゲットとなり得ます。


HTTPリクエストの発信元を特定したり、特定の画面遷移をたどらなければ処理を実施しないようにシステム側で対応しなければいけません。