SC情報処理安全確保支援士試験 午前Ⅰ
平成26年度秋期 情報処理安全確保支援士 午前Ⅰ 問14
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア08コマンドインジェクションを防ぐために、 Webアプリケーションが発行するセッションTDを推測困難なものにする。
- イSQLインジェクションを防ぐために、 Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
- ウクロスサイトスクリプティングを防ぐために、 外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
- エセッションハイジャックを防ぐために、 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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針