Web.config Security Analyzer 使ってみた
Web.config の脆弱性を検出するツール Web.config Security Analyzer (wcsa) の GUI 版を使ってみた。web.config を読み込ませると、こんなレポートが出てくる。
脆弱性検証ルール
今のところこんなルールが定義されている。
- デバッグが無効になっているか
- Form 認証のパスワードが暗号化されているか
- カスタムエラーが有効になっているか
- クッキーレス認証が無効になっているか
- 認証クッキーを SSL で送信するようになっているか
- 認証クッキーがユニークになるように考慮しているか
- スライド式有効期限が無効になっているか
- クッキーパスに制限を加えているか (‘/’ 以外を設定しているか)
- 別の Web アプリケーションへのリダイレクトが無効になっているか
- 暗号化されていないクッキーを拒否しているか
- 検証されていないクッキーを拒否しているか
- クライアントのスクリプトからクッキーへのアクセスが無効になっているか
- ViewState が有効になっているか
- ViewState のメッセージ認証チェックが有効になっているか
- ViewState が暗号化されているか
- リクエストの検証が有効になっているか
- RoleManager が管理するクッキーを SSL で送信するようになっているか
- RoleManager が管理するクッキーのスライド式有効期限が無効になっているか
- RoleManager が管理するクッキーの暗号化が有効になっているか
- RoleManager が管理するクッキーの検証が有効になっているか
- RoleManager が管理するクッキーパスに制限を加えているか
- クッキーレスセッションが無効になっているか
- トレースが無効になっているか
- コードアクセスセキュリティレベルが Minimal になっているか
- Web.config にユーザー情報が定義されていないか
検証ルールとその適用方法
ルールは全て外部 XML ファイルとして定義されており、このファイルに
- どの要素の
- どのプロパティが
- どういう値か (or どういう値ではないか)
- + その他レポーティングのための情報
が書かれている。
wcsa はこの定義ファイルをロードした後、指定された web.config を XmlTextReader で読み込みながら、ルールに違反しているプロパティ値を探す、という挙動をしている。
Comments
Post a Comment