Troubleshooting Decryption

Contenido complementario

Este tema no está en las notas de tus cursos que tengo (la lección de Troubleshooting Decryption de PCNSE está pendiente de ver); está completado con conocimiento general de PAN-OS. Compáralo con lo que veas en la lección y corrígelo si difiere.

Resumen

Descifrar tráfico es de las funciones que más problemas de “esto antes funcionaba” provoca, porque introduce un intermediario (el firewall) entre el cliente y el sitio. Los problemas se agrupan en cuatro familias. El tráfico no se descifra cuando debería (la regla de Decryption no coincide, está tapada por otra, o el sitio está en la lista de exclusión). Aparecen advertencias de certificado en el navegador (los clientes no confían en la CA del Forward Trust, el certificado no es una CA, o el firewall entrega el Forward Untrust). Una aplicación deja de funcionar (certificate pinning, versión de TLS o cifrados no soportados, autenticación mutua con certificado de cliente). El rendimiento cae (el descifrado consume CPU).
Esta nota da un procedimiento para decidir en cuál de las cuatro familias estás, qué herramientas usar (columna Decrypted en los logs de tráfico, Decryption Log, test decryption-policy-match, show session id, capturas) y cómo resolver cada caso. Se apoya en Decryption Forward Proxy, SSL Inbound Inspection y Certificates y PKI.

Requisitos previos

Procedimiento

graph TD
    A["¿La sesión aparece con Decrypted = yes?<br/>(Monitor > Logs > Traffic)"] -- No --> N["No se descifra:<br/>regla, orden, exclusión, categoría"]
    A -- Sí --> B["¿El cliente muestra advertencia de certificado?"]
    B -- Sí --> C["CA no confiable, no es CA,<br/>o se entregó Forward Untrust"]
    B -- No --> D["¿La aplicación falla?"]
    D -- Sí --> E["Pinning, TLS/cifrados,<br/>certificado de cliente"]
    D -- No --> F["¿Va lento?<br/>Recursos y alcance"]

Paso 1: ¿Se está descifrando?

  1. Monitor > Logs > Traffic: agrega la columna Decrypted (clic derecho en el encabezado > Columns). Debe decir yes para el tráfico que quieres descifrar.
  2. Monitor > Logs > Decryption: muestra los handshakes (con versión TLS, cipher, errores y la regla que se aplicó). Si no existe el log, activa el logging en la regla.
  3. CLI:
test decryption-policy-match from inside to outside source 10.10.0.20 destination 142.250.80.46
show session id <n>
show running decryption-policy

Si un comando no coincide con tu versión, usa Tab o ?.

Si el test apunta a la regla incorrecta o a ninguna, revisa zonas, categoría de URL, aplicación y orden (las reglas No Decrypt deben ir arriba).

Paso 2: Advertencias de certificado en el cliente

  1. En el navegador, mira el certificado del sitio: Issuer. Debe ser tu CA (Forward Trust).
  2. ¿La CA raíz está instalada en el almacén de confianza del cliente? Windows: certmgr.msc (usuario) o certlm.msc (equipo) > Trusted Root Certification Authorities. Firefox usa su propio almacén.
  3. Revisa el certificado de Forward Trust en el firewall: debe ser una CA (plantilla Subordinate Certification Authority) y estar marcado Forward Trust Certificate (ver Certificates y PKI).
  4. Si todo es advertencia, mira si se está entregando el Forward Untrust: ocurre cuando el firewall no valida el certificado real del sitio (sin CRL/OCSP alcanzable, hora errónea, falta CA pública).
  5. Revisa la hora del firewall (show clock) y del cliente.

Paso 3: Una aplicación falla con decryption

  1. En Monitor > Logs > Decryption mira el Error (por ejemplo Unsupported version, Client authentication requested, Handshake failure).
  2. Certificate pinning (apps móviles, clientes de actualización, servicios de nube): rechazan el certificado del firewall. Solución: No Decrypt para ese destino (por categoría, aplicación o dirección).
  3. Autenticación por certificado de cliente (mutual TLS): el firewall no puede presentar el certificado del cliente. Solución: No Decrypt para ese destino.
  4. Versión o cifrado no soportado: el Decryption Profile bloquea lo que el sitio usa. Solución: revisa SSL Protocol Settings, o excluye ese destino.
  5. Sitios en la lista de exclusión: Device > Certificate Management > SSL Decryption Exclusion (algunos son por defecto; ver Decryption Forward Proxy).
  6. Para tráfico de WildFire: la muestra de prueba por HTTPS requiere quitar temporalmente la exclusión (ver WildFire).

Paso 4: Rendimiento

show running resource-monitor
show system resources
show session info
  1. ¿Subió la CPU del plano de datos al activar decryption?
  2. Reduce el alcance: descifra por categorías de riesgo, excluye tráfico de confianza (banca, salud) y destinos de alto volumen.
  3. Revisa el dimensionamiento del equipo y la sesión máxima (show session info: número de sesiones y de sesiones descifradas).

Paso 5: Capturas de decryption

Para ver el tráfico descifrado se usan las opciones de captura de decryption del firewall (ver Troubleshooting Toolkit): en el Packet Capture, la etapa firewall puede mostrar el paquete tras el descifrado. Las capturas en receive y transmit solo muestran el tráfico cifrado.

Una opción avanzada: debug dataplane packet-diag set log feature ssl basic para ver el flujo SSL. Úsala con filtro y apágala después.

Verificación

Comando o lugarQué debes verSi no lo ves
Monitor > Logs > Traffic: columna Decryptedyes para el tráfico objetivoSi no, la sesión no coincidió con la regla Decrypt
Monitor > Logs > DecryptionHandshakes correctos con versión TLS y cipherSi hay errores, el campo Error explica la causa
test decryption-policy-match ...La regla esperada (Decrypt o No Decrypt)Si es otra, revisa zonas, categoría y orden
Navegador: Issuer del certificadoTu CA (Forward Trust)Si ves el original, no se descifra; si ves advertencia, el cliente no confía en la CA
Device > Certificate Management > CertificatesForward Trust y Untrust con sus marcas y estado validSi faltan, reconfigura (ver Certificates y PKI)
show session id <n>Indicación de sesión descifrada y regla de DecryptionSi no aparece, no se descifró
show running resource-monitorCPU del plano de datos razonableSi está alta, reduce el alcance del descifrado

Errores comunes

Todo el tráfico muestra advertencia de certificado

  • Causa: los clientes no confían en la CA del Forward Trust, o se entrega el Forward Untrust por no poder validar los sitios.
  • Solución: distribuye la CA raíz al almacén de confianza (GPO), usa el Forward Trust como CA, y corrige hora/CRL/OCSP.

Un sitio de banca fue descifrado

  • Causa: la regla No Decrypt está debajo de la de Decrypt, o la categoría no coincide.
  • Solución: sube la regla No Decrypt y verifica la categoría con test url <sitio>.

Una app de actualizaciones o una app móvil dejó de funcionar

  • Causa: certificate pinning.
  • Solución: No Decrypt para esa aplicación o destino.

El log de Decryption no muestra nada

  • Causa: la regla no tiene logging de handshakes activado.
  • Solución: activa Log Successful SSL Handshake y Log Unsuccessful SSL Handshake en la regla.

Falla la autenticación con certificado de cliente

  • Causa: el firewall rompe la sesión TLS y no puede presentar el certificado del cliente.
  • Solución: No Decrypt para ese destino.

Sitios modernos con TLS 1.3 o cifrados nuevos fallan

  • Causa: la versión de PAN-OS o el perfil no soportan esa versión/cifrado.
  • Solución: revisa las versiones soportadas en tu PAN-OS, ajusta el Decryption Profile o excluye el destino.

El firewall se satura al activar decryption

  • Causa: demasiado tráfico descifrado.
  • Solución: reduce el alcance y dimensiona el equipo.

El WildFire de prueba por HTTPS no descarga

  • Causa: wildfire.paloaltonetworks.com está en la exclusión de decryption.
  • Solución: desmarca temporalmente Exclude From Decryption y vuelve a marcarlo después (ver WildFire).