Security Monitor

Arquitectura y flujo de datos · Monitor de seguridad M365 · Puerto 8083

1
Flujo de alertas diarias

Ingesta continua desde Graph Security API, enriquecimiento de contexto, evaluación de reglas y notificación multicanal.

Microsoft Graph Security API
/security/alerts_v2 · /security/incidents
Microsoft 365
scheduler.py — Polling continuo
Prefiltro por min_severity_global · descarta alertas por debajo del umbral global
cada 120 s
graph_enrich.py — Enriquecimiento de contexto
Usuario · manager · grupos de AD · dispositivo · caché 5 min
security_alerts / security_incidents
Persistencia SQLite WAL · deduplicación · acceso desde Dashboard :8083
SQLite
severity_filters — Evaluación de reglas
Primer match gana · severidad · servicio · categoría · título (substring)
notifier.py — Despacho de notificaciones
Idempotente · notification_log evita duplicados por canal
SISAlerts :8082
sisalerts_client.ingest()
Teams Telegram
Jira — Proyecto 1
alerta + incidente + Relates
Alertas 365 Incidente 365
Jira — Proyecto 2
paralelo, opcional
jira_project_key_2

2
Informe de protección mensual

Generación automática los días 1 y 15 de cada mes, o bajo demanda desde el panel de administración.

Scheduler automático
Días 1 y 15 de cada mes
Admin panel — On-demand
Días configurables
graph_protection.py — Fetchers Graph API
Consultas al período (desde última ejecución exitosa · fallback 60 días)
Sign-ins bloqueados
AuditLog.Read.All
Risk detections
IdentityRiskEvent.Read.All
Security alerts
chunks diarios
Risky users
IdentityRiskyUser.ReadWrite.All
protection_report.py — Render HTML
Chart.js · mapa choropleth por país · estadísticas del período
jira_client — Publicación del informe
Crea ticket con período cubierto · adjunta HTML · enlaza incidentes del período
Ticket Jira
con período cubierto
Informe HTML
adjunto al ticket
Links incidentes
del período
protection_report_runs — Auditoría
Historial de ejecuciones · estado ok/error · since_dt · período · jira_key
SQLite