情報処理安全確保支援士試験 令和3年度 春期 午後1 問1
【出典:情報処理安全確保支援士試験 令和3年度 春期 午後1 問1(一部、加工あり)】
[一つ目の問題]
Y氏は、一つ目の問題を、次の攻撃シナリオで説明した。
Sサービスにログインしていない利用者が攻撃者の用意した罠サイトにアクセスすると、図4中に示すシーケンスXが走り、後に、②利用者が攻撃を受けているとは知らずにSサービスにファイルをアップロードすると、そのファイルを攻撃者にダウンロードされてしまうおそれがある。
この対策として、RFC 6749は、図2のシーケンスで、推測可能な値であるstateパラメタを利用することを推奨している。Sサービスはstateパラメタを(β)を送信する際に付与する。Sサービスは(γ)を受信する際に、そのセッションが、stateパラメタを付与した際の(β)のセッションと同一であるか否かを確認する。同一である場合だけシーケンスを続ける。
d:認可コード、e:アクセストークンの要求
図4(攻撃のシーケンス)では、「Sサービスにログインしていない利用者が攻撃者の用意した罠サイトにアクセス」した際のシーケンスを示しており、利用者とSサービスの間に攻撃者が介在しています。
当然ですが、利用者やSサービス、Tサービスでは攻撃者が介在していることを分からせないために、いつも通りのシーケンスに沿ったやり取りとなっているはずです。
そこで通常のやり取りを示す図5(OAuthを用いた認可のシーケンス)と比較してみると、攻撃者から利用開始を送信して認可コードを受信するまで同じで、認可コードは通常であれば利用者がリダイレクトしてSサービスに送信します。
したがって、攻撃者は自身が受信した認可コードを利用者に転送することが分かると思います。
その後のSサービスとTサービス間のやり取りも通常と同じで、Sサービスからアクセストークンの要求を送信していると思われます。
下線②について、ファイルのアップロードと、ファイルのダウンロードは、それぞれTサービスの誰のアカウントによって行われるか。それぞれ6字以内で答えよ。:攻撃者/攻撃者
「②利用者が攻撃を受けているとは知らずにSサービスにファイルをアップロードすると、そのファイルを攻撃者にダウンロードされてしまうおそれがある。」
図4(攻撃のシーケンス)を見ると、Sサービスへの利用開始、Tサービスへの認可の要求を送信しているのは攻撃者になり、Tサービスのアカウントを持つ攻撃者がアクセスしていることが想像できます。
図5(OAuthを用いた認可のシーケンス)で、アクセストークンを受信したSサービスがTサービスにアカウント名を要求すればTサービスでは攻撃者のアカウント名を返信することになります。
したがって、利用者が知らない間に攻撃者のアカウントでファイルのアップロードを行える環境ができてしまっており、アップロードされたファイルは当然ですが同じアカウントをもつ攻撃者によってダウンロードすることができてしまいます。
β:(い)、γ:(か)
「Sサービスはstateパラメタを(β)を送信する際に付与する。Sサービスは(γ)を受信する際に、そのセッションが、stateパラメタを付与した際の(β)のセッションと同一であるか否かを確認する。同一である場合だけシーケンスを続ける。」
Sサービスに着目して、図4(攻撃のシーケンス)と図5(OAuthを用いた認可のシーケンス)での違いを確認すると、利用開始の送信元と、認可の要求の送信先が利用者ではなく攻撃者であることが分かると思います。
これは通信相手ごとに確立するセッションの違いになってくるため、Sサービスが送信する「認可の要求」と受信する「認可コード」で関連性を持たせることで、セッションの同一性で正しいシーケンスかを判断できることになります。
具体的にはstateパラメタを「(い)認可の要求」に付与して、「(か)認可コード」を受信する際のセッションがstateパラメタを付与した「(い)認可の要求」のセッションと同一であるか否かを確認し、同一の場合だけシーケンスを継続することになります。