Comments
Description
Transcript
Java Printing
守る必要のあるモノ(機能、リソース)は何かが明確になっているか? 適切な評価とは? 機密性・完全性・可用性について適切な評価を行っているか? 抑止 使用するツール・言語の適正確認 使用するツール・言語で難しい機能はないか? ユーザから入力されるものは信頼できない 信頼できる、できないの判断は? 信頼できるInputか? 防止 I/O関連 対策 ファイルから読み込まれるものはファイルを作成する機能が信頼できるのであれば、信頼できる ネットワーク越しで受け取るデータは信頼できない 今一はっきりした定義ができないなぁ? 概要設計 気をつける必要性の有無は? Output時に気をつける必要があるか? リスクの軽減 機能設計/リソース リスクに対してどうするのか? 誰が、いつ、何をやったかが履歴として残るか? 検知 ログ管理 回復 バックアップ・リストア設計 コストと利益のバランスが取れているか? 対策が十分とは? 機能・リソースへの脅威に対する対策が十分か? 対策が機能とされているか? 特に重大な被害を及ぼす脅威に対して複数の対策を施しているか? 重大な被害とは? 設計レビュー 機密性・完全性・可用性の評価レベルが一定以上のもの セキュリティポリシーで決定する 脆弱性となる機能の判断は? リスクの回避 不要な機能、脆弱性となる機能はないか? リスクの転嫁 外部サービスの利用ができないか? リスクの受容 必要だが、脆弱性となる機能は被害が容認できるレベルか? 構造が単純か? レビュー フェイルセーフの考えが取り入れられているか? データ型 Inputが信頼できない場合、信頼できるものにする方法は? 脆弱性対策 詳細設計 データ検証 許可するものは何か明確に I/O関連 機能設計 確認方法 脆弱性チェック方法 文字種類 文字コード Output時にどうすれば安全にできるか? アクセス権限の確認 エスケープ処理 何をエスケープするか明確に 必要最低限の権限か? 機密情報が外部からアクセスできないか? セキュリティ機能 概要設計時に検討した対策が機能として取り込まれているか? 間違って見えるようにする方法 http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B バインドメカニズム コーディング規約 安全なライブラリ・フレームワークの使用 入力データの追跡 ソースコードレビューのコツ 出力データの追跡 エラー処理の確認 境界条件の確認 型チェック 特殊文字チェック 選択肢以外のデータチェック 入力データのテスト テスト 異常系のテスト Hiddenフィールド、Cookie書き換えチェック 文字コードチェック 桁数チェック 境界値チェック 大きい値 小さい値 処理フローを無視した呼び出し 呼び出しのテスト 負荷テスト 暗号ライブラリ セッション管理ライブラリ コードレビュー 同時呼び出し 競合のチェック