EagleEye - sistema IDS basado en host y de monitoreo de red
Este proyecto necesita mucho trabajo para estar listo para usarse, ya que es mi proyecto de graduación, por lo que no es amigable para el usuario, solo para usuarios experimentados, versión beta, y lo publiqué/lo hice solo con fines educativos.

- EagleEye consta de dos partes:
- Cliente (Escrito en Golang)
- Propósito: Capturar cada paquete en el dispositivo y extraer detalles importantes de protocolos conocidos para finalmente enviar todos los datos recopilados al maestro si está en línea.
- Uso: Debe instalarse en cada dispositivo que desee monitorear (ej: dispositivos de empleados para empresas).
- Maestro: (Escrito en Python y Bootstrap)
- Propósito: Recibir cada paquete enviado por los clientes, mostrarlo organizado en la tabla de monitoreo de la GUI, mostrar información de los dispositivos conectados como el usuario actual del sistema/información del sistema, comparar los datos capturados con los modelos de amenazas ya escritos anteriormente, y finalmente alertar al usuario maestro sobre posibles amenazas de seguridad en la red, como lo haría un sistema IDS típico.
- Uso: Debe ejecutarse en un servidor en la misma red que los clientes (ej: un servidor administrado por el departamento de TI o el equipo de hacking azul de la empresa, quizás).
Para más información, necesitará leer sobre los (S)istemas de (D)etección de (I)ntrusiones y sus tipos. Recomiendo la guía de NIST.
Capturas de pantalla
GUI principal


Tabla de monitoreo
Observe que los botones en la tabla le dan la capacidad de exportar la tabla como (CSV, Excel, PDF), copiar los datos de la tabla al portapapeles e imprimir los datos de la tabla si lo desea.
Búsqueda en la tabla de monitoreo
Búsqueda simple
Búsqueda detallada
Como puede ver, la búsqueda aquí le da la capacidad de buscar cualquier cosa representada en la tabla.
Tabla de dispositivos conectados
Cuando un nuevo cliente se conecta al cliente
Observe que la tabla se actualiza automáticamente cada 5 segundos o al actualizar la página.
Tabla de amenazas
Cuando se detecta una amenaza
Detalles sobre cualquier amenaza posible detectada + referencia al hacer clic


Notificación de escritorio para amenazas
Observe que la tabla se actualiza automáticamente cada 5 segundos o al actualizar la página.
Instrucciones de instalación
El Cliente
Requisitos
- Actualmente solo es compatible con sistemas Windows (Debido a los datos obtenidos del registro, hay que cambiar eso).
- Las siguientes instrucciones
Instrucciones de instalación
- Asegúrese de tener Golang instalado.
- Instale la librería gopacket usando este comando:
go get github.com/google/gopacket
- Descargue e instale npcap desde aquí.
- Cambie las siguientes variables en el código según sus necesidades:
- Línea57: Cambie la variable url a la URL actual de su Maestro
- Línea59: Cambie la variable device a la interfaz de red que desea escuchar, para Windows necesitará este artículo.
- Línea66: Cambie la variable filter al filtro que desee para capturar paquetes de red o déjela vacía como está (si desea capturar todos los paquetes). La sintaxis del filtro es bpf, la misma que se usa en la búsqueda de Wireshark; puede aprenderla en esta guía. También dejé algunos ejemplos en los comentarios, por si alguien quiere usarlos.
- En CMD, navegue al directorio del cliente, por supuesto.
- Ahora puede ejecutar el cliente como un script con este comando:
go run main.go
- Para compilarlo/construirlo, puede usar el siguiente comando:
go build -o client.exe main.go, quizás necesite esta guía.
- Si hizo todo esto, salga a vivir, amigo 😆 (Es broma)
El Maestro
Requisitos
- Cualquier sistema operativo.
- Las siguientes instrucciones, es mucho más fácil que el cliente, no se preocupe ¡LOL!
Instrucciones de instalación
- Asegúrese de tener Python 3 instalado (Versión 3.5 y superior) y pip.
- En CMD, navegue a la carpeta del maestro y luego instale los requisitos usando este comando:
pip install -r requirements.txt o python -m pip install -r requirements.txt
- Si está en Windows y la impresión de colores en CMD le importa, ejecute este comando:
pip install -r coloring-requirements.txt o python -m pip install -r coloring-requirements.txt
- Ahora algunas variables a cambiar según sus necesidades 😆
- Línea21: Cambie la variable host_port al puerto en el que desea servir (Predeterminado: 8000)
- Línea23: Cambie la variable serve_localhost a True si desea ejecutar el maestro solo en localhost (Predeterminado: True)
- Línea24: Cambie la variable view_browser a True si desea que el maestro abra automáticamente la URL de servicio en el navegador (Predeterminado: True)
- Ahora puede ejecutar el maestro con
python interface.py
- Diviértase :)