Chapter 6. プログラムのインタフェースと内部構成をきちんとすること

 

侵略されて城壁の滅びた町。 自分の霊を制しえない人。

 旧約聖書 箴言 25 章 28 節
Table of Contents
6.1. 安全なプログラムを作るためには、ソフトウェア・エンジニアリングの原則に 従うこと
6.2. インタフェースを安全に
6.3. データと制御を切り離す
6.4. 特権を最小限に
6.4.1. 許可される特権を最小限に
6.4.2. 特権を使っている時間を最小限に
6.4.3. 特権が有効な時間を最小限にする
6.4.4. 特権を認めるモジュールを最小限にする
6.4.5. fsuid を使って、特権を制限することを検討する
6.4.6. 利用できるファイルを最小限にするため chroot の利用を検討する
6.4.7. アクセスできるデータを最小限にすることを検討する
6.4.8. 利用できるリソースを最小限にすることを検討する
6.5. 1 つの構成要素の機能を最小限にする
6.6. setuid や setgid したスクリプトを使わない
6.7. 設定を安全にし、安全なデフォルトを使用する
6.8. 初期値を安全にロードする
6.9. フェイル・セーフ
6.10. 競合状態を避ける
6.10.1. シーケンス(非アトミック)問題
6.10.2. ロックをかける
6.11. 信頼できる経路だけ信じること
6.12. 高信頼パス(Trusted Path)を設ける
6.13. 内部で一貫性をチェックするコードを利用する
6.14. リソースを自己制御する
6.15. サイトにまたがって存在する悪意あるコンテンツを防ぐ
6.15.1. 問題を説明する
6.15.2. サイトにまたがった悪意あるコンテンツに対処する方法
6.16. セマンティック攻撃の裏をかく
6.17. データの種類に気を配る