情報セキュリティマネジメント試験 用語辞典
例えば、アカウント情報の強制的な変更、商品購入、掲示板への投稿といった意図しない操作が知らぬ間に行われてしまう可能性がある。
- 別名:
- XSRF
- 分野:
- 情報セキュリティ
サイバー攻撃手法 - 重要度:
- ★★★
(Wikipedia クロスサイトリクエストフォージェリより)クロスサイトリクエストフォージェリ(Cross site request forgeries、略記:CSRF、またはXSRF)は、WWW における攻撃手法のひとつである。
具体的な被害としては、掲示板に意図しない書き込みをさせられたり、オンラインショップで買い物をさせられたりするなどが挙げられる。また、ルーターや無線LAN等の情報機器のWebインタフェースが攻撃対象となれば、それらの機器の設定を勝手に変更される懸念もある。
日本においては、2005年4月19日ごろにmixiで発生したはまちや2による「ぼくはまちちゃん」騒動(後述)によってその存在が広く知られることとなった。また、1990年代はイメタグ攻撃とも呼ばれていた。1997年5月に起きた農水省オウムソング事件も本手法を用いたものである。
原理
攻撃の大まかな流れは下記の通り。
- 攻撃者が、攻撃用の Web ページを作成して WWW 上に公開する。
- :(WWW上でなくとも、未対策のHTMLメーラーにウェブページをHTMLメールとして送信するなど、様々な攻撃手法が考えうる。)
- 第三者が、攻撃用の Web ページにアクセスする。
- 第三者は、攻撃者が用意した任意の HTTP リクエストを送信させられる。
- 送信させられた HTTP リクエストによって、攻撃者の意図した操作が行われる。
- (ここで「第三者」とは、被攻撃サイトに意図せずアクセスさせられると言う意味で用いている。)
簡単な HTML を例示して、その原理を具体的に解説する。
- attack.html:
<!DOCTYPE html> <html lang="ja"> <head> <title>攻撃用のページ</title> </head> <body onload="document.attackform.submit();"> <form name="attackform" method="post" action="http://example.com/bbs/register.cgi"> <input type="hidden" name="title" value="攻撃者が指定した題名"> <input type="hidden" name="article" value="攻撃者が指定した本文"> <input type="submit" value="送信"> </form> </body> </html>
- clickme.html:
<!DOCTYPE html> <html lang="ja"> <head> <title>誘導用のページ</title> </head> <body> <p>ようこそいらっしゃいました。</p> <iframe width="1" height="1" src="attack.html"></iframe> </body> </html>第三者が clickme.html にアクセスすると、以下のような流れで http://example.com/bbs/register.cgi に自動的に書き込み処理が行われる。
- clickme.html のインラインフレーム内で attack.html が呼び出される。
- attack.html の body 要素に指定された onload 属性により、ページが読み込まれるのと同時に、そのページ内のフォームの送信ボタンが自動的に押される。
- http://example.com/bbs/register.cgi に自動的にアクセスが行われ、attack.html のフォーム内に指定された内容の書き込みを行う。
なお、これらの出来事はすべて clickme.html 内に存在する 1 ピクセル四方のインラインフレームで行われるため、被害者に攻撃を受けたことを気付かれにくくなっている。「ぼくはまちちゃん」騒動で使用された攻撃では、インラインフレームの代わりに img タグを利用した巧妙な偽装が行われていた。
imgタグに偽装した手法は下記のようなものである。
<html> <body> <img src="; </body> </html>この手法では、http request methodはpostでなくgetとなってしまうため、文字数に限界があるものの、実質1行ですべてを表すことが可能であり、上記例であれば本文や題名を変更したhtmlタグを複数記述することによって対象とするregister.cgiに複数回のアクセスを行うことが可能となる。
こういった手法が日本において初めて用いられたのは1997年のあやしいわーるどであり、当時は掲示板荒らしの手法、またメールボムの手法として、いたずらに用いられていた。対策
利用者側
ログインしていることが必要な手続きにおいては、ログアウトをしてセッションを破棄しておけば認証確認の段階で手続きが拒否されるので被害が抑えられる。必要な手続きを済ませたならログアウトすることが望ましい。
Webサイト・Webアプリケーション製作者側
フォームを受け付けるWebサイト管理者(情報機器の設定のためにウェブインタフェースを提供しているあらゆるメーカーを含む)は、以下のような対策を施さなければならない。
よく知られた対策方法として、FormをHTTP GETする際に、暗号論的擬似乱数値(いわゆるnonce)を、Cookie値またはセッション、およびformのhidden値として発行し、HTTP POST時にその両者の値の同一性を検証するという方法がある(偽造を防ぐため、formのhidden値は暗号学的ハッシュ関数を通しておく)。外部サイトの作成者はこれらの値を偽造することができないため、不正なPOSTはすべてサーバ側で検出できる。(但し、HTTPヘッダ・インジェクション、セッションハイジャック、クロスサイトスクリプティングについても対策を施さなければ意味がない。)現代的なHTML Form生成用ライブラリの多くは、この機能をあらかじめ備えている。
より安易な方法として、HTTPリファラ (Referer) を用いて対策することもできる。CSRFは外部のドメインからのHTTPリクエストであるため、HTTPのRefererを取得し照合することによって外部サイトからの不正なPOSTを判別できる。第三者のサイトから、Refererを偽造したPOSTを送信させることは不可能であるため、Referer値をチェックすることで不正な送信を検出できる。ただしHTTPリクエストの送信者自身がRefererを偽造することは容易であるため、Referer照合はCSRFの対策とはなっても、不正なセッションが作成されることへの対策にはならない点に注意が必要である。また、リファラはブラウザの設定で容易に非送信にすることができる。リファラを非送信に設定した利用者は正規のサイトから手続きを行っても不正としてはじかれてしまうため、この対策方法の導入には検討が必要である。
「ぼくはまちちゃん」 騒動
2005年4月中旬ごろ、SNS サイトの一つである mixi において、突如として「ぼくはまちちゃん! こんにちはこんにちは!!」という定型文が、投稿者の意図せぬまま書きこまれるという事態が発生した。この書き込みには別の mixi 利用者を同様の罠におびき寄せるような細工がしてあったため、同メッセージは急速に mixi 上にあふれることとなった。利用者たちは当初、いったい何がどうしてどういったことが起こっているのかわからず、慌てることとなった。mixi 利用者の中には少なからぬ数のシステムエンジニアもいたことから、そういった利用者の間には、次第に、この混乱の原因がクロスサイトリクエストフォージェリであることがわかっていった。しかし、その後の mixi 運営当局側の対処が付け焼き刃的で抜本的なものでなかったこと、また告知が不十分だったり不親切だったりするのではないかといった指摘があったことなどの要因もあいまって、mixi の利用者に困惑がひろがり、ついには「セキュリティホール memo」や「IT Mediaニュース」、「インプレスwatch」などでも取りあげられるなど、 mixi の外でも話題となった。
また、2009年12月上旬に開始したばかりのサービスであるAmebaなうでも同様の事態が起きた。横浜市小学校襲撃予告事件
パソコン遠隔操作事件
横浜市ウェブサイトの意見投稿コーナーに、同市保土ヶ谷区の小学校への無差別殺人予告が投稿された事件で、犯人はクロスサイトリクエストフォージェリを利用することで無関係の他人に書込をさせていたことが判明している。被害にあったパソコンを所有していた大学生が逮捕・起訴され保護観察処分となったが、のちに神奈川県警が誤認逮捕を認めて謝罪した。
「サイバー攻撃手法」の用語
「情報セキュリティ」の他の分野
「セキュリティ」の他のカテゴリ
このページのWikipediaよりの記事は、ウィキペディアの「クロスサイトリクエストフォージェリ」(改訂履歴)の記事を複製、再配布したものにあたり、このページ内の該当部分はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下 に提供されています。