— Odoo (la platforma) —

Copias de Seguridad / Recuperación de Desastres

  • Mantenemos 14 copias de seguridad completas de cada base de datos de Odoo por hasta 3 meses: 1/día por 7 días, 1/semana por 4 semanas, 1/mes por 3 meses.
  • Las copias de seguridad son replicadas en al menos 3 centros de datos distintos, en al menos dos continentes distintos.
  • Las localidades exactas de nuestros centros de datos están especificados en las Políticas de Privacidad de Odoo.
  • También puede descargar copias de seguridad manualmente de sus datos vivos en cualquier momento utilizando el panel de control.
  • Puede contactar a nuestra mesa de ayuda para restaurar cualquiera de esas copias de seguridad en su base de datos viva.
  • Conmutación por error de hardware: para los servicios alojados en hierro, donde los fallos de hardware son posibles, se utiliza replicación local en caliente, con monitoreo y un procedimiento manual de conmutación por error que toma menos de 5 minutos.
  • Recuperación de desastres: en caso de desastre total, con un centro de datos totalmente fuera de servicio por un período extendido, impidiendo la conmutación por error a local (nunca ha sucedido, este es el plan sobre el peor caso), tenemos los siguientes objetivos:
    • RPO (Punto Objetivo de Recuperación) = 24h. Esto quiere decir que puede perder un máximo de 24 horas de trabajo si los datos no pueden ser recuperados y necesitamos restaurar la última copia de seguridad.
    • RTO (Tiempo Objetivo de Recuperación) = 24h. Este es el tiempo para restaurar el servicio en un centro de datos distinto si ocurre un desastre y el centro de datos se encuentra completamente fuera de servicio.
    • Cómo esto se logra: Odoo monitorea activamente las copias de seguridad diarias, y son replicadas en múltiples localidades en diferentes continentes. Han automatizado el aprovisionamiento para desplegar sus servicios en una nueva localidad de hospedaje. Restaurar los datos basados en una copia de seguridad del día anterior puede ser realizado en unas cuantas horas (para los clusters más grandes). De manera rutinaria utilizan las copias de seguridad diarias y los scripts de aprovisionamiento para las operaciones diarias, así ambas partes del procedimiento de recuperación de desastres son probadas todo el tiempo.

Seguridad Base de Datos

  • Los datos de clientes son alojados en una base de datos dedicada - no se comparten datos entre clientes.
  • Las reglas de control de acceso a los datos implementan un aislamiento completo entre las bases de datos de clientes que corren en un mismo cluster, ningún acceso es posible desde una base de datos a otra.

Seguridad Contraseñas

  • Las contraseñas de clientes son protegidas con encriptación estándar de la industria PBKDF2+SHA512.
  • El personal de Odoo ni de iterativo poseen acceso a las contraseñas, y no las podemos conseguir bajo ningún mecanismo, la única opción en caso de perderla es cambiarla.
  • Las credenciales de acceso siempre son transmitidas de manera segura sobre HTTPS.
  • Desde Odoo 12.0, los administradores de las bases de datos de clientes (iterativo) tienen la posibilidad de configurar la cantidad límite y duración antes del siguiente intento para intentos de acceso repetidos.
  • Políticas de contraseñas: desde Odoo 12 los administradores de las bases de datos (iterativo) poseen una configuración para enforzar la longitud mínima de la contraseña de los usuarios. Otras políticas de contraseñas como requerir caracteres especiales no son soportados por defecto porque han demostrado ser contra-productivos. - Ver ej. [Shay et al. 2016]).

Acceso de Personal

  • El personal de soporte de Odoo e iterativo pueden entrar a su instancia para acceder a configuraciones y registros para fines de entregar soporte. Para esto utilizan sus propias credenciales, no la contraseña de los clientes (la cual no tienen forma de saber).
  • Este acceso especial del personal mejora la eficiencia y la seguridad: pueden reproducir más rápido el problema que está viendo, nunca tiene que compartir sus contraseñas, y podemos auditar y controlar las acciones de nuestro personal.
  • Nuestro personal de mes de ayuda lucha para respetar su privacidad lo más posible, y solo accede a archivos y configuraciones que sean necesarias para diagnosticar y resolver su inconveniente.

Seguridad de Sistema

  • Todos los servidores de Odoo Cloud están corriendo sobre distribuciones de Linux reforzadas con parches de seguridad al día.
  • Las instalaciones son ad-hoc y mínimas para limitar el número de servicios que pudiesen contener vulnerabilidades (no PHP/MySQL stack por ejemplo).
  • Solo algunos de los ingenieros de alto nivel de Odoo tienen permisos para gestionar los servidores de forma remota - el acceso sólo es posible utilizando llaves de seguridad encriptadas SSH, desde un computador con encriptación completa de disco.
  • iterativo no tiene acceso a los servidores de Odoo, solo a la gestión de las bases de datos.

Seguridad Física

Los servidores de Odoo Cloud están alojados en centros de datos de confianza en distintas regiones del mundo (ej. OVH, Google Cloud), y deben exceder todos los criterios de seguridad de Odoo:

  • Perímetro restringido, accedido físicamente solo por personal autorizado del centro de datos.
  • Control de acceso físico con carnets de seguridad o seguridad biométrica.
  • Monitoreo 24/7 con cámaras de seguridad en las localidades del centro de datos.
  • Personal de seguridad en sitio 24/7.

Seguridad Tarjetas de Crédito

  • Nunca almacenamos la información de tarjetas de crédito en nuestros sistemas.
  • La información de tarjetas de crédito es siempre transmitida de forma directa y segura entre usted y las procesadoras de pago certificadas PCI-Compliant.
  • La responsabilidad ante fraudes queda entre el cliente y la procesadora de pagos bajo el acuerdo que hayan firmado entre las partes. iterativo y Odoo se limitan a proveer la plataforma de integración únicamente.

Comunicaciones

  • Todas las comunicaciones de datos a instancias de clientes están protegidas con encriptación state-of-the-art 256-bit SSL (HTTPS).
  • Todas las comunicaciones de datos internas entre los servidores también está protegida con la misma encriptación.
  • Nuestros servidores son mantenidos bajo una supervisión de seguridad estricta, y siempre son parchados contra las últimas vulnerabilidades de SSL, disfrutando siempre de una valoración SSL Grado A en todo momento.
  • Todos nuestros certificados SSL utilizan un módulo robusto de 2048-bit con cadenas de certificados completas SHA-2.

Defensa de redes

  • Todos los proveedores de centros de datos utilizados por Odoo Cloud poseen grandes capacidades de redes, y han diseñado su infraestructura to soportar los más grandes ataques de Distribución de Denegación de Servicio (DDoS). Sus sistemas de mitigación automáticos y manuales pueden detectar y desviar ataques de tráfico desde los extremos de sus redes multi-continentales, antes de que tengan la oportunidad de interrumpir la disponibilidad del servicio.
  • Cortafuegos (firewalls) y sistemas de prevención de intrusos en los servidores de Odoo Cloud ayudan a detectar y bloquear amenazas como ataques de fuerza-bruta de contraseñas. 
  • Desde Odoo 12 los administradores de las bases de datos (iterativo) poseen una configuración para enforzar la longitud mínima de la contraseña de los usuarios.

— Odoo (el software) —

Seguridad de Software

Odoo es de código abierto, así que todo el código fuente se mantiene continuamente bajo revisión por los usuarios de Odoo y contribuyentes alrededor del mundo. Los reportes de errores son por tanto una importante fuente de retroalimentación en relación a la seguridad. Exhortamos a todos nuestros usuarios que reporten los inconvenientes que presentan para la debida revisión por nuestro equipo.

Los procesos del equipo de Odoo R&D e iterativo R&D poseen pasos de revisión de código que incluyen aspectos de seguridad para todas las partes de códigos.

Seguro por Diseño

Odoo está diseñado de una manera que previene la introducción de las vulnerabilidades más comunes:

  • Inyecciones SQL son prevenidas mediante el uso de API de alto nivel que no requieren consultas manuales de SQL.
  • Ataques XSS son prevenidos mediante el uso de un sistema de alto nivel de plantillas que automáticamente expulsa los datos inyectados.
  • El marco de trabajo previene el acceso RPC a métodos privados, haciendo más difícil introducir vulnerabilidades de explotación.

Ver también la sección Principales Vulnerabilidades OWASP para ver cómo Odoo está diseñado desde la base para prevenir que se presenten tales vulnerabilidades.

Auditorías de Seguridad Independientes

Odoo es regularmente auditado por compañías independientes que son contratadas por sus clientes y prospectos para ejecutar auditorías y pruebas de penetración. El equipo de seguridad de Odoo recibe los resultados y tomar las acciones de corrección apropiadas cuando son necesarias.

Estos resultados son confidenciales y pertenecen al comisionado.

Odoo también posee una comunidad de investigadores independientes de seguridad, quienes constantemente monitorean el código fuente y trabajan de la mano para mejorar y robustecer la seguridad de Odoo. El programa de seguridad de Odoo se está descrito en: Responsible Disclosure.

Principales Vulnerabilidades OWASP

Aquí es donde Odoo demuestra su seguridad como aplicación web considerando las vulnerabilidades listadas en el Open Web Application Security Project (OWASP):

  • Fallas de inyección: (injection flaws) particularmente inyecciones SQL, son comunes en aplicaciones web. La inyección ocurre cuando datos suplidos por el usuario son enviados a un interpretador como parte de un comando o consulta. Los datos hostiles del atacante engañan al interpretador para que ejecute comandos no intencionados o cambiar datos.

    Odoo se apoya en un marco de trabajo object-relational-mapping (ORM) que abstrae la creación de consultas y previene inyecciones SQL por defecto. Los desarrolladores por lo general no crean consultas manuales de SQL, estas son generadas por el ORM, y los parámetros son propiamente ejecutados.

  • Cross Site Scripting (XSS): Fallas XSS ocurren cuando una aplicación toma los datos suplidos por el usuario y los envía a un navegador web sin antes validarlos o codificar su contenido. XSS permite a los atacantes ejecutar scripts en el navegador de la víctima que pueden secuestrar la sesión del usuario, desconfigurar sitios web, posiblemente introducir gusanos, etc.


    El marco de trabajo de Odoo ejecuta todas las expresiones renderizadas en las vistas y páginas por defecto, previniendo así XSS. Los desarrolladores deben marcar específicamente las expresiones como "safe" (seguras) para su inclusión cruda en páginas renderizadas.

  • Cross Site Request Forgery (CSRF): Un ataque CSRF obliga al navegador con sesión iniciada de la víctima a enviar solicitudes HTTP falsas, incluyendo la cookie de sesión de la víctima y cualquier otra información de autenticación automáticamente, a una aplicación web vulnerable. Esto le permite al atacante forzar el navegador de la víctima para generar solicitudes y la aplicación vulnerable entiende que son solicitudes legítimas de la víctima.


    El motor de sitio web de Odoo incluye un mecanismo de protección CSRF. Este previene  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 es solo conocido y presente cuando el usuario genuinamente ha accedido al formulario del sitio web, y un atacante no puede falsificar una solicitud sin este.

  • Ejecución de archivos maliciosos: Código vulnerable a la inclusión de archivos remotos (RFI) permite al atacante incluir código y datos hostiles, resultando en ataques devastadores, como comprometimiento total del servidor.

    Odoo no permite exponer funciones para ejecutar inclusión de archivos remotos. Sin embargo, permite a usuarios privilegiados personalizar las funcionalidades al añadir expresiones personalizadas que serán evaluadas por el sistema. Estas expresiones son siempre evaluadas por un ambiente aislado y sanitizado que solo admite acceso a funciones permitidas.

  • Insecure Direct Object Reference: A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter. Attackers can manipulate those references to access other objects without authorization.


    Odoo access control is not implemented at the user interface level, so there is no risk in exposing references to internal objects in URLs. Attackers cannot circumvent the access control layer by manipulating those references, because every request still has to go through the data access validation layer.

  • Almacenamiento Criptográfico Inseguro: Las aplicaciones web rara vez utilizar funciones criptográficas apropiadamente para proteger los datos y credenciales. Los atacantes utilizan los datos vagamente protegidos para realizar robo de identidad y otros crímenes, tales como fraudes de tarjetas de crédito.


    Odoo utiliza estándares de la industria para proteger las contraseñas almacenadas de los usuarios (secure hashing - por defecto PKFDB2 + SHA-512, con key stretching). También es posible utilizar sistemas externos de autenticación como OAuth 2.0 o LDAP, en orden de evitar el alojamiento de contraseñas de usuarios localmente en lo absoluto.

  • Comunicaciones Inseguras: Las aplicaciones frecuentemente fallan en encriptar el tráfico de la red cuando es necesario proteger comunicaciones sensibles.


    Odoo Cloud corre sobre HTTPS por defecto lo que protege sobre esta vulnerabilidad.

  • Falla en Restringir Acceso a la URL: Frecuentemente una aplicación solo protege funcionalidades sensibles previniendo que se muestren enlaces o URLs a usuarios no autorizados. Los atacantes utilizan esta debilidad para acceder y ejecutar operaciones no autorizadas mediante el acceso directo a esas URLs.


    El control de acceso de Odoo no está implementado a nivel de la interfaz de usuario, y esta seguridad no se apoya en esconder URLs especiales. Los atacantes no pueden burlar la capa de seguridad mediante la reutilización o manipulación de cualquier URL, porque cada solicitud aún tiene que pasar por la capa de validación. En los raros casos donde una URL provee acceso no autenticado a datos sensibles, como las URLs utilizadas para que el cliente confirme una orden, son digitalmente firmadas con tokens únicos y son enviadas solo al correo electrónico del receptor destinado. 

Reportes de Vulnerabilidades de Seguridad

Estos reportes son tratados con la más alta prioridad, el problema es inmediatamente atendido y solventados por el equipo de seguridad de Odoo, en colaboración con iterativo y luego distribuido y notificado de manera responsable a los clientes.