Pular para o conteúdo

Snort avançado: Projetando um perímetro seguro

Neste artigo veremos algumas características avançadas do sistema de detecção de invasão Snort e também como utilizar a criatividade para elaborar firewalls integrados com o IDS. Vamos montar uma central de análise utilizando Snort Snarf. Leitura recomendada para administradores e afins.
Anderson L Tamborim y2h4ck
Hits: 179.233 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Parte 10: Apêndice

   1. Prólogo
   2. Introdução: Sistemas de detecção de invasão
   3. Tabela simbólica
   4. Projeto de perímetro seguro
   5. Instalação e configuração
   6. Adaptando o IDS ao nosso projeto
   7. IDS Center: Criando uma central de alertas unificados
   8. Proof of Concept: Projeto sob fogo
   9. Conclusão
   10. Apêndice

Análise Passiva: Analisando seu tráfego de maneira segura

Libsafe: Protegendo Linux contra Smashing Overflow

OpenVZ: Virtualização para servidores Linux

Análise passiva (parte 2)

PHLAK :: [P]rofessional [H]acker's [L]inux [A]ssault [K]it

Recuperação do arquivo sudoers - comandos su e sudo não funcionam mais [Resolvido]

13 dicas de segurança para o Apache

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados

Tutorial de Instalação do ClamAV - Anti-vírus open Source

#1 Comentário enviado por fabio em 06/01/2005 - 04:16h
Momento do samba carioca:

"Sobre o artigo, dizer o quê...
O Anderson Tamborim, caprichou pra valê!

I ô lê lê... onde há segurança
a gente nunca perde a esperança

E diz!

REFRÃO..."

Meus parabéns!
#2 Comentário enviado por naoexistemais em 06/01/2005 - 04:24h
Caro Anderson,

Mais um artigo de qualidade e mantendo a qualidade do VOL, por isso digo para o zangado o VOL é o melhor e sempre será.

Parabéns,
#3 Comentário enviado por sUxSyS em 06/01/2005 - 06:53h
Meu po... muito bom teu artigo!
Como sempre muito profissional... meus parabens!!!

flws
#4 Comentário enviado por dudu_away em 06/01/2005 - 11:06h
Ae anderson.. naum precisava nem comentar né? haushahs

Tah perfeito como sempre! Continue assim kra....

Parabéns!

[]'s
Eduardo
#5 Comentário enviado por jeffestanislau em 06/01/2005 - 12:46h
Anderson,

Realmente está ótimo!!! Parabéns por seu trabalho!!!

PS: Ainda bem que o fábio não depende de samba para sobreviver!!!
hehehe

[]´s
#6 Comentário enviado por peregrino em 06/01/2005 - 13:53h
opa cara esse é mais um artigo daqueles que dispensa comentarios muito bommesmo continue assim fazendo varios artigos e tutorias para acomunidade

queria falar aqui que vc poderia fazer um tutorial sobre iptables+pom com regras avançadas e tambem algum falando sobre teste de fogo para testar o servidor se esta vuneravel

falow
#7 Comentário enviado por y2h4ck em 06/01/2005 - 14:00h
Obrigado a todos pelos comentarios e por terem apreciado meu artigo.
Peregrino gostei da Ideia ... e posso futuramente escrever um artigo sobre testes de penetração. :)

Abraços a todos.

Anderson Luiz Tamborim ( Spawn y2h4ck )
#8 Comentário enviado por fcc em 06/01/2005 - 16:26h
Ae man...mandou ver novamente....Jogou duro no IDS Parabens....continue sempre divugando seus artigos...eles sao o maximo!

Valeu!
#9 Comentário enviado por dexter_sbo em 07/01/2005 - 09:20h
Ae spawn mando muito bem como sempre seu artigo fico muito ótimo fico muito 10 memo meus parabéns

By __d3xt3r__
#10 Comentário enviado por removido em 07/01/2005 - 11:44h
EXCELENTE!!!!
E muito inspirado também o samba do fábio... ;-)
#11 Comentário enviado por davidsonpaulo em 08/01/2005 - 15:34h
Aê Fábio! Como sambista tu é um ótimo administrador de portal. Ahahahah!

Aê Anderson! Detonou hein! Parabéns meu velho, e continue evoluindo!

Abraços!
#13 Comentário enviado por mariux em 24/03/2005 - 18:05h
por gostei pra caramba muito legal o artigo. me ajudou muito!!
#14 Comentário enviado por montaro em 25/04/2005 - 04:14h
muito bom o artigo...eu me interesso bastante pela area de seguranca e ate penso em trabalhar nesse ramo, mais eh tanta coisa pra aprender que nao sei por onde comecar... ja montando um ids , um honeypot aki no lnx ja eh um comeco ... abracos..
#15 Comentário enviado por jgama em 23/07/2006 - 16:25h
Já faz mas de um ano que foi eleborado este tutorial, só agora que tive o prazer de ler, realmente muito bem elaborado.

Só como sou inexperiente no Linux, posso dizer assim, e tentei colocar o snort para Rodar num Servidor com Mandriva 2006, usando este Tutorial, só que aqui esta dando erro justamente no arquivo de regras abaixo, será que tenho que criar o arquivo com o conteudo igualzinho descrito abaixo?

# regras.conf
# ----------------------------------------------------------
# Anderson Luiz Tamborim ( security*NOSPAM*tionline.com.br )
# ----------------------------------------------------------
# Regras para IDS baseado em Plano
# Regras Alert

alert tcp any any <> [192.168.10.0/24,192.168.11.0/24]
alert udp any any <> [192.168.10.0/24,192.168.11.0/24]
alert ip any any <> [192.168.10.0/24,192.168.11.0/24]

#Isso iria gerar um alerta para qualquer tráfego entre essas duas redes, #assim nossa primeira política de alertas está feita, agora teremos que #fazer as regras para liberar as portas que serão válidas aos usuários:

pass tcp 192.168.10.0/24 any -> 192.168.11.1 25
pass tcp 192.168.10.0/24 any -> 192.168.11.1 80
pass tcp 192.168.10.0/24 any -> 192.168.11.1 110
pass tcp 192.168.10.0/24 any -> 192.168.11.1 143
pass tcp 192.168.10.0/24 any -> 192.168.11.1 21
pass tcp 192.168.10.0/24 any -> 192.168.11.1 137:139

# Agora pacotes UDP
pass udp 192.168.0.0/24 any -> 192.168.11.1 137:139
pass udp 192.168.0.0/24 any -> 192.168.11.1 21

# Pacotes IP
# Não utilizaremos pacotes IP, pois não estamos
# utilizando nenhum serviço como VPN ou sistema de
# autenticação como Kerberos


Pois aparece messagem de erro quando starto snort, dizendo que tem erro no include /etc/snort/rules/regras.conf (8) algo assim.

Tentei deica as linhas conforme abaixo mas não deu certo.

abaixo, será que tenho que criar o arquivo com o conteudo igualzinho descrito abaixo?

# regras.conf
# ----------------------------------------------------------
# Anderson Luiz Tamborim ( security*NOSPAM*tionline.com.br )
# ----------------------------------------------------------
# Regras para IDS baseado em Plano
# Regras Alert

alert tcp any any [192.168.0.0/24,192.168.1.0/24]
alert udp any any [192.168.0.0/24,192.168.1.0/24]
alert ip any any [192.168.0.0/24,192.168.1.0/24]

pass tcp 192.168.0.0/24 any 192.168.1.0 25
pass tcp 192.168.0.0/24 any 192.168.1.0 80
pass tcp 192.168.0.0/24 any 192.168.1.0 110
pass tcp 192.168.0.0/24 any 192.168.1.0 143
pass tcp 192.168.0.0/24 any 192.168.1.0 21
pass tcp 192.168.0.0/24 any 192.168.1.0 137:139

# Agora pacotes UDP
pass udp 192.168.0.0/24 any 192.168.1.0 137:139
pass udp 192.168.0.0/24 any 192.168.1.0 21

Alguém poderia ajudar-me a tirar esta dúvida
#16 Comentário enviado por removido em 17/10/2009 - 09:27h
Legal, SNORT Avançado.
#17 Comentário enviado por removido em 17/10/2009 - 22:42h
Snort, Porquinho Ninja.
#18 Comentário enviado por rhock em 06/12/2011 - 15:41h
Estou com um problema na hora de executar o comando " snortsnarf.pl --rulesfile /etc/snort/snort.conf -rulesdir /etc/snort -d /www/htdocs/snarf /var/log/snort/alert "


da o seguinte erro: " snortsnarf.pl: command not found "

Alguem pode me ajudar.

Obrigado.
#19 Comentário enviado por rhock em 06/12/2011 - 16:56h
Erro na execução:



perl snortsnarf.pl --rulesfile /etc/snort/snort.conf --rulesdir /etc/snort -d /var/www/snort /var/log/snort/alert
Parentheses missing around "my" list at /etc/perl/Time/ParseDate.pm line 108.
Parentheses missing around "my" list at /etc/perl/Time/ParseDate.pm line 109.
Useless use of a variable in void context at /etc/perl/Time/ParseDate.pm line 108.
Useless use of a variable in void context at /etc/perl/Time/ParseDate.pm line 108.
Useless use of a variable in void context at /etc/perl/Time/ParseDate.pm line 109.
Useless use of a variable in void context at /etc/perl/Time/ParseDate.pm line 109.
Using an array as a reference is deprecated at /etc/perl/HTMLMemStorage.pm line 290.
Using an array as a reference is deprecated at /etc/perl/HTMLAnomMemStorage.pm line 266.
Unknown option --rulesfile
Unknown option --rulesdir
Subroutine julian_day redefined at /etc/perl/Time/JulianDay.pm line 46.
Subroutine day_of_week redefined at /etc/perl/Time/JulianDay.pm line 82.
Subroutine inverse_julian_day redefined at /etc/perl/Time/JulianDay.pm line 96.
Subroutine jd_seconds redefined at /etc/perl/Time/JulianDay.pm line 127.
Subroutine jd_timelocal redefined at /etc/perl/Time/JulianDay.pm line 135.
Subroutine jd_timegm redefined at /etc/perl/Time/JulianDay.pm line 145.
unknown alert format for line: var HOME_NET any
; skipping
unknown alert format for line: var EXTERNAL_NET any
; skipping
unknown alert format for line: var DNS_SERVERS [xxxxxxx]
; skipping
unknown alert format for line: var SMTP_SERVERS [xxxxxxx]
; skipping
unknown alert format for line: var HTTP_SERVERS $HOME_NET
; skipping
unknown alert format for line: var SQL_SERVERS $HOME_NET
; skipping
unknown alert format for line: var TELNET_SERVERS $HOME_NET
; skipping
unknown alert format for line: var FTP_SERVERS $HOME_NET
; skipping
unknown alert format for line: var SNMP_SERVERS $HOME_NET
; skipping
unknown alert format for line: portvar HTTP_PORTS 80
; skipping
unknown alert format for line: portvar SHELLCODE_PORTS !80
; skipping
unknown alert format for line: portvar ORACLE_PORTS 1521
; skipping
unknown alert format for line: portvar FTP_PORTS 21
; skipping
unknown alert format for line: var RULE_PATH /etc/snort/rules
; skipping
unknown alert format for line: var PREPROC_RULE_PATH /etc/snort/preproc_rules
; skipping
unknown alert format for line: dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/
; skipping
unknown alert format for line: dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so
; skipping
unknown alert format for line: preprocessor frag3_global: max_frags 65536
; skipping
unknown alert format for line: preprocessor frag3_engine: policy first detect_anomalies overlap_limit 10
; skipping
unknown alert format for line: preprocessor stream5_global: max_tcp 8192, track_tcp yes, \
; skipping
unknown alert format for line: track_udp no
; skipping
unknown alert format for line: preprocessor stream5_tcp: policy first
; skipping
unknown alert format for line: preprocessor rpc_decode: 111 32771
; skipping
unknown alert format for line: preprocessor bo
; skipping
unknown alert format for line: preprocessor ftp_telnet: global \
; skipping
unknown alert format for line: encrypted_traffic yes \
; skipping
unknown alert format for line: inspection_type stateful
; skipping
unknown alert format for line: preprocessor ftp_telnet_protocol: telnet \
; skipping
unknown alert format for line: normalize \
; skipping
unknown alert format for line: ayt_attack_thresh 200
; skipping
unknown alert format for line: preprocessor ftp_telnet_protocol: ftp server default \
; skipping
unknown alert format for line: def_max_param_len 100 \
; skipping
unknown alert format for line: alt_max_param_len 200 { CWD } \
; skipping
unknown alert format for line: cmd_validity MODE < char ASBCZ > \
; skipping
unknown alert format for line: cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > \
; skipping
unknown alert format for line: chk_str_fmt { USER PASS RNFR RNTO SITE MKD } \
; skipping
unknown alert format for line: telnet_cmds yes \
; skipping
unknown alert format for line: data_chan
; skipping
unknown alert format for line: preprocessor ftp_telnet_protocol: ftp client default \
; skipping
unknown alert format for line: max_resp_len 256 \
; skipping
unknown alert format for line: bounce yes \
; skipping
unknown alert format for line: telnet_cmds yes
; skipping
unknown alert format for line: preprocessor smtp: \
; skipping
unknown alert format for line: inspection_type stateful \
; skipping
unknown alert format for line: normalize cmds \
; skipping
unknown alert format for line: normalize_cmds { EXPN VRFY RCPT } \
; skipping
unknown alert format for line: alt_max_command_line_len 260 { MAIL } \
; skipping
unknown alert format for line: alt_max_command_line_len 300 { RCPT } \
; skipping
unknown alert format for line: alt_max_command_line_len 500 { HELP HELO ETRN } \
; skipping
unknown alert format for line: alt_max_command_line_len 255 { EXPN VRFY }
; skipping
unknown alert format for line: preprocessor sfportscan: proto { all } scan_type { all } memcap { 1000000 } sense_level { medium } logfile { sfPortscan.log }
; skipping
unknown alert format for line: preprocessor ssh: server_ports { 22 } \
; skipping
unknown alert format for line: max_client_bytes 19600 \
; skipping
unknown alert format for line: max_encrypted_packets 20 \
; skipping
unknown alert format for line: enable_respoverflow enable_ssh1crc32 \
; skipping
unknown alert format for line: enable_srvoverflow enable_protomismatch
; skipping
unknown alert format for line: preprocessor dcerpc2
; skipping
unknown alert format for line: preprocessor dcerpc2_server: default
; skipping
unknown alert format for line: preprocessor dns: \
; skipping
unknown alert format for line: ports { 53 } \
; skipping
unknown alert format for line: enable_rdata_overflow
; skipping
unknown alert format for line: preprocessor ssl: noinspect_encrypted, trustservers
; skipping
unknown alert format for line: output log_tcpdump: tcpdump.log
; skipping
unknown alert format for line: include classification.config
; skipping
unknown alert format for line: include reference.config
; skipping
unknown alert format for line: include $RULE_PATH/local.rules
; skipping
unknown alert format for line: include $RULE_PATH/scan.rules
; skipping
Undefined subroutine &MemTimeBase::jd_timelocal called at /etc/perl/MemTimeBase.pm line 38, <inputfile003> line 6.


Alguem sabe ?

Contribuir com comentário

Entre na sua conta para comentar.