Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Segundo as estatísticas, o volume de tráfego de rede aumenta cerca de 50% a cada ano. Isso leva a um aumento na carga do equipamento e, em particular, aumenta os requisitos de desempenho do IDS/IPS. Você pode comprar hardware especializado caro, mas há uma opção mais barata - a introdução de um dos sistemas de código aberto. Muitos administradores iniciantes acham difícil instalar e configurar o IPS gratuito. No caso do Suricata, isso não é totalmente verdade - você pode instalá-lo e começar a repelir ataques típicos com um conjunto de regras gratuitas em poucos minutos.

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata
Snort ou Suricata. Parte 1: Escolhendo um IDS/IPS gratuito para proteger sua rede corporativa

Por que precisamos de outro IPS aberto?

Há muito considerado o padrão, o Snort está em desenvolvimento desde o final dos anos noventa, por isso era originalmente de thread único. Ao longo dos anos, todos os recursos modernos apareceram nele, como suporte a IPv6, capacidade de analisar protocolos em nível de aplicativo ou um módulo universal de acesso a dados.

O mecanismo principal do Snort 2.X aprendeu a trabalhar com vários núcleos, mas permaneceu com um único thread e, portanto, não pode aproveitar de maneira ideal as plataformas de hardware modernas.

O problema foi resolvido na terceira versão do sistema, mas demorou tanto para ser preparado que o Suricata, escrito do zero, conseguiu aparecer no mercado. Em 2009, começou a ser desenvolvido justamente como uma alternativa multithread ao Snort, que possui funções IPS prontas para uso. O código é distribuído sob a licença GPLv2, mas os parceiros financeiros do projeto têm acesso a uma versão fechada do mecanismo. Alguns problemas de escalabilidade surgiram nas primeiras versões do sistema, mas foram rapidamente resolvidos.

Por que Surica?

O Suricata possui vários módulos (semelhantes ao Snort): captura, captura, decodificação, detecção e saída. Por padrão, o tráfego capturado vai antes da decodificação em um fluxo, embora isso carregue mais o sistema. Se necessário, os threads podem ser divididos nas configurações e distribuídos entre os processadores - o Suricata é muito bem otimizado para hardware específico, embora este não seja mais um nível de COMO FAZER para iniciantes. Também é importante notar que o Suricata possui ferramentas avançadas de inspeção HTTP baseadas na biblioteca HTP. Eles também podem ser usados ​​para registrar o tráfego sem detecção. O sistema também oferece suporte à decodificação IPv6, incluindo túneis IPv4 em IPv6, túneis IPv6 em IPv6 e muito mais.

Diferentes interfaces podem ser usadas para interceptar o tráfego (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING) e, no modo Unix Socket, você pode analisar automaticamente os arquivos PCAP capturados por outro sniffer. Além disso, a arquitetura modular do Suricata facilita a inserção de novos elementos para capturar, decodificar, analisar e processar pacotes de rede. Também é importante observar que no Suricata o tráfego é bloqueado por meio de um filtro regular do sistema operacional. O GNU/Linux tem duas opções de como o IPS funciona: via fila NFQUEUE (modo NFQ) e via cópia zero (modo AF_PACKET). No primeiro caso, o pacote que entra no iptables é enviado para a fila NFQUEUE, onde pode ser processado no nível do usuário. Suricata o executa de acordo com suas próprias regras e emite um dos três veredictos: NF_ACCEPT, NF_DROP e NF_REPEAT. Os dois primeiros são auto-explicativos, enquanto o último permite que os pacotes sejam marcados e enviados para o topo da tabela iptables atual. O modo AF_PACKET é mais rápido, mas impõe uma série de restrições ao sistema: deve ter duas interfaces de rede e funcionar como um gateway. O pacote bloqueado simplesmente não é encaminhado para a segunda interface.

Uma característica importante do Suricata é a capacidade de usar desenvolvimentos para o Snort. O administrador tem acesso, em particular, aos conjuntos de regras Sourcefire VRT e OpenSource Emerging Threats, bem como ao comercial Emerging Threats Pro. A saída unificada pode ser analisada usando back-ends populares, saída PCAP e Syslog também é suportada. As configurações e regras do sistema são armazenadas em arquivos YAML, que são fáceis de ler e podem ser processados ​​automaticamente. O mecanismo Suricata reconhece muitos protocolos, portanto, as regras não precisam estar vinculadas a um número de porta. Além disso, o conceito de flowbits é praticado ativamente nas regras do Suricata. Para rastrear o gatilho, as variáveis ​​de sessão são usadas para criar e aplicar vários contadores e sinalizadores. Muitos IDSs tratam diferentes conexões TCP como entidades separadas e podem não ver uma conexão entre elas que indique o início de um ataque. O Suricata tenta ver o quadro completo e, em muitos casos, reconhece o tráfego malicioso distribuído por diferentes conexões. Você pode falar sobre suas vantagens por um longo tempo, é melhor passarmos para a instalação e configuração.

Como instalar?

Estaremos instalando o Suricata em um servidor virtual executando o Ubuntu 18.04 LTS. Todos os comandos devem ser executados em nome do superusuário (root). A opção mais segura é fazer SSH no servidor como um usuário normal e, em seguida, usar o utilitário sudo para elevar os privilégios. Primeiro você precisa instalar os pacotes que precisamos:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Conectando um repositório externo:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Instale a última versão estável do Suricata:

sudo apt-get install suricata

Se necessário, edite o nome dos arquivos de configuração, substituindo o padrão eth0 pelo nome real da interface externa do servidor. As configurações padrão são armazenadas no arquivo /etc/default/suricata e as configurações personalizadas são armazenadas em /etc/suricata/suricata.yaml. A configuração do IDS é limitada principalmente à edição deste arquivo de configuração. Possui muitos parâmetros que, por nome e finalidade, coincidem com os análogos do Snort. A sintaxe é completamente diferente, no entanto, mas o arquivo é muito mais fácil de ler do que as configurações do Snort e é bem comentado.

sudo nano /etc/default/suricata

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

и

sudo nano /etc/suricata/suricata.yaml

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Atenção! Antes de começar, vale conferir os valores das variáveis ​​da seção vars.

Para concluir a configuração, você precisará instalar o suricata-update para atualizar e carregar as regras. É bem fácil fazer isso:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Em seguida, precisamos executar o comando suricata-update para instalar o conjunto de regras Emerging Threats Open:

sudo suricata-update

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Para visualizar a lista de fontes de regras, execute o seguinte comando:

sudo suricata-update list-sources

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Atualizar fontes de regras:

sudo suricata-update update-sources

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Revisitando fontes atualizadas:

sudo suricata-update list-sources

Se necessário, você pode incluir fontes gratuitas disponíveis:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Depois disso, você precisa atualizar as regras novamente:

sudo suricata-update

Isso conclui a instalação e configuração inicial do Suricata no Ubuntu 18.04 LTS. Aí começa a diversão: no próximo artigo, vamos conectar um servidor virtual à rede do escritório via VPN e começar a analisar todo o tráfego de entrada e saída. Daremos atenção especial ao bloqueio de ataques DDoS, atividades de malware e tentativas de explorar vulnerabilidades em serviços acessíveis a partir de redes públicas. Para maior clareza, serão simulados ataques dos tipos mais comuns.

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Snort ou Suricata. Parte 2: Instalação e configuração inicial do Suricata

Fonte: habr.com

Adicionar um comentário