令和6年春の過去問の問3の解説をします。
題材はWebセキュリティです。
では早速解説に移ります。
【情報処理安全確保支援士 オススメ書籍】
セキュリティについてが細かく解説されています。
テキストで学習した後すぐに問題を解ける構成になっているので効率よく勉強できます。
また午後問題もいくつか掲載されていて、解説までついてきます。
ダウンロード特典もあるので非常にオススメの一冊!!
【情報処理安全確保支援士 オススメ書籍】
午後試験に関してはこの『重点対策』が一番だと思います。
試験の解き方から勉強方法、セキュリティについての細かい解説が紹介されています。
午後対策で迷ったらまずはこの1冊を手にとって勉強してみることをおすすめ!
問1
(1)リクエスト内のスクリプトが出力される機能
9
管理者が問合せ管理機能を確認した際に、HTMLとして出力されていることを確認したので、9の問合せ管理機能となります。
(2)攻撃者が利用者情報を取得する方法
攻撃者がわなリンクを用意し、管理者にそのリンクを踏ませることで管理者権限のcookieを攻撃者のWebサイトに送信させ、その値を読み取って利用することで管理者としてサイトXにアクセスし、利用者情報を取得する。
SESSIONIDにはSecure属性のみで、HttpOnly属性が付与されていないためJavaScriptでのCookieへのアクセスが可能となっている。
そのため、JavaScriptによりCookieの値を入手することが可能。
問2
(1)CSRF攻撃の被害
攻撃者が自らのアカウントで取得したcsrf_tokenと一緒に利用者情報をサイトXに送るように構成したわなフォームに、詐欺メールなどで利用者を誘導し、利用者情報を変更させる
サイトXのcsrf_tokenは他人のトークンでも認証してしまうという不備があるため、悪用されてしまう。
(2)SameSite属性
| 属性 | GET | POST |
| Strict | × | × |
| Lax | ○ | × |
| None | ○ | ○(ただしSecure属性必須) |
SameSite属性とは、WebブラウザがCookieを送信する際に、クロスサイトリクエスト(異なるサイト間でのリクエスト)に対する制御を行うためのもの。
- Strict:リクエストを送信するサイトが同じでないとダメ
- Lax:Getリクエストのみ他のサイトからでもOK
- None:どのようなサイトでもOK。しかし、HttpOnlyが必須。
問3
(1)他の利用者の注文番号を入手する方法
order-codeの下6桁を総当たりで試行する
下6桁は英大文字のランダムなので総当たりで試行すればいつかはヒットして他の利用者の情報を閲覧することができます。
(2)サイトXに追加すべき処理
cookieの値で利用者アカウントを特定し、order-codeの値から特定したものと違っていれば、エラーとする
サイトの設計上、基本的には自分が利用した情報しか閲覧できないようにしなくてはならないため、利用者アカウントで制限をかけるのが正解です。
問4
(1)ログインできない理由
変更後のURLにPOSTデータは送ることができないから
SSRFではPOSTなどの操作ができない場合があるため、管理者ログイン画面は開けても、POSTデータは送れません。
(2)クレデンシャル情報の取得方法
パラメータpageの値をクレデンシャル情報を返すURLに変更する
pageのパラメータをIMDSのクレデンシャル情報を返すURLに設定すれば、クレデンシャル情報を取得することが可能となります。
(3)方法Gによる手順
トークンを発行するURLにPUTメソッドでアクセスしてトークンを入手し、そのトークンをリクエストヘッダに含めて、IDMSのクレデンシャル情報を返すURLにアクセスする
(4)サイトYに追加すべき処理
パラメータpageの値がサイトP以外のURLならエラーとする
SSRFの対策として、送信元のドメインに対して制限をかける必要があります。
例えばホワイトリストなどを用いて、許可するドメインを列挙して制御するといった感じです。
関連記事

コメント