Skip to content

Latest commit

 

History

History
140 lines (99 loc) · 3.98 KB

File metadata and controls

140 lines (99 loc) · 3.98 KB

Monitoring Security Project

Stack di monitoraggio della sicurezza di rete basato su ELK + Suricata, orchestrato con Docker Compose.


Panoramica

Componente Versione Funzione
Elasticsearch 7.15.0 Motore di ricerca e analisi distribuito - storage dei log
Logstash 7.15.0 Pipeline di raccolta ed elaborazione dei log Suricata
Kibana 7.15.0 Dashboard web per visualizzazione e analisi degli alert
Suricata latest IDS/IPS - rilevamento intrusioni e analisi traffico di rete
Traffic Generator Alpine Genera traffico di test verso Kibana

Requisiti


Installazione e avvio

# Clona il repository
git clone https://github.com/GiulioSavini/Monitoring-Security-Project.git
cd Monitoring-Security-Project

# Avvia lo stack
docker-compose up -d

# Verifica che tutti i container siano running
docker-compose ps

Porte esposte

Servizio Porta Protocollo Descrizione
Elasticsearch 9200 HTTP API REST Elasticsearch
Logstash 5044 TCP Input Beats/Logstash
Kibana 5601 HTTP Dashboard web

Architettura

                    ┌─────────────────┐
                    │    Suricata      │
                    │  (IDS/IPS)       │
                    └────────┬────────┘
                             │ eve.json
                             ▼
                    ┌─────────────────┐
                    │    Logstash      │
                    │  (parse JSON)   │
                    └────────┬────────┘
                             │
                             ▼
                    ┌─────────────────┐
                    │  Elasticsearch   │
                    │  (storage)       │
                    └────────┬────────┘
                             │
                             ▼
                    ┌─────────────────┐
                    │     Kibana       │
                    │  (dashboard)     │
                    └─────────────────┘

Flusso dati

  1. Suricata analizza il traffico di rete e scrive gli alert in /var/log/suricata/eve.json
  2. Logstash legge eve.json, parsa il JSON, tagga gli alert e invia a Elasticsearch
  3. Elasticsearch indicizza i dati in indici giornalieri (suricata-YYYY.MM.dd)
  4. Kibana permette di visualizzare, filtrare e creare dashboard sugli alert

Configurazione

Logstash (logstash.conf)

La pipeline Logstash:

  • Input: legge /var/log/suricata/eve.json
  • Filter: parsa il JSON, aggiunge tag suricata-alert per gli eventi di tipo alert
  • Output: invia a Elasticsearch con indice giornaliero

Suricata (suricata.yaml)

File di configurazione completo di Suricata. Le regole sono montate da /var/lib/suricata/rules/.

Regole Suricata

Il file emerging.rules.tar.gz contiene le regole Emerging Threats per il rilevamento delle intrusioni.


Utilizzo

Accesso a Kibana

  1. Apri http://localhost:5601
  2. Vai su Discover
  3. Crea un index pattern: suricata-*
  4. Filtra per tag suricata-alert per vedere solo gli alert di sicurezza

Comandi utili

# Visualizza i log in tempo reale
docker-compose logs -f suricata

# Verifica stato Elasticsearch
curl http://localhost:9200/_cluster/health?pretty

# Conta gli alert indicizzati
curl http://localhost:9200/suricata-*/_count?pretty

# Ferma lo stack
docker-compose down

# Ferma e rimuovi i volumi (reset completo)
docker-compose down -v

Licenza

MIT License