令和6年春 午後 問3設問3(2)について
Jacsonさん
(No.1)
スレッドタイトルの設問についてです。
模範回答は、
「cookieの値で利用者アカウントを特定し,order-codeの値から特定したものと違っていれば,エラーにする。」
となっていますところ、これはorder-codeの値を利用者ごとに決定したランダムな値にすれば、総当たり攻撃も防げるし、利用者ごとに決定した値なのでなりすましもできないと思います。しかしこの答えは正解ではないとのことで、なぜこの回答が正解にならないのか納得がいきませんので、理由について教えていただけませんでしょうか。
模範回答は、
「cookieの値で利用者アカウントを特定し,order-codeの値から特定したものと違っていれば,エラーにする。」
となっていますところ、これはorder-codeの値を利用者ごとに決定したランダムな値にすれば、総当たり攻撃も防げるし、利用者ごとに決定した値なのでなりすましもできないと思います。しかしこの答えは正解ではないとのことで、なぜこの回答が正解にならないのか納得がいきませんので、理由について教えていただけませんでしょうか。
2026.02.12 02:33
むぐむぐさん
★SC ブロンズマイスター
(No.2)
ここで問われている脆弱性の本質は“認可制御の不備”です。
そのため、認可制御の不備を解消するにはどうすればよいのか考える必要があります。
order-codeのランダム化では桁数がそもそも少ないのでまだ総当たりが可能です。
桁数を十分に増やした上でのランダム化なら緩和策にはなりますが、根本解決には至りません。
根本解決には、ログイン中のユーザが閲覧してもいいデータなのかの確認が必要になります。
そのための方法が模範解答になります。
参考:
IPAのサイトでも以下のように認可制御を行うことを推奨しています。
「データベースを検索するための注文番号が、ログイン中の利用者に閲覧を許可された番号であるかどうかを常に確認するように実装してください。」
https://www.ipa.go.jp/security/vuln/websecurity/access-control.html
そのため、認可制御の不備を解消するにはどうすればよいのか考える必要があります。
order-codeのランダム化では桁数がそもそも少ないのでまだ総当たりが可能です。
桁数を十分に増やした上でのランダム化なら緩和策にはなりますが、根本解決には至りません。
根本解決には、ログイン中のユーザが閲覧してもいいデータなのかの確認が必要になります。
そのための方法が模範解答になります。
参考:
IPAのサイトでも以下のように認可制御を行うことを推奨しています。
「データベースを検索するための注文番号が、ログイン中の利用者に閲覧を許可された番号であるかどうかを常に確認するように実装してください。」
https://www.ipa.go.jp/security/vuln/websecurity/access-control.html
2026.02.12 09:00
広告
返信投稿用フォーム
投稿記事削除用フォーム
広告