Snort o Suricata. Part 3: Protecció de la xarxa d'oficines
В article anterior hem tractat com executar la versió estable de Suricata a Ubuntu 18.04 LTS. Configurar un IDS en un sol node i habilitar conjunts de regles gratuïts és bastant senzill. Avui descobrirem com protegir una xarxa corporativa utilitzant els tipus d'atacs més comuns amb Suricata instal·lat en un servidor virtual. Per fer-ho, necessitem un VDS a Linux amb dos nuclis informàtics. La quantitat de memòria RAM depèn de la càrrega: 2 GB són suficients per a algú, i poden ser necessaris 4 o fins i tot 6 per a tasques més serioses. L'avantatge d'una màquina virtual és la capacitat d'experimentar: podeu començar amb una configuració mínima i augmentar recursos segons sigui necessari.
En primer lloc, pot ser necessari eliminar IDS a una màquina virtual per a les proves. Si mai no heu tractat amb aquestes solucions, no us hauríeu de precipitar a demanar maquinari físic i canviar l'arquitectura de la xarxa. El millor és executar el sistema de manera segura i rendible per determinar les vostres necessitats de càlcul. És important entendre que tot el trànsit corporatiu haurà de passar per un únic node extern: per connectar una xarxa local (o diverses xarxes) a un VDS amb IDS Suricata instal·lat, podeu utilitzar SoftEther - Un servidor VPN multiplataforma fàcil de configurar que proporciona un xifratge fort. És possible que una connexió a Internet d'oficina no tingui una IP real, així que és millor configurar-la en un VPS. No hi ha paquets preparats al repositori d'Ubuntu, haureu de descarregar el programari des de lloc del projecte, o des d'un dipòsit extern del servei Plataforma de llançament (si confies en ell):
Podeu veure la llista de paquets disponibles amb l'ordre següent:
apt-cache search softether
Necessitarem softether-vpnserver (el servidor de la configuració de prova s'està executant a VDS), així com softether-vpncmd - utilitats de línia d'ordres per configurar-lo.
S'utilitza una utilitat especial de línia d'ordres per configurar el servidor:
sudo vpncmd
No parlarem amb detall sobre la configuració: el procediment és bastant senzill, està ben descrit en nombroses publicacions i no es relaciona directament amb el tema de l'article. En resum, després d'iniciar vpncmd, heu de seleccionar l'element 1 per anar a la consola de gestió del servidor. Per fer-ho, cal que introduïu el nom localhost i premeu Intro en lloc d'introduir el nom del concentrador. La contrasenya de l'administrador s'estableix a la consola amb l'ordre serverpasswordset, s'elimina el concentrador virtual DEFAULT (ordre hubdelete) i se'n crea una de nova amb el nom Suricata_VPN, i també s'estableix la seva contrasenya (ordre hubcreate). A continuació, heu d'anar a la consola de gestió del nou concentrador mitjançant l'ordre hub Suricata_VPN per crear un grup i un usuari mitjançant les ordres groupcreate i usercreate. La contrasenya d'usuari s'estableix mitjançant userpasswordset.
SoftEther admet dos modes de transferència de trànsit: SecureNAT i Local Bridge. El primer és una tecnologia propietària per construir una xarxa privada virtual amb el seu propi NAT i DHCP. SecureNAT no requereix TUN/TAP o Netfilter ni cap altra configuració del tallafoc. L'encaminament no afecta el nucli del sistema, i tots els processos estan virtualitzats i funcionen en qualsevol VPS/VDS, independentment de l'hipervisor utilitzat. Això fa que augmenti la càrrega de la CPU i una velocitat més lenta en comparació amb el mode Local Bridge, que connecta el concentrador virtual SoftEther a un adaptador de xarxa físic o dispositiu TAP.
La configuració en aquest cas es fa més complicada, ja que l'encaminament es produeix al nivell del nucli mitjançant Netfilter. Els nostres VDS estan basats en Hyper-V, de manera que en l'últim pas creem un pont local i activem el dispositiu TAP amb l'ordre bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Després de sortir de la consola de gestió del concentrador, veurem una nova interfície de xarxa al sistema que encara no té assignada una IP:
ifconfig
A continuació, haureu d'habilitar l'encaminament de paquets entre interfícies (redirecció IP), si està inactiu:
sudo nano /etc/sysctl.conf
Descomenteu la línia següent:
net.ipv4.ip_forward = 1
Deseu els canvis al fitxer, sortiu de l'editor i apliqueu-los amb l'ordre següent:
sudo sysctl -p
A continuació, hem de definir una subxarxa per a la xarxa virtual amb IPs fictícies (per exemple, 10.0.10.0/24) i assignar una adreça a la interfície:
sudo ifconfig tap_suricata_vp 10.0.10.1/24
Aleshores heu d'escriure les regles de Netfilter.
1. Si cal, permeteu els paquets entrants als ports d'escolta (el protocol propietari de SoftEther utilitza HTTPS i el port 443)
3. Permet passar paquets de la subxarxa 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT
4. Permet passar paquets per a connexions ja establertes
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
Deixarem l'automatització del procés quan es reiniciï el sistema utilitzant scripts d'inicialització als lectors com a deures.
Si voleu donar IP als clients automàticament, també haureu d'instal·lar algun tipus de servei DHCP per al pont local. Això completa la configuració del servidor i podeu anar als clients. SoftEther admet molts protocols, l'ús dels quals depèn de les capacitats de l'equip LAN.
netstat -ap |grep vpnserver
Com que el nostre encaminador de prova també s'executa sota Ubuntu, instal·lem els paquets softether-vpnclient i softether-vpncmd des d'un dipòsit extern per utilitzar-hi el protocol propietari. Haureu d'executar el client:
sudo vpnclient start
Per configurar, utilitzeu la utilitat vpncmd, seleccionant localhost com a màquina en què s'executa el vpnclient. Totes les ordres es fan a la consola: haureu de crear una interfície virtual (NicCreate) i un compte (AccountCreate).
En alguns casos, heu d'especificar el mètode d'autenticació mitjançant les ordres AccountAnonymousSet, AccountPasswordSet, AccountCertSet i AccountSecureCertSet. Com que no estem utilitzant DHCP, l'adreça de l'adaptador virtual s'estableix manualment.
A més, hem d'habilitar ip forward (opció net.ipv4.ip_forward=1 al fitxer /etc/sysctl.conf) i configurar les rutes estàtiques. Si cal, a VDS amb Suricata, podeu configurar el reenviament de ports per utilitzar els serveis instal·lats a la xarxa local. En això, la fusió de la xarxa es pot considerar completa.
La configuració que ens proposem tindrà un aspecte semblant a això:
Configuració de Suricata
В article anterior hem parlat de dues maneres de funcionament de l'IDS: a través de la cua NFQUEUE (mode NFQ) i mitjançant còpia zero (mode AF_PACKET). El segon requereix dues interfícies, però és més ràpid: el farem servir. El paràmetre s'estableix per defecte a /etc/default/suricata. També hem d'editar la secció vars a /etc/suricata/suricata.yaml, establint allà la subxarxa virtual com a casa.
Per reiniciar IDS, utilitzeu l'ordre:
systemctl restart suricata
La solució està preparada, ara potser haureu de provar-la per a la resistència a accions malicioses.
Simulació d'atacs
Hi pot haver diversos escenaris per a l'ús de combat d'un servei d'IDS extern:
Protecció contra atacs DDoS (propòsit principal)
És difícil implementar aquesta opció dins de la xarxa corporativa, ja que els paquets per a l'anàlisi han d'arribar a la interfície del sistema que mira a Internet. Fins i tot si l'IDS els bloqueja, el trànsit fals pot fer caure l'enllaç de dades. Per evitar-ho, cal demanar un VPS amb una connexió a Internet prou productiva que pugui passar tot el trànsit de la xarxa local i tot el trànsit extern. Sovint és més fàcil i més barat fer-ho que ampliar el canal de l'oficina. Com a alternativa, cal esmentar els serveis especialitzats de protecció contra DDoS. El cost dels seus serveis és comparable al cost d'un servidor virtual i no requereix una configuració que requereix molt de temps, però també hi ha desavantatges: el client només rep protecció DDoS pels seus diners, mentre que el seu propi IDS es pot configurar com vostè M'agrada.
Protecció contra atacs externs d'altres tipus
Suricata és capaç de fer front als intents d'explotar diverses vulnerabilitats en els serveis de xarxa corporativa accessibles des d'Internet (servidor de correu, servidor web i aplicacions web, etc.). Normalment, per a això, l'IDS s'instal·la dins de la LAN després dels dispositius de frontera, però portar-lo fora té dret a existir.
Protecció de persones internes
Malgrat els millors esforços de l'administrador del sistema, els ordinadors de la xarxa corporativa es poden infectar amb programari maliciós. A més, a vegades apareixen gamberros a la zona, que intenten realitzar algunes operacions il·legals. Suricata pot ajudar a bloquejar aquests intents, tot i que per protegir la xarxa interna és millor instal·lar-la dins del perímetre i utilitzar-la juntament amb un commutador gestionat que pugui reflectir el trànsit a un port. Un IDS extern tampoc és inútil en aquest cas; almenys serà capaç de detectar els intents de programari maliciós que viu a la LAN per contactar amb un servidor extern.
Per començar, crearem una altra prova atacant VPS, i a l'encaminador de la xarxa local augmentarem l'Apache amb la configuració per defecte, després de la qual li enviarem el port 80 des del servidor IDS. A continuació, simularem un atac DDoS des d'un host atacant. Per fer-ho, descarregueu des de GitHub, compileu i executeu un petit programa xerxes al node atacant (pot ser que hàgiu d'instal·lar el paquet gcc):
Suricata talla el dolent i la pàgina d'Apache s'obre per defecte, malgrat el nostre atac improvisat i el canal bastant mort de la xarxa "oficina" (en realitat domèstica). Per a tasques més serioses, hauríeu d'utilitzar Metasploit Framework. Està dissenyat per a proves de penetració i us permet simular una varietat d'atacs. Instruccions d'instal · lació està disponible al web del projecte. Després de la instal·lació, cal una actualització:
sudo msfupdate
Per provar, executeu msfconsole.
Malauradament, les últimes versions del marc no tenen la capacitat de trencar-se automàticament, de manera que els exploits s'hauran d'ordenar manualment i executar-los mitjançant l'ordre use. Per començar, val la pena determinar els ports oberts a la màquina atacada, per exemple, utilitzant nmap (en el nostre cas, se substituirà completament per netstat a l'amfitrió atacat) i després seleccionar i utilitzar el corresponent. Mòduls Metasploit.
Hi ha altres mitjans per provar la resistència d'un IDS contra atacs, inclosos els serveis en línia. Per curiositat, podeu organitzar proves d'estrès mitjançant la versió de prova Estresador IP. Per comprovar la reacció a les accions dels intrusos interns, val la pena instal·lar eines especials en una de les màquines de la xarxa local. Hi ha moltes opcions i de tant en tant s'han d'aplicar no només al lloc experimental, sinó també als sistemes de treball, només que aquesta és una història completament diferent.