情報セキュリティ

基本情報技術者試験セキュアコーディング」の問題

情報セキュリティ情報セキュリティ難易度:normal
G社のWebアプリでは、内部で例外が発生すると、データベースのテーブル名やSQL文、サーバの内部パスを含む詳細なエラーメッセージを利用者の画面にそのまま表示している。診断でこれが問題と指摘された。セキュアコーディングの観点で取るべき対策はどれか。
内部構造を含む詳細はサーバ側の記録に留め、利用者には差し障りのない定型文を返す。
エラーメッセージの文字色を背景色と同じ色にして、利用者の画面から見えにくくする。
エラーメッセージを英語で表示し、一般の利用者には読み取りにくくする。
エラー発生時はメッセージを一切出さず、画面を真っ白のまま停止させる。
正解
内部構造を含む詳細はサーバ側の記録に留め、利用者には差し障りのない定型文を返す。

詳細なエラー情報は障害調査に必要なため、サーバ側のログに記録して保持しつつ、利用者の画面には内部構造を含まない一般的なメッセージのみを返すのが正しい。攻撃者に内部情報の手掛かりを与えず、かつ運用上の調査性も損なわない。

?選択肢ごとの解説

ア ○詳細なエラー情報は障害調査に必要なため、サーバ側のログに記録して保持しつつ、利用者の画面には内部構造を含まない一般的なメッセージのみを返すのが正しい。攻撃者に内部情報の手掛かりを与えず、かつ運用上の調査性も損なわない。
イ ×文字色を背景と同色にしても、ページのソースや通信内容には詳細情報が残るため、攻撃者は容易に取得でき隠蔽にならない。
ウ ×英語表示にしても情報自体は露出したままで、攻撃者は言語を問わず内容を読み取れるため、対策の体をなさない。
エ ×何も出さず停止させるのは、利用者に何が起きたか伝わらず利便性を損なううえ、調査用の記録も残らない極端な対応である。

くわしく

セキュアコーディングでは『内部の詳細情報を外部に漏らさない』ことが原則である。エラー処理では、攻撃の偵察に使われる内部構造(パス・スタックトレース・SQL)を利用者へ返さず、調査に必要な詳細はアクセスが制御されたログ側へ分離する設計が要る。

本番での押さえどころ

試験のコツ

詳細エラーの露出対策は『詳細はログへ、利用者へは一般メッセージ』。見た目で隠す案は誤り。

覚え方

エラーは『楽屋裏は見せない』。詳しい事情はスタッフ用ノート(ログ)に、客には簡潔な案内だけ。

よくある誤り

見た目で隠す・言語で隠すといった『隠蔽による防御』を選ぶ。情報は出力された時点で取得可能であり、そもそも返さない設計が必要である。

情報セキュリティの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0115

【基本情報技術者試験】セキュアコーディングの問題 — 解答・解説|ukamiru 過去問