基本方針

入出力を厳密に検証する

問題発生時には、処理継続させない。機能停止させる

最小特権

権限分割

認証

HTTPSの不備

認証設定の不備

ブルートフォース攻撃

パスワードリマインダ

承認

セッション管理

セッション終了処理

情報取得

システムのバージョンに関する情報

サーチエンジンによって公開される情報

強制ブラウジング

ディレクトリ・トラバーサル

HTMLソースコメント

コマンド実行

OSコマンド・インジェクション (36)

・ シェルを起動する実装を避ける。

2.4.2 SQLコマンド・インジェクション (39)
・ SQL文の生成にバインド機構を使用する。
 上記が実現できない場合は、全ての変数にエスケープ処理が必要。
・ SQLエラーメッセージをブラウザにそのまま表示しない

2.4.3 バッファオーバーフロー (44)
・ ループの終了条件でバッファ境界をチェックする。
・ 書き込み先バッファサイズを指定する。
・ 上限サイズのバッファを用意する。
・ 与えるデータサイズを制限する。
・ バッファオーバーフロー対策ツールを利用する。

2.5 クライアントサイドアタック
2.5.1 クロスサイト・スクリプティング (58)
[HTMLテキストの入力を許可しない場合]
・ Webページに出力する全ての要素に対して、エスケープ処理を施す。
 エスケープ処理は、ASP.NETのコントロール群に任せ、基本的には個別に実装しない。(独自ルール)(動的javascript埋め込み等、リテラル処理を行う箇所は例外)
・ スタイルシートを外部サイトから取り込めるようにしない

2.6 ロジカルアタック
2.6.1 クロスサイト・リクエスト・フォージェリ(CSRF) (65)
・ 全ページのPOSTパラメータに秘密情報を挿入し、サーバで記録していた値と比較する。

2.6.2 プロセスフロー管理の不備 (69)
・ 不正な画面遷移を防ぐために、予約ページ等ではTransactionTokenを利用する。
・ 重要なデータ処理の直前はPOST動作にする。GETを使わない。(独自ルール)

2.7 その他
2.7.1 HTTPヘッダ・インジェクション (80)
・ 外部から渡されるパラメータを、直接HTTPヘッダ情報として用いない。
 上記が実現できない場合は、レスポンスヘッダ記述用APIを用いたり、改行を削除する。

2.7.2 バックドアとデバッグオプション (84)
・ 実装用、または試験用にバックドアやデバッグオプションが必要な場合は、ユーザに指定できない方式とする。(独自ルール)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS