OWASP
En Mercado Pago protegemos los pagos de nuestros clientes y usuarios para que se procesen de forma segura en todas las plataformas web y mobile. Para ello, implementamos controles de seguridad que mantienen la confidencialidad, la integridad y la disponibilidad de la información que procesamos a través de las integraciones.
Open Web Application Security Project (OWASP) es una comunidad abierta y segura que brinda herramientas y estĂĄndares para el desarrollo y mantenimiento de aplicaciones web. Busca fomentar la investigaciĂłn y desarrollo de seguridad en aplicaciones.
OWASP Top 10 es una clasificaciĂłn de las vulnerabilidades mĂĄs usuales en conjunto con su mitigaciĂłn para proteger las aplicaciones de este tipo de ataques. Te recomendamos que visites el sitio oficial de OWASP Top 10 para mĂĄs informaciĂłn.
Debido a la integraciĂłn que estas realizando con Mercado Pago, para protegernos ante las vulnerabilidades mĂĄs comunes, te sugerimos seguir los siguientes consejos acerca de Input Validation y Server-Side Request Forgery Prevention. Mira OWASP Cheat Sheet Series para mĂĄs informaciĂłn.
Input validation
El input validation se realiza para garantizar que todos los datos sean correctos (sintåctica y semånticamente) antes de ingresar al flujo de trabajo de nuestro sistema, permitiéndonos detectar entradas no autorizadas antes de que sean procesadas por la aplicación.
De esta manera, evitamos que datos incorrectos persistan en nuestras bases de datos y como consecuencia, provoquen un mal funcionamiento en nuestro sistema. Todos los datos de fuentes no confiables deben estar sujetos a esta validaciĂłn.
Para su implementación, se utiliza cualquier técnica de programación que permita la aplicación efectiva de la corrección de datos de entrada:
- Validadores de tipos de datos disponibles de forma nativa en marcos de aplicaciones web.
- ValidaciĂłn contra el esquema JSON y el esquema XML para la entrada en estos formatos.
- ConversiĂłn de tipos de datos con un estricto manejo de excepciones.
- VerificaciĂłn de rango de valores mĂnimo y mĂĄximo para parĂĄmetros numĂ©ricos y fechas, verificaciĂłn de longitud mĂnima y mĂĄxima para cadenas de caracteres.
Es importante asegurar que cualquier validaciĂłn de entrada realizada en el cliente tambiĂ©n sea realizada en el servidor, ya que las mismas podrĂan ser omitidas del lado del cliente por un atacante.
Server-Side Request Forgery (SSRF)
Server-Side Request Forgery (SSRF) es un vector de ataque que abusa de una aplicaciĂłn para interactuar con la red interna y/o externa, o con la propia mĂĄquina de nuestra aplicaciĂłn. Dependiendo de la funcionalidad y los requisitos de la aplicaciĂłn, hay dos casos de uso en los que puede ocurrir SSRF:
La aplicaciĂłn puede enviar una solicitud solo a las aplicaciones identificadas y de confianza
Este caso ocurre cuando una aplicaciĂłn necesita realizar una solicitud a otra, que suele estar ubicada en otra red, para realizar una tarea especĂfica. En este caso es posible utilizar un enfoque de lista de aplicaciones permitidas. Podemos protegernos a travĂ©s de las capas de AplicaciĂłn y de Red.
Capa de Aplicación: a través de la validación de entrada, podemos aplicar el enfoque de lista de aplicaciones permitidas. El formato de la información que se espera del usuario ya es conocido. En este contexto, también se pueden agregar validaciones para garantizar que la cadena de entrada respete el formato esperado.
Capa de Red: el objetivo es evitar que se realicen llamadas a aplicaciones arbitrarias. Se puede utilizar un firewall para limitar el acceso de la aplicaciĂłn y, a su vez, limitar el impacto de una aplicaciĂłn vulnerable a SSRF.
La aplicaciĂłn puede enviar solicitudes a cualquier direcciĂłn IP o nombre de dominio externo Este caso ocurre cuando un usuario puede controlar una URL a un recurso externo y la aplicaciĂłn hace una peticiĂłn a esta URL. Un recurso externo es cualquier IP que no pertenezca a la red interna y que debe ser alcanzada a travĂ©s de Internet de forma pĂșblica.
En este caso, no es posible utilizar listas de aplicaciones permitidas ya que en principio se desconocen y cambian de forma dinĂĄmica.