次のページ
前のページ
目次へ
信頼できないユーザには情報を与えすぎてはならない.単に成功または失敗を
返し,失敗の場合も単に失敗した事実と失敗した理由に関する最小限の情報を
返すだけにすること.
詳しい情報は監査するためのログとして保存する.
以下に例を示す:
- プログラムが何らかのユーザ認証を必要とする場合(ネットワークサービスや
ログインプログラム等を書いている場合),認証の前にユーザに与える情報は
できる限り少なくすること.
特に,認証の前にプログラムのバージョン番号を教えることは避けなければな
らない.
プログラムのバージョンを教えてしまい,しかもそれが弱点を持っているバー
ジョンであることを明らかになった場合,そのバージョンからアップグレード
していないユーザは弱点を持っていることを攻撃者に宣伝しているようなもの
である.
- パスワードを受け付けるプログラムの場合,パスワードをエコーバックしては
ならない.パスワードをエコーバックすると,パスワードを覗ける抜け道を作っ
てしまうことになる.
ユーザは,安全にすべきプログラムがユーザに情報を返す出力経路を詰まらせ
たり,応答しなくさせることができる.
例えば,故意にウェブブラウザを停止させたり,TCP/IP 経路の反応を遅くで
きる.
安全にすべきプログラムは,こういった場合にも対処できなければならない.
特に,サービス妨害攻撃の余地を与えないために,(できれば応答を返す前に)
素早くロック状態から抜け出せるべきである.
ネットワーク向けの書き出しリクエストには,必ずタイムアウトを設定すべき
である.
次のページ
前のページ
目次へ