[Owasp-brazilian] Firewalls de Aplicação WEB, Idiomas e Expressões Regulares - Condições de Bypass

Nash Leon nashleon at yahoo.com.br
Fri Nov 20 08:06:06 EST 2009


Olá, Spooker!

Voce pode criar uma regra específica para acentos.. mas o ponto
em questão é que você não pode usar o conceito de 'listas' em
expressão regular ou mesmo posix(quando o WAF usa pcre, por exemplo).

E quando eu falo Bypass, é que por padrão costuma-se usar isso
(por exemplo, lista [A-Za-z0-9]). Você usando outra coisa na regex
pra detectar cai naquilo que eu falei de 'saber o que está fazendo'
e não estará usando a lista pensando que nela está coberto todo
o alfabeto brasileiro inclusive com acentos.

Se voce analisar todas as regras padrões do modsecurity que eh um WAF
público, verá que elas detectam muito bem SQL Injection, por exemplo,
mas não estão preparadas para o cenário que eu citei, logo, no meu
modo de ver, o conjunto de regras 'default' do modsecurity 
permitem um bypass(Posso estar sendo presuncoso, mas acho que isso se aplica a todos os outros WAFs estrangeiros que trabalham em modo negativo tambem). 


E como analista de teste de intrusão, eu "imagino" que esse tipo de bypass é muito útil, já como analista de segurança, eu acho que não devemos negligenciar esse problema.

Então, o foco, o X do problema reportado não é todas as regex,
mas a utilização de listas, posix e bibliotecas sem suporte
ao nosso idioma. Que sao coisas 'transparentes' para os estrangeiros
e quem nao manja de regex. Entao, o analista criar a lista [A-Z]
e pensa que ali dentro estao todas as letras, inclusive as com
acentos e ai ele comete um erro.

Quanto a imagem que voce colou, não vi nela a possibilidade
de colocar letras acentuadas(ÀÉÍÔÜ). Eu acho que esse WAF pode
estar vulnerável, hein!:).. Note que se o desenvolver nao for
flexivel ao ponto de disponibilizar a possibilidade de criar
as regex na mao, fica dificil se proteger no cenario citado.


Um cordial abraço,

Nash Leon.

--- Em qui, 19/11/09, Rodrigo Montoro(Sp0oKeR) <spooker at gmail.com> escreveu:

> De: Rodrigo Montoro(Sp0oKeR) <spooker at gmail.com>
> Assunto: Re: [Owasp-brazilian] Firewalls de Aplicação WEB, Idiomas e Expressões Regulares - Condições de Bypass
> Para: "Nash Leon" <nashleon at yahoo.com.br>
> Cc: owasp-brazilian at lists.owasp.org
> Data: Quinta-feira, 19 de Novembro de 2009, 19:54
> 2009/11/19 Nash Leon <nashleon at yahoo.com.br>:
> > Como vai, Rodrigo?
> 
> Eu to beleza, thread colocando a cuca pra pensar =)
> 
> E ai ?
> 
> >
> > Sim, PCRE pega o assento, mas não na lista [A-Z] e
> nem na posix
> > [[:alpha:]]. Que é o que o artigo tenta mostrar.
> >
> > Mas se você fizer uma simples regex
> "^S([A-Z]|É)LECT$" ela(pcre) já
> > pegaria o SÉLECT, sem problemas.. isso pode ser
> testado no PoC
> > que segue o artigo.
> >
> 
> Se voce usar o \W+ ja cobre geral
> 
>   re> /\W+/
> data> Ẽ
>  0: \xe1\xba\xbc
> data> Ê
>  0: \xc3\x8a
> data> É
>  0: \xc3\x89
> data> é
>  0: \xc3\xa9
> data> È
>  0: \xc3\x88
> data> E
> No match
> data> e
> No match
> data>
> 
> 
> > Mas o ponto chave é que o analista terá que criar as
> expressões
> > na mão para incluir É,Ë,Ê e etc.. para isso ele
> precisa saber
> > que a aplicação faz essa mudança de letras com
> acentos
> > para sem acentos.
> >
> 
> Acho que um bom regex mataria o problema . Bem sincero vou
> usar uma
> frase do Martin Roesch do Snort "Se o atacante sabe mais da
> sua rede
> que seu IDS ele vai bypassa-lo" ou seja, se a pessoa que
> administra a
> maquina não conhece suas aplicações, nao sabe como tudo
> funciona ,
> como vai colocar a maquina para trabalhar corretamente ?
> 
> 
> > Chamo isso de "abordagem manual" no email que enviei.
> > Agora, quantos analistas estrangeiros sabem desse
> problema?
> > Qual WAF estrangeiro vem por padrão com essas letras
> acentuadas
> > nas regras de regex?
> >
> > - Esse é o X da questão.E na prática, se voce for
> ver nenhum
> > WAF vem protegido contra isso... :)
> >
> 
> Mas ai que está a questão, bypass no meu ponto de vista
> é algo que NÃO
> tem como ser detectado e isso citado tem como ser detectado
> , tanto
> com um regex como ainda estou verificando com o profile da
> imperva,
> sei  que no profile da pra separar caracteres
> especiais como essa
> imagem que tenho aqui
> http://img97.imageshack.us/img97/9922/impervaprofile.png
> e habilitar
> somente o que pode e dai usando conceito de whitelist
> 
> No caso isso pra mim é desconhecimento da sua
> rede/aplicação pois não
> da pra usar tudo de fabrica =) .
> 
> Como citei quando tiver uma caixa quero ver a
> normalização do Imperva
> na part do Charset que comentei nos primeiros emails mas
> infelizmente
> não to com caixas demos aqui .
> 
> > Espero ter ficado claro agora.
> >
> 
> Bem sincero acho legal isso como um melhores praticas e pra
> alertas
> pessoal de websec na hora de configurar seu WAF mas como
> citei pra mim
> isso não é BYPASS e sim erro de configuração. Não sei
> a opiniao do
> restante da lista =)
> 
> >
> > Um abraço,
> >
> 
> Abs!!!
> 
> Sp0oKeR
> > Nash Leon.




      ____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


More information about the Owasp-brazilian mailing list