SC情報処理安全確保支援士試験 午前Ⅱ
令和元年度秋期 情報処理安全確保支援士 午前Ⅱ 問17
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アWebアプリケーションプログラムの | Webアプリケーションプログラムの
- イ実装における対策実装以外の対策テWebアプリケーションプログラム中 | chroot環境でWebサーバを稼働させでシェルを起動しない。 る。
- ウ| セッションIDを乱数で生成する。 TLSによって通信内容を秘匿する。 パス名やファイル名をパラメタとして | 重要なファイルを公開領域に置かな
- エ受け取らないようにする。 い。 プレースホルダを利用する。 Webアプリケーションプログラムが 〒 利用するデータベースのアカウントが
解き方のヒントを見る
SQLインジェクション対策は、SQL文と入力値を混ぜないことが大事だよ
SQLインジェクション対策では、ユーザの入力をそのままSQL文にくっつけないことが重要だよ。たとえば、料理のレシピ本文と後から入れる具材を分けておくイメージで、プレースホルダを使うとSQL文とパラメータをきちんと分離できるんだ。さらに、DBに接続するアカウントの権限は必要最小限にしておこう。もし攻撃されても、できる操作を少なくして被害を広げにくくできるよ。
この問題で問われていること
この問題では、SQLインジェクション対策を、通信の暗号化やchroot、ファイル公開の制御とごちゃ混ぜにしないことがポイントだよ。見るべきところは、SQLの組み立て方と、DBアカウントの権限を絞っているかどうかなんだ。
SQL インジェクション対策
入力値を SQL 文へ直接連結しないことが一次対策で、万一侵入されても DB 権限を絞って被害を抑える。
実装: プレースホルダ\n運用: DB 権限最小化
確認ポイント
- TLS は通信保護であり SQL 文構築の対策ではありません。
- chroot や公開領域制御は別系統の対策です。
- プレースホルダ + DB 権限制限の組合せを選ぶ。
正解と解説を見る
正解
エ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
これは不正解だよ。シェルを起動しないことやchrootでWebサーバを閉じ込めることは、泥棒が家の中で自由に動き回れないようにする対策みたいなもの。でもSQLインジェクションは、受付窓口で変な命令を書いた紙を渡してデータベースをだます攻撃なので、対策の的が少し違うんだ。
選択肢イ
これは不正解だよ。パス名やファイル名を受け取らない、重要ファイルを公開場所に置かない、というのは倉庫の場所を勝手に指定されないようにする対策だよ。これは主にディレクトリトラバーサルなどへの対策で、データベースへの命令を悪用するSQLインジェクション対策としてはずれているんだ。
選択肢ウ
これは不正解だよ。セッションIDを乱数にするのは、合鍵番号を推測されにくくする対策、TLSは手紙を封筒に入れて盗み見されにくくする対策だよ。どちらも大事だけど、SQL文に悪い命令を混ぜられるSQLインジェクションを直接防ぐ対策ではないんだ。
選択肢エ(正解)
これは正解だよ。プレースホルダは、注文票の『ここに名前を書く欄』をあらかじめ決めておき、入力された文字を命令ではなくただの値として扱う仕組みなんだ。さらにDBアカウントの権限を必要最小限にしておけば、万一すり抜けられても、店員用の鍵しか持たせないように被害を小さくできるよ。
出典:独立行政法人 情報処理推進機構(IPA)令和元年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問17(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
- 平成31年度・令和元年度(2019年)の過去問
- 午前Ⅱの過去問
- 令和元年度秋期の過去問
- 「企画・設計・開発・運用でのセキュリティ確保」の過去問
- 「情報セキュリティインシデント管理」の過去問
- 情報処理安全確保支援士試験のトップ
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針