Skip to content

a network traffic anomaly detector that captures and analyzes network packets to identify anomalous behavior. It uses machine learning techniques to detect deviations from normal traffic patterns // un detector de anomalías en el tráfico de red que captura y analiza paquetes de red para identificar comportamientos anómalos.

Notifications You must be signed in to change notification settings

elliotsecops/Network-Traffic-Anomaly-Detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Detector de Anomalías en el Tráfico de Red

Este proyecto es un detector de anomalías en el tráfico de red que captura y analiza paquetes de red para identificar comportamientos anómalos. Utiliza técnicas de aprendizaje automático para detectar desviaciones de los patrones normales de tráfico.

Características

  • Captura de Paquetes: Captura el tráfico de red en tiempo real utilizando scapy.
  • Preprocesamiento: Prepara los datos capturados para el análisis de aprendizaje automático.
  • Detección de Anomalías: Utiliza el algoritmo IsolationForest para identificar anomalías en el tráfico de red.
  • Alertas: Imprime las anomalías detectadas en la terminal para obtener una retroalimentación inmediata.
  • Registro: Registra todos los eventos relevantes y las anomalías detectadas en archivos de registro para un análisis futuro.
  • Docker: El proyecto puede ejecutarse dentro de un contenedor Docker para una implementación y aislamiento fáciles.

Estructura del Proyecto

Network Traffic Anomaly Detector/
│
├── alerts.py                # Lógica de alertas y notificaciones
├── anomaly_detection.log    # Archivo de registro para eventos de detección de anomalías
├── anomaly_detection.py     # Modelo de aprendizaje automático para la detección de anomalías
├── capture.py               # Lógica de captura de paquetes de red
├── config.py                # Configuración de ajustes
├── Dockerfile               # Dockerfile para la contenerización
├── logs/                    # Directorio para archivos de registro
│   └── anomaly_detector.log # Archivo de registro para el detector de anomalías
├── main.py                  # Punto de entrada principal del programa
├── preprocess.py            # Funciones de preprocesamiento de datos
├── __pycache__/             # Archivos compilados de Python (generados automáticamente)
├── requirements.txt         # Dependencias del proyecto
└── test_scapy.py            # Script de prueba para scapy

Instalación

Prerrequisitos

  • Python 3.x
  • Docker (opcional, para la contenerización)

Pasos

  1. Clonar el Repositorio:

    git clone https://github.com/elliotsecops/network-traffic-anomaly-detector.git
    cd network-traffic-anomaly-detector
  2. Crear y Activar un Entorno Virtual:

    python3 -m venv venv
    source venv/bin/activate
  3. Instalar Dependencias:

    pip install -r requirements.txt
  4. Ejecutar el Script:

    sudo $(which python3) main.py

Configuración de Docker

Construir la Imagen de Docker

docker build -t network-traffic-anomaly-detector .

Ejecutar el Contenedor de Docker

docker run --rm --net=host network-traffic-anomaly-detector

Configuración

El archivo config.py contiene la configuración de ajustes para el proyecto, incluyendo:

  • Cantidad de Paquetes: Número de paquetes a capturar.
  • Contaminación del Bosque de Aislamiento: Parámetro de contaminación para el algoritmo IsolationForest.
  • Configuración de Correo Electrónico: Configuración del servidor SMTP para enviar alertas por correo electrónico (actualmente deshabilitada).

Uso

  1. Capturar Paquetes de Red: El script captura el tráfico de red en tiempo real utilizando scapy.

  2. Preprocesar Datos: Los datos capturados se preprocesan para extraer características relevantes.

  3. Detectar Anomalías: El algoritmo IsolationForest se utiliza para detectar anomalías en el tráfico de red.

  4. Imprimir Anomalías: Las anomalías detectadas se imprimen en la terminal.

  5. Registro: Todos los eventos relevantes y las anomalías detectadas se registran en logs/anomaly_detector.log.

Ejemplo de Salida

INFO:root:Starting packet capture...
INFO:root:Captured 100 packets.
INFO:root:Detected 1 anomalies.
Anomalies detected:
          src_ip  dst_ip  src_port  dst_port  length  protocol
30  12324998181  109604       443     57658      83         0

Público Objetivo

Este proyecto es particularmente útil para los siguientes profesionales de TI:

  • Administradores de Red: Para monitorear el tráfico de red y detectar posibles amenazas de seguridad o configuraciones incorrectas.
  • Analistas de Seguridad: Para identificar y responder a actividades de red anómalas que podrían indicar una violación de seguridad.
  • Ingenieros de DevOps: Para integrar el monitoreo de red en pipelines de CI/CD para una evaluación de seguridad continua.
  • Científicos de Datos: Para analizar datos de tráfico de red y desarrollar modelos de detección de anomalías más avanzados.
  • Ingenieros de Sistemas: Para garantizar la fiabilidad y seguridad de la infraestructura de red.

Casos de Uso en Escenarios Reales

  1. Detección de Intrusiones:

    • Escenario: Un administrador de red nota patrones de tráfico inusuales durante horas no pico.
    • Solución: El detector de anomalías identifica el tráfico anómalo, permitiendo al administrador investigar y mitigar posibles amenazas de seguridad.
  2. Monitoreo de Cumplimiento:

    • Escenario: Una empresa necesita cumplir con los requisitos reglamentarios para el monitoreo del tráfico de red.
    • Solución: El detector de anomalías proporciona un monitoreo continuo y registros del tráfico de red, ayudando a la empresa a cumplir con los requisitos de cumplimiento.
  3. Solución de Problemas de Rendimiento:

    • Escenario: Una red experimenta un rendimiento degradado y la causa es desconocida.
    • Solución: El detector de anomalías identifica patrones de tráfico inusuales que podrían estar causando los problemas de rendimiento, permitiendo al equipo de red tomar medidas correctivas.
  4. Respuesta a Incidentes de Seguridad:

    • Escenario: Se detecta un incidente de seguridad y el equipo de respuesta necesita identificar rápidamente la fuente y el alcance del incidente.
    • Solución: El detector de anomalías proporciona alertas en tiempo real y registros del tráfico anómalo, ayudando al equipo de respuesta en sus esfuerzos de investigación y mitigación.
  5. Monitoreo Continuo en Entornos en la Nube:

    • Escenario: Una aplicación basada en la nube experimenta problemas de conectividad intermitentes.
    • Solución: El detector de anomalías que se ejecuta en un contenedor Docker monitorea continuamente el tráfico de red, ayudando a identificar y resolver problemas de conectividad.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un pull request o abrir un issue.

Agradecimientos

  • Gracias a las comunidades de scapy, scikit-learn y pandas por sus excelentes bibliotecas.
  • Agradecimiento especial a todos los colaboradores y testers.

Network Traffic Anomaly Detector

This project is a network traffic anomaly detector that captures and analyzes network packets to identify anomalous behavior. It uses machine learning techniques to detect deviations from normal traffic patterns.

Features

  • Packet Capture: Captures real-time network traffic using scapy.
  • Preprocessing: Prepares captured data for machine learning analysis.
  • Anomaly Detection: Utilizes the IsolationForest algorithm to identify anomalies in network traffic.
  • Alerts: Prints anomalies detected to the terminal for immediate feedback.
  • Logging: Records all relevant events and detected anomalies to log files for future analysis.
  • Docker: The project can be run inside a Docker container for easy deployment and isolation.

Project Structure

Network Traffic Anomaly Detector/
│
├── alerts.py                # Alert and notification logic
├── anomaly_detection.log    # Log file for anomaly detection events
├── anomaly_detection.py     # Machine learning model for anomaly detection
├── capture.py               # Network packet capture logic
├── config.py                # Configuration settings
├── Dockerfile               # Dockerfile for containerization
├── logs/                    # Directory for log files
│   └── anomaly_detector.log # Log file for the anomaly detector
├── main.py                  # Main entry point for the program
├── preprocess.py            # Data preprocessing functions
├── __pycache__/             # Compiled Python files (automatically generated)
├── requirements.txt         # Dependencies for the project
└── test_scapy.py            # Test script for scapy

Installation

Prerequisites

  • Python 3.x
  • Docker (optional, for containerization)

Steps

  1. Clone the Repository:

    git clone https://github.com/elliotsecops/network-traffic-anomaly-detector.git
    cd network-traffic-anomaly-detector
  2. Create and Activate a Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Run the Script:

    sudo $(which python3) main.py

Docker Setup

Build the Docker Image

docker build -t network-traffic-anomaly-detector .

Run the Docker Container

docker run --rm --net=host network-traffic-anomaly-detector

Configuration

The config.py file contains configuration settings for the project, including:

  • Packet Count: Number of packets to capture.
  • Isolation Forest Contamination: Contamination parameter for the IsolationForest algorithm.
  • Email Configuration: SMTP server settings for sending email alerts (currently disabled).

Usage

  1. Capture Network Packets: The script captures real-time network traffic using scapy.

  2. Preprocess Data: Captured data is preprocessed to extract relevant features.

  3. Detect Anomalies: The IsolationForest algorithm is used to detect anomalies in the network traffic.

  4. Print Anomalies: Detected anomalies are printed to the terminal.

  5. Logging: All relevant events and detected anomalies are logged to logs/anomaly_detector.log.

Example Output

INFO:root:Starting packet capture...
INFO:root:Captured 100 packets.
INFO:root:Detected 1 anomalies.
Anomalies detected:
          src_ip  dst_ip  src_port  dst_port  length  protocol
30  12324998181  109604       443     57658      83         0

Target Audience

This project is particularly useful for the following IT professionals:

  • Network Administrators: To monitor network traffic and detect potential security threats or misconfigurations.
  • Security Analysts: To identify and respond to anomalous network activities that could indicate a security breach.
  • DevOps Engineers: To integrate network monitoring into CI/CD pipelines for continuous security assessment.
  • Data Scientists: To analyze network traffic data and develop more advanced anomaly detection models.
  • System Engineers: To ensure the reliability and security of network infrastructure.

Use Cases in Real Scenarios

  1. Intrusion Detection:

    • Scenario: A network administrator notices unusual traffic patterns during off-peak hours.
    • Solution: The anomaly detector identifies the anomalous traffic, allowing the administrator to investigate and mitigate potential security threats.
  2. Compliance Monitoring:

    • Scenario: A company needs to comply with regulatory requirements for network traffic monitoring.
    • Solution: The anomaly detector provides continuous monitoring and logs of network traffic, helping the company meet compliance requirements.
  3. Performance Troubleshooting:

    • Scenario: A network experiences degraded performance, and the cause is unknown.
    • Solution: The anomaly detector identifies unusual traffic patterns that could be causing the performance issues, enabling the network team to take corrective actions.
  4. Security Incident Response:

    • Scenario: A security incident is detected, and the response team needs to quickly identify the source and scope of the incident.
    • Solution: The anomaly detector provides real-time alerts and logs of anomalous traffic, aiding the response team in their investigation and mitigation efforts.
  5. Continuous Monitoring in Cloud Environments:

    • Scenario: A cloud-based application experiences intermittent connectivity issues.
    • Solution: The anomaly detector running in a Docker container continuously monitors network traffic, helping to identify and resolve connectivity issues.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.

Acknowledgments

  • Thanks to the scapy, scikit-learn, and pandas communities for their excellent libraries.
  • Special thanks to all contributors and testers.

About

a network traffic anomaly detector that captures and analyzes network packets to identify anomalous behavior. It uses machine learning techniques to detect deviations from normal traffic patterns // un detector de anomalías en el tráfico de red que captura y analiza paquetes de red para identificar comportamientos anómalos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published