Suricata - uma ferramenta de detecção, prevenção e segurança de intrusões

Suricata - uma ferramenta de detecção, prevenção e segurança de intrusões

Suricata é um mecanismo de detecção de ameaças poderoso, versátil e de código aberto que fornece funcionalidades para detecção de intrusões (IDs), prevenção de intrusões (IPS) e monitoramento de segurança de rede. Ele realiza uma inspeção profunda de pacotes, juntamente com o padrão que combina uma mistura que é incrivelmente poderosa na detecção de ameaças.

No momento da redação deste guia, a versão mais recente de Suricata é 6.0.5.

Recursos de Suricata

  • IDS/IPS - Suricata é uma regra baseada em regras Detecção de intruso e Prevenção Motor que aproveita os conjuntos de regras desenvolvidos externamente, como o TALOS REGISTEN e as ameaças emergentes, o Suricata RegrasSet para monitorar o tráfego de rede para qualquer atividade maliciosa, violações de políticas e ameaças.
  • Detecção automática de protocolo - O Suricata Engine detecta automaticamente protocolos como HTTP e HTTPS. FTP e SMB em qualquer porta e aplique a lógica de detecção e log adequada. Isso é útil na detecção de malware e canais CNC.
  • Lua script - Suricata pode invocar Lua scripts que fornecem detecção avançada de malware para detectar e decodificar o tráfego de malware que é difícil de detectar.
  • Multi-threading - Suricata fornece velocidade e importância na determinação do tráfego de rede. O mecanismo é desenvolvido para aplicar o aumento do poder de processamento oferecido por chipsets de hardware de vários núcleos modernos.

Instalando a Ferramenta de Detecção de Intrusão Suricata no Linux

Nesta seção, demonstraremos como instalar Suricata em distribuições baseadas em Debian e Rhel.

Instale Suricata no Debian/Ubuntu e Mint

Suricata É fornecido por Debian / Ubuntu repositórios e podem ser facilmente instalados usando o gerenciador de pacotes apt. No entanto, vale a pena notar que isso não instala a versão mais recente do Suricata. Para instalar a versão mais recente, você precisa instalá -la a partir de uma fonte que abordaremos mais tarde neste guia.

Para instalar Suricata usando o apt Gerenciador de pacotes, execute o comando:

$ sudo apt install suricata -y 
Instale Suricata no Ubuntu

Suricata começa automaticamente uma vez instalado. Você pode confirmar isso da seguinte maneira.

$ sudo systemctl status suricata 
Verifique Suricata no Ubuntu

Instale Suricata em Rhel, Rocky, Almalinux e Fedora

Para instalar Suricata sobre RHEL Distribuições como Centos Stream, Rocky Linux, Almalinux, Fedora e Rhel, você precisa ativar o repositório EPEL primeiro.

$ dnf install https: // dl.FedoraProject.org/pub/epel/epel-latest-9.Noarch.RPM [RHEL 9] $ dnf install https: // dl.FedoraProject.org/pub/epel/epel-latest-8.Noarch.RPM [RHEL 8] $ yum install https: // dl.FedoraProject.org/pub/epel/epel-latest-8.Noarch.RPM [RHEL 7] 

Uma vez EPEL está ativado, instale os seguintes pacotes necessários e adicione o OISF repositório para o seu sistema.

----------- Em sistemas fedora ----------- $ sudo dnf install dnf-plugins-core $ sudo dnf copr ativar @oisf/suricata-6.0 ----------- Em sistemas RHEL ----------- $ sudo dnf install yum-plugin-copr $ sudo dnf copr habilting @oisf/suricata-6.0 

Em seguida, instale Suricata Usando o DNF Package Manager ou o Yum Package Manager, conforme mostrado.

$ sudo dnf install suricata -y ou $ sudo yum install suricata -y 
Instale Suricata em Rhel

Uma vez Suricata está instalado, inicie e verifique seu status.

$ sudo systemctl start suricata $ sudo systemctl status suricata 
Verifique Suricata em Rhel

Instale Suricata da fonte no Linux

Os repositórios de SO padrão não fornecem a versão mais recente de Suricata. Se seu objetivo é instalar a versão mais recente de Suricata, Então você precisa instalá -lo da fonte.

No momento da redação deste guia, a versão mais recente de Suricata é 6.0.5. Para instalar Suricata Da fonte em Ubuntu/Debian e RHEL Distribuições, instale as seguintes bibliotecas, ferramentas de compilação e dependências.

----------- Em Sistemas Debian ----------- $ sudo apt install rustc build-essencial cargo libpcre3 libpcre3-dbg libpcre3-dev faz automatismo automático libcap-ng0 fazer libmagic-dev libjansson-dev libjansson4 libpcpap-d libliBniblibslbJansson-0 libjansson4 libpcap-d LibNet1-D1Ml-4 -ng-dev pkg-Config libnetfilter-quêue1 libnfnetlink0 libnetfilter-aqueue-dev libnfnetlink-dev -y ----------- Em sistemas RHEL ----------- $ sudo yum install gcc libpcap-devel pcre-devel lybyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet devel tar o liBNetfilter_queue-devel-dEvel-devel PyyamlMlMlBMMlBMMlBMMLBMMLBMEMLBMLBMEMLBMLBMEMLBMEMLBMEMLBMLBMEMLBMLBMLBMEMLBMLBMEMLBMLBMEMLBMEMLBMENBMELBMA-DEVEND-DEVELBMENBMLBMLBMLBMLBMEMLBMEMLBMENBMENBMENBMENBMENBMA Devele -y 

Em seguida, instale a ferramenta Suricata-Update para atualizar as regras do Suricata.

$ sudo apt install python3-pip [em Debian] $ sudo yum install python3-pip [em RHEL] $ pip3 install-upgrade suricata update 

Em seguida, crie um link simbólico para /usr/bin/suricata update.

$ sudo ln -s/usr/local/bin/suricata update/usr/bin/suricata update 

Agora vá até a página oficial de download do Suricata e faça o download do último arquivo de tarball para Linux usando o comando wget.

$ wget https: // www.OpenInfosecFoundation.org/download/Suricata-6.0.6.alcatrão.gz 

Depois de baixado, extraia o arquivo de tarball e instale -o.

$ sudo tar -xvf Suricata -6.0.6.alcatrão.gz $ CD SURICATA-6.0.6 $ ./Configure --enable-nfQueue--prefix =/usr--sysConfdir =/etc--LocalStatedir =/var $ Make $ Make Install-Full 

Configurando Suricata em Linux

Para começar a configurar Suricata, Precisamos especificar o IP interno e a rede externa. Para fazer isso, acesse o arquivo de configuração.

$ sudo vim/etc/suricata/suricata.Yaml 

Para o Home_net Diretiva, especifique o endereço IP do seu sistema Linux.

Home_net: "[173.82.235.7] " 

Em seguida, defina o Externo_net Diretiva para “!$ Home_net““.

External_net: "!$ Home_net " 
Configurar Suricata no Linux

Em seguida, especifique a interface de rede na qual Suricata Inspecionará o tráfego de rede. No nosso caso, este é o eth0 interface.

Você pode verificar sua interface de rede ativa usando o comando IP:

$ ip a 

No arquivo de configuração, atualize a diretiva da interface com o nome da interface de rede.

- Interface: eth0 
Configurar interface de rede Suricata

Em seguida, verifique se o Path-regra padrão atributo está definido como /etc/suricata/regras.

Configure as regras de Suricata

Em seguida, salve as alterações e feche o arquivo de configuração. Em seguida, reinicie Suricata para as mudanças aplicar.

$ sudo systemctl status suricata 

Atualizando os conjuntos de regras do Suricata no Linux

Por padrão, Suricata navios com um conjunto limitado de regras de detecção localizadas no /etc/suricata/regras diretório. No entanto, estes são considerados fracos e ineficazes na detecção de intrusões. Você precisa carregar o Ameaça emergente (Et) regras consideradas os conjuntos de regras mais abrangentes para Suricata.

Suricata fornece uma ferramenta conhecida como Suricata-update que buscam regras de fornecedores externos. Para obter um conjunto de regras atualizado para o seu servidor, execute o seguinte comando.

$ sudo suricata update -o/etc/suricata/regras 
Atualizando os conjuntos de regras do SURICATA Baixar regras de ameaças emergentes Suricata

Da saída, você pode ver o Suricata-update buscando o grátis Ameaças emergentes e regras abertas e salvando -os para Suricata /etc/Suricata/Regras/Suricata arquivo de regras. Além disso, indica o número de regras processadas. Neste exemplo, um total de 35941 foi adicionado. Daqueles, 28221 foram ativados, 18 foram removidos e 1249 foram modificados.

Adicionando regras de Suricata no Linux

O Suricata-update A ferramenta permite buscar regras de provedores de conjunto de regras. Alguns são livres, como o Et Open definido, enquanto outros exigem uma assinatura paga.

Para listar o conjunto padrão de provedores de regras, execute o Suricata-update comando como mostrado.

$ sudo suricata update lists fontes 
Listar provedores de regras Suricata

Para adicionar um conjunto de regras, por exemplo, o TGREEN/CURSTELT, Execute o seguinte comando.

$ sudo sucuricata update atabilable food tgreen/caça 
Adicionar Suricata Regra Set

Depois de adicionar o Regras, execute o Suricata-update comando mais uma vez com o -o/etc/suricata/regras bandeira.

$ sudo suricata update -o/etc/suricata/regras 
Atualizar conjunto de regras Suricata

Testando regras Suricata no Linux

Antes de começar a testar Suricata, É recomendável testar se a configuração está bem. Para fazer isso, execute o seguinte comando:

$ sudo suricata -t -c/etc/suricata/suricata.YAML -V 

Certifique -se de que nenhum erro seja relatado. Se você estiver executando RHEL, CENTOS Stream, Fedora e Rocky Linux Start e Atabille Suricata.

$ sudo systemctl start suricata $ sudo systemctl atabille suricata 

Até agora, instalamos com sucesso e configuramos Suricata e atualizou os conjuntos de regras. O conjunto de regras ET Open contém mais de 30.000 regras para detectar tráfego malicioso. Nesta seção, colocaremos Suricata à prova e verificaremos se ele pode detectar o tráfego de rede suspeito.

Vamos testar o Et Open REGRASTELT, simulando uma intrusão conforme recomendado pelo Guia Quickstart da Suricata.

A funcionalidade IDS será testada com um ID de assinatura de 2100498 enviando uma solicitação HTTP para o testmynids.org site que é um NIDS (Sistema de Intrusão e Detecção de Rede) estrutura.

$ Curl http: // testmynids.org/uid/índice.html 

Você deve obter a seguinte saída.

uid = 0 (raiz) gid = 0 (root) grupos = 0 (raiz) 

O Http A solicitação enviada foi projetada para acionar um alerta imitando a saída do eu ia comando que pode ser executado em um sistema remoto comprometido por meio de um shell.

Agora vamos examinar os toros de Suricata para um alerta correspondente. Suricata envia com dois arquivos de log que são ativados por padrão.

/var/log/suricata/rápido.log/var/log/suricata/véspera.registro 

Vamos verificar se uma entrada de log no /var/log/suricata/rápido.registro Arquivo de log que corresponde à solicitação de CURL usando o comando Grep. Vamos procurar as entradas de log usando o 2100498 Identificador de regra da documentação do QuickStart.

$ grep 2100948/var/log/suricata/rápido.registro 

Você obterá a seguinte saída que significa uma intrusão. Aqui, 173.82.235.7 é o endereço IP público do servidor.

09/09/2022-22: 17: 06.796434 [**] [1: 2100498: 7] GPL ATTACT_RESPONSE ID CHECHET ROOT RETRATED [**] [CLASSIFICAÇÃO: Tráfego potencialmente ruim] [Prioridade: 2] TCP 13.226.210.123: 80 -> 173.82.235.7: 33822 
Verifique os logs do Suricata

Como alternativa, você pode verificar o /var/log/suricata/véspera.registro Arquivo de log para o ID de assinatura de 2100498, como mostrado.

$ jq 'select (.alerta .Signature_id == 2100498) '/var/log/Suricata/Eve.JSON 
Verifique o Suricata Log para obter um ID de assinatura

Este foi um guia abrangente sobre como instalar e configurar Suricata no Linux. Vimos vários métodos de instalação, como configurar Suricata e atualizar Suricata Regras, bem como gerenciar o serviço Suricata Systemd e executar testes de intrusão de rede.

É nossa esperança que agora você possa instalar e usar confortavelmente Suricata Para proteger seu sistema de intrusões de rede ou tráfego malicioso.