情報セキュリティ
基本情報技術者試験|あるWebアプリは、利用者が入力したホスト名に対してサーバ上でネットワーク疎通確認コマンドを実行し、その結果を画…
あるWebアプリは、利用者が入力したホスト名に対してサーバ上でネットワーク疎通確認コマンドを実行し、その結果を画面に表示する。入力値をコマンド文字列に連結してシェル経由で実行しているため、特定の記号を含む入力でサーバ上の任意コマンドが実行される脆弱性が指摘された。根本対策として、最も適切なものはどれか。
イコマンド名と各引数を分けて起動する方式に改め、入力値はシェルを通さず引数としてのみ渡す。
ア実行結果を画面に出す処理を見直し、エラー時にはその表示を省いて外部に漏れる情報量を減らす。
ウコマンドを動かすサーバのCPUとメモリを増強し、処理性能と余裕を確保するようにする。
エ利用者がホスト名を入力できる時間帯を業務時間内のみに限り、それ以外は受付を停止する。
正解
イ.コマンド名と各引数を分けて起動する方式に改め、入力値はシェルを通さず引数としてのみ渡す。
脆弱性の原因は、入力をコマンド文字列に連結しシェル経由で実行するため、セミコロンやパイプ等の記号がコマンドの区切りとして解釈される点にある。コマンド名と各引数を分けて起動し、入力値はシェルを通さず引数の一つとしてのみ渡せば、記号は単なるデータとして扱われ別コマンドの実行が成立しなくなる。これがOSコマンドインジェクションの根本対策である。
?選択肢ごとの解説
イ ○脆弱性の原因は、入力をコマンド文字列に連結しシェル経由で実行するため、セミコロンやパイプ等の記号がコマンドの区切りとして解釈される点にある。コマンド名と各引数を分けて起動し、入力値はシェルを通さず引数の一つとしてのみ渡せば、記号は単なるデータとして扱われ別コマンドの実行が成立しなくなる。これがOSコマンドインジェクションの根本対策である。
ア ×結果表示の省略は得られる情報を減らすだけで、入力がコマンドとして実行される動作そのものは残るため脆弱性は解消しない。
ウ ×CPUやメモリの増強は処理性能の話であり、任意コマンドが実行される注入脆弱性とは無関係である。
エ ×入力可能な時間帯の限定は攻撃機会を多少狭めるだけで、その時間内であれば注入は成立するため根本対策にならない。
情報セキュリティの他の問題
あるWebアプリは、利用者のブラウザに保存させた状態データを、サーバ受信時にそのままオブジェクトへ復元(デシリアライズ)して…ある会員サイトで、攻撃者が用意した別ページに会員サイトの操作画面を透明な枠として重ね、利用者が無関係なボタンと思って押した操…あるWebサービスでは出力時のエスケープを進めているが、開発規模が大きく、万一エスケープ漏れが残った場合にスクリプト実行によ…あるWebサービスはHTTPSに対応済みだが、利用者がアドレス欄にホスト名だけを入力した最初のアクセスがHTTPで行われ、そ…あるサイトの検索結果画面は、利用者がURLで渡した検索語を『〇〇の検索結果』という形でHTML本文にそのまま出力している。細…あるWebアプリの一覧画面は、利用者が選んだ並べ替え対象の列名をSQL文のORDER…A社のWebアプリで、利用者が入力する都道府県コードを検証する処理を実装する。コードは『01』から『47』までの定義済みの値…B社では開発中のWebアプリについて、まだ動作する環境を構築していない段階で、ソースコードに潜む脆弱性をできるだけ早期に洗い…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0102
