Proyecto

IOC Reputation Checker

API REST orientada a ciberseguridad que reproduce un flujo completo de análisis de indicadores de compromiso, desde su clasificación y puntuación local hasta el enriquecimiento simulado, la persistencia y la consulta posterior de resultados.

Resumen

API backend para analizar indicadores de compromiso, clasificarlos, aplicar reglas locales de riesgo, simular enriquecimiento OSINT y conservar los resultados para consultas posteriores.

Stack: Python 3.13, FastAPI, Uvicorn, Pydantic, SQLAlchemy, PostgreSQL 16, Alembic, Docker Compose, Pytest, HTTPX, Ruff, GitHub Actions

Qué hace

El proyecto busca representar cómo podría organizarse técnicamente un servicio backend para analizar IOCs sin depender todavía de proveedores externos reales. La idea es recibir indicadores como IPs, dominios, URLs o hashes, detectar su tipo, aplicar reglas de riesgo explicables y conservar un historial que permita consultar análisis, búsquedas y estadísticas.

Cómo está construido

La solución está desarrollada con FastAPI y organizada por capas de endpoints, schemas, servicios, repositorios, modelos y configuración. La lógica se divide en servicios específicos para detectar el tipo de IOC, calcular el scoring local, simular un proveedor OSINT y obtener el riesgo final. Los análisis y resultados del proveedor se almacenan en PostgreSQL mediante SQLAlchemy, mientras que Alembic gestiona las migraciones. El entorno local utiliza Docker Compose y la API se ejecuta con Uvicorn, con documentación interactiva disponible mediante Swagger.

Qué valida o automatiza

La API valida la detección de IPs, dominios, URLs y hashes MD5, SHA1 y SHA256, además de aplicar reglas locales sobre señales como HTTP, uso de una IP en la URL o términos sospechosos. El proyecto incluye tests unitarios y de integración para scoring, proveedor simulado, riesgo final, persistencia y endpoints. GitHub Actions levanta PostgreSQL, aplica las migraciones con Alembic y ejecuta automáticamente Ruff y Pytest. El estado final documentado registra 45 tests superados y Ruff sin errores.

Puntos clave