Seguridad de Odoo

¡Tu seguridad es muy importante para nosotros! A continuación encuentra un resúmen de lo que hacemos cada día para garantizar que tu información esté a salvo con Odoo y que aplicamos las mejores prácticas de seguridad en nuestra versión alojada en la nube, Odoo Online.

Odoo Online

Copia de Seguridad / Recuperación de Desastres

  • Guardamos 14 copias de seguridad completas de cada instancia de Odoo durante 3 meses: 1/día durante 7 días, 1/semana durante 4 semanas, 1/mes durante 3 meses.
  • Las copias de seguridad se replican en al menos 3 centros de datos diferentes en diferentes continentes.
  • También puedes descargar copias de seguridad manuales de tus datos a tiempo real usando el panel de control de Odoo Online.
  • Puedes consultar con nuestro Centro de Soporte para restaurar cualquiera de estas copias de seguridad en tu base de datos activa (o a un lado).
  • Conmutación del Hardware: para servicios alojados en metal expuesto, donde fallos en el hardware son posibles, implementamos una réplica del sistema de espera activa local con monitoreo y un proceso manual de conmutación que tarda menos de 5 minutos.
  • Recuperación de desastres: en caso de desastre completo, con un centro de datos completamente inactivo durante un largo periodo de tiempo, previniendo conmutación a nuestro sistema de espera activa (por el momento nunca ha pasado, pero este es el plan para el peor de los casos), tenemos los siguientes objetivos:
    • RPO (Objetivo de Punto de Recuperación) = 24h. Esto significa que puedes perder un máximo de 24h de trabajo si los datos no se pueden recuperar y necesitamos restaurar tu última copia de seguridad.
    • RTO (Tiempo de Recuperación del Objetivo) = 8h para suscripciones de pago, 48h para pruebas gratuítas, ofertas de educación, usuarios freemium, etc. Este es el tiempo para restaurar el servicio en un centro de datos diferente si ocurre un desastre y el centro de datos está completamente inactivo.
    • Cómo se logra esto: monitoreamos activamente nuestras copias de seguridad, y son replicadas en múltiples ubicaciones en diferentes continentes. Tenemos provisionamiento automatizado para deployar nuestros servicios en una nueva ubicación de almacenaje en menos de 30 minutos. Restaurar los datos basados en nuestras copias de seguridad  del día anterior puede ser realizado en un par de horas con prioridad en las suscripciones de pago.
      Usamos las copias de seguridad diarias y el provisionamiento de scripts para operaciones diarias, así que ambas partes del procedimiento de recuperación de desastre se testea en todo momento.

Seguridad de Bases de Datos

  • Los datos de los clientes se almacenan en una base de datos dedicada - no se comparten los datos entre clientes.
  • Las reglas de control de acceso de datos implementan aislamiento completo entre las bases de datos de los clientes corriendo en el mismo conjunto, no se permite el acceso de una base de datos a otra. 

Seguridad de Contraseñas

  • Las contraseñas de nuestros clientes están protegidas con una encriptación estándar en la industria PBKDF2+SHA512 encryption (salada + estirado miles de vueltas).
  • Los empleados de Odoo no tienen acceso a tu contraseña, y no la pueden recuperar por ti. La única opción si la pierdes es resetearla.
  • Las credenciales de inicio siempre se transmited de manera segura a través de HTTPS.

Acceso a Empleados

  • Los empleados del Centro de Soporte de Odoo pueden entrar a tu cuenta para acceder a la configuración relacionada con tu ticket de soporte. Para hacer esto usan sus propias credenciales de empleados, no tu contraseña (que no tienen forma de saber).
  • Este acceso especial de los empleados mejora la eficiencia y seguridad: pueden reproducir de inmediato los problemas que estás teniendo. En ningún caso necesitas compartir tu contraseña, y podemos auditar y controlar las acciones de los empleados de manera independiente. 
  • Nuestro Centro de Soporte trabaja para respetar tu privacidad en todo momento, y solo accede a archivos y configuraciones que necesitan para diagnosticar y resolver tu problema.

Seguridad del Sistema

  • Todos los servidores online de Odoo están corriendo en distribuidores reforzados de Linux con parches de seguridad actualizados. 
  • Las instalaciones son a medida y mínimas para limitar el número de servicios que puedan contener vulnerabilidades (no PHP/MySQL stack por ejemplo).
  • Solo almangunos ingenieros de confianza de Odoo tienen vía libre para manejar los servidores en remoto - y el acceso solo se posibilita usando pares de claves SSH (no se permite autentificación por contraseña).
  • Servidores de seguridad y medidas para prevenir la invasión ayudan a evitar acceso no autorizado.  
  • Se implementa mitigación en la Distribución Automática de Negación de Servicio (DDoS) en los centros de datos de Estados Unidos y Europa, y próximamente en Asia. 

Seguridad Física

Los servidores de Odoo Online están alojados en centros de datos de confianza en varias regiones del mundo (p.e OVH, Google Cloud), y todos deben seguir nuestro criterio de seguridad física:

  • Perímetro restringido, accesible físicamente por empleados autorizados de los centros de datos únicamente.

  • Control del acceso físico con tarjetas de seguridad o seguridad biométrica.

  • Cámaras de seguridad monitoreando los centros de datos 24/7

  • Personal de seguridad en el lugar 24/7

Seguridad de Tarjetas de Crédito

  • Cuando empiezas una suscripción de pago de Odoo Online, no almacenamos la información de tu tarjeta de crédito.
  • La información de tu tarjeta de crédito solo se transmite entre tú y tus pasarelas de pago PCI-CompliantIngenicoPaypal (incluso para suscripciones recurrentes).

Comunicaciones

  • Todas las conexiones web a instancias de clientes están protegidas con encriptación de vanguardia 256-bit SSL.
  • Nuestros servidores están vigilados estríctamente, y siempre parcheados contra las vulnerabilidades SSL, y valoraciones de SLL
    Grade A en todo momento.
     
  • Todos nuestros certificados SLL usan un módulo 2048-bit con cadenas de certificados SHA-2 completas.

Odoo

Seguridad del Software

Odoo is de código abierto, así que toda la base del código está contínuamente bajo examinación por parte de usuarios de Odoo y contribuidores a nivel global. Los reportes de problemas de la comunidad son una manera importante de conseguir feedback relacionado a la seguridad. Animamos a los desarrolladores a auditar el código y reportar problemas en la seguridad.

Los procesos de I+D de Odoo tienen pasos para revisar el código que incluyen aspectos de seguridad, para piezas de código nuevas y contribuídas.

Seguridad por Diseño

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

  • Las inyecciones SQL se previenen por el uso de una API de más alto nivel que no requiere queries manuales.

  • Los ataques XSS se previenen por el uso de un sistema de alto nivel de templado que automáticamente escapa los datos inyectados.

  • El framework previene acceso RPC a métodos privados, haciéndolo más difícil de explotar las vulnerabilidades.

Puedes ver la sección de las Mayores Vulnerabilidades OWASP para ver cómo Odoo está diseñado para prevenir la aparición de esas vulnerabilidades.

Auditorías de Seguridad Independientes

Odoo se audita automáticamente por compañías independientes que son contratadas por nuestros clientes y prospectos para realizar auditorías y exámenes de penetración. El equipo de seguridad de Odoo recibe los resultados y toma medidas apropiadas de corrección cuando sea necesario.

No podemos revelar ninguno de esos resultados, porque son confidenciales y pertenecen a los comisarios. Por favor no pregunten  ;-)

Odoo también tiene una comunidad muy activa de investigadores de seguridad independientes, que contínuamente monitorean el código fuente y trabajan con nosotros para mejorar la seguridad de Odoo. Nuestro programa de seguridad se describe aquí: Responsible Disclosure  


Mayores Vulnerabilidades OWASP

Aquí es donde Odoo se posiciona en cuanto a problemas de alta seguridad en aplicaciones web como se listan en Open Web Application Security Project (OWASP):

  • Fallos de Inyección: fallos de inyección, SQL en particular, son comunes en aplicaciones web. Las inyecciones ocurren cuando datos provistos por los usuarios son enviados a un intérprete como parte de un command o query. Los datos hostiles de los atacantesconfunded al intérprete a executar commands inintencionados o cambiar datos. 
    Odoo depende de un framework con mapeo de relación de objetos (ORM) que abstrae la creación de queries y previene inyecciones de SQL por defecto. Developers do not normally craft SQL queries manually, they are generated by the ORM, and parameters are always properly escaped.

  • Scripts de Sitios Cruzados (XSS): ocurren fallos de XSS cuando una aplicación agarra datos provistos por el usuario y lo envía a un buscador web sin validar o codificar ese contenido. XSS permite a los atacantes ejecutar scripts en los buscadores de la víctima que puede secuestrar sesiones de usuarios, desfigurar sitios web, posiblemente introducir gusanos, etc.
    El framework de Odoo se escapa de todas las expresiones renderizadas en vistas y páginas por defecto, previniendo XSS. Los desarrolladores tienen que marcar específicamente las expresiones como "a salvo" para la inclusión en crudo en páginas renderizadas. 

  • Falsificación de Petición en Sitios Cruzados (CSRF): Un ataque CSRF fuerza a las víctimas logueadas  attack forces a logged-on victim’s browser to send a forged HTTP request, including the victim’s session cookie and any other automatically included authentication information, to a vulnerable web application. This allows the attacker to force the victim’s browser to generate requests the vulnerable application thinks are legitimate requests from the victim.
    The Odoo website engine includes a built-in CSRF protection mechanism. It prevents any HTTP controller to receive a POST request without the corresponding security token. This is the recommended technique for CSRF prevention. This security token is only known and present when the user genuinely accessed the relevant website form, and an attacker cannot forge a request without it.

  • Ejecución de Ficheros Malintencionados: Código vulnerable a inclusión de ficheros remotos (RFI) permite a los atacantes incluir código y datos hostiles, resultando en ataques devastadores, como un compromiso total del servidor. 
    Odoo no expone funciones para realizar inclusión de datos remotos. Sin embargo permite a usuarios privilegiados customizar características añadiendo expresiones customizadas que poon siedrán ser evaluadas por el sistema. Estas expresiones son siempre evaluadas por un ambiente sandbox y desinfectado que solo permite acceso a ciertas funciones.

  • Referencia de Objetos Directos Insegura: Una referencia directa de objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, como un fichero, directorio, registro en la base de datos, una clave, como URL o 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 es implementado a nivel de la interfaz de usuario, así que no hay riesgo en exponer referencias a objetos internos en URLs. Los atacantes no pueden Attackers cannot circumvent the access control layer by manipulation those references, because every request still has to go through the data access validation layer.

  • Almacenamiento Criptográfico Inseguro: Las aplicaciones web raramente usan funciones criptográficas correctamente para proteger datos y credenciales. Attackers use weakly protected data to conduct identity theft and other crimes, such as credit card fraud.
    Odoo uses industry-standard secure hashing for user passwords (by default PKFDB2 + SHA-512, with key stretching) to protect stored passwords. It is also possible to use external authentication systems such as OAuth 2.0 or LDAP, in order to avoid storing user passwords locally at all.

  • Comunicaciones Inseguras: Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications.
    Odoo Online runs on HTTPS by default. For on-premise installations, it is recommend to run Odoo behind a web server implementing the encryption and proxying request to Odoo, for example Apache, Lighttpd or nginx.

  • Fallo en Restringir Acceso URL: Frecuentemente una aplicación solo protege funcionalidad sensible previniendo la vista de enlaces o URLs a usuarios no autorizados. Los atacantes pueden usar esta debilidad para acceder y realizar operaciones no autorizadas accediendo a esas URLs directamente.

    El control de acceso de Odoo no está implementado a nivel de interfaz de usuario, y la seguridad no depende de esconder ninguna URL en especial. Los atacantes no pueden evitar la capa de control de acceso o manupilar ninguna URL porque cada petición todavía tiene que estar hecha a través de la capa de validación de acceso. En los casos raros en los que una URL provee de acceso no autorizado a datos sensibles, como URLs especiales que los clientes usan para confirmar una orden, estas URLs son firmadas digitalmente con tókens únicos y solo se envían vía email a los receptores intencionados.

  

Reportando Vulnerabilidades de Seguridad

Si necesitas reportar una vulnerabilidad de seguridad, por favor ve a nuestra página de responsible disclosure page. Estos reportes son tratados como de alta prioridad, el problema es tratado de inmediato y resuelto por el equipo de seguridad de Odoo, en colaboración con la persona que reporta, y luego compartido de manera responsable con el cliente de Odoo y los usuarios.