EagleEyes Lite(版本 2.0.0)在 HTTPS 通信期间未能正确验证 SSL/TLS 服务器证书。
该应用在 push.lite.avtech.com.MySSLSocketFactoryNew.checkServerTrusted() 中实现了自定义的 X509TrustManager,仅检查证书有效期,而省略了完整的证书链验证。
因此,攻击者可利用此弱点,使用自签名或伪造证书实施中间人(MITM)攻击,从而拦截并篡改敏感的监控数据。
通过自定义的 X509TrustManager,该应用仅验证证书的有效期,而不验证证书链是否正确受信任。
@Override // javax.net.ssl.X509TrustManager
public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str) throws CertificateException {
try {
x509CertificateArr[0].checkValidity();
} catch (Exception unused) {
throw new CertificateException("Certificate not valid or trusted.");
}
}
通过自定义的 X509TrustManager,该应用仅验证证书的有效期,而不验证证书链是否正确受信任。
这使得中间人(MITM)攻击者能够轻松拦截或篡改应用与其后端服务器之间的敏感通信。
应用应使用验证完整证书链的默认系统实现来替换自定义的 X509TrustManager,并且必须强制执行正确的主机名验证,以防止接受不匹配或不受信任的证书。
应移除针对旧版 Android 的不安全回退逻辑,或使用等效的安全检查进行更新,以确保一致的 TLS 验证。