Motor de Mantenimiento y Auditoría de Seguridad para Windows 11
Desarrollado con enfoque en rendimiento, seguridad y trazabilidad forense.
- ¿Qué hace Sentinel?
- Características Técnicas
- Requisitos
- Instalación y Uso
- Parámetros
- Salida y Evidencia
- Arquitectura del Script
- Roadmap
- Autor
Sentinel es un script PowerShell de producción que combina limpieza inteligente de archivos temporales con auditoría de seguridad activa en un solo motor unificado. Diseñado para entornos Windows 11 donde la estabilidad y la trazabilidad son prioridad absoluta.
Problema que resuelve:
Los sistemas Windows acumulan archivos temporales y logs redundantes que degradan el rendimiento. Al mismo tiempo, el estado del firewall puede cambiar sin alertas visibles. Sentinel ataca ambos vectores en una sola ejecución con evidencia forense de cada acción.
| Característica | Detalle |
|---|---|
| Motor de streaming | Pipeline de 2 etapas sin carga en RAM |
| Progreso optimizado | Actualización de UI cada 100 archivos (ahorro de CPU) |
| Exclusión inteligente | Regex unificado protege .log, .etl, .evtx, .dat, .tmp, .cache, .bak y archivos en uso (-lock-) |
| Filtro de edad | Solo elimina archivos con más de N minutos de antigüedad (configurable) |
| Auditoría de firewall | Verifica estado de los 3 perfiles (Domain, Private, Public) en tiempo real |
| Log forense | Cada ejecución genera un archivo Sentinel_YYYYMMDD_HHmmss.log en C:\Logs\Sentinel\ |
| Métricas de disco | Calcula MB recuperados comparando estado antes/después |
| Soporte -WhatIf | Modo simulación nativo via SupportsShouldProcess |
| Validación de privilegios | El script se detiene si no tiene permisos de Administrador |
- Windows 10 / Windows 11
- PowerShell 5.1 o superior
- Permisos de Administrador (obligatorio)
- Módulo
NetSecuritydisponible (incluido por defecto en Windows 10/11)
git clone https://github.com/Lucas18062025/Sentinel.git
cd Sentinel# Solo para esta sesión, sin modificar la política global
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process# Ejecución estándar (requiere PowerShell como Administrador)
.\sentinel.ps1
# Modo simulación — NO elimina nada, solo muestra qué haría
.\sentinel.ps1 -WhatIf
# Modo silencioso, sin confirmaciones
.\sentinel.ps1 -Force
# Con log detallado de cada archivo procesado
.\sentinel.ps1 -DetailedLog
# Cambiar antigüedad mínima de archivos (por defecto: 15 minutos)
.\sentinel.ps1 -MinFileAgeMinutes 60| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
-MinFileAgeMinutes |
int |
15 |
Antigüedad mínima en minutos para considerar un archivo eliminable |
-DetailedLog |
switch |
false |
Activa el registro individual de cada archivo eliminado |
-Force |
switch |
false |
Suprime confirmaciones interactivas (modo automático / CI) |
-WhatIf |
switch |
false |
Modo simulación: muestra acciones sin ejecutarlas |
Cada ejecución genera automáticamente:
C:\Logs\Sentinel\
└── Sentinel_20260327_150929.log
Contenido del log:
[15:09:29] [SUCCESS] SENTINEL V5 APEX - INICIANDO
[15:09:30] [WARN] Analizando: C:\Users\...\AppData\Local\Temp
[15:09:31] [INFO] Firewall [Domain]: ACTIVO
[15:09:31] [INFO] Firewall [Private]: ACTIVO
[15:09:31] [ERROR] Firewall [Public]: VULNERABLE (OFF)
[15:09:31] [SUCCESS] RESUMEN EJECUTIVO
[15:09:31] [INFO] Total Analizados: 1247
[15:09:31] [INFO] Total Eliminados: 389
[15:09:31] [INFO] Bloqueados/Uso: 12
[15:09:31] [SUCCESS] Espacio Recuperado: 142.5 MB
sentinel.ps1
│
├── [1] Configuración de Entorno
│ Timestamps, rutas de log, targets, regex de exclusión
│
├── [2] Logger de Alto Rendimiento (Write-SentinelLog)
│ Escritura directa sin validaciones redundantes
│ Output coloreado por nivel (ERROR/WARN/SUCCESS/INFO)
│
├── [3] Validación de Privilegios
│ Detiene ejecución si no hay permisos de Administrador
│
├── [4] Motor de Limpieza — Streaming de 2 Etapas
│ Stage 1: Get-ChildItem con atributos filtrados
│ Stage 2: ForEach con lógica interna (sin pipe extra)
│ Progreso visual cada 100 archivos
│
├── [5] Auditoría de Seguridad
│ Get-NetFirewallProfile → estado de los 3 perfiles
│ Log diferenciado: INFO (activo) vs ERROR (vulnerable)
│
└── [6] Métricas y Resumen Final
Comparación de disco Before/After
Resumen ejecutivo en consola + log
- V6 — Auditoría de servicios con estado anómalo
- V6 — Integración con Event Viewer (errores críticos últimas 24hs)
- V7 — Módulo de detección de conexiones de red sospechosas (
Get-NetTCPConnection) - V7 — Export de resumen en formato HTML para reportes
- V8 — Integración con Telegram Bot para alertas remotas
Lucas Villagra
Cybersecurity Analyst | Ethical Hacker | SOC Analyst
📍 San Miguel de Tucumán, Argentina
Este proyecto está bajo la licencia MIT. Podés usarlo, modificarlo y distribuirlo libremente con atribución.
Ver archivo LICENSE para más detalles.
"La seguridad no es un producto, es un proceso." — Bruce Schneier