SV.ECV

このチェッカーは、空の SSL 証明書検証のケースを検出します。

SV.ECVの欠陥は、org.apache.http.conn.ssl.X509HostnameVerifier インターフェースの「検証」方法を自明に実装しているクラスで報告されています。

脆弱性とリスク

証明書検証が空のケースでは、すべての SSL 証明書は有効と考えられます。このことは、侵入者がセキュリティデータにアクセスすることができる中間者攻撃の可能性を残します。

軽減と防止

この問題を防止するために、1つのクラスの「検証」方法は、X509HostnameVerifier interfaceを実装し、実際に検証を実施することが必要であり、空であったり、単一の return ステートメントから構成されていてはなりません。

脆弱コード例

コピー
private static X509HostnameVerifier ACCEPT_ALL_HOSTNAMES =  
    new X509HostnameVerifier() {
        public void verify(String host, String[] cns, String[] subjectAlts) throws SSLException {
        }
        public void verify(String host, X509Certificate cert) throws SSLException {
        }
        public void verify(String host, SSLSocket ssl) throws IOException {
        }
        public boolean verify(String host, SSLSession session) { 
        return true;
    }
};

セキュリティトレーニング

Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。