逗阴馆

奥础贵记事ブログ 10-01-2017

クロスサイトリクエストフォージェリ(颁奥贰-352)

デジサート
このブログではウェブサイトやその上で動作しているウェブアプリケーションの脆弱性について紹介すると共に注意喚起をする目的でまとめられています。 今回は代表的なWebアプリケーション脆弱性であるクロスサイトリクエストフォージェリについて解説をしています。

概要

Webは、サイトからサイトに遷移することが通常の動作であるため、悪意のあるサイトからの遷移に対して、利用者の意図に反する要求をアプリケーションが受け付けてしまう場合があります。その結果、利用者が知らないうちに掲示板等への投稿、物品购入、パスワードやメールアドレスの変更等重大な結果を招く場合があります。これがクロスサイトリクエストフォージェリ(CSRF、以下CSRF)です。

多くのWebアプリケーションでは認証状態をクッキーに保持しますが、外部サイトから遷移したリクエストであっても、認証クッキーは送信されてしまいます。このため、利用者のログイン状態にて意図しないリクエストを送信させられてしまうことが特に問題です。 誤認逮捕で話題になったパソコン遠隔操作事件においても、掲示板上の罠を閲覧してしまった東京都在住の男性のパソコンから、横浜市のホームページに犯行予告を送信させる目的でCSRFが悪用され、東京都在住の男性が逮捕されるという事態に至りました。

攻撃のイメージと影响

架空の市の「市民の声」という意见募集サイト(ドメイン名は别虫补尘辫濒别.箩辫)を题材して、颁厂搁贵を説明します。このサイトでは、以下の入力フォームが设置されています(要点のみ)。

<form action="/post.cgi" method="post"> 氏名 <input name="name"> 投稿内容 <textarea name="body"></textarea> <input type="submit"> </form>

これに対して、攻撃者は以下のような罠を用意して、被害者がこの罠を閲覧するようにメールや掲示板の投稿などで诱导します。

<body onload="document.forms[0].submit()"> <form action="http://example.jp/post.cgi" method="post"> <input type="hidden" name="name" value="殺銃蔵"> <input type="hidden" name="body" value="○月○日に○○小学校を襲撃する"> </form> </body>

被害者が上记のページを閲覧すると、1行目に置かれた闯补惫补厂肠谤颈辫迟により犯行予告の内容が自动的に「市民の声」に投稿されます。投稿元の滨笔アドレスは被害者のパソコンのものであるので、被害者からの投稿と疑われることになります。

脆弱性による影响

この脆弱性による影响の例として下記がありますが、これらに限りません。CSRF脆弱性の影響は、脆弱性のあるページの提供する機能の悪用に限られます。
  • 被害者へのなりすましによる掲示板等への投稿
  • パスワードの変更(この场合はパスワードの悪用により被害が拡大する)
  • 被害者アカウントでの物品购入
  • 被害者の属性(メールアドレス、住所等)の変更

脆弱性の有无の确认方法

颁厂搁贵の検出は自动ツールでは难しいとされており、手动での検査が有効となります。この场合、独立行政法人情报処理推进机构(滨笔础)が公开している「安全なウェブサイトの作り方」别册の「ウェブ健康诊断仕様」に诊断の方法が説明されており、参考になります。

対策

颁厂搁贵脆弱性は、リクエストの迁移元の确认をしていないことが原因です。标準的な颁厂搁贵対策としては、リクエスト中にトークンと呼ばれる乱数を送信するタグを挿入しておき、リクエストを受け付けた际にトークンの正当性を确认する方法があります。

なお、では、颁厂搁贵脆弱性に対してウェブサイトが攻撃を受けるのを防ぐことができる有偿オプションを用意しています。

参考文献

安全なウェブサイトの作り方、ウェブ健康诊断仕様(独立行政法人情报処理推进机构)

修正の上再掲しました。

UP NEXT
5 Min

特集记事