você está aqui: Home  → Arquivo de Mensagens

IPS HLBR - Versão 1.0 permite a detecção de tráfego malicioso com o uso de expressões regulares

Colaboração: João Eriberto Mota Filho

Data de Publicação: 12 de Março de 2006

O HLBR é um projeto brasileiro, baseado no Projeto Hogwash (http://hogwash.sf.net).

A versão 1.0 do Hogwash Light BR, lançada em 05 de março de 2006, traz uma interessante novidade: a possibilidade de uso de expressões regulares para a detecção de tentativas de intrusão, de e-mails com vírus ou phishing etc.

O HLBR é um IPS (Intrusion Prevention System) que lê o tráfego de rede na camada 2 do Modelo OSI (camada de enlace). Por atuar como uma bridge, fica in-line na topologia de rede e não precisa de endereço IP. Em conseqüência, o HLBR é invisível para os atacantes. A filtragem do tráfego (incluindo o conteúdo dos pacotes) pode ser feita com regras simples. A versão 1.0 inclui a possibilidade de uso de expressões regulares na filtragem. A seguir, um exemplo de regra utilizando expressões regulares:

  <rule>
  ip dst(email)
  tcp dst(25)
  tcp regex(filename="[^\n]+\.scr")
  message=(mailvirus-1-re) .scr attach
  action=virus
  </rule>

Em resumo, todo o tráfego TCP direcionado à porta 25 do servidor de e-mail será filtrado. Se for encontrado o texto filename="qualquer_coisa_diferente_de_quebra_de_linha.scr" dentro do pacote, significa que há um anexo .scr no e-mail (vírus). Em conseqüência, esse pacote sofrerá a ação denominada "virus". Essa ação faz o log da ocorrência, grava o tráfego malicioso em formato tcpdump e descarta o pacote. A seguir, um exemplo de regra contra um tipo de tentativa de bufferoverflow em servidores DNS:

  <rule>
  ip dst(dns)
  udp dst(53)
  udp nocase(|41cd 80c7 062f 6269 6ec7 4604 2f73 6800  89f0 83c0 0889 4608|)
  message=(dnsattacks-1) tsl bind attack
  action=action1
  </rule>

Nesse caso, em virtude do uso dos caracteres pipe (|), o HLBR irá checar o tráfego passante, byte a byte, pela seqüência hexadecimal informada como assinatura de ataque. Note que somente o tráfego direcionado à porta 53 UDP do servidor DNS será checado.

O HLBR permite a montagem de regras para o bloqueio de ataques a servidores de rede, tanto interna quanto externamente. Para entender melhor como funciona o IPS, inclusive com figuras explicativas, consulte o link http://hlbr.sourceforge.net/ips.html.

A instalação do HLBR é bem simples. Basta utilizar o famoso trio ./configure, make, make install. Há um README, em português, dentro do pacote que contém o código-fonte. Esse README explica, inclusive, como montar novas regras (o HLBR 1.0 já traz cerca de 100 regras consigo).

Há dois tipos de log possíveis. Um deles registra o fato ocorrido e, o outro, o tráfego malicioso em formato tcpdump. A seguir, um exemplo de log da ocorrência (alguns octetos foram mascarados):

  00831 22/02/2006 13:23:00 x.51.162.252:3324->
         y.z.48.244:80 (http-2-re) open proxy search
  00832 22/02/2006 13:25:55 x.175.55.194:3063->
         y.z.48.242:80 (webattacks-2-re) directory change 
         attempt (unicode,asc,plain)

Agora, os logs do tipo dump referentes aos dois casos anteriores:

  13:23:00.661777 IP x.51.162.252.3324 >
           y.z.48.244.www: P 1448357854:1448357917(63) 
  	 ack 1691128774 win 17520
  
  0x0000:  4500 0067 3a0e 4000 6b06 02c6 d233 a2fc  E..g:.@.k....3..
  0x0010:  c8fc 9490 0cfc 0050 5654 2fde 64cc 93c6  .......PVT/.d...
  0x0020:  5018 4470 30d1 0000 434f 4e4e 4543 5420  P.Dp0...CONNECT.
  0x0030:  3231 302e 3738 2e31 3438 2e31 3632 3a32  xxx.78.148.162:2
  0x0040:  3520 4854 5450 2f31 2e31 0d0a 486f 7374  5.HTTP/1.1..Host
  0x0050:  3a20 3231 302e 3738 2e31 3438 2e31 3632  :.xxx.78.148.162
  0x0060:  3a32 350d 0a0d 0a                        :25....
  13:25:55.965631 IP x.175.55.194.3063 > 
           y.z.48.242.80: P 0:339(339) ack 1 win 1452 
  	 <nop,nop,timestamp 1367990529 2076841557>
  
  0x0000:  4500 0187 a264 4000 3a06 770f c8af ffc2  E....d@.:.w.....
  0x0010:  c8fc 948e 0bf7 0050 6d60 2427 8b80 03ef  .......Pm`$'....
  0x0020:  8018 05ac 3f67 0000 0101 080a 5189 e101  ....?g......Q...
  0x0030:  7bca 1655 4745 5420 2f2e 2e2f 2e2e 2f65  {..UGET./../../e
  0x0040:  7463 2f20 4854 5450 2f31 2e30 0d0a 486f  tc/.HTTP/1.0..Ho
  0x0050:  7374 3a20 7777 772e 6761 6263 6d74 2e65  st:.www.xxxxxx.y
  0x0060:  622e 6d69 6c2e 6272 0d0a 4163 6365 7074  y.zzz.br..Accept
  0x0070:  3a20 7465 7874 2f68 746d 6c2c 2074 6578  :.text/html,.tex
  0x0080:  742f 706c 6169 6e2c 2061 7070 6c69 6361  t/plain,.applica
  0x0090:  7469 6f6e 2f78 2d74 726f 6666 2d6d 616e  tion/x-troff-man
  0x00a0:  2c20 6170 706c 6963 6174 696f 6e2f 782d  ,.application/x-
  0x00b0:  7461 722c 2061 7070 6c69 6361 7469 6f6e  tar,.application
  0x00c0:  2f78 2d67 7461 722c 2074 6578 742f 2a2c  /x-gtar,.text/*,
  0x00d0:  2061 7070 6c69 6361 7469 6f6e 2f78 2d64  .application/x-d
  0x00e0:  6562 6961 6e2d 7061 636b 6167 652c 2061  ebian-package,.a
  0x00f0:  7564 696f 2f62 6173 6963 2c20 2a2f 2a3b  udio/basic,.*/*;
  0x0100:  713d 302e 3031 0d0a 4163 6365 7074 2d45  q=0.01..Accept-E
  0x0110:  6e63 6f64 696e 673a 2067 7a69 702c 2063  ncoding:.gzip,.c
  0x0120:  6f6d 7072 6573 730d 0a41 6363 6570 742d  ompress..Accept-
  0x0130:  4c61 6e67 7561 6765 3a20 656e 0d0a 5573  Language:.en..Us
  0x0140:  6572 2d41 6765 6e74 3a20 4c79 6e78 2f32  er-Agent:.Lynx/2
  0x0150:  2e38 2e35 7265 6c2e 3120 6c69 6277 7777  .8.5rel.1.libwww
  0x0160:  2d46 4d2f 322e 3134 2053 534c 2d4d 4d2f  -FM/2.14.SSL-MM/
  0x0170:  312e 342e 3120 474e 5554 4c53 2f31 2e30  1.4.1.GNUTLS/1.0
  0x0180:  2e31 360d 0a0d 0a                        .16....

O log no formato tcpdump pode ser lido com o comando:

  # tcpdump -X -s 1500 -tttt -vvv -r \
          /var/log/hlbr/hlbr.dump host ip.de.pesquisa.desejado

Por estar no formato tcpdump, esse log também poderá ser analisado com o Ethereal.

O endereço do site do HLBR é http://hlbr.sourceforge.net.



 

 

Veja a relação completa dos artigos de João Eriberto Mota Filho

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script