Casar la báscula con la prueba
La automatización de los agentes ha cambiado nuestra forma de explorar las superficies de ataque. Destaca por su amplitud (reconocimiento rápido, generación de hipótesis y enumeración escalable), pero rara vez produce... cadenas de explotación de calidad probatoria que resistan la revisión del equipo azul o el escrutinio ejecutivo. Las pruebas manuales tradicionales son todo lo contrario: son excelentes para la interpretación, el juicio contradictorio y la claridad narrativa, pero tienen dificultades para cubrir el perímetro extenso y cambiante de las aplicaciones modernas y las instalaciones en la nube. El camino práctico a seguir no es "humanos contra IA", sino humano en bucle (HITL) agentes: dejar que los agentes ofrezcan velocidad y cobertura de superficie bajo guardarraíles explícitos, y dejar que los expertos se encarguen de la validación, el contexto y la rendición de cuentas. En la práctica, un agente human-in-the-loop AI pentest tool Penligent despliegue parece: orquestación basada en políticas, herramientas de nivel de intencióny informes basados en pruebas que se sostiene en auditorías y retrospectivas de incidentes.

Qué significa realmente HITL (más allá de una ventana emergente de sí/no)
Un sistema de pentesting HITL no es un diálogo de "¿Está seguro?" de última hora que se añade a un flujo de trabajo autónomo. Es un orquestación diseñada en los que las intenciones sensibles (sondeo activo, ejecución de exploits, escritura de archivos, simulación de exfiltración de datos o salida saliente) son denegación por defectoy cada aprobación conlleva limitaciones (límites de velocidad, rutas permitidas, condiciones de detención, ventanas de tiempo y reglas de gestión de datos). Todos los comandos, parámetros, detalles del entorno, resultados sin procesar, capturas de pantalla, identidades de los revisores y notas de revisión se guardan como un archivo cadena de pruebas forenses. Los informes son regenerable a partir de los primeros principios: si se suprime la redacción y se reconstruye a partir de las pruebas, se deberían obtener las mismas conclusiones. Las conclusiones se asignan a MITRE ATT&CK TTPs; los pasos de verificación se alinean con OWASP ASVS controles; y los artefactos del proceso (aprobaciones, registros de cambios, segregación de funciones) cumplen NIST SSDF. Así se pasa de la "exploración asistida por IA" a la prácticas de ingeniería defendibles.
Arquitectura: Las políticas primero, las herramientas abstraídas, las pruebas siempre
Un diseño fácil de mantener se divide limpiamente en tres capas:
- Capa de barrera (policy-first): Codifique los puntos de control para intenciones de alto riesgo como denegación por defecto con aprobaciones estructuradas. Una aprobación no es sólo un "sí/no"; es un contrato que especifica lo que el agente puede hacer y bajo qué restricciones. Las aprobaciones deben ser versionadas, atribuibles a un revisor y registradas con marcas de tiempo, identificadores de alcance y ganchos de revocación.
- Capa de herramientas (verbos de nivel de intención): Envuelva escáneres y asistentes -Nmap, ffuf, sqlmap, nuclei, APIs de Burp Suite, automatización de navegadores, ayudantes OSINT- detrás de verbos como
dir_bruteforce,param_fuzz,sqli_detect,xss_probe,crawler_login. Parse sus salidas en bien tipado, registros estructurados (JSON) para que los agentes puedan razonar de forma fiable y los informes puedan reutilizar las pruebas sin la ruleta regex. Normalizar los estados "éxito/fracaso/incierto" para evitar una lógica en cadena quebradiza. - Capa de pruebas (grado forense): Correlacione comandos, versiones, entorno, resultados, capturas de pantalla, pcaps e identidades de los revisores. Considere cadenas hash o firma para proteger la integridad y permitir la procedencia de los informes. Las pruebas deben poder consultarse: "muéstrame todos los POC de
T1190en este ámbito en los últimos 30 días" debería ser una consulta única, no una excavación arqueológica.
Resumiendo: la velocidad viene de los agentes, la certeza de los humanos, la defensibilidad de las pruebas.
De la señal a la prueba: una cadencia de trabajo que se amplía
Un flujo de trabajo HITL sólido progresa de amplio descubrimiento a ejecución limitada a informes justificables:
- Descubrimiento: Los agentes barren superficies con acciones de sólo lectura o de bajo impacto. Generan candidatos (rutas interesantes, parámetros sospechosos, respuestas anómalas) y agrupan las señales para reducir la fatiga de los investigadores.
- Intercepción: Las puertas de aprobación interceptan las intenciones sensibles. Un revisor humano añade restricciones-rate ≤ 5 rps, abortar en 403/429, limitar rutas a
/api/*La seguridad de los datos es una de las principales preocupaciones de los usuarios de Internet, por lo que es importante que los datos se almacenen de forma segura. - Ejecución restringida: Los agentes proceden dentro del contrato concedidocapturando todo lo necesario para reproducir los resultados: vectores de entrada, condiciones previas del entorno, marcas de tiempo y artefactos de salida.
- Regeneración de informes: El informe final explicable (vínculos con el impacto empresarial), reproducible (prueba → informe), y alineado estándar (ATT&CK/ASVS/SSDF). Su equipo azul puede crear detecciones a partir de él; sus desarrolladores pueden crear pruebas a partir de él; su liderazgo puede tomar decisiones de riesgo a partir de él.
Bucle de aprobación HITL mínimo
A continuación se muestra un patrón mínimo.interrupción de la política → aprobación humana → ejecución limitada → persistencia de las pruebas-que puedes incrustar en un orquestador personalizado o LangGraph/LangChain. Es intencionadamente compacto pero lo suficientemente completo como para ejecutarlo y ampliarlo.
import json, subprocess, time, uuid, hashlib, os
from datetime import datetime
APROBACIONES = {
"RUN_EXPLOIT": {"require": True, "reason": "Acción impactante"},
"SCAN_ACTIVE": {"require": True, "reason": "Puede activar WAF/IPS"},
"WRITE_FILE": {"require": True, "reason": "Filesystem mutation"},
"EGRESS_CALL": {"require": True, "reason": "Salida de red externa"},
"READ_ONLY": {"require": False, "reason": "Safe intent"},
}
EVIDENCE_DIR = "./evidence" # reemplazar con almacenamiento de objetos en producción
os.makedirs(EVIDENCE_DIR, exist_ok=True)
def necesita_aprobación(intent: str) -> bool:
meta = APPROVALS.get(intent, {"require": True})
return bool(meta["require"])
def open_review_ticket(intent, cmd, context):
ticket = {
"id": str(uuid.uuid4()),
"intent": intent
"cmd": cmd
"context": context,
"status": "PENDING": PENDIENTE,
"created_at": datetime.utcnow().isoformat() + "Z",
}
# TODO: push to Slack/Discord/Web UI
devolver ticket
def await_decision(ticket, timeout=1800):
# En producción: sondear el almacén de decisiones; aquí simulamos la aprobación con restricciones.
start = time.time()
while time.time() - start dict:
proc = subprocess.run(cmd, capture_output=True, text=True)
return {"rc": proc.returncode, "stdout": proc.stdout, "stderr": proc.stderr}
def persist_evidence(payload: dict) -> str:
raw = json.dumps(payload, sort_keys=True).encode()
digest = hashlib.sha256(raw).hexdigest()
ruta = os.path.join(EVIDENCE_DIR, f"{digest}.json")
con open(ruta, "wb") como f:
f.write(raw)
devolver ruta
def hitl_execute(intent: str, cmd: list[str], context: dict) -> dict:
contract = None
if necesita_aprobación(intent):
ticket = open_review_ticket(intent, cmd, context)
decision = await_decision(ticket)
if decisión["estado"] != "APROBADO":
return {"estado": "BLOCKED", "ticket": ticket}
contract = decisión["restricciones"]
# Opcional: aplicar restricciones localmente (por ejemplo, inyectar el indicador de tarifa a la herramienta)
si contract y "rate" en contract y "-rate" no en cmd:
cmd += ["-tarifa", str(contrato["tarifa"])]
resultado = ejecutar_herramienta(cmd)
pruebas = {
"intent": intent
"cmd": cmd
"context": contexto,
"result": resultado,
"attck": "T1190", # Exploit Public-Facing Application
"asvs": "V2", # Authentication/Session mgmt (ejemplo)
"ts": datetime.utcnow().isoformat() + "Z",
"revisor": contrato y "[email protected]",
}
path = persist_evidence(evidencia)
return {"estado": "DONE", "evidence_path": path, "sha256": os.path.basename(path).split(".")[0]}
# Ejemplo: descubrimiento activo cauteloso con ffuf (limitado por aprobación)
if __name__ == "__main__":
response = hitl_execute(
"SCAN_ACTIVE",
["ffuf", "-w", "wordlists/common.txt", "-u", "https://target.example/FUZZ"],
{"ámbito": "https://target.example", "nota": "stop on 403/429"}
)
print(json.dumps(response, indent=2))
Por qué es importante: las homologaciones son contratoslas restricciones son ejecutable por máquinay las pruebas son precinto de seguridad. Ahora puede generar informes que transformen de forma determinista las pruebas en una narración; si la narración se desvía de las pruebas, la generación se rompe.exactamente lo que quieres.
Modos de funcionamiento: encontrar el equilibrio
| Dimensión | Sólo para humanos | Sólo AI | Agentes HITL (recomendados) |
|---|---|---|---|
| Cobertura superficial | Medio-Bajo | Alta | Alta |
| Profundidad de la validación y contexto empresarial | Alta | Bajo-Medio | Alta |
| Falsos positivos / extralimitación | Bajo | Medio-Alto | Bajo-Medio (gobernado) |
| Auditabilidad y correspondencia de normas | Medio | Bajo | Alta |
| Escenarios ideales | Pruebas profundas de caja gris y alto riesgo | Descubrimiento de masas | Pruebas continuas + POC verificables |
HITL optimiza para el determinismo en la gobernanza. Los agentes se ejecutan con rapidez pero dentro de unos raíles; los humanos deciden qué cuenta como prueba y cómo comunicar el impacto. La combinación ofrece rendimiento sin perder credibilidad.
Alineación de normas que reduce la fricción
Tratar las normas como columna vertebral de sus entregables, no un apéndice:
- MITRE ATT&CK: asignar actividades y hallazgos a TTP concretos para que las detecciones y los ejercicios del equipo púrpura sean pasos siguientes obvios.
https://attack.mitre.org/ - OWASP ASVS: anclar la verificación a las familias de control y poblar cada elemento con pruebas reproducibles y pasos de repetición.
https://owasp.org/www-project-application-security-verification-standard/ - NIST SSDF (SP 800-218): capturar aprobaciones, cadenas de pruebas y segregación de funciones como artefactos de proceso alineados con las prácticas de desarrollo seguro.
https://csrc.nist.gov/pubs/sp/800/218/final
Con esta alineación, su informe se convierte en un interfaz bidireccional: la ingeniería la utiliza para corregir, los defensores para detectar, los auditores para verificar.
Dónde Penligente Pertenece al bucle
Al desplegar un agente human-in-the-loop AI pentest tool Penligentdos papeles componen sistemáticamente el valor:
- Los guardarraíles como característica de la plataforma. Los agentes orquestados de Penligent operan en aprobaciones explícitas, listas de permitidos/denegados y reglas de alcance/tasa. Intenciones sensibles como
RUN_EXPLOIT,WRITE_FILEoLLAMADA DE EXPULSIÓNse ejecutan mediante interrupciones y requieren contratos de revisor. Todas las líneas de comandos, versiones de herramientas y salidas se normalizan en el almacén de pruebas, listas para su regeneración y auditoría. - Del descubrimiento a la historia defendible. Los agentes barren ampliamente y redactan; los investigadores validan los POC, vinculan la explotación a impacto empresarialy entregar informes que se correspondan claramente con ATT&CK/ASVS/SSDF. Esa división del trabajo convierte la exploración ad hoc en capacidad de repetición. Si su entorno exige una estricta residencia de datos o pruebas fuera de línea, la solución de Penligent local-first te permite poner en escena tus capacidades con seguridad y ampliarlas a medida que aumenta tu confianza.

Patrones y antipatrones prácticos
Hazlo:
- Versión todo: indicaciones, imágenes de herramientas, listas de palabras y tarifas. Troqueles de reproducibilidad sin pasadores de versión.
- Refuerce la automatización del navegadorLas aplicaciones modernas se basan en el cliente; los agentes necesitan introspección DOM, síntesis de eventos, disciplina de almacenamiento/cookies e interceptación de red para evitar los puntos ciegos del lado del cliente.
- Dimensionar correctamente las pruebasCapturar lo suficiente para reproducir y probar el impacto; cifrar en reposo; alinear la retención con la política; redactar secretos por defecto.
Evítalo:
- Cámaras de eco de la automatizaciónLos bucles multiagente pueden amplificar las primeras clasificaciones erróneas. Los puntos de control estratégicos de HITL rompen la cadena y obligan a volver a anclarse en la verdad sobre el terreno.
- Análisis sintáctico de expresiones regularesprefieren adaptadores estructurados con validación de esquemas; alimentan a los agentes con pruebas normalizadas, no con registros sin procesar.
- "Alegaciones "probablemente vulnerablesSin un POC reproducible y un impacto cartografiado, se está creando ruido, no seguridad.
Lista de comprobación de la aplicación (copiar/pegar en su libro de ejecución)
- Denegación por defecto para
RUN_EXPLOIT,WRITE_FILE,LLAMADA DE EXPULSIÓN,SCAN_ACTIVO; las aprobaciones deben incluir alcance, tarifay condiciones de parada. - Retorno de interfaces de herramientas estructurado los analizadores se prueban con registros reales y versiones de herramientas fijadas.
- Las pruebas son firmado o hash-chained; los informes son regenerado de pruebas como parte de CI para sus artefactos de seguridad.
- Las conclusiones se refieren a ATT&CK TTPs; citas de verificación ASVS elementos; los artefactos de proceso satisfacen SSDF.
- La automatización del navegador cubre flujos de autenticación, enrutamiento SPA, comportamientos CSP/CORS; la revisión HITL es obligatoria para cualquier mutación de estado.
- Las preguntas, las versiones de las herramientas, las listas de palabras y las tarifas son las siguientes anclado y versionado; los cambios pasan por el mismo rigor de aprobación que el código.
Rapidez, seguridad y gobernanza
El patrón duradero es sencillo y potente: rapidez = agentes; certidumbre = humanos; gobernanza = normas + pruebas. Cuando esos tres cierran el bucle dentro de un orquestador auditable, agente human-in-the-loop AI pentest tool Penligent deja de ser una palabra de moda. Se convierte en capacidad repetible y defendible-Uno que sus desarrolladores puedan corregir, que sus defensores puedan detectar, que sus auditores puedan verificar y en el que sus directivos puedan confiar.
- MITRE ATT&CK - https://attack.mitre.org/
- OWASP ASVS - https://owasp.org/www-project-application-security-verification-standard/
- NIST SSDF (SP 800-218) - https://csrc.nist.gov/pubs/sp/800/218/final

