Personalizando o HLBR - IPS invisível

A versão 1.5-RC2 do HLBR vem com 144 regras pré-definidas, porém se você apenas instalar e não ativar alguns tipos de regras, nem todas irão para a execução. Aqui você aprenderá a liberar novas regras e a escrever regras personalizadas para seu ambiente. De bônus você ganha 5 novas regras para o seu HLBR, incluindo regras contra IP SPOOFING e SQL INJECTION.

[ Hits: 42.232 ]

Por: Dailson Fernandes (fofão) - http://www.dailson.com.br em 22/07/2008


Escrevendo regras contra ataques a extensões do frontpage



Como citei no tópico "Como começar a escrever regras para o HLBR?", vi que haviam tentativas de acesso a uma DLL inexistente em meu servidor WEB. Com pesquisas na Internet vi que a DLL owssvr.dll é uma extensão do frontpage e um conhecido ataque a servidores IIS da Microsoft.

Nos logs apareciam assim:

"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=6551&STRMVER=4&CAPREQ=0 HTTP/1.1"

Para barrar este tipo de ataque, basta você escrever a seguinte regra:

<rule>
ip dst(www)
tcp dst(80)
http content(/owssvr.dll)
message=(webattacks-17) frontpage extensions attack
action=action1
</rule>

Se você deseja fazer o download desta regra, clique aqui.

Ela deve ser colocada no arquivo /etc/hlbr/rules/webattacks.rules. Como lá já existem 16 regras, aí você complementa com a 17.

Reinicie o HLBR. Deixe o log em visualização com:

# tail -f /var/log/hlbr/hlbr.log

E tente fazer algo do tipo:

www.seuservidor.com.br/owssvr.dll

e veja o HLBR pegando este ataque.

Mas veja o seguinte, no próprio arquivo webattack.rules tem a seguinte regra:

<rule>
ip dst(www)
tcp dst(80)
tcp content(/_vti_bin/)
message=(webattacks-12) fp call attempt
action=action1
</rule>

Que já bloqueia qualquer tipo de acesso ao diretório _vti_bin, onde fica a dll. Já bloqueando o seguinte ataque:

"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"
"GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=4518&STRMVER=4&CAPREQ=0 HTTP/1.1"

Porém não bloqueando este:

"GET /owssvr.dll HTTP/1.1"
"GET /owssvr.dll HTTP/1.1"

Fazendo necessária a inclusão desta regra.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. As regras a serem analisadas
   3. Analisando o www.rules
   4. Analisando o http.rules
   5. Como começar a escrever regras para o HLBR?
   6. Escrevendo regras pra valer
   7. Escrevendo regras contra ataques a extensões do frontpage
   8. Bônus: Escrevendo uma regra contra SQL Injections
   9. Conclusão
Outros artigos deste autor

Glances - Monitoramento de Processos e Perfomance

Instalando a nova versão do HLBR - IPS invisível

Gerenciando logs do Linux pela WEB com o PHPSYSLOG-NG (parte 1)

NTFS-3g: Leitura e gravação em NTFS com segurança? Ainda não!

Utilizando o RSYNC para fazer backups de servidores e estações Windows

Leitura recomendada

Definição de hacker

Vírus em Linux?

Servidor de logs em Debian Linux

Usando e instalando o Nessus no Linux

Snort + MySQL + Guardian - Instalação e configuração

  
Comentários
[1] Comentário enviado por drakula em 24/07/2008 - 14:03h

Parabéns muito bom esse artigo, estou tendo contato com o HLBR a poucos dias ainda nao coloquei pra funcionar mas parece ser bem interessante esse artigo esclarece muito bem a forma como ele trabalha, a propósito parabens pelo artigo da instalacao tb esta muito bem explicado, continue assim a comunidade agradece

Abraço

[2] Comentário enviado por dailson em 24/07/2008 - 14:51h

Blz Drakula

Quando testar, posta os resultados pra gente.
Um abraço

Dailson

[3] Comentário enviado por rndasi em 25/07/2008 - 15:15h

Realmente parabéns pelo artigo ...

Fiz a implantação do HLBR-1.6-RC1 em ambiente de produção para conhecer todo o potencial da ferramenta. A parte que mais me interessa é realmente a regra sobre o SQL INJECTION que vc montou ...

Embora o site da empresa esteja livre desse tipo de ataque as tentativas não param. Então a primeira prova de fogo do HLBR será bloquear essa tentativa de ataque antes que ela chegue no servidor.

Agora sobre outras regras: habilitei a regra que bloqueia ASP mas alterei ela pra TXT só pra eu fazer um teste e joguei um arquivo TXT no servidor. Com a regra tcp nocase(.txt) se eu digito www.meudominio.com.br/teste.txt, o arquivo é aberto ... Tive que alterar a regra para http nocase(.txt) e ai a regra começou a funcionar. Realmente isso está certo ou estou fazendo alguma coisa de errado ?

Uma outra dúvida é: as minhas duas placas nessa máquina estão com IP 127.0.0.2 e 3 conforme sugestão. Mas o servidor fica em um outro prédio. Toda vez que eu quero ver como está o LOG eu tenho que ir até o prédio onde estar o servidor, entrar no depto de TI e ter acesso físico ao servidor. Qual seria a sugestão para eu ver esse log "remotamente" claro que levando em conta a segurança ?

Obrigado pela ajuda

Ronaldo

[4] Comentário enviado por dailson em 28/07/2008 - 15:52h

Oi Rndasi

Em relação a regra do txt, isto foi um bug que detectamos na versão 1.5RC2 e anteriores, ficamos surpreso em vc dizer que aconteceu novamente na versão 1.6, pois isto já foi corrigido. Se vc puder, posta a regra que vc fez aqui para a gente testar também.
Em relação a mudar para http nocase, não há erro nisso, vc tá certo, mas era pra funcionar com o tcp também.

Em relação a sua pergunta sobre analisar remotamenteé uma idéia excelente, porém considerada extremamente perigosa pela equipe Mantenedora do HLBR. Se for para laboratório, a idéia é excelente. Se for para ambiente de produção, não é recomendado por eles colocar placas com IP acessíveis e roteáveis.
Ou seja, vc tem que ir na máquina mesmo. Mas se serve de consolo, aqui também eu faço isso e meu HLBR fica longe pra caramba de onde fico normalmente.
Isto é uma característica que deve ser implantada nas novas versões.

Um grande abraço

[5] Comentário enviado por rndasi em 28/07/2008 - 17:17h

Obrigado pelo retorno.

Tentei as seguintes regras:

tcp regex(GET[ -~]+\.txt($|/|\&|\?)) e tcp nocase(.txt) .... Ambas se eu trocar tcp por http funcionando. Com tcp não ... A primeira regra eu pequei do próprio www.rules e copiei a regra do ASP.

Bom, pelo menos manterei a forma indo de um prédio ao outro. risos

Quanto ao SQL Injection tem outra forma de invadir utilizando DECLARE e CAST (no caso do SQL SERVER) .. Vou tentar entender a sua regra e montar uma por aqui e funcionando eu te mando.

Abraço

[6] Comentário enviado por dailson em 29/07/2008 - 10:29h

Ok Rndasi

Estaremos publicando em breve um artigo com 70 novas regras.
Uma delas, foi a que coloquei neste artigo.
Manda brasa em novas regras, pois é o que mais o HLBR precisa.
Em relação a este BUG, já foi passada a equipe e eles estão verificando novamente.

Um abraço


[7] Comentário enviado por drakula em 30/07/2008 - 22:39h

Ansiosissimo por esse artigo com as 70 novas regras!!
eeheheh

abraço

[8] Comentário enviado por thiagopagani em 30/07/2008 - 22:48h

Parabens pelo Artigo
e drakula vamos colocar em pratica

abraço

[9] Comentário enviado por dailson em 31/07/2008 - 09:40h

Beleza!!!

O artigo está em andamento. E os testes também. Algumas regras apresentaram problemas com o HLBR, mas a equipe é eficaz demais, mandei os erros e a galera já corrigiu...
Já está em ambiente de produção...
Estamos refinando para liberar para a comunidade!
Parabéns a nós que fazemos o SL crescer!!!!!!!!
Gostaria de pedir a quem tivesse erros, mandasse para mim em listas em dailson.com.br se possível com os arquivos de dump (/var/log/hlbr/hlbr.log e hlbr.dump)
A Equipe HLBR agradece!

[10] Comentário enviado por drakula em 24/08/2008 - 22:52h

HLBR Colocado em produção fantastico muito bom uma otima ferramenta parabens aos desenvolvedores e ao dailson que tem facilitado muito as coisas com seus tutorias otimos e didaticos

Abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts