Saltar al contenido principal
Version: 1.0.0

Resultados y estado de análisis

Siga el progreso de los análisis, obtenga los hallazgos y comprenda el ciclo de vida completo desde el envío hasta la finalización.

Ciclo de vida del estado

Cada análisis pasa por un conjunto de estados bien definidos:

                    ┌──────────┐
POST /scans ──→ │ queued │
└────┬─────┘

┌────▼─────┐
│ running │──── POST /:id/cancel ──→ cancelled
└────┬─────┘

┌──────────┼──────────┐
│ │
┌─────▼──────┐ ┌──────▼─────┐
│ completed │ │ failed │
└────────────┘ └────────────┘
EstadoDescripciónResultados disponiblesTerminal
queuedSolicitud aceptada, esperando capacidadNoNo
runningEl escáner está ejecutando activamenteNo (progreso parcial disponible)No
completedAnálisis terminado exitosamente
failedError fatal encontradoDetalles del error disponibles
cancelledCancelado por el usuarioResultados parciales posibles

Verificar el estado

Endpoint

GET /api/v1/scans/:scanId

Alcance requerido: scans:read

Parámetros de consulta

ParámetroTipoPredeterminadoDescripción
scanTypestringnmapEl tipo de motor (debe coincidir con el análisis original)

Solicitud

curl -X GET "https://api.cert-ix.com/scan-api/api/v1/scans/$SCAN_ID?scanType=nmap" \
-H "X-API-Key: $CERTIX_API_KEY"

Respuesta — En progreso

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"name": "Auditoría de red semanal",
"target": "example.com",
"status": "running",
"progress": 67,
"createdAt": "2026-03-06T10:00:00Z",
"startedAt": "2026-03-06T10:00:02Z"
}
}

Respuesta — Completado

{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scanType": "nmap",
"status": "completed",
"progress": 100,
"resultCount": 12,
"durationMs": 135000,
"createdAt": "2026-03-06T10:00:00Z",
"startedAt": "2026-03-06T10:00:02Z",
"completedAt": "2026-03-06T10:02:15Z"
}
}
Importante — Parámetro scanType

Siempre pase el parámetro scanType correcto correspondiente al motor usado durante la creación. El predeterminado es nmap, por lo que si su análisis usó zap, debe especificar ?scanType=zap o obtendrá un error 404 SCAN_NOT_FOUND.

Obtener resultados

Una vez que el estado sea completed, los resultados completos están disponibles.

Endpoint

GET /api/v1/scans/:scanId/results

Alcance requerido: results:read

Solicitud

curl -X GET "https://api.cert-ix.com/scan-api/api/v1/scans/$SCAN_ID/results?scanType=nmap" \
-H "X-API-Key: $CERTIX_API_KEY"

Esquemas de resultados por motor

Resultados Nmap

{
"hosts": [
{
"ip": "93.184.216.34",
"hostname": "example.com",
"state": "up",
"os": { "name": "Linux", "version": "5.x", "accuracy": 95 },
"ports": [
{
"port": 80, "protocol": "tcp", "state": "open",
"service": "http", "version": "nginx 1.25.4"
}
]
}
],
"stats": { "hostsUp": 1, "openPorts": 2, "closedPorts": 1022 }
}

Resultados ZAP

{
"alerts": [
{
"name": "Cross-Site Scripting (Reflejado)",
"risk": "High",
"confidence": "Medium",
"cweid": 79,
"instances": [
{ "uri": "https://app.example.com/search", "method": "GET", "param": "q" }
]
}
],
"summary": { "high": 2, "medium": 5, "low": 12, "informational": 8, "total": 27 }
}

Resultados Trivy

{
"vulnerabilities": [
{
"vulnerabilityID": "CVE-2024-1234",
"pkgName": "openssl",
"installedVersion": "3.0.11",
"fixedVersion": "3.0.13",
"severity": "CRITICAL",
"title": "OpenSSL: Desbordamiento de búfer en verificación de certificado X.509",
"cvss": { "nvd": { "v3Score": 9.8 } }
}
],
"summary": { "critical": 1, "high": 3, "medium": 7, "low": 2, "total": 13 }
}

Resultados Nuclei

{
"findings": [
{
"templateId": "CVE-2023-44487",
"name": "Ataque HTTP/2 Rapid Reset",
"severity": "high",
"host": "https://api.example.com",
"tags": ["cve", "cve2023", "dos", "http2"]
}
],
"summary": { "critical": 0, "high": 1, "medium": 3, "low": 5, "info": 12, "total": 21 }
}

Resultados theHarvester

{
"emails": ["[email protected]", "[email protected]"],
"subdomains": ["www.example.com", "mail.example.com", "api.example.com"],
"ips": ["93.184.216.34"],
"summary": { "emailsFound": 2, "subdomainsFound": 3, "ipsFound": 1 }
}

Resultados Sentinel

{
"overallRiskScore": 7.2,
"riskLevel": "high",
"enginesUsed": ["nmap", "nuclei", "harvester"],
"correlatedFindings": [
{
"title": "Panel de administración expuesto con CVE conocido",
"severity": "critical",
"engines": ["nmap", "nuclei"],
"description": "El puerto 8080 está abierto (nmap) ejecutando una versión afectada por CVE-2024-1234 (nuclei)",
"recommendation": "Restringir acceso al puerto 8080 y actualizar la aplicación"
}
],
"summary": { "critical": 1, "high": 4, "medium": 8, "low": 15, "total": 50 }
}

Estrategia de polling

FaseIntervaloDuración
Inicial (0–2 min)Cada 5 segundosRetorno rápido para análisis cortos
Activa (2–10 min)Cada 15 segundosLa mayoría de los análisis terminan aquí
Extendida (10–60 min)Cada 30 segundosAnálisis profundos o completos
Larga duración (60+ min)Cada 60 segundosGrandes redes o Sentinel
Use webhooks

Para integraciones en producción, use webhooks en lugar de polling. Los webhooks son más eficientes y proporcionan notificaciones instantáneas.

Notificaciones en tiempo real

Configure webhooks para recibir notificaciones push cuando ocurran eventos de análisis:

EventoDisparador
scan.startedEl análisis pasa de queued a running
scan.completedEl análisis termina exitosamente
scan.failedEl análisis encuentra un error fatal
scan.cancelledEl análisis es cancelado

Consulte Webhooks para instrucciones de configuración.


Próximos pasos: