応用情報 システム開発 — Questions and Answers
Question 1: 公開鍵暗号方式でデータを暗号化する際に使用する鍵はどれか。
- 受信者の公開鍵 (Correct answer)
- 受信者の秘密鍵
- 送信者の公開鍵
- 送信者の秘密鍵
Correct answer: 受信者の公開鍵
公開鍵暗号方式では、送信者が受信者の公開鍵でデータを暗号化し、受信者だけが持つ秘密鍵で復号する。デジタル署名では逆に秘密鍵で署名し公開鍵で検証する。
Question 2: SQLインジェクション攻撃を防ぐ最も効果的な対策はどれか。
- プリペアドステートメント(バインド変数)を使用する (Correct answer)
- 入力値の長さを制限する
- エラーメッセージを非表示にする
- HTTPSを使用する
Correct answer: プリペアドステートメント(バインド変数)を使用する
プリペアドステートメントはSQL文の構造を先に確定し、入力値をパラメータとして別途バインドするため、ユーザ入力がSQL文の一部として解釈されない。最も根本的なSQLインジェクション対策。
Question 3: 多要素認証(MFA)の説明として正しいものはどれか。
- 知識・所持・生体情報など複数の異なる要素を組み合わせて認証する (Correct answer)
- 複数のパスワードを組み合わせる認証
- 複数のシステムへの同時ログイン
- 管理者が複数名で認証を承認する
Correct answer: 知識・所持・生体情報など複数の異なる要素を組み合わせて認証する
MFAは「知識(パスワード)」「所持(スマートフォン・トークン)」「生体(指紋・顔)」の異なるカテゴリから2つ以上を組み合わせる。同じカテゴリを複数使っても2FAとは言えない。
Question 4: クロスサイトスクリプティング(XSS)攻撃の説明として正しいものはどれか。
- 攻撃者が悪意のあるスクリプトをWebページに埋め込み他ユーザのブラウザで実行させる (Correct answer)
- SQLを使ってDBから不正にデータを取得する
- 正規ユーザを騙して意図しない操作をさせる
- パスワードを総当たりで試みる
Correct answer: 攻撃者が悪意のあるスクリプトをWebページに埋め込み他ユーザのブラウザで実行させる
XSSは攻撃者がWebアプリに悪意のあるJavaScriptを挿入し、被害者のブラウザ上で実行させる攻撃。セッションCookieの窃取や偽画面表示などに使われる。対策はエスケープ処理。
Question 5: ハッシュ関数の特性として正しいものはどれか。
- 同じ入力から常に同じ出力が得られ元の入力を逆算することが困難 (Correct answer)
- 元のデータに戻せる可逆な変換
- 鍵が必要な暗号化処理
- 出力長が入力長と同じになる
Correct answer: 同じ入力から常に同じ出力が得られ元の入力を逆算することが困難
暗号学的ハッシュ関数は一方向性(逆算困難)・衝突耐性・アバランシェ効果を持つ。パスワード保存にはソルト付きハッシュ(bcrypt等)を使用する。MD5・SHA-1は衝突が発見されており現在非推奨。
Question 6: ゼロデイ脆弱性の説明として正しいものはどれか。
- パッチが提供される前に悪用される未知の脆弱性 (Correct answer)
- 発見から0日で修正されたパッチ
- 修正パッチが公開された既知の脆弱性
- 実害が確認されていない理論的な脆弱性
Correct answer: パッチが提供される前に悪用される未知の脆弱性
ゼロデイ脆弱性はベンダが認識していない、またはパッチが未公開の脆弱性。攻撃者が先に発見・悪用するため、防御側は対策をとれない「0日(ゼロデイ)」状態が続く。
公開鍵暗号方式でデータを暗号化する際に使用する鍵はどれか。