Architettura di sicurezza basata su host per la rete di server web

1

Sto iniziando con la sicurezza della rete e dopo aver studiato per un po 'sulle tecnologie usate spesso ho ottenuto questa architettura per il mio server di casa (mi dispiace non è in inglese).

Ho considerato 3 principi di base della sicurezza generale per questo 2 :

  • Approfondimento della difesa (molte barriere di sicurezza si supportano a vicenda)
  • Punto di soffocamento (un canale stretto attraverso il quale l'attaccante deve passare)
  • Minimo privilegio (qualsiasi oggetto dovrebbe esporre solo il necessario e nient'altro)

Una restrizione è che non posso usare altre macchine fisiche all'inizio. Non ci sono altre macchine in questa sottorete. Tutti questi componenti dovrebbero essere tenuti nello stesso server Ubuntu. I componenti si basano principalmente su 3 :

  • Firewall (iptables) > implementato al fine di proteggere la rete dalle minacce esterne.
  • IDS (Snort) > stabilisce regole per il monitoraggio della rete nel caso in cui l'attaccante esterno ignori il firewall
  • fwsnort > uno strumento per convertire le regole snort in regole iptables
  • psad > uno strumento per il monitoraggio dei registri iptables con la risorsa di avviso e-mail
  • Honeypots (artiglieria) > insieme a molte altre funzionalità, l'artiglieria è usata qui come un honeypot per attaccare gli imbroglioni e mi consente di ottenere informazioni su di loro.

Alcune domande:

  • Questa architettura sarà efficace?
  • Gli honeypot sono una buona idea?
  • In tal caso, dovrei eseguirli su una VM?
  • Posso garantire QoS? O il mio server sarà sovraccaricato?
  • Che altro mi manca (su qualsiasi argomento correlato)?
posta Marcos Valle 15.05.2015 - 13:16
fonte

1 risposta

1

Recentemente ho implementato questa soluzione e l'ho testata usando 3 VM. L'hacker utilizza Kali, il server web utilizza Ubuntu 14.04 e l'honeypot utilizza effettivamente HoneyDrive 3. Ho dovuto cambiarlo un po '.

Quindiinpraticaciòchequestaarchitetturafaèricevereunpacchetto,ricontrollareleregoledelfirewall(iptables)eregistrarlo.FwsnortconverteleregoleSnortinregoleiptables,rendendoilfirewallunaspeciediIPS.Ilmonitordiregistro(psad)quindianalizzailregistro,identificagliIPdannosiebloccaquindi.Daquestomomentoinpoi,ognipacchettoinarrivodaquestiIPverràinoltratoaHoneypot.

Eccoleprincipaliregolechelofanno:

######forwarding######ipsetcreatebanned_netshash:iphashsize4096iptables-tnat-APREROUTING-ptcp-mset--dport8181-jDNAT--to-destination$HONEYPOT_ADDR:443--match-setbanned_netssrciptables-tnat-APOSTROUTING-ptcp-s$HONEYPOT_ADDR--dport443-jSNAT--to-source$SERVER_ADDR:8181iptables-tnat-APREROUTING-ptcp-mset-jDNAT--to-destination$HONEYPOT_ADDR--match-setbanned_netssrciptables-tnat-APREROUTING-pudp-mset-jDNAT--to-destination$HONEYPOT_ADDR--match-setbanned_netssrciptables-tnat-APOSTROUTING-ptcp-mset-jSNAT--to-source$SERVER_ADDR--match-setbanned_netssrciptables-tnat-APOSTROUTING-pudp-mset-jSNAT--to-source$SERVER_ADDR--match-setbanned_netssrcecho"[+] Activating IP forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward

Ho dovuto aggiornare la parte difficile dell'inoltro degli IP bloccati. Inizialmente, psad eliminerebbe solo i pacchetti in arrivo dagli indirizzi IP in blacklist. Questi IP sono elencati nel file di testo auto_blocked_iptables . Così ho scritto uno script per ottenere questi IP e inserirli in un ipset. Ho chiamato questo update_daemon con questo meccanismo di feedback il firewall è in grado di inoltrare i pacchetti controllandone l'origine con gli elementi ipset.

Ecco come l'ho fatto:

#!/bin/bash
#ipset banned_nets must already exist

AUTO_BLOCKED_IPTABLES_PATH=/var/log/psad/auto_blocked_iptables

update_set(){
    ipset flush banned_nets

    grep -E -o '^([0-9]{1,3}[\.]){3}[0-9]{1,3}' $AUTO_BLOCKED_IPTABLES_PATH |      while read -r line ; do
         echo "Processing $line"
        ipset add banned_nets $line
    done
 }

while true #run indefinitely 
do
     inotifywait -e modify $AUTO_BLOCKED_IPTABLES_PATH | update_set
done

Il progetto buca è disponibile all'indirizzo 2 .

Quindi rispondendo alle mie domande:

  • Questa architettura sarà efficace? Sì, inoltra gli hacker precedentemente identificati a un honeypot, quindi protegge il server.

  • Gli honeypot sono una buona idea? Honeypots sembra essere un'idea interessante. Con un honeypot possiamo capire meglio l'attaccante, i suoi metodi, i principali obiettivi, gli exploit, le liste di parole e molto altro.

  • Se sì, dovrei eseguirli su una VM? Secondo 3 , l'esecuzione di honeypot in macchine virtuali è una buona idea. Poiché gli honeypot dovrebbero essere a bassa interazione, non richiedono troppe risorse hardware. D'altra parte, il sistema diventa vulnerabile alle vulnerabilità del software honeypot e nella VM stessa.

  • Posso garantire QoS? O il mio server sarà sovraccaricato? Non ho testato a sufficienza il sistema per QoS. Ancora mi sembra che il traffico inoltrato aumenterà il flusso di dati.

  • Che altro mi manca (su qualsiasi cosa sia collegato)? L'inoltro non è così semplice come sembra che il server debba fungere da proxy trasparente e update_daemon era una parte difficile, dal momento che monitora dinamicamente un file. Inoltre, la soluzione non mostra buoni risultati quando si soffre di attacchi DoS. In questo caso, l'opzione migliore sembra rimuovere l'honeypot e rilasciare l'attacker. Questa soluzione parziale è disponibile anche su GitHub.

Troverai ulteriori informazioni all'indirizzo 2 e 4

    
risposta data 12.10.2015 - 14:10
fonte

Leggi altre domande sui tag