Snort ou Suricata. Parte 3: Protección da rede Office
В artigo anterior cubrimos como executar a versión estable de Suricata en Ubuntu 18.04 LTS. Configurar un IDS nun único nodo e habilitar conxuntos de regras gratuítos é bastante sinxelo. Hoxe imos descubrir como protexer unha rede corporativa usando os tipos máis comúns de ataques usando Suricata instalado nun servidor virtual. Para iso, necesitamos un VDS en Linux con dous núcleos de computación. A cantidade de RAM depende da carga: 2 GB son suficientes para alguén, e poden ser necesarios 4 ou incluso 6 para tarefas máis serias.A vantaxe dunha máquina virtual é a capacidade de experimentar: pode comezar cunha configuración mínima e aumentar recursos segundo sexa necesario.
En primeiro lugar, pode ser necesario eliminar IDS a unha máquina virtual para realizar probas. Se nunca se enfrontou a tales solucións, non debería apresurarse a pedir hardware físico e cambiar a arquitectura de rede. É mellor executar o sistema de forma segura e rendible para determinar as súas necesidades informáticas. É importante entender que todo o tráfico corporativo terá que pasar por un único nodo externo: para conectar unha rede local (ou varias redes) a un VDS con IDS Suricata instalado, pode utilizar Éter suave - Un servidor VPN multiplataforma fácil de configurar que ofrece un cifrado forte. É posible que unha conexión a Internet de oficina non teña unha IP real, polo que é mellor configurala nun VPS. Non hai paquetes preparados no repositorio de Ubuntu, terás que descargar o software de calquera sitio do proxecto, ou desde un repositorio externo do servizo Launchpad (se confías nel):
Podes ver a lista de paquetes dispoñibles co seguinte comando:
apt-cache search softether
Necesitaremos softether-vpnserver (o servidor da configuración de proba está a executarse en VDS), así como softether-vpncmd - utilidades de liña de comandos para configuralo.
Utilízase unha utilidade de liña de comandos especial para configurar o servidor:
sudo vpncmd
Non falaremos en detalle sobre a configuración: o procedemento é bastante sinxelo, está ben descrito en numerosas publicacións e non se relaciona directamente co tema do artigo. En resumo, despois de iniciar vpncmd, cómpre seleccionar o elemento 1 para ir á consola de xestión do servidor. Para iso, debes introducir o nome localhost e premer Intro en lugar de introducir o nome do concentrador. O contrasinal do administrador establécese na consola co comando serverpasswordset, elimínase o concentrador virtual PREDETERMINADO (comando hubdelete) e créase un novo co nome Suricata_VPN e tamén se establece o seu contrasinal (comando hubcreate). A continuación, cómpre ir á consola de xestión do novo concentrador mediante o comando hub Suricata_VPN para crear un grupo e un usuario mediante os comandos groupcreate e usercreate. O contrasinal do usuario establécese mediante userpasswordset.
SoftEther admite dous modos de transferencia de tráfico: SecureNAT e Local Bridge. O primeiro é unha tecnoloxía propietaria para construír unha rede privada virtual co seu propio NAT e DHCP. SecureNAT non require TUN/TAP nin Netfilter nin outras opcións de firewall. O enrutamento non afecta o núcleo do sistema, e todos os procesos están virtualizados e funcionan en calquera VPS/VDS, independentemente do hipervisor utilizado. Isto dá como resultado unha maior carga da CPU e unha velocidade máis lenta en comparación co modo Local Bridge, que conecta o concentrador virtual SoftEther a un adaptador de rede físico ou dispositivo TAP.
A configuración neste caso faise máis complicada, xa que o enrutamento ocorre a nivel do núcleo usando Netfilter. Os nosos VDS están construídos en Hyper-V, polo que no último paso creamos unha ponte local e activamos o dispositivo TAP co comando bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Despois de saír da consola de xestión do concentrador, veremos unha nova interface de rede no sistema á que aínda non se lle asignou unha IP:
ifconfig
A continuación, terá que activar o enrutamento de paquetes entre interfaces (reenvío ip), se está inactivo:
sudo nano /etc/sysctl.conf
Descomente a seguinte liña:
net.ipv4.ip_forward = 1
Garda os cambios no ficheiro, sae do editor e aplícaos co seguinte comando:
sudo sysctl -p
A continuación, necesitamos definir unha subrede para a rede virtual con IP ficticias (por exemplo, 10.0.10.0/24) e asignar un enderezo á interface:
sudo ifconfig tap_suricata_vp 10.0.10.1/24
Entón cómpre escribir as regras de Netfilter.
1. Se é necesario, permite os paquetes entrantes nos portos de escoita (o protocolo propietario de SoftEther usa HTTPS e o porto 443)
3. Permitir o paso de paquetes desde a subrede 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT
4. Permitir pasar paquetes para conexións xa establecidas
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
Deixaremos a automatización do proceso cando se reinicie o sistema utilizando scripts de inicialización para os lectores como deberes.
Se queres dar IP aos clientes automaticamente, tamén terás que instalar algún tipo de servizo DHCP para a ponte local. Isto completa a configuración do servidor e podes ir aos clientes. SoftEther admite moitos protocolos, cuxo uso depende das capacidades do equipo LAN.
netstat -ap |grep vpnserver
Dado que o noso enrutador de proba tamén funciona baixo Ubuntu, imos instalar os paquetes softether-vpnclient e softether-vpncmd desde un repositorio externo para usar o protocolo propietario. Deberá executar o cliente:
sudo vpnclient start
Para configurar, use a utilidade vpncmd, seleccionando localhost como a máquina na que se está a executar o vpnclient. Todos os comandos realízanse na consola: terás que crear unha interface virtual (NicCreate) e unha conta (AccountCreate).
Nalgúns casos, debes especificar o método de autenticación mediante os comandos AccountAnonymousSet, AccountPasswordSet, AccountCertSet e AccountSecureCertSet. Como non estamos a usar DHCP, o enderezo do adaptador virtual establécese manualmente.
Ademais, necesitamos habilitar ip forward (opción net.ipv4.ip_forward=1 no ficheiro /etc/sysctl.conf) e configurar rutas estáticas. Se é necesario, en VDS con Suricata, pode configurar o reenvío de portos para utilizar os servizos instalados na rede local. Neste caso, a fusión da rede pódese considerar completa.
A nosa configuración proposta será algo así:
Configurando Suricata
В artigo anterior falamos de dous modos de funcionamento do IDS: a través da cola NFQUEUE (modo NFQ) e a través da copia cero (modo AF_PACKET). O segundo require dúas interfaces, pero é máis rápido: empregarémolo. O parámetro está definido por defecto en /etc/default/suricata. Tamén necesitamos editar a sección vars en /etc/suricata/suricata.yaml, configurando alí a subrede virtual como home.
Para reiniciar IDS, use o comando:
systemctl restart suricata
A solución está lista, agora quizais necesites probala para detectar a resistencia a accións maliciosas.
Simulación de ataques
Pode haber varios escenarios para o uso de combate dun servizo IDS externo:
Protección contra ataques DDoS (propósito principal)
É difícil implementar tal opción dentro da rede corporativa, xa que os paquetes para a análise deben chegar á interface do sistema que mira a Internet. Aínda que o IDS os bloquee, o tráfico espurio pode derrubar a ligazón de datos. Para evitar isto, cómpre solicitar un VPS cunha conexión a Internet suficientemente produtiva que poida pasar todo o tráfico da rede local e todo o tráfico externo. Moitas veces é máis fácil e máis barato facelo que ampliar a canle da oficina. Como alternativa, cabe mencionar os servizos especializados de protección contra DDoS. O custo dos seus servizos é comparable ao custo dun servidor virtual e non require unha configuración lenta, pero tamén hai desvantaxes: o cliente só recibe protección DDoS polo seu diñeiro, mentres que o seu propio IDS pode configurarse como vostede. como.
Protección contra ataques externos doutro tipo
Suricata é capaz de facer fronte aos intentos de explotar diversas vulnerabilidades nos servizos de rede corporativos accesibles desde Internet (servidor de correo, servidor web e aplicacións web, etc.). Normalmente, para iso, o IDS instálase dentro da LAN despois dos dispositivos de fronteira, pero levalo fóra ten dereito a existir.
Protección contra persoas internas
A pesar dos mellores esforzos do administrador do sistema, os ordenadores da rede corporativa poden estar infectados con malware. Ademais, en ocasións aparecen hooligans na zona, que tentan realizar algunhas operacións ilegais. Suricata pode axudar a bloquear estes intentos, aínda que para protexer a rede interna é mellor instalala dentro do perímetro e usala en conxunto cun conmutador xestionado que pode reflectir o tráfico nun porto. Un IDS externo tampouco é inútil neste caso; polo menos poderá detectar intentos de malware que viven na LAN para contactar cun servidor externo.
Para comezar, crearemos outra proba atacando VPS, e no enrutador da rede local levantaremos Apache coa configuración predeterminada, despois de que lle reenviaremos o porto 80 dende o servidor IDS. A continuación, simularemos un ataque DDoS desde un host atacante. Para iso, descargue desde GitHub, compile e execute un pequeno programa xerxes no nodo atacante (pode ter que instalar o paquete gcc):
Suricata corta o vilán e a páxina de Apache ábrese por defecto, a pesar do noso ataque improvisado e da canle bastante morta da rede "oficina" (en realidade, doméstica). Para tarefas máis serias, debes usar Marco Metasploit. Está deseñado para probas de penetración e permítelle simular unha variedade de ataques. Instrucións de instalación está dispoñible na páxina web do proxecto. Despois da instalación, é necesaria unha actualización:
sudo msfupdate
Para probar, executa msfconsole.
Desafortunadamente, as últimas versións do framework carecen da capacidade de crackearse automaticamente, polo que os exploits terán que ser clasificados manualmente e executados mediante o comando use. Para comezar, paga a pena determinar os portos abertos na máquina atacada, por exemplo, usando nmap (no noso caso, substituirase completamente por netstat no host atacado), e despois seleccione e use o apropiado Módulos Metasploit.
Hai outros medios para probar a resistencia dun IDS contra ataques, incluídos os servizos en liña. Por curiosidade, podes organizar probas de esforzo usando a versión de proba Estrés IP. Para comprobar a reacción ás accións dos intrusos internos, paga a pena instalar ferramentas especiais nunha das máquinas da rede local. Hai moitas opcións e de cando en vez deberían aplicarse non só ao sitio experimental, senón tamén aos sistemas de traballo, só que esta é unha historia completamente diferente.