Snort – Manual Básico de Utilização Este manual foi desenvolvido por Gilliatt Borges Bastos e segue algumas referências da tradução do manual oficial do Snort ( http://www.snort.org/docs/writing_rules/chap1.html#tth_chAp1 ). Introdução Este primeiro documento é uma pequena introdução das modalidades que o Snort pode assumir, falaremos também sobre os comandos introdutórios que quase sempre não são óbvios em sua utilização. O Snort poderá assumir três modalidades a seguir: Sniffer: Está modalidade simplesmente captura os pacotes e imprime continuamente no console. Packet logger: Registra os pacotes capturados no disco rígido. Network intrusion detection system: Esta modalidade é a mais complexa e versátil, permitindo que o Snort analise o tráfego da rede de encontro a regras definidas pelo usuário, executando diversas ações baseadas em suas regras. Modalidade Sniffer Primeiramente, vamos começar pelos comandos básicos da modalidade Sniffer. Se você quiser apenas imprimir os cabeçalhos dos pacotes TCP/IP na tela (Modalidade Sniffer), tente o comando: ./snort -v Este comando funcionará somente para capturar os cabeçalhos Ip, nada mais. Se você quiser visualizar os dados da aplicação no trânsito,tente o seguinte comando: ./snort -vd Isto instrui o Snort a indicar os dados do pacote como também os cabeçalhos. Se você quiser uma exposição mais descritiva, mostrando a camada de ligação de dados e os cabeçalhos tente este comando: ./snort –vde Modalidade packet logger Este primeiro comando mostra como utilizar o snort como um ótimo sniffer de pacotes, agora vamos aprender a gravar os pacotes no disco rígido. Isto é muito importante se você está querendo uma analise posterior do tráfego da rede. Para começar a criar um arquivo de log com os pacotes analisados temos que especificar um diretório válido, após especificar um diretório para armazenamento o Snort entrará em modo packet logger automaticamente. ./snort –dev –l ./log Naturalmente, isto supõe que há um diretório “log” no diretório atual. Se o diretório não existir,o Snort finalizará com um erro. Quando Snort está nesta modalidade, ele coleta os pacotes e coloca-os em uma hierarquia de diretórios baseada no endereço IP do anfitrião. Se você especificar apenas o parâmetro “-l”, você pode observar que o Snort usa às vezes o endereço do computador remoto como diretório em que é colocado o pacote e às vezes também se usa o host local, a fim de registrar à relativa rede local. Você pode dizer ao Snort qual é a rede local com o comando: ./snort –dev –l ./log –h 192.168.1.0/24 Esta regra diz ao snort que você quer imprimir as ligações de dados e dos cabeçalhos do TCP/IP assim como os dados da aplicação no diretorio /log e você quer os pacotes relativos à rede 192.168.1.0 classe C. Todos os pacotes serão gravados no subdiretório do diretório “log”, com os nomes de subdiretórios que estão sendo baseadas no endereço do anfitrião (192.168.1.0) remoto. Se você estiver em uma rede de alta velocidade ou você quer registrar pacotes em um formato mais compacto para uma análise posterior, você deve considerar a modalidade binária. Essa modalidade registra os pacotes “no formato tcpdump” em um único arquivo binário no diretório de log. ./snort –l ./log –b Como podemos ver, não precisamos nesta modalidade especificar uma rede local, porque a modalidade binária registra todos os parâmetros, que elimina a necessidade de especificar a formatação da estrutura de saída. Você também não necessita especificar o modo verbose ou especificar os parâmetros –d ou –e, porque na modalidade binária o pacote inteiro é registrado. Tudo que realmente é preciso para colocar o Snort na modalidade binária e indicar o diretório com o parâmetro “–l” e especificar o parâmetro –b para começar a registrar os pacotes em binário. Uma vez que os pacotes foram registrados em um arquivo binário, você pode ler os pacotes em qualquer sniffer que aceite o formato binário do tcpdump, como o tcpdump ou ethereal. O Snort também pode ler os pacotes usando parâmetro -r, que coloca na modalidade playback. Se você quer ler um arquivo de log binário com Snort na modalidade sniffer para imprimir os pacotes na tela, você pode utilizar o seguinte comando: ./snort -dv -r packet.Log Você pode manipular os dados do arquivo de diversas maneiras com a possibilidade de filtrar os pacotes utilizando a relação de BPF que está disponível no Snort. Para um exemplo, se você quiser somente ver os pacotes do ICMP do arquivo de log, especifique simplesmente um filtro de BPF no comando e o Snort somente imprimirá os pacotes ICMP do arquivo: ./snort -dvr packet.log icmp (Lista todos os pacotes icmp) ./snort -dvr packet.log tcp (Lista todos os pacotes tcp) ./snort -dvr packet.log udp (Lista todos os pacotes udp) Para mais informações de como usar a relação BPF, leia o mainpages do snort e do tcpdump.