Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

В articolo precedente abbiamo spiegato come eseguire la versione stabile di Suricata su Ubuntu 18.04 LTS. L'impostazione di un IDS su un singolo nodo e l'abilitazione di set di regole gratuiti è piuttosto semplice. Oggi scopriremo come proteggere una rete aziendale utilizzando i tipi più comuni di attacchi utilizzando Suricata installato su un server virtuale. Per fare ciò, abbiamo bisogno di un VDS su Linux con due core di elaborazione. La quantità di RAM dipende dal carico: 2 GB sono sufficienti per qualcuno e per attività più serie potrebbero essere necessari 4 o anche 6. Il vantaggio di una macchina virtuale è la possibilità di sperimentare: puoi iniziare con una configurazione minima e aumentare risorse secondo necessità.

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficiofoto: Reuters

Reti di collegamento

La rimozione di IDS su una macchina virtuale in primo luogo potrebbe essere necessaria per i test. Se non hai mai avuto a che fare con tali soluzioni, non dovresti affrettarti a ordinare l'hardware fisico e modificare l'architettura di rete. È meglio eseguire il sistema in modo sicuro ed economico per determinare le tue esigenze di elaborazione. È importante capire che tutto il traffico aziendale dovrà passare attraverso un unico nodo esterno: per connettere una rete locale (o più reti) ad un VDS con IDS Suricata installato, si può utilizzare Morbido Etere - Un server VPN multipiattaforma facile da configurare che fornisce una crittografia avanzata. Una connessione Internet dell'ufficio potrebbe non avere un IP reale, quindi è meglio configurarla su un VPS. Non ci sono pacchetti già pronti nel repository Ubuntu, dovrai scaricare il software da sito del progettoo da un repository esterno nel servizio Launchpad (se ti fidi di lui):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

È possibile visualizzare l'elenco dei pacchetti disponibili con il seguente comando:

apt-cache search softether

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Avremo bisogno di softether-vpnserver (il server nella configurazione di test è in esecuzione su VDS), nonché di softether-vpncmd - utilità della riga di comando per configurarlo.

sudo apt-get install softether-vpnserver softether-vpncmd

Per configurare il server viene utilizzata una speciale utility della riga di comando:

sudo vpncmd

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Non parleremo in dettaglio dell'ambientazione: la procedura è abbastanza semplice, è ben descritta in numerose pubblicazioni e non riguarda direttamente l'argomento dell'articolo. In breve, dopo aver avviato vpncmd, è necessario selezionare l'elemento 1 per accedere alla console di gestione del server. Per fare ciò, devi inserire il nome localhost e premere invio invece di inserire il nome dell'hub. La password dell'amministratore viene impostata nella console con il comando serverpasswordset, l'hub virtuale DEFAULT viene eliminato (comando hubdelete) e ne viene creato uno nuovo con il nome Suricata_VPN e viene impostata anche la sua password (comando hubcreate). Successivamente, è necessario accedere alla console di gestione del nuovo hub utilizzando il comando hub Suricata_VPN per creare un gruppo e un utente utilizzando i comandi groupcreate e usercreate. La password utente viene impostata utilizzando userpasswordset.

SoftEther supporta due modalità di trasferimento del traffico: SecureNAT e Local Bridge. La prima è una tecnologia proprietaria per la creazione di una rete privata virtuale con propri NAT e DHCP. SecureNAT non richiede TUN/TAP o Netfilter o altre impostazioni del firewall. Il routing non influisce sul core del sistema e tutti i processi sono virtualizzati e funzionano su qualsiasi VPS/VDS, indipendentemente dall'hypervisor utilizzato. Ciò comporta un aumento del carico della CPU e una velocità inferiore rispetto alla modalità Bridge locale, che collega l'hub virtuale SoftEther a una scheda di rete fisica o a un dispositivo TAP.

La configurazione in questo caso diventa più complicata, poiché il routing avviene a livello di kernel utilizzando Netfilter. I nostri VDS sono basati su Hyper-V, quindi nell'ultimo passaggio creiamo un bridge locale e attiviamo il dispositivo TAP con il comando bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Dopo essere usciti dalla console di gestione dell'hub, vedremo una nuova interfaccia di rete nel sistema a cui non è stato ancora assegnato un IP:

ifconfig

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Successivamente, dovrai abilitare il routing dei pacchetti tra le interfacce (ip forward), se non è attivo:

sudo nano /etc/sysctl.conf

Rimuovere il commento dalla seguente riga:

net.ipv4.ip_forward = 1

Salva le modifiche al file, esci dall'editor e applicale con il seguente comando:

sudo sysctl -p

Successivamente, dobbiamo definire una sottorete per la rete virtuale con IP fittizi (ad esempio, 10.0.10.0/24) e assegnare un indirizzo all'interfaccia:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Quindi devi scrivere le regole di Netfilter.

1. Se necessario, consentire i pacchetti in arrivo sulle porte di ascolto (il protocollo proprietario SoftEther utilizza HTTPS e la porta 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. Configurare NAT dalla sottorete 10.0.10.0/24 all'IP del server principale

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Consentire il passaggio di pacchetti dalla sottorete 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Consentire il passaggio di pacchetti per connessioni già stabilite

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Lasceremo l'automazione del processo quando il sistema viene riavviato utilizzando gli script di inizializzazione ai lettori come compiti a casa.

Se vuoi assegnare automaticamente l'IP ai client, dovrai anche installare un qualche tipo di servizio DHCP per il bridge locale. Questo completa la configurazione del server e puoi andare ai client. SoftEther supporta molti protocolli, il cui utilizzo dipende dalle capacità dell'apparecchiatura LAN.

netstat -ap |grep vpnserver

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Poiché il nostro router di prova funziona anche con Ubuntu, installiamo su di esso i pacchetti softether-vpnclient e softether-vpncmd da un repository esterno per utilizzare il protocollo proprietario. Dovrai eseguire il client:

sudo vpnclient start

Per configurare, utilizzare l'utility vpncmd, selezionando localhost come macchina su cui è in esecuzione vpnclient. Tutti i comandi vengono eseguiti nella console: dovrai creare un'interfaccia virtuale (NicCreate) e un account (AccountCreate).

In alcuni casi, è necessario specificare il metodo di autenticazione utilizzando i comandi AccountAnonymousSet, AccountPasswordSet, AccountCertSet e AccountSecureCertSet. Poiché non stiamo utilizzando DHCP, l'indirizzo per l'adattatore virtuale viene impostato manualmente.

Inoltre, dobbiamo abilitare ip forward (opzione net.ipv4.ip_forward=1 nel file /etc/sysctl.conf) e configurare le route statiche. Se necessario, su VDS con Suricata, è possibile configurare il port forwarding per utilizzare i servizi installati sulla rete locale. Su questo, la fusione della rete può essere considerata completa.

La nostra configurazione proposta sarà simile a questa:

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Allestimento di Suricata

В articolo precedente abbiamo parlato di due modalità di funzionamento di IDS: attraverso la coda NFQUEUE (modalità NFQ) e attraverso la copia zero (modalità AF_PACKET). Il secondo richiede due interfacce, ma è più veloce: lo useremo. Il parametro è impostato per impostazione predefinita in /etc/default/suricata. Dobbiamo anche modificare la sezione vars in /etc/suricata/suricata.yaml, impostando la subnet virtuale come home.

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Per riavviare IDS, utilizzare il comando:

systemctl restart suricata

La soluzione è pronta, ora potrebbe essere necessario testarla per la resistenza ad azioni dannose.

Simulazione di attacchi

Ci possono essere diversi scenari per l'uso in combattimento di un servizio IDS esterno:

Protezione dagli attacchi DDoS (scopo primario)

È difficile implementare tale opzione all'interno della rete aziendale, poiché i pacchetti per l'analisi devono arrivare all'interfaccia di sistema che guarda a Internet. Anche se l'IDS li blocca, il traffico spurio può interrompere il collegamento dati. Per evitare ciò, è necessario ordinare un VPS con una connessione Internet sufficientemente produttiva in grado di far passare tutto il traffico di rete locale e tutto il traffico esterno. Spesso è più facile ed economico farlo piuttosto che espandere il canale dell'ufficio. In alternativa, vale la pena menzionare i servizi specializzati per la protezione contro gli attacchi DDoS. Il costo dei loro servizi è paragonabile al costo di un server virtuale e non richiede una configurazione che richiede tempo, ma ci sono anche degli svantaggi: il cliente riceve solo protezione DDoS per i suoi soldi, mentre il suo IDS può essere configurato come te Piace.

Protezione contro attacchi esterni di altro tipo

Suricata è in grado di far fronte a tentativi di sfruttamento di varie vulnerabilità nei servizi di rete aziendale accessibili da Internet (server di posta, server web e applicazioni web, ecc.). Di solito, per questo, IDS viene installato all'interno della LAN dopo i dispositivi di confine, ma portarlo all'esterno ha il diritto di esistere.

Protezione dagli addetti ai lavori

Nonostante gli sforzi dell'amministratore di sistema, i computer della rete aziendale possono essere infettati da malware. Inoltre, a volte nella zona compaiono teppisti che cercano di eseguire alcune operazioni illegali. Suricata può aiutare a bloccare tali tentativi, anche se per proteggere la rete interna è meglio installarlo all'interno del perimetro e utilizzarlo insieme a uno switch gestito in grado di eseguire il mirroring del traffico su una porta. Anche un IDS esterno non è inutile in questo caso: almeno sarà in grado di rilevare i tentativi di malware che vivono sulla LAN di contattare un server esterno.

Per cominciare, creeremo un altro VPS di attacco di prova e sul router di rete locale alzeremo Apache con la configurazione predefinita, dopodiché inoltreremo ad esso l'80a porta dal server IDS. Successivamente, simuleremo un attacco DDoS da un host attaccante. Per fare ciò, scarica da GitHub, compila ed esegui un piccolo programma xerxes sul nodo attaccante (potrebbe essere necessario installare il pacchetto gcc):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

Il risultato del suo lavoro è stato il seguente:

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Suricata interrompe il cattivo e la pagina di Apache si apre per impostazione predefinita, nonostante il nostro attacco improvvisato e il canale piuttosto morto della rete "dell'ufficio" (in realtà casa). Per compiti più seri, dovresti usare Quadro Metasploit. È progettato per i test di penetrazione e consente di simulare una varietà di attacchi. Istruzioni per l'installazione disponibile sul sito web del progetto. Dopo l'installazione, è necessario un aggiornamento:

sudo msfupdate

Per il test, esegui msfconsole.

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Sfortunatamente, le ultime versioni del framework non hanno la capacità di crackare automaticamente, quindi gli exploit dovranno essere ordinati manualmente ed eseguiti utilizzando il comando use. Per cominciare, vale la pena determinare le porte aperte sulla macchina attaccata, ad esempio utilizzando nmap (nel nostro caso sarà completamente sostituito da netstat sull'host attaccato), quindi selezionare e utilizzare l'appropriato Moduli Metasploit

Esistono altri mezzi per testare la resilienza di un IDS contro gli attacchi, compresi i servizi online. Per curiosità, puoi organizzare stress test utilizzando la versione di prova stressante IP. Per verificare la reazione alle azioni degli intrusi interni, vale la pena installare strumenti speciali su una delle macchine della rete locale. Ci sono molte opzioni e di volta in volta dovrebbero essere applicate non solo al sito sperimentale, ma anche ai sistemi funzionanti, solo che questa è una storia completamente diversa.

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Sbuffo o Suricata. Parte 3: Protezione della rete dell'ufficio

Fonte: habr.com

Aggiungi un commento