Snort é um Sistema de Detecção de Intrusão de código aberto que você pode usar em seus sistemas Linux. Este tutorial irá rever a configuração básica do Snort IDS e ensiná-lo como criar regras para detectar diferentes tipos de atividades no sistema.
Para este tutorial a rede que vamos usar é: 10.0.0.0/24. Edite o seu /etc/snort/snort.conf e substitua o arquivo “any” ao lado de $HOME_NET com as informações da sua rede como mostrado no exemplo da tela abaixo:
Alternativamente você também pode definir endereços IP específicos para monitorar separados por vírgula, como mostrado nesta tela:
Agora vamos começar e executar este comando na linha de comando:
Where:
d= diz ao snort para mostrar dados
l= determina o diretório de logs
h= especifica a rede a monitorar
A= instrui o snort a imprimir alertas no console
c= especifica o arquivo de configuração
Vamos iniciar uma varredura rápida a partir de um dispositivo diferente usando o nmap:
E vamos ver o que acontece no console do snort:
Snort detectou a varredura, agora, também a partir de um dispositivo diferente permite atacar com DoS usando hping3
O dispositivo que exibe Snort está detectando tráfego ruim como mostrado aqui:
Desde que instruímos o Snort para salvar os logs, podemos lê-los executando:
Introduction to Snort Rules
O modo NIDS do Snort funciona baseado nas regras especificadas no /etc/snort/snort.conf file.
Within the snort.conf podemos encontrar regras comentadas e não comentadas como pode ver abaixo:
O caminho das regras normalmente é /etc/snort/rules , aí podemos encontrar os ficheiros de regras:
Vejamos as regras contra backdoors:
Existem várias regras para prevenir ataques de backdoor, surpreendentemente existe uma regra contra o NetBus, um cavalo de Tróia que se tornou popular há algumas décadas atrás, vamos olhar para ele e explicarei as suas partes e como funciona:
established”; flow:from_server,established;
flowbits:isset,backdoor.netbus_2.connect; content: “BN|10 00 02 00|”; depth:6; content:”|
05 00|”; depth:2; offset:8; classtype:misc-activity; sid:115; rev:9;)
Esta regra instrui o snort a alertar sobre conexões TCP na porta 20034 transmitindo para qualquer fonte em uma rede externa.
-> = especifica o sentido do tráfego, neste caso da nossa rede protegida para uma externa
msg = instrui o alerta a incluir uma mensagem específica ao exibir
content = busca por conteúdo específico dentro do pacote. Pode incluir texto se entre ” ” ou dados binários se entre | | |2240>profundidade = intensidade de análise, na regra acima vemos dois parâmetros diferentes para dois conteúdos diferentes
offset = diz ao Snort o byte inicial de cada pacote para começar a procurar pelo conteúdo
classtype = diz que tipo de ataque Snort está alertando sobre
sid:115 = identificador de regra
Criando nossa própria regra
Agora vamos criar uma nova regra para notificar sobre conexões SSH de entrada. Abra o /etc/snort/rules/yourrule.regras, e dentro cole o seguinte texto:
flow:stateless; flags:S+; sid:100006927; rev:1;)
Estamos dizendo ao Snort para alertar sobre qualquer conexão tcp de qualquer fonte externa à nossa porta ssh (neste caso a porta padrão) incluindo a mensagem de texto “SSH INCOMING”, onde stateless instrui o Snort a ignorar o estado da conexão.
Agora, precisamos adicionar a regra que criamos ao nosso arquivo /etc/snort/snort.conf. Abra o arquivo de configuração em um editor e procure por #7, que é a seção com regras. Adicione uma regra não comentada como na imagem acima, adicionando:
Intead of “yourrule.rules”, defina o nome do seu arquivo, no meu caso foi test3.rules.
Após ser feito execute novamente Snort e veja o que acontece.
ssh para seu dispositivo de outro dispositivo e veja o que acontece:
Você pode ver que o SSH recebido foi detectado.
Com esta lição eu espero que você saiba como fazer regras básicas e usá-las para detectar atividade em um sistema. Veja também um tutorial sobre como configurar o Snort e começar a usá-lo e o mesmo tutorial disponível em espanhol em Linux.lat.