Skip to content

Security-hardened management tool for AI CLI agents. Mitigates supply chain attacks (NPM/Winget) using VSS snapshots, secret backups, and isolated updates.

License

Notifications You must be signed in to change notification settings

datanicaragua/ai-cli-sentinel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AI-CLI-Sentinel

PowerShell Linting

Sistema de seguridad para monitoreo y protecciΓ³n de interfaces de lΓ­nea de comandos con capacidades de IA.

ΒΏPor quΓ© necesito AI-CLI-Sentinel?

Si usas herramientas de inteligencia artificial en tu terminal (como Gemini, Claude, o Codex), necesitas mantenerlas actualizadas para obtener las ΓΊltimas mejoras. Sin embargo, actualizar software desde internet puede ser riesgoso. AI-CLI-Sentinel es tu "cinturΓ³n de seguridad": automatiza la actualizaciΓ³n de tus agentes favoritos asegurΓ‘ndose de que, si algo sale mal o el paquete contiene errores, tu computadora y tus llaves de acceso (API Keys) estΓ©n protegidas.

βœ… Checklist de Confianza

ΒΏQuΓ© hace este script por mΓ­?

  • βœ… No toca tus archivos personales: Solo respalda configuraciones de IA.
  • βœ… Es reversible: Crea un punto de restauraciΓ³n para que puedas "volver atrΓ‘s".
  • βœ… Es silencioso: Hace el trabajo pesado en segundos sin pedirte configuraciones complejas.
  • βœ… Solo actualiza lo que tΓΊ apruebas: Trabaja con una lista blanca estricta de agentes confiables.
  • βœ… Protege tus secretos: Respalda automΓ‘ticamente tus llaves de acceso antes de cualquier cambio.

πŸ€– Agentes Soportados

AI-CLI-Sentinel gestiona de forma segura los siguientes agentes de IA:

Agente Desarrollador PropΓ³sito
Gemini CLI Google Asistente multimodal y generaciΓ³n de cΓ³digo.
Claude Code Anthropic ProgramaciΓ³n en pareja (Pair programming) avanzada.
Codex CLI OpenAI GeneraciΓ³n de comandos y lΓ³gica de programaciΓ³n.
Qwen Code Alibaba Modelos de lenguaje especializados en cΓ³digo.

Nota: Puedes agregar mΓ‘s agentes editando el archivo src/agents.allowlist.json. Solo se actualizarΓ‘n los agentes que estΓ©n explΓ­citamente en tu lista blanca.

πŸš€ CaracterΓ­sticas

  • Seguridad primero: Solo actualiza agentes que tΓΊ explΓ­citamente apruebas en tu lista blanca
  • ProtecciΓ³n automΓ‘tica: Crea puntos de restauraciΓ³n antes de cualquier cambio
  • Respaldo de secretos: Guarda automΓ‘ticamente tus llaves de acceso antes de actualizar
  • Modo descubrimiento: Encuentra agentes instalados que no estΓ‘n en tu lista blanca (sin hacer cambios)
  • PrevenciΓ³n de malware: Usa tΓ©cnicas avanzadas para evitar la ejecuciΓ³n de cΓ³digo malicioso durante instalaciones
  • Registro completo: Mantiene un log detallado de todas las operaciones para tu revisiΓ³n

πŸ“‹ Requisitos

  • PowerShell 5.1 o superior (recomendado: PowerShell 7.4+)
  • Windows 10/11 o Windows Server 2016+
  • Privilegios de Administrador (requeridos para VSS y actualizaciones globales)
  • Node.js y npm instalados (para gestiΓ³n de paquetes NPM)
  • Winget instalado (para gestiΓ³n de aplicaciones Windows)

πŸ”§ InstalaciΓ³n

InstalaciΓ³n RΓ‘pida

# Clonar el repositorio
git clone https://github.com/datanicaragua/ai-cli-sentinel.git
cd ai-cli-sentinel

# Verificar estructura
Get-ChildItem -Recurse

ConfiguraciΓ³n Inicial

  1. Revisar configuraciΓ³n:

    Get-Content src\agents.allowlist.json
  2. Personalizar lista de permitidos: Edita src\agents.allowlist.json para agregar tus agentes permitidos en los arrays npm y winget.

  3. Verificar permisos:

    Get-ExecutionPolicy
    # Si es necesario: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

πŸ“– Uso

EjecuciΓ³n EstΓ‘ndar (Modo Seguro)

Actualiza solo los agentes en la lista blanca con respaldo de secretos:

# Ejecutar como Administrador
.\src\AI-CLI-Sentinel.ps1 -BackupSecrets

Modo SimulaciΓ³n (WhatIf)

Ver quΓ© harΓ­a el script sin realizar cambios:

.\src\AI-CLI-Sentinel.ps1 -WhatIf

Modo Descubrimiento (AuditorΓ­a)

Buscar agentes de IA instalados que NO estΓ‘n en la lista blanca:

.\src\AI-CLI-Sentinel.ps1 -Discover

Este modo NO realiza cambios, solo reporta candidatos detectados.

πŸ“˜ GuΓ­a RΓ‘pida para Usuarios No TΓ©cnicos

ΒΏQuΓ© hace AI-CLI-Sentinel?

Imagina que tienes varios asistentes de IA instalados en tu computadora (como Gemini, Claude, Codex). Cada cierto tiempo, estos asistentes reciben actualizaciones con nuevas funciones y correcciones de errores. AI-CLI-Sentinel es como un asistente personal que:

  1. Verifica quΓ© asistentes tienes instalados (modo Discover)
  2. Actualiza solo los que tΓΊ apruebas (lista blanca)
  3. Crea una copia de seguridad antes de hacer cambios (punto de restauraciΓ³n)
  4. Protege tus llaves de acceso (respaldo de secretos)

LΓ­nea de Tiempo del Proceso

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Inicio: Verificas que tienes permisos de administrador  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 2. PreparaciΓ³n: Se crea un punto de restauraciΓ³n del sistemaβ”‚
β”‚    (por si necesitas "volver atrΓ‘s")                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 3. Respaldo: Se guardan tus llaves de acceso (.ssh, .config)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 4. ActualizaciΓ³n: Se actualizan solo los agentes aprobados  β”‚
β”‚    en tu lista blanca                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 5. FinalizaciΓ³n: Todo listo. Tus agentes estΓ‘n actualizados  β”‚
β”‚    y protegidos                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Modo SimulaciΓ³n (Recomendado para Primera Vez)

Antes de ejecutar el script por primera vez, usa el modo simulaciΓ³n para ver quΓ© harΓ­a sin hacer cambios reales:

.\src\AI-CLI-Sentinel.ps1 -WhatIf

VerΓ‘s mensajes como:

  • What if: Performing the operation 'Crear Punto de RestauraciΓ³n (VSS)'...
  • What if: Performing the operation 'Actualizar NPM'...

Esto te permite entender exactamente quΓ© harΓ‘ el script antes de ejecutarlo realmente.

Personalizar Archivo de ConfiguraciΓ³n

.\src\AI-CLI-Sentinel.ps1 -ConfigFile "ruta\personalizada\agents.allowlist.json" -BackupSecrets

Personalizar Ruta de Logs

.\src\AI-CLI-Sentinel.ps1 -LogPath "C:\Logs\sentinel.log" -BackupSecrets

πŸ“ Estructura del Proyecto

ai-cli-sentinel/
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”‚   └── ci-lint.yml           # CI: ValidaciΓ³n automΓ‘tica
β”‚   └── ISSUE_TEMPLATE/
β”‚       β”œβ”€β”€ bug_report.md
β”‚       β”œβ”€β”€ feature_request.md
β”‚       └── security_report.md
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ AI-CLI-Sentinel.ps1       # Script principal
β”‚   └── agents.allowlist.json     # ConfiguraciΓ³n
β”œβ”€β”€ tests/
β”‚   └── AI-CLI-Sentinel.tests.ps1 # Pruebas unitarias
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ architecture.md           # Arquitectura del sistema
β”‚   └── recovery.md               # GuΓ­a de recuperaciΓ³n
β”œβ”€β”€ .gitignore
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
└── SECURITY.md

πŸ”„ Flujo de EjecuciΓ³n

flowchart TD
    A[Inicio: AI-CLI-Sentinel] --> B{ΒΏPrivilegios<br/>Admin?}
    B -->|No| C[Error: Se requieren privilegios]
    B -->|SΓ­| D[Cargar agents.allowlist.json]
    D --> E{ΒΏModo<br/>Discover?}
    E -->|SΓ­| F[Buscar agentes instalados]
    F --> G[Reportar candidatos]
    G --> H[Fin: Solo reporte]
    E -->|No| I{ΒΏWhatIf?}
    I -->|SΓ­| J[Mostrar acciones simuladas]
    J --> H
    I -->|No| K[Crear punto VSS]
    K --> L{ΒΏBackup<br/>Secrets?}
    L -->|SΓ­| M[Respaldar .ssh, .config, .npmrc]
    L -->|No| N[Actualizar agentes NPM]
    M --> N
    N --> O[Actualizar aplicaciones Winget]
    O --> P[Fin: ActualizaciΓ³n completa]
    
    style A fill:#e1f5ff
    style C fill:#ffcccc
    style H fill:#ccffcc
    style P fill:#ccffcc
Loading

πŸ§ͺ Testing

Ejecutar tests con Pester:

# Instalar Pester si es necesario
Install-Module -Name Pester -Force -SkipPublisherCheck

# Ejecutar tests
Invoke-Pester tests/

πŸ”’ Seguridad

Para reportar vulnerabilidades de seguridad, por favor usa el formulario de seguridad o consulta SECURITY.md.

Referencias de Seguridad

Este proyecto implementa prΓ‘cticas de seguridad basadas en estΓ‘ndares reconocidos:

  1. OWASP Top 10 para LLM (2024-2025)

    • Mitiga riesgos de "Insecure Output Handling" mediante validaciΓ³n estricta de entrada.
    • Previene ataques de inyecciΓ³n indirecta mediante lista blanca de agentes.
    • Referencia: OWASP LLM Top 10
  2. Node.js Security Best Practices

    • Utiliza --ignore-scripts para prevenir la ejecuciΓ³n de malware durante la instalaciΓ³n de paquetes npm.
    • Referencia: npm Security Best Practices
  3. Microsoft Volume Shadow Copy Service (VSS)

    • Implementa puntos de restauraciΓ³n del sistema antes de realizar cambios crΓ­ticos.
    • Referencia: Windows System Restore
  4. Repositorios Oficiales

🀝 Contribuir

Las contribuciones son bienvenidas! Por favor lee CONTRIBUTING.md para mΓ‘s detalles sobre cΓ³mo contribuir al proyecto.

πŸ“„ Licencia

Este proyecto estΓ‘ licenciado bajo la Licencia MIT - ver el archivo LICENSE para mΓ‘s detalles.

πŸ‘₯ Autores

Gustavo Ernesto MartΓ­nez CΓ‘rdenas Lead Data Scientist & Architect at DataNicaragua

GitHub LinkedIn


DataNicaragua - OrganizaciΓ³n

πŸ™ Agradecimientos

Gracias a todos los contribuidores que hacen posible este proyecto.

πŸ“ž Soporte


⭐ Si este proyecto te resulta útil, considera darle una estrella en GitHub!

About

Security-hardened management tool for AI CLI agents. Mitigates supply chain attacks (NPM/Winget) using VSS snapshots, secret backups, and isolated updates.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors