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

平成26年度秋期 情報処理安全確保支援士 午前Ⅰ 問14

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

問題

Webアプリケーションにおけるセキュリティ上の僧威と対策の適切な組合せはどれか。

選択肢

  1. ア
    08コマンドインジェクションを防ぐために、 Webアプリケーションが発行するセッションTDを推測困難なものにする。
  2. イ
    SQLインジェクションを防ぐために、 Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
  3. ウ
    クロスサイトスクリプティングを防ぐために、 外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
  4. エ
    セッションハイジャックを防ぐために、 Webアプリケーションからシェルを起動できないようにする。
解き方のヒントを見る

午前I 問14:公開鍵暗号は“鍵の渡し方”がラクだけど重めだよ

公開鍵暗号は、南京錠を相手に配って「これで閉めて送ってね」と言えるような仕組みだから、鍵を安全に渡しやすいよ。ただし、共通鍵暗号に比べると計算に時間がかかりやすく、処理は重めだと押さえよう。

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

ここでは、公開鍵暗号を“暗号化に使う場合”と“ディジタル署名に使う場合”の違いを区別できるかがポイントだよ。どの鍵で暗号化・復号するのか、どの鍵で署名・検証するのかを整理しよう。

Public-Key Cryptography

in public-key cryptography、 data encrypted with a public key is decrypted with the corresponding private key

encrypt with public key\ndecrypt with private key

確認ポイント

  • 公開鍵で復号するわけではありません。
  • 共通鍵方式より高速とは限らない。
  • 鍵の対応関係を押さえる。
正解と解説を見る

正解

イ

出典

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

選択肢ア

これはコマンドインジェクション対策としては間違いだよ。セッションIDを推測しにくくするのは、ホテルの部屋番号や合鍵を当てられにくくするような話で、セッションハイジャック対策だよ。コマンドインジェクションは、WebアプリがOSへの命令を作るときに、利用者の入力を命令文として混ぜられてしまう問題だから、シェルを使わない・入力を厳しく検査するなどが対策になるよ。

選択肢イ(正解)

これは正しいよ。SQLインジェクションは、注文用紙に『ラーメン1杯』と書く場所へ、店のルールを書き換えるような命令まで混ぜられる問題だよ。バインド機構を使うと、SQLの命令部分と入力データ部分をきちんと分けられるので、入力された文字が命令として実行されにくくなるんだ。だからSQLインジェクション対策として適切だよ。

選択肢ウ

これはクロスサイトスクリプティング対策としてはズレているよ。外から来た文字をファイル名に直接使わないのは、たとえば受付で『倉庫のどの棚を開けるか』を来客に言わせないようにする話で、主にディレクトリトラバーサルなどの対策だよ。クロスサイトスクリプティングは、掲示板などに悪いスクリプトを混ぜられる問題なので、画面に出す文字を適切にエスケープするのが基本だよ。

選択肢エ

これはセッションハイジャック対策としてはズレているよ。Webアプリからシェルを起動できないようにするのは、店員が裏口の機械室を勝手に操作できないようにする感じで、主にコマンドインジェクション対策だよ。セッションハイジャックは、ログイン済みの通行証であるセッションIDを盗まれる問題なので、推測困難なIDにする、HTTPSを使う、CookieにHttpOnlyやSecureを付けるなどが大事だよ。

出典:独立行政法人 情報処理推進機構(IPA)平成26年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問14(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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