APIs Technology Web

OWASP

¿Qué es OWASP?

Sin embargo, la faceta más conocida es el documento denominado The OWASP Top 10 Web Application Security Risks. 

Este documento es una recopilación de buenas prácticas aplicables a la seguridad de aplicaciones, especialmente aplicaciones web, que , en palabras de la propia fundación, representa un amplio consenso acerca de los riesgos más críticos en la seguridad de aplicaciones web. 

Las recomendaciones son el tema principal que vamos a tratar.

The OWASP Top 10 Web Application Security Risks

Se usa la notación de la propia fundación, además de enlazarse a la documentación oficial de la misma.

A1:2017-Injection. (Inyección de código)

Estos datos maliciosos pueden hacer que el intérprete ejecute comandos no consultas no deseadas, e incluso que pueda acceder a datos sin autorización. 

Estos ataques pueden mitigarse filtrando las peticiones mediante expresiones regulares que capturen patrones concretos en todos los elementos que puedan introducir código en el servidor (cookies, cabeceras, parámetros, cuerpos de peticiones, etc).

También es recomendable el uso de APIs seguras que no utilicen el intérprete al completo, o bien provean una interfaz parametrizada que permita separar los datos de las consultas.

A2:2017-Broken Authentication. (Autenticación rota)

Algunos de los API managers más utilizados del mercado proveen funcionalidad que evita este tipo de ataques mediante servidores dedicados de autenticación, seguridad OAuth, JWT y otros mecanismos. 

Sin embargo también deben cuidarse otros aspectos para evitar ataques relacionados con el robo de credenciales:

  • Implementar autenticación multi factor siempre que sea posible

  • No usar credenciales por defecto en despliegues de productos comerciales.

  • Establecer una política de fortaleza de contraseñas y realizar chequeos periódicos de la fortaleza de contraseñas cambiadas recientemente

  • Limitar o retardar incrementalmente el número de reintentos de autenticación. Registrar todos los accesos y establecer sistemas de alerta para detectar ataques de fuerza bruta, robo de credenciales, etc.

A3:2017-Sensitive Data Exposure. (Exposición de datos sensibles)

CloudAPPi siempre recomienda el tratamiento adecuado de dichos datos, especialmente en tránsito que es cuando más expuestos están. Dicho tratamiento consiste en usar siempre HTTPS + SSL y enviar los datos sensibles en el cuerpo de una petición POST, aunque se deseen recuperar datos. Este es el tratamiento mínimo. Adicionalmente pueden cifrarse los cuerpos de las peticiones mediante algoritmos de cifrado actualizados y fuertes. También debe cuidarse el cacheo de datos. No se deben cachear peticiones cuya respuesta pueda contener datos sensibles.
Debe prestarse especial atención a la encriptación de datos almacenados, especialmente cuando se trata de credenciales de usuarios. No se deben almacenar datos más tiempo del estrictamente necesario. Una vez usados deben desecharse para evitar que puedan verse comprometidos. Si no es posible desecharlos deben tokenizarse, e incluso truncarse.

A4:2017-XML External Entities (XXE). (Entidades XML externas)

La mejor forma de mitigar estos ataques es determinar de forma precisa el contenido que admite la aplicación en el cuerpo de las peticiones, de forma que si no se usa XML no se permita enviar dicho contenido. Si, por el contrario, se permite el envío de XML es mejor deshabilitar los DTDs y evaluar el contenido de las peticiones siempre.

A5:2017-Broken Access Control. (Control de acceso roto)

A6:2017-Security Misconfiguration. (Configuración de seguridad errónea)

Algunos de los API managers más utilizados del mercado proveen funcionalidad que evita este tipo de ataques mediante servidores dedicados de autenticación, seguridad OAuth, JWT y otros mecanismos. 

Sin embargo también deben cuidarse otros aspectos para evitar ataques relacionados con el robo de credenciales:

  • Implementar autenticación multi factor siempre que sea posible

  • No usar credenciales por defecto en despliegues de productos comerciales.

  • Establecer una política de fortaleza de contraseñas y realizar chequeos periódicos de la fortaleza de contraseñas cambiadas recientemente

  • Limitar o retardar incrementalmente el número de reintentos de autenticación. Registrar todos los accesos y establecer sistemas de alerta para detectar ataques de fuerza bruta, robo de credenciales, etc.

A7:2017-Cross-Site Scripting XSS. (Ataques de scripting entre dominios)

A8:2017-Insecure Deserialization (Deserialización insegura)

A9:2017-Using Components with Known Vulnerabilities.

A10:2017-Insufficient Logging & Monitoring.

Blog realizado por David Marín

// ¿Quieres saber más sobre API security tu organización?

¡Habla con nuestros expertos!

Author

Marco Sanz

Leave a comment

Tu dirección de correo electrónico no será publicada.