Odoo y el top de vulnerabilidades de OWASP
Cómo Odoo cumple con los estándares de protección ante el top de vulnerabilidades de OWASP

El proyecto mundial y abierto de seguridad de aplicaciones (OWASP, por sus siglas en Inglés) es una fundación sin ánimos de lucro que se enfoca en mejorar la seguridad del software.

Tiene como objetivo educar a los desarrolladores, profesionales de seguridad y usuarios finales sobre las mejores prácticas para el desarrollo seguro de aplicaciones web, además de proporcionar herramientas y recursos para ayudar en este proceso.

OWASP ha desarrollado una amplia gama de recursos y herramientas de seguridad para aplicaciones web, incluyendo listas de verificación de seguridad, guías de mejores prácticas, pruebas de penetración, herramientas de prueba de vulnerabilidades y mucho más.

El top 10 de OWASP

El Top 10 de OWASP es una lista de las 10 vulnerabilidades de seguridad más críticas que se encuentran comúnmente en las aplicaciones web. Esta lista se actualiza cada cierto tiempo (por lo general cada año) para reflejar las nuevas amenazas y tendencias en la seguridad de las aplicaciones web.

Cuando una aplicación cumple con el Top 10 de OWASP, significa que ha sido diseñada, desarrollada y probada de manera que se han abordado las diez vulnerabilidades de seguridad más críticas que se encuentran comúnmente en las aplicaciones web.

Para cumplir con el Top 10 de OWASP, una aplicación debe ser diseñada y desarrollada con un enfoque en la seguridad desde el principio. Esto significa que se deben implementar medidas de seguridad en cada fase del ciclo de vida de desarrollo de software, incluyendo la planificación, el diseño, la implementación y las pruebas.

Odoo y el top de OWASP

Aquí mostramos cómo Odoo se encuentra en el cumplimiento con protección ante las principales vulnerabilidades de seguridad para las aplicaciones web.

1. Fallas de inyección (Injection Flaws): las fallas de inyección, particularmente la inyección de SQL, son comunes en las aplicaciones web. La inyección ocurre cuando los datos proporcionados por el usuario se envían a un intérprete como parte de un comando o consulta. Los datos hostiles del atacante engañan al intérprete para que ejecute comandos no deseados o cambie los datos.

Odoo se basa en un marco de mapeo relacional de objetos (ORM) que abstrae la creación de consultas y evita las inyecciones de SQL de forma predeterminada. Los desarrolladores normalmente no elaboran consultas SQL manualmente, son generadas por el ORM y los parámetros siempre se escapan correctamente.

2. Cross Site Scripting (XSS): las fallas de XSS ocurren cuando una aplicación toma datos proporcionados por el usuario y los envía a un navegador web sin primero validar o codificar ese contenido. XSS permite a los atacantes ejecutar secuencias de comandos en el navegador de la víctima que pueden secuestrar sesiones de usuario, desfigurar sitios web, posiblemente introducir gusanos, etc.

El marco de Odoo escapa de todas las expresiones representadas en vistas y páginas de forma predeterminada, evitando XSS. Los desarrolladores tienen que marcar especialmente las expresiones como "seguras" para incluirlas sin formato en las páginas representadas.

3. Falsificación de solicitud en sitios cruzados (Cross Site Request Forgery, CSRF): un ataque CSRF obliga al navegador de una víctima que ha iniciado sesión a enviar una solicitud HTTP falsificada, incluida la cookie de sesión de la víctima y cualquier otra información de autenticación incluida automáticamente, a una aplicación web vulnerable. Esto permite al atacante obligar al navegador de la víctima a generar solicitudes que la aplicación vulnerable cree que son solicitudes legítimas de la víctima.

El motor del sitio web de Odoo incluye un mecanismo de protección CSRF incorporado. Evita que cualquier controlador HTTP reciba una solicitud POST sin el token de seguridad correspondiente. Esta es la técnica recomendada para la prevención de CSRF. Este token de seguridad solo se conoce y está presente cuando el usuario accedió realmente al formulario del sitio web correspondiente, y un atacante no puede falsificar una solicitud sin él.

4. Ejecución de archivos maliciosos (Malicious File Execution): el código vulnerable a la inclusión remota de archivos (RFI) permite a los atacantes incluir código y datos hostiles, lo que resulta en ataques devastadores, y el comprometen totalmente el servidor.

Odoo no expone funciones para realizar la inclusión remota de archivos. Sin embargo, permite a los usuarios privilegiados personalizar funciones agregando expresiones personalizadas que serán evaluadas por el sistema. Estas expresiones siempre son evaluadas por un entorno de espacio aislado y desinfectado que solo permite el acceso a las funciones permitidas.

5. Referencia de objeto directo inseguro (Insecure Direct Object Reference): se produce una referencia de objeto directo cuando un desarrollador expone una referencia a un objeto de implementación interna, como un archivo, directorio, registro de base de datos o clave, como una URL o un parámetro de formulario. Los atacantes pueden manipular esas referencias para acceder a otros objetos sin autorización.

El control de acceso de Odoo no está implementado en el nivel de la interfaz de usuario, por lo que no hay riesgo de exponer referencias a objetos internos en las URL. Los atacantes no pueden eludir la capa de control de acceso manipulando esas referencias, porque cada solicitud aún tiene que pasar por la capa de validación de acceso a datos.

6. Almacenamiento criptográfico inseguro (Insecure Cryptographic Storage): las aplicaciones web rara vez utilizan funciones criptográficas correctamente para proteger los datos y las credenciales. Los atacantes utilizan datos poco protegidos para llevar a cabo el robo de identidad y otros delitos, como el fraude con tarjetas de crédito.

Odoo utiliza hash seguro estándar de la industria para las contraseñas de los usuarios (por defecto PKFDB2 + SHA-512, con extensión de clave) para proteger las contraseñas almacenadas.También es posible utilizar sistemas de autenticación externos como OAuth 2.0 o LDAP, para evitar almacenar las contraseñas de los usuarios localmente.

7. Comunicaciones inseguras (Insecure Communications): las aplicaciones con frecuencia no logran cifrar el tráfico de red cuando es necesario para proteger las comunicaciones confidenciales.

Odoo Cloud se ejecuta en HTTPS de forma predeterminada. Para instalaciones locales, se recomienda ejecutar Odoo detrás de un servidor web que implemente la solicitud de cifrado y proxy a Odoo, por ejemplo, Apache, Lighttpd o nginx. La guía de implementación de Odoo incluye una lista de verificación de seguridad para implementaciones públicas más seguras.

8. Falla al restringir el acceso a la URL (Failure to Restrict URL Access): con frecuencia, una aplicación solo protege la funcionalidad confidencial al evitar la visualización de enlaces o URL a usuarios no autorizados. Los atacantes pueden usar esta debilidad para acceder y realizar operaciones no autorizadas accediendo directamente a esas URL.

El control de acceso de Odoo no se implementa en el nivel de la interfaz de usuario y la seguridad no se basa en ocultar URL especiales. Los atacantes no pueden eludir la capa de control de acceso reutilizando o manipulando cualquier URL, porque cada solicitud aún tiene que pasar por la capa de validación de acceso a datos. En casos excepcionales en los que una URL proporciona acceso no autenticado a datos confidenciales, como URL especiales que los clientes usan para confirmar un pedido, estas URL se firman digitalmente con tokens únicos y solo se envían por correo electrónico al destinatario previsto.

Compartir

Siempre primero.

Sé el primero en enterarse de las últimas novedades, productos y tendencias en AteneoLab.

Nuevo sistema para gestión de Subasta Inversa
Licitaciones de compra avanzadas en Odoo