OWASP
No Mercado Pago protegemos os pagamentos dos nossos clientes e usuĂĄrios para que sejam processados ââcom segurança em todas as plataformas web e mobile. Para isso, implementamos controles de segurança que mantĂȘm a confidencialidade, integridade e disponibilidade das informaçÔes que processamos por meio de integraçÔes.
O Open Web Application Security Project (OWASP) é uma comunidade aberta que fornece ferramentas e padrÔes para desenvolver e manter aplicativos web seguros. Visa promover pesquisa e desenvolvimento de segurança de aplicativos.
OWASP Top 10 é uma classificação das vulnerabilidades mais comuns em conjunto com sua mitigação para proteger aplicativos contra esses tipos de ataques. Para mais informaçÔes, acesse o site oficial Owasp Top 10.
Devido Ă integração que vocĂȘ estĂĄ fazendo com o Mercado Pago, para nos protegermos das vulnerabilidades mais comuns, recomendamos que siga as seguintes dicas sobre: Input Validation e Prevenção de Falsificação de SolicitaçÔes do Lado do Servidor. Veja See OWASP Cheat Sheet Series para mais informaçÔes.
Input Validation
A input validation é realizada para garantir que todos os dados estejam corretos (sintåtica e semanticamente) antes de entrar no workflow do nosso sistema, nos permitindo detectar entradas não autorizadas antes de serem processadas pela aplicação.
Desta forma, evitamos que dados incorretos persistam em nossos bancos de dados e, como consequĂȘncia, causem um mau funcionamento em nosso sistema. Todos os dados de fontes nĂŁo confiĂĄveis ââdevem estar sujeitos a esta validação. Para sua implementação, qualquer tĂ©cnica de programação que permita a aplicação efetiva da correção dos dados de entrada Ă© utilizada:
- Validadores de tipos de dados disponĂveis nativamente em frameworks de aplicaçÔes web.
- Validação em relação ao esquema JSON e esquema XML para entrada nesses formatos.
- Conversão de tipo de dados com tratamento estrito de exceção.
- Verificação de intervalo de valor mĂnimo e mĂĄximo para parĂąmetros numĂ©ricos e datas, verificação de comprimento mĂnimo e mĂĄximo para cadeias de caracteres.
à importante garantir que qualquer validação de entrada realizada no cliente também deva ser realizada no servidor, uma vez que pode ser contornada no lado do cliente por um invasor.
Server-Side Request Forgery (SSRF)
Server-Side Request Forgery Ă© um vetor de ataque que abusa de um aplicativo para interagir com a rede interna e/ou externa, ou com a prĂłpria mĂĄquina do aplicativo.
Dependendo da funcionalidade e dos requisitos do aplicativo, hĂĄ dois casos de uso em que o SSRF pode ocorrer:
A aplicação pode enviar uma solicitação apenas para aplicativos identificados e confiĂĄveis Este caso ocorre quando um aplicativo precisa fazer uma solicitação a outro, que geralmente estĂĄ localizado em outra rede, para realizar uma tarefa especĂfica. Nesse caso, Ă© possĂvel usar uma abordagem de lista de permissĂ”es de aplicativos. Podemos nos proteger por meio das camadas de aplicativo e rede.
- Camada de aplicativo: Por meio da validação de entrada, podemos aplicar a abordagem da lista de aplicativos permitidos. O formato das informaçÔes esperadas do usuårio jå é conhecido. Nesse contexto, as validaçÔes também podem ser adicionadas para garantir que a string de entrada respeite o formato esperado.
- Camada de rede: o objetivo Ă© evitar que chamadas arbitrĂĄrias de aplicativos sejam feitas. O firewall pode ser usado para limitar o acesso ao aplicativo e, por sua vez, limitar o impacto de um aplicativo vulnerĂĄvel ao SSRF.
A aplicação pode enviar solicitaçÔes para qualquer endereço IP externo ou nome de domĂnio.
Este caso ocorre quando um usuĂĄrio pode controlar uma URL para um recurso externo e o aplicativo faz uma solicitação para essa URL. Quando falamos de recurso externo, queremos dizer qualquer IP que nĂŁo pertença Ă rede interna e deva ser alcançado atravĂ©s da Internet de forma pĂșblica.
Nesse caso, nĂŁo Ă© possĂvel usar listas de aplicativos permitidos, pois eles sĂŁo inicialmente desconhecidos e mudam dinamicamente.