Tuesday, September 20, 2005

WebServices Security

Estou comecando um projetinho utilizando webservice com intuito de prover interfaces de acessos a algumas bases de dados corporativos. Lendo uns docs da MS, vi algo que me deixou assustado:

"One of the first questions newcomers to SOAP ask is how does SOAP deal with security. Early in its development, SOAP was seen as an HTTP-based protocol so the assumption was made that HTTP security would be adequate for SOAP. After all, there are thousands of Web applications running today using HTTP security so surely this is adequate for SOAP. For this reason, the current SOAP standard assumes security is a transport issue and is silent on security issues. "

O Engraçado é que o protocolo SOAP, nada mais é do que um xml arranjado. Ora, não é dificil de pensar que os ataques em cima de aplicações web tb funcionem em cima de web services e lendo o texto acima fica a impressão que aplicações que utilizam SOAP, não precisam se preocupar com session-id, cookies, filtro na entrada de dados, replay attacks e etc. Essas colocações soam de forma perigosa, pelo jeito vai ter muito nego falando "Estou seguro, uso SSL" por muito tempo.

4 Comments:

Anonymous Anonymous said...

Já viu o WSE?

http://msdn.microsoft.com/webservices/webservices/building/wse/default.aspx

11:47 AM  
Blogger Augusto Barros said...

Eu acho que está correto. Nas camadas mais baixas o SSL atende. Quanto às vulnerabilidades de aplicação, não acho que o SOAP seja lugar para tentar evitá-las, já que é um padrão para transporte de mensagens. Essas preocupações devem ser tratadas na aplicação e nos padrões que ela segue (J2EE e .Net, por exemplo).

3:14 PM  
Blogger Jose Silva said...

Na verdade, o SOAP não é um protocolo "HTTP driven". Ele passou a ser utilizado em cima de HTTP, mas não é requisito, portanto nao podemos confiar na segurança HTTP-Based

Outra coisa, sem os filtros de entrada por exemplo, é possivel se passar chars maliciosos via CDATA, o que mata a maioria de SOAP parsers feitos em cima de regexp.

Essa colocação de que segurança é assunto da camada de transporte, nos permite a aceitar o fato de se retirar a segurança do 802.1x e usarmos somente ipsec afinal, segurança é assunto a ser tratado na camada de transporte (A ieee pensa assim).

12:33 PM  
Blogger Augusto Barros said...

Se você tiver uma rede toda preparada para IPSEC, pode até fazer isso (retirar o 802.1X). Porém aí entra o caso de evitar "sujeira" na rede, o 802.1X vai evitar problema por conta de tráfego, etc.

3:00 PM  

Post a Comment

<< Home