Uso de IA para encontrar errores de autorización
Los programas de bug bounty están cambiando. Algunos programas han dejado de pagar recompensas. Otros han recortado los pagos en un 80%. La razón no es que la IA encuentre demasiados errores. La razón es que la IA encuentra demasiados errores falsos. Los equipos de triaje se están ahogando en informes de baja calidad.
En este entorno, la habilidad más importante no es encontrar errores. Es demostrar que un error no existe. Debes encontrar los negativos correctos.
Utilizo un método de dos etapas para objetivos de código disponible (source-available).
Etapa 1: Fan-out Utiliza modelos de IA económicos para leer el código. Divide el objetivo en piezas pequeñas. Pide al modelo que encuentre invariantes rotas. Busca lugares donde un objeto se cargue sin una comprobación de propietario o donde se omita una puerta de seguridad. Apunta a una alta recuperación (high recall). Espera muchos errores.
Etapa 2: Verificación adversarial Utiliza un modelo costoso y de alto razonamiento para descartar los candidatos. Asume que cada candidato es refutado. Un candidato solo sobrevive si puedes citar líneas de código específicas. Debes demostrar que la ruta es alcanzable y que ninguna otra comprobación la bloquea.
El resultado más valioso es una lista de refutaciones. Esta lista genera confianza con los triagers.
Probé Ory Kratos, un servidor de identidad de código abierto. Analicé el flujo de configuración. Esta área gestiona los cambios de contraseña y las actualizaciones de correo electrónico. Un solo error aquí conduce a la toma de control de la cuenta (account takeover).
La primera etapa encontró un error tentador. En la estrategia OIDC, un contenedor específico carece de una vinculación de identidad. Si solo buscaras comprobaciones faltantes, reportarías esto como un error de alta severidad.
Eso sería un error.
La vinculación faltante no es explotable. El sistema obtiene la identidad de destino de una cookie de sesión activa o de un token firmado. Los rasgos del contenedor nunca se aplican al objetivo de escritura real. El diseño es sólido.
Reportar esto sería una pérdida de tiempo y dañaría tu credibilidad. El valor que aporté fue la confianza para no presentar un informe.
Cuando utilicé este mismo método en un objetivo diferente, encontré un error real. Un punto de entrada alternativo omitía una comprobación de autorización que la ruta principal sí aplicaba. Un usuario revocado aún podría entrar por una puerta lateral. Este error era de alto impacto e invisible para los escáneres estándar.
Los gatekeepers están construyendo muros contra el volumen. Para tener éxito, tu trabajo con IA debe ser riguroso. Usa la IA para leer más código de lo que un humano puede. Luego, usa la IA para demostrar que estás equivocado antes de enviar el informe.
Concéntrate en la señal, no en el volumen.
