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

Rodrigo Montoro(Sp0oKeR) spooker at gmail.com
Thu Nov 19 11:47:22 EST 2009


Eu fiquei curioso do Imperva, achei mais isso  que acredito que
mataria o problema

HTTP Protocol Validation

    HTTP protocol validation prevents protocol exploits including
buffer overflow, malicious encoding, HTTP
    smuggling, and illegal server operations. Imperva provides you
with a default policy that enables strict
    adherence to RFC standards, while allowing minor variations for
specific applications.
    Before the validation, SecureSphere normalizes the URL to provide
a common basis for validation. This
    includes decoding, conversion to UTF8, conversion to lower case
(if service is configured as case insensitive),
    directory normalization and so on.

    The HTTP protocol validation policy enables to protect your system
against the evasion techniques, such as
    encoding attempts. It is very important to stop the evasion
technique on the service level. If the malicious
    traffic is not blocked on the service level, then the application
level SecureSphere policies are not able to
    provide protection, as the protection is evaded.


Logicamente tem que ver como esse WAF no qual ninguem sabe o nome
estava configurado. Muitas vezes se pegar uma aplicação codada de
forma fora de um padrão gera muito alerta e voce pode simplesmente
cansado de tanto alerta da um disable =/ . Voces sabem que isso
acontece com mta frequencia.

Quanto a problemas de aplicação o pessoal aproveita muito o legado
antigo e fica aquela colcha de retalhos.  Infelizmente WAF dentre
outras dezenas de produtos de segurança não fazem milagres . =D!

Abs!


2009/11/19 Wagner Elias <wagner.elias at gmail.com>:
> Oi Nash,
>
> eu entendi o que você quis dizer, realmente no caso onde a aplicação
> retira o acento haverá o bypass.
>
> Mas neste caso não é um problema do WAF estar tratando charset e/ou
> canonicalization de forma adequada, pois o problema é app que está
> causando quando retira o acento.
>
> O WAF não consegue resolver problemas de arquitetura, definições
> absurdas como esta que são feitas no desenvolvimento, errado é quem
> acha que tem uma app completamente torta e acha que o WAF vai
> resolver.
>
> Abs.
>
> 2009/11/19 Nash Leon <nashleon at yahoo.com.br>:
>> Como vai, Wagner?
>>
>> Vou me aprofundar um pouco em expressão regular pra tentar
>> deixar mais claro.
>>
>> Quando a gente define uma lista [A-Z] numa expressão regular,
>> essa lista vai cobrir aquilo que está no intervalo "ASCII" de A(0x41)
>> a Z(0x5A).. logo, acentos não se encontram nesse intervalo, ok?
>>
>> Se vocês verem o tela que coloquei no .pdf de caso de uso, verá
>> que estou num sistema com UTF-8 e charset definido para pt_BR,
>> por isso que eu consigo enviar na shell letras com acentos(É). Mas
>> a regex não conseguiu ser bem sucedida porque usou um intervalo.
>>
>> Como o Fernando Cima citou, se a normatização/canonização do
>> WAF não levar em conta o idioma das aplicações que ele está
>> protegendo, ele poderá conter expressões regulares como a
>> lista[A-Z] mesmo rodando em UTF-8 passíveis de bypass quando
>> um atacante enviar letras com acentos. Por que por padrão
>> as bibliotecas de regex(como pcre, por exemplo, constroem a
>> lista apenas usando o intervalo ASCII).
>>
>> De "http://gambasdoc.org/help/doc/pcre":
>>
>> "In PCRE, \d, \D, \s, \S, \w, and \W recognize only ASCII characters."
>>
>>
>> Espero ter deixado mais claro o problema.
>>
>> Podemos dizer que a aplicação não deveria mudar as letras com
>> acento para sem acento, mas vai dizer isso pra uma loja gigante
>> como as que citei no exemplo?
>>
>> Então, é imperativo checar se o WAF está mesmo protegendo
>> a aplicação por validar as regras incluindo letras acentuadas
>> em suas regex.
>>
>> O conceito de posix é interessante pois se a expressão
>> regular tiver algo como [[:alpha:]], ela vai procurar por
>> todo alfabeto do idioma da máquina, no nosso caso, procurará
>> por Á(ND), É(XECUTE), Í(NNER), Ô(R), Ü(NION)... :)
>>
>>
>> Um cordial abraço a todos,
>>
>> Nash Leon.
>>
>> --- Em qui, 19/11/09, Wagner Elias <wagner.elias at gmail.com> escreveu:
>>
>>> De: Wagner Elias <wagner.elias at gmail.com>
>>> Assunto: Re: [Owasp-brazilian] Firewalls de Aplicação WEB, Idiomas e Expressões Regulares - Condições de Bypass
>>> Para: "Rodrigo Montoro(Sp0oKeR)" <spooker at gmail.com>
>>> Cc: "Nash Leon" <nashleon at yahoo.com.br>, owasp-brazilian at lists.owasp.org
>>> Data: Quinta-feira, 19 de Novembro de 2009, 14:07
>>> Nash,
>>>
>>> como não é um problema de charset?
>>>
>>> Ou o WAF não valida acentos ou a aplicação. No caso do
>>> exemplo que
>>> você disse que a app tira o acento (problema de charset) o
>>> problema é
>>> da app e não do WAF.
>>>
>>> Abs.
>>>
>>
>>
>>
>>      ____________________________________________________________________________________
>> Veja quais são os assuntos do momento no Yahoo! +Buscados
>> http://br.maisbuscados.yahoo.com
>>
>
>
>
> --
> Wagner Elias - OWASP Leader Project Brazil
> ------------------------------------------------------------------
> Twitter: www.twitter.com/welias
> Blog: http://wagnerelias.com
> Profile: http://www.linkedin.com/in/wagnerelias
> _______________________________________________
> Owasp-brazilian mailing list
> Owasp-brazilian at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/owasp-brazilian
>



-- 
Rodrigo Montoro (Sp0oKeR)
http://www.spooker.com.br
http://www.twitter.com/spookerlabs
http://www.linkedin.com/in/spooker


More information about the Owasp-brazilian mailing list