Shikata Ga Nai

Private? There is no such things.

Webアプリケーション脆弱性診断のガイドラインについてかいてみた

Hello there, ('ω')ノ

 

下記は、Webアプリケーションの脆弱性診断をするための。

一般的なガイドラインを概要レベルでまとめたもので。

当然のことながら常に更新されるもので。

企業として自信をもってサービスを提供しているのであれば。

この程度の方法論については、十分に理解しておくべきレベルかと。


1 アプリケーションのコンテンツをマッピング
 1.1 目に見えるコンテンツの探索
 1.2 パブリックリソースの参照
 1.3 隠しコンテンツの発見
 1.4 デフォルトコンテンツの検出
 1.5 識別子で指定された関数の列挙
 1.6 デバッグパラメータのテスト


2 アプリケーションの分析
 2.1 機能の特定
 2.2 データ入力ポイントの特定
 2.3 使用されているテクノロジーの特定
 2.4 攻撃対象領域をマッピング


3 クライアント側のコントロールのテスト
 3.1 クライアント経由のデータ送信のテスト
 3.2 ユーザ入力に対するクライアント側の制御のテスト
 3.3 ブラウザ拡張コンポーネントのテスト


4 認証メカニズムのテスト
 4.1 メカニズムの理解
 4.2 パスワード品質のテスト
 4.3 ユーザ名列挙のテスト
 4.4 パスワード推測に対する回復力のテスト
 4.5 アカウント回復機能のテスト
 4.6 任意のRememberMe機能のテスト
 4.7 偽装機能のテスト
 4.8 ユーザ名の一意性のテスト
 4.9 自動生成された資格情報のテスト予測可能性
 4.10 資格情報の安全でない送信の確認
 4.11 資格情報の安全でない配布の確認
 4.12 安全でないストレージのテスト
 4.13 論理欠陥のテスト
 4.14 脆弱性を悪用して不正アクセスの取得

 

5 セッション管理メカニズムのテスト
 5.1 メカニズムの理解
 5.2 意味のテストトークン
 5.3 予測可能性のテストトークン
 5.4 トークンの安全でない送信のチェック
 5.5 ログのトークンの開示の確認
 5.6 セッションへのトークンのマッピングの確認
 5.7 テストセッションの終了
 5.8 セッション固定の確認
 5.9  CSRFを確認
 5.10 Cookieスコープの確認


6 テストアクセス制御
 6.1 アクセス制御要件の理解
 6.2 複数のアカウントでのテスト
 6.3 制限付きアクセスでのテスト
 6.4 安全でないアクセス制御方法のテスト

 

7 入力ベースの脆弱性のテスト
 7.1 ファズすべてのリクエストパラメータ
 7.2 SQLインジェクションのテスト
 7.3 XSSおよびその他の応答注入のテスト
 7.4 OSコマンドインジェクションのテスト
 7.5 パストラバーサルのテスト
 7.6 スクリプトインジェクションのテスト
 7.7 ファイルインクルードのテスト

 

8 機能固有の入力の脆弱性のテスト
 8.1 SMTPインジェクションのテスト
 8.2 ネイティブソフトウェアの脆弱性のテスト
 8.3 SOAPインジェクションのテスト
 8.4 LDAPインジェクションのテスト
 8.5 XPathインジェクションのテスト
 8.6 バックエンドリクエストインジェクションのテスト
 8.7 XXEインジェクションのテスト

 

9 論理欠陥のテスト
 9.1 主要な攻撃対象領域の特定
 9.2 多段階プロセスのテスト
 9.3 不完全な入力のテスト処理
 9.4 テストの信頼境界
 9.5 トランザクションロジックのテスト

 

10 共有ホスティングの脆弱性のテスト
 10.1 共有インフラストラクチャでのテストの分離
 10.2 ASPでホストされるアプリケーション間のテスト分離


11 アプリケーションサーバの脆弱性のテスト
 11.1 デフォルトの資格情報のテスト
 11.2 デフォルトコンテンツのテスト
 11.3 危険なHTTPメソッドのテスト
 11.4 プロキシ機能のテスト
 11.5 仮想ホスティングの誤設定のテスト
 11.6 Webサーバソフトウェアのバグのテスト
 11.7 Webアプリケーションファイアウォールのテスト

 

12 その他のチェック
 12.1 DOMベースの攻撃をチェック
 12.2 ローカルプライバシーの脆弱性の確認
 12.3 弱いSSL暗号のチェック
 12.4 同一生成元ポリシー構成の確認

 

13 情報漏えいのフォローアップ

 

Best regards, (^^ゞ