SC情報処理安全確保支援士試験 午前Ⅱ

令和3年度春期 情報処理安全確保支援士 午前Ⅱ 問12

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

安全なWebアプリケーションの作り方について、 攻撃と対策の適切な組合せはどれか。

選択肢

  1. ア
    攻撃対策
  2. イ
    SQL文の組立てに静的プレースホルダを使用する。
  3. ウ
    任意の外部サイトのスタイルシートを取り込めるようにする。
  4. エ
    |タロスサイトリクエストフォージェリリクエストにGETメソッドを使用す利用者ごとに固定のセッションTDを使用する。
解き方のヒントを見る

午前II 問12:攻撃ごとの“効く対策”を見分けよう

安全なWebアプリでは、データを変更する大事な処理をGETで動かさないのがCSRF対策の基本だよ。GETは「ページを見るだけ」のつもりで使われることが多いから、勝手にリンクを踏ませるような攻撃に悪用されやすいんだ。さらに、利用者ごとにずっと同じセッションIDを使い回すのも危険だよ。セッションIDは入館証みたいなものなので、固定のままだと盗まれたり推測されたりしたときに悪用されやすいんだ。

この問題で問われていること

この問題では、CSRFなどの攻撃に対して、どの対策が本当に効くのかを対応付けられるかが問われているよ。名前だけで判断せず、「その攻撃は何を悪用するのか」「その対策はどこを防いでいるのか」をセットで考えよう。

CSRF 対策の考え方

CSRF は利用者の意図しないリクエスト送信を狙うため、状態変更系を GET にしない、トークンを導入するなどが対策になる。

重要処理を GET にしない\n+ 固定セッション ID を避ける

確認ポイント

  • SQL 組立てにプレースホルダを使うのは SQL インジェクション対策です。
  • 任意外部 CSS 読込み許可は安全化ではありません。
  • 攻撃ごとの対策対応を見て、CSRF に適切なものを選ぶ。
正解と解説を見る

正解

ア

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア(正解)

正解だよ。SQLインジェクションは、申込用紙の名前欄に『裏口から金庫を開けろ』みたいな命令を書き込む攻撃だよ。静的プレースホルダを使うと、入力値を命令ではなくただの文字として扱えるので、勝手にSQLの意味を変えられにくくなるんだ。

選択肢イ

不正解だよ。クロスサイトスクリプティング対策で大事なのは、画面に出す文字をきちんと無害化したり、怪しいスクリプトを実行させないことだよ。任意の外部サイトのスタイルシートを取り込めるようにするのは、知らない人の服や看板を勝手に店内へ持ち込ませるようなもので、対策どころか危険を増やす方向なんだ。

選択肢ウ

不正解だよ。CSRFは、ログイン済みの人にこっそり『送信ボタンを押したことにする』ような攻撃だよ。GETメソッドはURLを開くだけで実行されやすいので、重要な処理に使うとむしろ危ないんだ。対策は、ワンタイムの確認用トークンを使うなどして、本当に本人の操作か確かめることだよ。

選択肢エ

不正解だよ。セッションIDはログイン中の名札みたいなもの。利用者ごとに固定してしまうと、名札の番号を一度知られたらずっとなりすまされる危険があるんだ。対策としては、推測しにくいIDを使い、ログイン時などに適切に作り直すのが大事だよ。

出典:独立行政法人 情報処理推進機構(IPA)令和3年度春期 情報処理安全確保支援士試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針