É de suma importancia saber o que esta fazendo quando se edita o snort.conf para não modificar algo erroneamente e comprometer todo o funcionamento do mesmo. Lembre-se que modificar erronenamente não propriamente quer dizer que o snort não iniciara e sim não carregara partes importantes.
No arquivo snort.conf existe até um passo a passo de onde e o que modificar (está em inglês e usarei traduzido pra pt_BR) :
Original no snort.conf
################################################### # This file contains a sample snort configuration. # You should take the following steps to create your own custom configuration: # # 1) Set the network variables. # 2) Configure the decoder # 3) Configure the base detection engine # 4) Configure dynamic loaded libraries # 5) Configure preprocessors # 6) Configure output plugins # 7) Customize your rule set # 8) Customize preprocessor and decoder rule set # 9) Customize shared object rule set ###################################################
Então vamos por partes:
1-) Configure suas variáveis
2-) Configure o decoder
3-) Configure o engine de detecção
4-) Configure as bibliotecas dinamicas
5-) Configure os pre-processadores
6-) Configure os plugins de saida
7-) Customize suas regras
8-) Customize seu preprocessador e decoder
9-) Customize as Shared Object Rules
Muitas opções aqui terão mais sentido no final da serie no qual farei outro post dai mais completo e com dicas mas nesse post inicial focarei no passo 1 - Configure suas variáveise abordarei sobre a diretiva config .
Existem 3 tipos de variáveis:
- var
- portvar
- ipvar
Alguns exemplos:
var RULES_PATH /etc/snort/rules/
portvar MY_PORTS [22,80,1024:2000]
portvar SSH [22]
ipvar REDE_INTERNA [192.168.200.0/24,192.168.100.1]
Essas variaveis são utilizadas em regras, preprocessadores não fazem o uso das mesmas. Exemplo básico :
alert tcp any any -> $REDE_INTERNA $MY_PORTS (flags:S; msg:"Pacote com SYN";)
Alem de declarar os IPs ou CIDR na variável voce pode adicionar uma negação. Vamos pensar que voce quer monitorar todas as maquinas da rede 10.0.0.0/24 porém não a maquina 10.0.0.10 que é um scanner na rede.
ipvar MINHA_VARIAVEL [10.0.0.0/24,![10.0.0.10]]
A utilizacão da variável será igual a uma variavel simples .
Variaveis de porta (port) também podem usar a negação bem como um port range
portvar TESTE [!80]
portvar RANGE_SERVIDORES [3000:4000]
Na variavel RANGE_SERVIDORES ele vai monitorar portas 3000 até a 4000 .
A diretiva config não entrarei em detalhes aqui mas elas são bem importantes para voce ajustar suas configurações. Voce pode chamar o parametro via linha de comando quando for iniciar o snort bem como utiliza-las no snort.conf . No total temos mais de 60 diretivas que podem ser configuradas , abaxio alguns exemplos retirados do manual em pdf do snort. Um config bem importante de entender e adicionarei na lista de posts, talvez até o próximo é o config detection no qual voce pode melhorar muito consumo de memoria por exemplo.
Outro parametro no snort.conf que utilizamos bastante é o include no qual resumidamente falando voce podera incluir config de forma simples num arquivo diferente do snort.conf . Alguns includes presentes por padrão :
include classification.config include reference.config
Não se esqueça que quando atualizar seu engine sempre temos um novo snort.conf padrão que voce deve adicioná-lo e modifica-lo com as suas configurações pois muitas vezes são pre-processadores novos, variáveis que são utilizadas pelo VRT na criação de regras.
Caso queira acompanhar os arquivos de configurações mais atuais sugiro acompanhar http://www.snort.org/vrt/snort-conf-configurations/ .
É mandatorio saber utilizar e modificar o snort.conf por isso sempre leia ele, a documentação, configurações que possue pois isso certamente aumentara a qualidade do seu sensor instalado.
Desculpe do atraso mas infelizmente trabalho primeiro =)
Happy Snorting!
Rodrigo "Sp0oKeR" Montoro
3 comentários:
devo dizer que estudei bastantes IDS, à algum tempo atrás....e com esta séries está me fazendo relembrar bastante coisas e aprender outras.
parabéns
Excelente material! Estou começando a implantar um Snort in-line aqui no trabalho e vou fazer meu TCC em cima disso. Parabéns!
Olá, acompanho o blog a um tempo, e queria ver se você consegue me dar uma idéia sobre esse tipo de ataque, como posso realizar esse tipo de bloqueio, pois são de diversos IPs.
Obrigado
[Fri Mar 16 09:05:57 2012] [error] [client 96.47.224.58] ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/etc/apache2/modsecurity/crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "46"] [id "960015"] [rev "2.1.2"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "server.mydomain.com.br"] [uri "/ticket/86042"] [unique_id "T2MspQoBAR8AADB6@rcAAAAE"]
Postar um comentário