基本情報技術者試験「セキュアコーディング」の問題
G社のWebアプリでは、内部で例外が発生すると、データベースのテーブル名やSQL文、サーバの内部パスを含む詳細なエラーメッセージを利用者の画面にそのまま表示している。診断でこれが問題と指摘された。セキュアコーディングの観点で取るべき対策はどれか。
ア内部構造を含む詳細はサーバ側の記録に留め、利用者には差し障りのない定型文を返す。
イエラーメッセージの文字色を背景色と同じ色にして、利用者の画面から見えにくくする。
ウエラーメッセージを英語で表示し、一般の利用者には読み取りにくくする。
エエラー発生時はメッセージを一切出さず、画面を真っ白のまま停止させる。
正解
ア.内部構造を含む詳細はサーバ側の記録に留め、利用者には差し障りのない定型文を返す。
詳細なエラー情報は障害調査に必要なため、サーバ側のログに記録して保持しつつ、利用者の画面には内部構造を含まない一般的なメッセージのみを返すのが正しい。攻撃者に内部情報の手掛かりを与えず、かつ運用上の調査性も損なわない。
?選択肢ごとの解説
ア ○詳細なエラー情報は障害調査に必要なため、サーバ側のログに記録して保持しつつ、利用者の画面には内部構造を含まない一般的なメッセージのみを返すのが正しい。攻撃者に内部情報の手掛かりを与えず、かつ運用上の調査性も損なわない。
イ ×文字色を背景と同色にしても、ページのソースや通信内容には詳細情報が残るため、攻撃者は容易に取得でき隠蔽にならない。
ウ ×英語表示にしても情報自体は露出したままで、攻撃者は言語を問わず内容を読み取れるため、対策の体をなさない。
エ ×何も出さず停止させるのは、利用者に何が起きたか伝わらず利便性を損なううえ、調査用の記録も残らない極端な対応である。
✎くわしく
セキュアコーディングでは『内部の詳細情報を外部に漏らさない』ことが原則である。エラー処理では、攻撃の偵察に使われる内部構造(パス・スタックトレース・SQL)を利用者へ返さず、調査に必要な詳細はアクセスが制御されたログ側へ分離する設計が要る。
✓本番での押さえどころ
試験のコツ
詳細エラーの露出対策は『詳細はログへ、利用者へは一般メッセージ』。見た目で隠す案は誤り。
覚え方
エラーは『楽屋裏は見せない』。詳しい事情はスタッフ用ノート(ログ)に、客には簡潔な案内だけ。
よくある誤り
見た目で隠す・言語で隠すといった『隠蔽による防御』を選ぶ。情報は出力された時点で取得可能であり、そもそも返さない設計が必要である。
情報セキュリティの他の問題
A社の経理担当者が、取引先を装ったメールに添付された請求書ファイルを業務PCで開いたところ、見慣れない画面が一瞬表示されて消…B社のWebサービスで、複数の利用者アカウントに対し正しいIDとパスワードの組合せによるログインが短時間に外部から成立する事…C社では、退職予定者や異動者のアカウント権限の見直しが滞り、業務上不要になった共有フォルダへのアクセス権が残り続けている。情…D社のファイルサーバがランサムウェアに感染し、業務ファイルが暗号化された。D社は日次でバックアップを取得しているが、バックア…E社の従業員に、取引先銀行を名乗る『口座情報の更新が必要』というメールが届いた。本文中のリンク先URLにアクセスすると、銀行…F社は社外の従業員が、カフェなどの公衆無線LANを利用して社内システムへアクセスしている。通信内容が経路上で第三者に盗聴・改…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0115