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: 43.385 ]

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


Analisando o www.rules



O o arquivo /etc/hlbr/rules/www.rules traz regras que se ativadas sem a sua devida atenção poderá colocar todos os teus serviços www fora do ar.

Veja a primeira regra:

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.asp)
message=(www-1) .asp request
action=action1
</rule>

<rule> .... </rule>
São as TAGS que definem uma regra.

ip dst (www)
O alvo desta regra são todos os servidores declarados no arquivo /etc/hlbr/hlbr.conf na seção www.

tcp dst(80)
Especificando a porta destino do serviço web que será monitorada.

tcp nocase(.asp)
Especifica um conteúdo dentro de um tráfego TCP. O content considera a caixa do caractere (diferencia caracteres maiúsculos e minúsculos). Espaços serão considerados como caracteres. Sequências de bytes em hexadecimal poderão ser inseridas entre caracteres "pipe".

Então se for solicitada qualquer string .asp, ou seja, páginas de um servidor ASP, a seguinte ação será tomada:

action=action1 No arquivo /etc/hlbr/hlbr.conf está definido que a ação action1 é para negar pacotes. Isso quer dizer que se você tem páginas em asp e liberar esta regra, todas as suas páginas estarão inatingíveis a partir de agora.

Caso você não tenha servidores asp, esta regra pode ser liberada sem problemas e evita que invasores fiquem fazendo testes para tentar descobrir a linguagem de páginas utilizada em alguns servidores.

Pela explicação acima, veja se você consegue entender as outras regras:

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.php)
message=(www-2) .php request
action=action1
</rule>

A regra acima bloqueia acesso a páginas em PHP.

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.shtml)
message=(www-3) .shtml request
action=action1
</rule>

A regra acima bloqueia acesso a páginas em SHTML.

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.xml)
message=(www-4) .xml request
action=action1
</rule>

A Regra acima bloqueia acesso a páginas em XML.

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.pl)
message=(www-5) .pl request
action=action1
</rule>

A regra acima bloqueia acesso a páginas em PERL.

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(/cgi-bin/)
message=(www-6) cgi request
action=action1
</rule>

<rule>
ip dst(www)
tcp dst(80)
tcp nocase(.cgi)
message=(www-7) cgi request
action=action1
</rule>

As regras acima bloqueiam acesso a execução de CGI-BIN.

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

Instalando o IBM LOTUS SYMPHONY Beta3

Enrolado para configurar o Samba? Chame o SWAT

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

Glances - Monitoramento de Processos e Perfomance

Eu cavo, tu cavas, ele cava... tutorial de DIG

Leitura recomendada

Configurando proxy no shell

Segurança com Iptables

Festa com SQL injection

Principais formas de anonimato ao navegar na Internet

Arquivo de configuração do mod_security

  
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