El análisis manual de logs de acceso es tedioso y poco escalable cuando necesitas revisar miles de registros en busca de anomalías. Desarrollé esta solución serverless que automatiza todo el proceso: AWS Lambda filtra solicitudes a rutas sensibles y eventos con errores, mientras que AWS Bedrock usa IA para detectar patrones de ataque, identificar IPs sospechosas y generar recomendaciones de seguridad automáticas.

Inicio del flujo de trabajo (1): Los logs de acceso provienen de una aplicación desplegada en AWS Amplify y están disponibles en formato CSV. Una vez descargados, se cargan en un bucket S3 configurado con un event notification que invoca automáticamente la función Lambda al detectar nuevos objetos.
Ejecución de la función Lambda (2, 3): La función Lambda filtra los registros relevantes según tres criterios: solicitudes que generaron errores, accesos a rutas sensibles y tráfico de bots. Esto permite descartar el tráfico legítimo y concentrar el análisis únicamente en actividad potencialmente sospechosa. Los datos filtrados se envían a AWS Bedrock con el modelo Claude Haiku, que identifica posibles riesgos de seguridad y genera recomendaciones de acción.
Envio de reporte mediante SNS (4): Al finalizar el análisis, la función Lambda envía los resultados mediante Amazon SNS. El servicio distribuye un reporte con los hallazgos de seguridad, IPs sospechosas identificadas y recomendaciones de acción a la dirección de correo configurada en la suscripción del topic.
El primer paso es clonar el repositorio en tu equipo local y configurar las variables en el archivo variables.tf, donde deberás especificar el nombre del bucket S3, el correo electrónico que recibirá los reportes y la región de AWS donde se trabajará. Es importante contar previamente con una suscripción activa al modelo Claude Haiku de Anthropic desde AWS Marketplace, ya que sin ella Bedrock no podrá invocar el modelo durante el análisis.
git clone https://github.com/ehoyos89/LogsAnalyzer.gitUna vez configuradas las variables, ejecuta los comandos de Terraform para aprovisionar toda la infraestructura del proyecto. Importante: recibirás un correo de confirmación de suscripción al SNS Topic en la dirección configurada en variables.tf, el cual debes aceptar para comenzar a recibir los reportes de seguridad generados por Bedrock.
terraform initterraform planterraform applyCon la infraestructura desplegada y la suscripción SNS confirmada, el siguiente paso es cargar el archivo de logs de acceso en formato CSV al bucket S3. Puedes realizar esta tarea desde la consola de AWS o mediante AWS CLI. Para fines de prueba, el repositorio incluye un archivo de ejemplo access-logs.csv en el directorio raíz del proyecto que puedes utilizar para validar el funcionamiento completo del sistema.
aws s3 cp access-logs.csv s3://tu-bucket-logs-unico/Una vez cargado el archivo de logs al bucket S3, el flujo de trabajo se ejecutará automáticamente: Lambda filtrará los registros sospechosos, Bedrock analizará los patrones de seguridad y, finalmente, recibirás un reporte detallado en el correo electrónico configurado. El formato del reporte será similar al que se muestra a continuación:

Este proyecto demuestra cómo la combinación de servicios serverless de AWS puede automatizar eficazmente la detección de amenazas en logs de acceso, una tarea que tradicionalmente requiere horas de análisis manual. La solución implementada no solo identifica patrones de ataque como el escaneo de superficie detectado en las pruebas (intentos de acceso a rutas sensibles como /.env, /.aws/credentials y archivos PHP de configuración), que también proporciona contexto accionable al clasificar el tipo de amenaza, identificar las IPs más agresivas y generar recomendaciones técnicas específicas para mitigación mediante WAF y configuraciones de servidor. La arquitectura serverless garantiza escalabilidad y costos optimizados, ya que solo se ejecuta cuando se cargan nuevos logs, mientras que la integración con AWS Bedrock aprovecha capacidades de IA generativa para análisis contextual que va más allá de simples coincidencias de patrones. Este enfoque representa un paso significativo hacia la automatización de la ciberseguridad, permitiendo a equipos de desarrollo y operaciones responder rápidamente a amenazas potenciales sin necesidad de analistas de seguridad dedicados para cada revisión de logs. El código fuente completo está disponible en mi repositorio de GitHub. LogsAnalyzer
Sitio desarrollado con Reflex.
Built with Reflex