情報セキュリティ
基本情報技術者試験|A社のWebアプリで、利用者が入力する都道府県コードを検証する処理を実装する。コードは『01』から『47』までの…
A社のWebアプリで、利用者が入力する都道府県コードを検証する処理を実装する。コードは『01』から『47』までの定義済みの値だけが正当である。多様な不正入力を確実に排除するための検証方式として、最も適切なものはどれか。
ア取り得る値の集合を事前に確定させ、その集合に属さない入力をすべて拒む。
イ過去に攻撃で使われた危険な文字列のパターンを列挙し、該当する入力を拒否する。
ウ入力された文字列の長さが規定のバイト数以内に収まっているかだけを確認する。
エ入力に含まれる記号文字を無害な文字へ置換してから処理を継続する。
正解
ア.取り得る値の集合を事前に確定させ、その集合に属さない入力をすべて拒む。
正当な値が有限かつ明確に列挙できる場面では、許可する値だけを定義して一致した入力のみ通すホワイトリスト方式が最適である。定義外の入力は理由を問わず一律に弾けるため、未知の攻撃パターンも含めて確実に排除でき、漏れが生じにくい。
?選択肢ごとの解説
ア ○正当な値が有限かつ明確に列挙できる場面では、許可する値だけを定義して一致した入力のみ通すホワイトリスト方式が最適である。定義外の入力は理由を問わず一律に弾けるため、未知の攻撃パターンも含めて確実に排除でき、漏れが生じにくい。
イ ×危険な文字列を列挙して拒否するブラックリスト方式は、列挙漏れや新手の攻撃に対応できず、正当値が明確な本件では過剰かつ不確実である。
ウ ×長さの確認だけでは、規定バイト数内に収まる不正な値(例えば存在しないコード)を通してしまい、正当性の検証にならない。
エ ×記号の置換は無害化の一手だが、置換後も範囲外の値が残り得るため、定義済み値だけを通すべき本件の要件を満たさない。
情報セキュリティの他の問題
B社では開発中のWebアプリについて、まだ動作する環境を構築していない段階で、ソースコードに潜む脆弱性をできるだけ早期に洗い…C社の脆弱性管理担当者は、診断ツールが報告した多数の脆弱性に対し、限られた人員で修正対応する順序を決めたい。対応の優先度を客…D社の製品は多数のオープンソースライブラリを組み込んでいるが、どのバージョンの何を使っているかを正確に把握できておらず、新た…E社の基幹システムに、重要なセキュリティ修正プログラムの提供が始まった。過去に修正プログラムを本番へ即時適用した際、既存機能…F社は脆弱性診断ツールによる網羅的な検査は定期実施しているが、検出された個々の弱点が実際に組み合わさって重要システムへの侵入…G社のWebアプリでは、内部で例外が発生すると、データベースのテーブル名やSQL文、サーバの内部パスを含む詳細なエラーメッセ…H社では、これまでシステム開発の最終工程で脆弱性診断を行い、見つかった問題を都度修正してきた。しかし手戻りが大きく、根本的な…I社が導入した管理用ソフトウェアには、出荷時から共通の管理者IDと初期パスワードが設定されており、管理画面が外部ネットワーク…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0109
