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 が提供しているアプリケーションセキュリティトレーニング教材。