Análisis de Registros de Transparencia de Certificados TLS
Cuándo Usarlo
- Cuando se investigan incidentes de seguridad que requieren analizar registros de transparencia de certificados TLS
- Cuando se construyen reglas de detección o consultas de cacería de amenazas para este dominio
- Cuando los analistas de SOC necesitan procedimientos estructurados para este tipo de análisis
- Cuando se valida la cobertura de monitoreo de seguridad para técnicas de ataque relacionadas
Prerrequisitos
- Familiaridad con conceptos y herramientas de operaciones de seguridad
- Acceso a un entorno de prueba o laboratorio para ejecución segura
- Python 3.8+ con las dependencias requeridas instaladas
- Autorización apropiada para cualquier actividad de prueba
Instrucciones
Consulta la base de datos de transparencia de certificados de crt.sh para encontrar certificados emitidos para dominios similares a la marca de tu organización, detectando infraestructura de phishing.
from pycrtsh import Crtsh
c = Crtsh()
# Buscar certificados que coincidan con un dominio
certs = c.search("example.com")
for cert in certs:
print(cert["id"], cert["name_value"])
# Obtener detalles completos del certificado
details = c.get(certs[0]["id"], type="id")
Pasos clave del análisis:
- Consultar crt.sh para obtener todos los certificados que coincidan con el patrón de tu dominio
- Identificar certificados con variaciones tipográficas (distancia Levenshtein)
- Marcar certificados de AC inesperadas
- Monitorear certificados comodín en subdominios sospechosos
- Cruzar referencias con infraestructura de phishing conocida
Ejemplos
from pycrtsh import Crtsh
c = Crtsh()
certs = c.search("%.example.com")
for cert in certs:
print(f"Emisor: {cert.get('issuer_name')}, Dominio: {cert.get('name_value')}")