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

2018.04.10

サイバー攻撃用語

image

目次

クロスサイトリクエストフォージェリ(CSRF)とは

クロスサイトリクエストフォージェリ(CSRF = Cross-Site Request Forgeries)とはWebアプリケーションの脆弱性の一種です。クロスサイトの名前通り複数のサイトにまたがり攻撃が成立する仕組みです。
CSRFはユーザーが会員サイトにログインしている状態で攻撃者が作成した偽サイトを閲覧すると、ユーザーがログインしている会員サイトへ強制的に悪意のあるリクエストが送信されてしまう攻撃です。フォームへの書き込みや商品の購入など本来ログインしているユーザーのみが可能な操作のはずが、CSRFによりユーザーが認識していないところで勝手に書き込みや商品を購入されてしまいます。クロスサイトスクリプティング(XSS)は罠が設置されたページを閲覧しただけで不正なスクリプトが実行されますが、CSRFは会員サイトなどに「ログイン」している状態である必要があります。

クロスサイトリクエストフォージェリ攻撃の手法

CSRF攻撃は以下のような流れで実行されます。

① 攻撃者が攻撃用の偽サイトを用意します。
② ユーザーがSNSサイトなどにログインしている状態で、偽サイトを閲覧します。
③ その時ユーザーがアクセスするつもりのないSNSサイトへ強制的にアクセスされ、コメントを書き込まれます。

クロスサイトリクエストフォージェリ攻撃の被害事例

・ソーシャルネットワーキングサイトmixiで「はまちちゃん」の書き込み被害
2005年株式会社イー・マーキュリー(現在は株式会社ミクシィ)が運営するソーシャル・ネットワーキング「mixi」にてURLをクリックすると勝手に「ぼくはまちちゃん!」というタイトルの日記が書き込まれる事象がありました。これはCSRF攻撃よるもので、「はまちちゃん」の場合は、書き込まれた日記にCSRFを誘発するリンク含まれていたため被害に遭う人が連鎖的に広がりました。「はまちちゃん」はCSRFが世の中に知られるようになった事例です。

・複数の誤認逮捕をパソコン遠隔操作事件
2012年インターネットの掲示板などに小学校襲撃や殺害予告が書き込まれ、5名が逮捕される事件が起こりました。後にこれらの事件は全てCSRF攻撃が原因で書き込まれたもので、5名は無実であることがわかりました。事件の1つ横浜市のホームページに書き込まれた小学校襲撃予告は、別サイトの掲示板に書き込まれていたURLをクリックすると勝手に書き込まれてしまうものでした。CSRF攻撃により無実の人が逮捕されてしまった事例です。

クロスサイトリクエストフォージェリ攻撃の対策方法

・WebブラウザのReferer(リファラー)をチェックする
HTTPリクエストを受けた際にリファラーをチェックすることで、投稿ページにアクセスしているかCSRF攻撃によるアクセスかを判別します。しかしリファラー情報を出力しないブラウザを使用している場合には利用できない欠点があります。

・パスワードの再入力を求める
商品の購入などの前に必ずパスワードの再入力を求めるようにします。重要な変更時に正規ユーザーが直接パスワードを入力することでCSRF攻撃対策となります。また、文章の書き込みや削除については、「本当に削除して良いですか?」のようなポップアップを表示しワンクッション挟むことでユーザーの確認を促す方法もあります。

・CAPTCHA(画像認証)の導入
GoogleやYahooでアカウントを作成する際にも利用されているもので、フォーム入力時の画面にランダムの英数字が表示される画像で表示され、ユーザーに同じ英数字を入力させるものやパズルを完成させるものなどがあります。
正規のユーザーが目視で確認し操作する必要があるため、CSRF攻撃のように勝手にフォームへ書き込みがされるといったことは起こりません。

・ワンタイムトークンを使用
事前にトークン(第三者が予測困難なランダムな文字列)をセッション変数に記憶しておき、利用者の入力を確認す画面においてトークンをhiddenパラメーターに出力するようにします。入力を実行するページにおいてhiddenパラメーターのトークンとセッション変数に記憶したトークンを比較し合致しない場合は実行しないようにします。こうすることで、攻撃者がhiddenパラメーターに出力された情報を入手できなければCSRF攻撃は成立しません。

関連記事