Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Sentinel-GPT — Pipeline automatizado de caza de amenazas que ingiere registros de Azure, utiliza razonamiento de LLM para detectar actividad sospechosa, evaluar el riesgo y generar manuales de remediación con comandos CLI. | Kitploit
Herramientas/GitHubGitHub/ayush-parab/sentinel-gpt
Seguridad en la NubeInteligencia de AmenazasAprendizaje y EducaciónRespuesta a IncidentesSeguridad de IAAnálisis de Registros
GitHubayush-parab/sentinel-gpt

Sentinel-GPT

Pipeline automatizado de caza de amenazas que ingiere registros de Azure, utiliza razonamiento de LLM para detectar actividad sospechosa, evaluar el riesgo y generar manuales de remediación con comandos CLI.

Ver Repositorio
hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Sentinel-GPT: IA Agéntica para la Caza de Amenazas 🛡️

Un pipeline automatizado de ciberseguridad que transforma registros sin procesar de Azure en inteligencia accionable mediante razonamiento basado en LLM.

Python Azure OpenAI Security License

📖 Descripción general

Sentinel-GPT es un Agente de IA especializado en la caza de amenazas en ciberseguridad. Está integrado con Azure Log Analytics Workspace, que es la fuente de los registros generados, y la API de ChatGPT de OpenAI, que es el cerebro de este agente. Proporcionamos registros al agente, que está entrenado para identificar actividad sospechosa, cazar amenazas y alertar al usuario al respecto, al mismo tiempo que proporciona los pasos de remediación.

⚠️ El Problema y la Solución

  • El Problema: En el mundo moderno, la mayoría de las empresas y negocios, grandes o pequeños, se han migrado completamente a la nube o están usando una configuración de nube híbrida. Con el tamaño de las redes, se generan millones de registros y alertas cada semana. Los analistas de SOC sufren de "fatiga de alertas y registros", lo que dificulta distinguir entre configuraciones incorrectas menores y violaciones reales.
  • La Solución: Un pipeline agéntico que realiza análisis sobre los numerosos registros. No solo señala los errores, sino que también comprende el contexto de la violación, evalúa el riesgo y el impacto, y elabora un plan de remediación al instante.

🏗️ Arquitectura

  1. Ingesta: Un script de Python consulta Azure Log Analytics usando KQL para los registros relevantes
  2. Contextualización: Los registros se estructuran y se proporcionan indicaciones del sistema al Agente para darle una personalidad de Cazador de Amenazas
  3. Análisis (El Cerebro): Los datos se envían al LLM elegido de OpenAI para su análisis
  4. Salida: Genera un informe integral de Inteligencia de Seguridad

🚀 Características Clave

  • Integración perfecta entre Azure y OpenAI ChatGPT, extensible a otras nubes.
  • Traducción de blobs de registros JSON complejos a resúmenes ejecutivos en inglés sencillo.
  • Playbooks de Remediación Automatizados: Acciones específicas y comandos CLI (Azure CLI/PowerShell) para aislar recursos comprometidos.

🛠️ Inicio Rápido y Configuración

Requisitos Previos

  • Suscripción de Azure con un Espacio de Trabajo de Log Analytics.
  • Clave de API de OpenAI (se recomienda GPT-4.1 para razonamiento complejo).
  • Python 3.10+

Installation

  1. Clona el repositorio:
root@kitploit:~
git clone https://github.com/Ayush-Parab/cybersecurity-agentic-AI
cd cybersecurity-agentic-AI
  1. Instala las dependencias
root@kitploit:~
pip install -r requirements.txt
  1. Configurar el Entorno Crea un archivo .env:
root@kitploit:~
OPENAI_API_KEY="your_key"
LOG_ANALYTICS_WORKSPACE_ID="your_id"

📊 Ejemplo de Salida

Registros de entrada:

root@kitploit:~
TimeGenerated,Status,User,IPAddress,Computer,SyslogMessage
2026-02-12 02:00:15.912351+00:00,Failure,,,Test-VM-For-Logs,Connection closed by invalid user  98.80.4.65 port 35908 [preauth]
2026-02-12 02:00:15.706067+00:00,Failure,,98.80.4.65,Test-VM-For-Logs,Invalid user  from 98.80.4.65 port 35908
2026-02-12 01:59:38.275807+00:00,Success,Ayush,103.38.69.120,Test-VM-For-Logs,Accepted password for Ayush from 103.38.69.120 port 31551 ssh2
2026-02-12 01:59:24.542329+00:00,Failure,,,Test-VM-For-Logs,Connection reset by invalid user balloon 103.38.69.120 port 31573 [preauth]
2026-02-12 01:59:22.850922+00:00,Failure,balloon,103.38.69.120,Test-VM-For-Logs,Failed password for invalid user balloon from 103.38.69.120 port 31573 ssh2
2026-02-12 01:59:17.554208+00:00,Failure,balloon,103.38.69.120,Test-VM-For-Logs,Failed password for invalid user balloon from 103.38.69.120 port 31573 ssh2
2026-02-12 01:59:13.693935+00:00,Failure,,103.38.69.120,Test-VM-For-Logs,Invalid user balloon from 103.38.69.120 port 31573
2026-02-12 01:59:06.649583+00:00,Failure,,,Test-VM-For-Logs,Connection reset by invalid user hamster 103.38.69.120 port 31890 [preauth]
2026-02-12 01:59:03.577720+00:00,Failure,hamster,103.38.69.120,Test-VM-For-Logs,Failed password for invalid user hamster from 103.38.69.120 port 31890 ssh2
2026-02-12 01:58:55.777039+00:00,Failure,hamster,103.38.69.120,Test-VM-For-Logs,Failed password for invalid user hamster from 103.38.69.120 port 31890 ssh2
2026-02-12 01:58:51.167792+00:00,Failure,,103.38.69.120,Test-VM-For-Logs,Invalid user hamster from 103.38.69.120 port 31890
2026-02-12 01:54:50.302217+00:00,Success,Ayush,103.38.69.120,Test-VM-For-Logs,Accepted password for Ayush from 103.38.69.120 port 31565 ssh2

Análisis de Sentinel-GPT:

root@kitploit:~
Sí, esto parece sospechoso.

Lo que destaca
- 103.38.69.120: Múltiples intentos de “Invalid user/Failed password” (hamster/balloon), seguidos de inicios de sesión SSH exitosos con contraseña para Ayush a las 01:54:50 y 01:59:38 en Test-VM-For-Logs. Esto es consistente con un ataque de fuerza bruta/relleno de credenciales seguido de éxito. Verifica con Ayush si ambos inicios de sesión son esperados desde esa IP.
- 98.80.4.65: Una sola sonda de usuario inválido — probablemente un escaneo genérico, igualmente bloquear si no es necesario.

Acciones inmediatas (prioridad Azure)
- Contener: Bloquear 103.38.69.120 en el NSG/Azure Firewall. Restringir TCP/22 solo a IPs de confianza o cerrarlo y usar Azure Bastion o el acceso Just-In-Time de Defender for Cloud.
- Credenciales: Si algún inicio de sesión de Ayush no es reconocido, restablecer la contraseña/llaves SSH de Ayush, invalidar credenciales en caché, eliminar de sudoers si no es necesario y terminar sesiones SSH activas.
- Endurecimiento SSH: Deshabilitar la autenticación por contraseña (PasswordAuthentication no), imponer llaves SSH o AADLoginForLinux con Conditional Access MFA y reiniciar sshd.
- Detección/respuesta: Ejecutar un análisis de Microsoft Defender for Servers/Endpoint AV en la VM y revisar alertas. Buscar nuevos usuarios, cambios en sudoers, procesos sospechosos y modificaciones en authorized_keys.

Próxima cacería (Log Analytics/Sentinel – KQL)
let window=10m;
let ssh = Syslog
| where ProcessName == "sshd" and Facility in ("auth","authpriv")
| extend SrcIP = extract(@"from (\d+\.\d+\.\d+\.\d+)",1, SyslogMessage);
let fails = ssh
| where SyslogMessage has_any ("Invalid user","Failed password")
| summarize FailCount=count(), FirstFail=min(TimeGenerated), LastFail=max(TimeGenerated) by Computer, SrcIP;
ssh
| where SyslogMessage has "Accepted password"
| extend SrcIP = extract(@"from (\d+\.\d+\.\d+\.\d+)",1, SyslogMessage), User = extract(@"for (\S+)",1, SyslogMessage)
| join kind=inner (fails) on Computer, SrcIP
| where TimeGenerated between (FirstFail .. LastFail + window) and FailCount >= 3
| project TimeGenerated, Computer, User, SrcIP, FailCount
- Pivotar esa IP en todas las VMs:
Syslog
| where ProcessName == "sshd" and SyslogMessage has_any ("Invalid user","Failed password","Accepted password")
| extend SrcIP = extract(@"from (\d+\.\d+\.\d+\.\d+)",1, SyslogMessage)
| where SrcIP in ("103.38.69.120","98.80.4.65")
| project TimeGenerated, Computer, SyslogMessage, SrcIP
| order by TimeGenerated desc

Validar y alcance
- Correlacionar con Azure Activity Logs para cualquier cambio en NSG/VM alrededor del mismo tiempo.
- Si Defender for Endpoint está habilitado, buscar actividad posterior al inicio de sesión (nuevos servicios, conexiones salientes inusuales) en Test-VM-For-Logs.

Endurecimiento (en curso)
- Mantener SSH cerrado a internet; preferir Bastion o JIT.
- Habilitar análisis de Sentinel para “múltiples fallos SSH seguidos de éxito” y listas de bloqueo para infractores reincidentes.
- Instalar y ajustar fail2ban en la VM.
- Parchear el SO y rotar secretos usados en esa VM.

🗺️ Hoja de Ruta

  • Bloqueo automático de IP basado en el análisis en NSGs de Azure
  • Implementación de Guardrails
  • Generación de consultas KQL completamente automatizada
  • Soporte para otras nubes como AWS, GCP y OCI
  • Integración con Outlook/Gmail para alertas automáticas

🤝 Contribución y Contacto

Este proyecto está abierto a la colaboración y aún está en progreso. Si tienes ideas para nuevos agentes de seguridad o analizadores de registros, no dudes en abrir un PR.

Conéctate conmigo: Linkedin

Descargar herramienta