基本方針 †

↑

入出力を厳密に検証する †

↑

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

↑

最小特権 †

↑

権限分割 †

↑

認証 †

↑

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