snort no mandriva powerpack+ 2006 -> pacote: snort -> reposit�rio: main -> instala��o manual - http://www.snort.org/dl/ - baixar o source rpm de - http://www.snort.org/dl/binaries/linux/ - rpm -ivh pacote.src.rpm - cd /usr/src/rpm/specs - rpm -ba snort.spec --> sobre snort nids (network intrusion detection system ou sistema de detec��o de intrus�o de rede) � um sistema que tem por objetivo principal a detec��o de intrusos. al�m disso, s�o sistemas que: analisam tr�fego de rede procuram por assinaturas de ataques fazem o registro dos ataques e opcionalmente avisam um operador (realtime) trabalham com sensores; v�rios pontos da rede podem ser monitorados --> caracter�sticas do snort o snort � um aplicativo nids utilizado para detectar incidentes de seguran�a na sua rede. ele pode analisar protocolos, procurar/casar conte�dos de pacotes, pode ser utilizado para detectar v�rios tipos de ataque, como, por exemplo, buffer overflow, portscan, ataques cgi e muitos outros. o snort utiliza uma linguagem de regras muito flex�vel para descrever o tr�fego que ele deve analisar ou deixar passar, e tamb�m um mecanismo de detec��o que utiliza uma arquitetura modular de plugins, que registram os ataques de diversas maneiras, dentre elas sql (mysql, postgresql, oracle, unixodbc), arquivo no formato tcpdump (bin�rio), arquivo texto e syslog. o snort pode ser considerado um sensor, podendo monitorar diferentes pontos da rede ao mesmo tempo. a seguir, veja algumas das funcionalidades do snort: normalizar requisi��es http detectar ataques do tipo unicode detectar portscan (por taxa e por flags) remontar os segmentos tcp ativar regras dinamicamente (regras podem ser ativadas por outras regras) uma ferramenta ids serve basicamente para nos trazer informa��es sobre nossa rede, informa��es como: quantas tentativas de ataques sofremos por dia qual tipo de ataque foi usado qual a origem dos ataques --> arquitetura do snort a implementa��o do snort, segundo uma arquitetura modular, focaliza a otimiza��o do desempenho na coleta e an�lise de pacotes, que com o conjunto de regras correto para um dado exploit aproxima-se do tempo-real. o snort oferece o conceito de plug-ins, que s�o seus subsistemas de:
- pr�-processamento: disposto entre o packet sniffing e o processamento do engine de detec��o, decodifica o pacote - detec��o: ocorre durante o processamento do engine de detec��o - sa�da: � executado ap�s o processamento do engine de detec��o, para registrar e alertar primeiro, o decodificador de pacote interpreta qual � o conjunto de tr�fego. esse tr�fego decodificado � analisado por todo plug-in pr�-processador definido nas regras. em seguida, o engine de detec��o recebe o tr�fego, aplica uma estrutura de regras e pode tamb�m aplicar plug-ins de detec��o no tr�fego excessivo para procurar outras assinaturas. por fim, o fluxo de dados � enviado para o est�gio de sa�da, onde existem diferentes op��es de registro e alerta, e ainda, podem ser enviados para plug-ins de sa�da. --> a diferen�a entre alerta e logging (http://www.snort.org/docs/faq/1q05/node72.html) existe duas facilidades de sa�da do snort, log e alerta. a facilidade alerta existe para sabermos que algo de interessante est� acontecendo. a facilidade log existe para registrar a informa��o completa do pacote. a a��o alert acaba fazendo duas coisas quando um evento � detectado pelo snort, escreve um evento para a facilidade alert e loga tamb�m. a a��o log apenas registra o pacote sem gerar um alerta. -> funcionameto do snort: o snort pode ser configurado para trabalhar em 3 modos: - modo sniffer = l� os pacotes da rede e exibe-os para voc� de cont�nua no console (tela) - modo packet logger - registra os pacotes para o disco - modo nids (network intrusion detection system) = � o tipo de mais complexa e configur�vel, que permite o snort analizar o tr�fego combina��es contra um conjunto de regras definidas pelo usu�rio. - modo inline = obt�m os pacotes a partir do iptables ao inv�z ent�o pode fazer com que o iptables negue ou libere pacotes baseados snort que usam tipos de regras espec�ficas para modo inline.
forma configura��o da rede para da libpcap e nas regras do
--> modo sniffer snort -v = exibe os cabe�alhos tcp/udp/icmp snort -vd = exibe os dados do pacote + cabe�alhos snort -vde = exite o mesmo acima + cabe�alhos da camada 2 (data link layer) --> modo packet logger snort -dev -l /var/log/snort = coleta os pacotes que v� e coloca os no diret�rio especificado no comando, de acordo com o ip de algum dos pacotes. snort -dev -l /var/log/snort -h 192.168.0.0/24 = mesmo que acima, mas loga pacotes da rede 192.168.0.0/24, todos pacotes que entram ser�o logados snort -l /var/log/snort -b = loga tudo no formato bin�rio (formato do
tcpdump) dentro de um simples arquivo, para ler este arquivo use algo que suporte o formato tcpdump como a pr�pria ferramenta, ethereal, ou o pr�prio snort com a op��o "-r" snort -dvr /var/log/snort/arquivogerado icmp = icmp � um filtro bpf -->
modo nids
snort -dev -l /var/log/snort -h 192.168.0.0/24 -c /etc/snort/snort.conf = este modo n�o registra todo pacotes, pois utiliza um arquivo de conf que cont�m regras que ser�o aplicadas aos pacotes para decidir o que fazer com eles os parametros -v � verbose, -e � para registrar cabe�alhos da camada 2 e -d � para mostrar dados da aplica��o. snort -d -h 10.1.1.0/8 -l /var/log/snort -c /etc/snort/snort.conf - op��es de sa�da do modo nids h� v�rias formas de se configurar a sa�da do snort em modo nids, snedo o padr�o logar formato ascii decodficado e usar alertas completos. o mecanismo de alerta completo, imprime a mensagem de alerta em adi��o a todos cabe�alhos do pacote. os modos de alertas sao mais complexos (7 modos), veja: -a fast - modo alerta fast, escreve um alerta em formato simples (timestamp, mensagem, origem/destino ip/porta -a full - modo alerta full - este � o modo padr�o, n�o deve ser usado pois � maneira mais lenta de se rodar o snort e pode apresentar problemas de cria��o de inodes no sistema de arquivos -a unsock - envia um alerta para um socket unix para que outro programa possa ouvi-lo -a none - desliga o alerta -a console - envia o alerta para o console -a cmg - gera alerta no estilo cmg ex: snort -d -h 10.1.1.0/8 -l /var/log/snort -c /etc/snort/snort.conf -a fast para um ids em produ��o � interessante rodar (-a fast -b) ou utilizar um formato de log unificado com o barnyard o outro modo de alerta � syslog, (-s). a facilidade padr�o � Log_authpriv e log_alert, para usar outras facilidades � necess�rio usar diretivas dos plugins de sa�da. ex: snort -d -h 10.1.1.0/8 -l /var/log/snort -c /etc/snort/snort.conf -s o par�metro -d roda o snort em modo daemon, e o -o ofusca o ip o formato dos logs tamb�m podem ser bin�rios (-b) (-n), passando este argumentos na linha de comando.
e podem ser desabilitados
- formato do arquivo de alerta [**] [116:56:1] (snort_decoder): t/tcp detected [**] 116 - generator id (gid) - isto diz qual componente do snort gerou o alerta -
56 - snort id ou processadores
signature id (sids) - ver arquivo gen-msg.map para pr�-
1 - revision id - n�mero utilizado quando escrever assinaturas (signatures) --> o arquivo /etc/sysconfig/snort --> service snortd start --> sobre o arquivo de conf /etc/snort/snort.conf ver manual do usu�rio --> configura��es otimizadas http://www.snort.org/docs/faq/1q05/node95.html -> criando regras de detec��o http://packetstormsecurity.nl/papers/ids/snort_rules.htm http://www.snort.org/docs/snort_htmanuals/htmanual_2.4/rc1/node15.html muitas regras do snort s�o escritas em uma �nica linha, mas podem ser extendidas para v�rias linhas com o uso da barra invertida "\" no final da linha. as regras s�o divididas em 2 se��es l�gicas: - cabe�alho da regra: cont�m a a��o, protocolo, ip origem e destino, m�scaras de rede, portas de origem e destino - op��es da regra: cont�m as mensagens de alerta e informa��es sobre qual parte do pacote deve ser inspecionado para determinar se a a��o da regra deve ser tomada. esta se��o � opcional. ex1: alert tcp any -> 192.168.1.0/24 111 (content:"|00 01 86 a5|"; msg:"mountd access";) o texto at� o primeiro parentese "(" � a se��o cabe�alho da regra e o que est� dentro dos parenteses � a se��o op��es da regra. as palavras antes dos ":" s�o palavras chaves. exemplos relacionados a se��o "cabe�alho da regra": ex1: alert tcp ![192.168.1.0/24, 10.1.1.0/8] any -> [192.168.1.0/24,10.1.1.0/8] 111 \ (content: "|00 01 86 a5|"; msg: "external mountd access";) ex2: log log log log
udp tcp tcp tcp
any any any any
any -> any 1:1024 (da porta 1 a 1024) any -> any :6000 (portas <= 6000) :1024 -> any 2048: (portas <= 1024 e portas >= 500) any -> any !6000:6010 (todas portas exceto de 6000 a 6010)
ex3: log !192.168.1.0/24 any <> 192.168.1.0/24 23 ( <> = operador bidirecional, considerando os pares de ip/porta na regra tanto com orienta��o de origem ou destino) ip/porta origem -> ip/porta destino (-> = operador unidirecional) exemplos relacionados a se��o "op��es da regra": esta se��o � o cora��o da m�quina de detec��o de intrus�o do snort. as op��es s�o separadas por ";" e as palavras chaves s�o separadas dos argumentos com ":".
h� 4 categorias de op��es de regras: - meta-data = informa��es sobre a regras mas n�o tem qq efeito durante a detec��o - payload = procuramm por dados dentro do payload do pacote e pode estar inter relacionada com non-payload - non-payload = procuram por dados non-payload - post-detection = regras de triggers especificos que acontecem depois que uma regra foi combinada --> regras de detec��o no snort http://www.snort.org/rules/ http://www.snort.org/snort-db/ http://www.bleedingsnort.com/ http://www.turbosnortrules.org/ --> atualizando as regras de detec��o: http://www.snort.org/docs/faq/1q05/node48.html http://oinkmaster.sourceforge.net --> como testar regras: http://www.snort.org/docs/faq/1q05/node71.html --> como saber mais sobre um determinado alerta: http://www.snort.org/docs/faq/1q05/node57.html --> sobre a ferramenta acid: http://www.snort.org/docs/faq/1q05/node51.html http://www.andrew.cmu.edu/user/rdanyliw/snort/acid_faq.html http://www.cert.org/kb/acid/ http://www.andrew.cmu.edu/user/rdanyliw/snort/acid_config.html --> sobre ferramentas auxiliares http://www.snort.org/dl/contrib/ http://www.snort.org/docs/faq/1q05/node87.html http://www.snort.org/docs/faq/1q05/node91.html http://www.snort.org/docs/faq/1q05/node92.html http://www.snortsam.net/ http://www.snort.org/dl/contrib/patches/inline/ http://www.chaotic.org/guardian/ http://www.sun.com/bigadmin/features/articles/snort_base.html http://secureideas.sourceforge.net/ http://acidlab.sourceforge.net/ http://people.ee.ethz.ch/~dws/software/snort-rep/ http://www.andrew.cmu.edu/user/rdanyliw/snort/ http://snort.linuxsecurity.com.br/downloads.html http://www.faqs.org/docs/linux-howto/snort-statistics-howto.html --> projetos parelelos http://snort-inline.sourceforge.net/ http://pigmeet.databras.com.br/ http://snort-wireless.org/ --> snort + firewall http://www.snort.org/docs/faq/1q05/node56.html--> snort + alertas por email http://www.snort.org/docs/faq/1q05/node94.html
--> script para logs http://www.snort.org/docs/faq/1q05/node110.html --> conceitos de rede http://www.snort.org/docs/faq/1q05/node100.html --> exemplos: http://www.unsigned.hpg.ig.com.br/snortbasico.html http://www.vivaolinux.com.br/artigos/verartigo.php?codigo=1749# http://underlinux.com.br/content/view/5572/58/ http://www.linuxit.com.br/section-viewarticle-766.html http://www.aplinux.com.br/?q=node/119 http://www.pop-pr.rnp.br/tiki-index.php?page=ids+snort http://www.gentoo.org/doc/pt_br/security/securityhandbook.xml?full=1#book_part1_chap13 http://www.gentoo.org/doc/en/security/securityhandbook.xml?full=1#book_part1_chap13 http://www.comlinux.com.br/rcm/snort/ http://www.linux-tip.net/workshop/ids-snort/ids-snort.htm http://www.debian-administration.org/articles/318 http://www.securityfocus.com/infocus/1640 http://www.sun.com/bigadmin/features/articles/intrusion_detection.html http://www.redhat.com/magazine/013nov05/features/snort/ ---> fontes: http://www.snort.org/ http://www.snort.org/docs/faq.html http://www.snort.com.br/snort.asp http://www.snort.org/docs/lisapaper.txt http://www.informabr.com.br/ids.htm http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_br/ch15s09.html http://www.securenet.com.br/artigo.php?artigo=95 http://web.mit.edu/rhel-doc/4/rh-docs/rhel-sg-pt_br-4/ch-detection.html http://www.sans.org/resources/idfaq/ http://www.mhavila.com.br/link/security/ids.html