Saltar a contenido

Insecure TLS certificate validation (accept self-signed certificate)

Validación de certificado TLS insegura (acepta certificado autofirmado)

Descripción

La aplicación acepta certificados autofirmados, lo que la hace vulnerable a ataques de intermediario (Man-In-The-Middle, MITM).

Recomendación

De manera predeterminada, los certificados SSL se validan. Si este no es el caso en su aplicación, considere lo siguiente:

  1. Evitar alterar las clases SSL: Evite anular TrustManager o SSLSocketFactory para permitir certificados no válidos.
  2. Fijación de certificados (Certificate Pinning): Implemente la fijación de certificados para garantizar que la aplicación solo acepte certificados de fuentes confiables. Al integrar (hardcode) o almacenar certificados de confianza dentro de la aplicación, esta puede verificar la autenticidad del certificado del servidor durante el proceso de enlace (handshake) SSL/TLS, previniendo así ataques MITM que utilizan certificados autofirmados.

Enlaces

Estándares

  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_4_2
    • REQ_11_3
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213