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.171 ]

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 a nova versão do HLBR - IPS invisível

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

Hotspot rápido com Coovachilli

Segurança extrema com LIDS: novos recursos

PacketFence em Debian 6

Configurando uma VPN IPSec Openswan no SUSE Linux 9.3

Chkrootkit - Como determinar se o sistema está infectado com rootkit

  
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