クロスサイトリクエストフォージェリ(CSRF)【情報処理安全確保支援士 令和4秋 午後1 問1 No.3】

設問3 【脆弱性の修正】について答えよ。

(1)本文中の下線③について、罠サイトではどのような仕組みを使って利用者に脆弱性Bを悪用する攻撃リクエストを送信させることができるか。仕組みを50字以内で具体的に答えよ。


下線③では、「図6の攻撃リクエストを送信させる」と記載されています。

図6では、設問2の解説で見たように、curlコマンドがリクエストされています。

図5と異なるのは、攻撃者が直接フォームにコマンドを入力したわけではなく、WebアプリRの利用者自身が悪意なくPOSTしたリクエストであるということです。


では、どのように実現したのでしょうか?


問題文でG主任が話しているように、WebアプリRにログイン済みの利用者を罠サイトに誘い、罠サイト内でボタンを押させるなどの何かしらのリクエストを送らせます。

罠サイトのソースには、hidden項目で悪意のあるコマンドを含んだ値をinputしておけば、WebアプリRにリクエストすることができます。

引用:【解答・解説】情報処理安全確保支援士 令和4年度秋季【午後1問1】|南の島のSEエンジニアブログ


このように、掲示板や問い合わせフォームなどを処理するWebアプリケーションが、本来拒否すべき他サイトからのリクエストを受信し処理してしまう攻撃を「クロスサイトリクエストフォージェリ(CSRF)」と言います。

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

2023年3月6日


(2)本文中の(e)に入れる、トークンがもつべき特徴を15字以内で答えよ。

クロスサイトリクエストフォージェリでは、トークンの設定が有効な対策となります。


トークンとは、正規のページからアクセスが行われていることを証明するための値のことです。

トークンはランダムな文字列です。


WebアプリRが発行し、セッションに紐づけた「トークン」を、リクエストパラメータに付与することで、WebアプリRは自分に届いたリクエストのトークンが、自分が発行したトークンと一致するか検証できます。

攻撃者はWebアプリRから利用者に発行されたトークンの値を知らないため、事前に罠サイトにトークンの値を推測してセットしておく以外に方法がありません。


この時、予測可能なトークンであれば、トークンチェックを突破されてしまうため、推測困難な値にしておく必要があります。


回答:推測困難な