Top Banner
Seguridad en Tryton
18

Seguridad en Tryton

Jan 25, 2017

Download

Business

NaN-tic
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Seguridad en Tryton

Seguridad en Tryton

Page 2: Seguridad en Tryton

1/Proyecto

Page 3: Seguridad en Tryton

● Si se notifica de un possible problema de seguridad a https://bugs.tryton.org se debe indicar que se trata de un problema de seguridad de forma que sólo unos pocos desarrolladores tienen acceso

● La revisión de código se hace también en privado● Se pide un número CVE● Se saca una nueva versión menor n.n.X para todas las

versiones afectadas

1.1/Seguridad, en serio

Page 4: Seguridad en Tryton

2/Usuario

Page 5: Seguridad en Tryton

● Administrador a nivel de aplicación (por encima de las bases de datos). Permite:● Crear y borrar bases de datos● Realizar copias de seguridad y restaurarlas (no

escalable)● Password hash con crypt en el fichero de configuración

(cuidado con los permisos!)

2.1/Superadministrador

Page 6: Seguridad en Tryton

● Configurable a partir de la 4.2 (password + SMS por ejemplo)

● Hash de la contraseña con sha1 o bcrypt si disponible (más lento!)

2.2/Login

Page 7: Seguridad en Tryton

● Se puede limitar acceso según:● Objeto:

● Tabla● Campo● Botón/función

● Reglas de registros (corte horizontal) mediante dominio:● Ejemplo: [('code', 'ilike', '7%')]

● Nivel:● Lectura● Creación● Modificación● Borrado

2.3/Grupos y usuarios

Page 8: Seguridad en Tryton

● Timeout para volver a pedir contraseña después de X tiempo de inactividad (timeout en fichero de configuración)

● Cada intento fallido aumenta el tiempo de espera del login (limitado por el tiepo de timeout)● ¡¡¡Aumento exponencial!!!

2.4/Conexión y desconexión

Page 9: Seguridad en Tryton

● Reglas para nivel mínimo de dificultad de contraseñas● Número de días de validez de una misma contraseña para

un usuario● Pide contraseña si ha expirado el tiempo● Botón de reset de password para mandar correo

electrónico al usuario

2.5/Módulo password_expiry

Page 10: Seguridad en Tryton

● audit_trail● Registrar histórico de logins y logouts de los usuarios

del sistema● audit_log

● Permite ver en una sola pantalla todas las acciones realizadas por los usuarios

● Datos:● Usuario● Fecha y hora● Creación/modificación/borrado● Cambios realizados (si la tabla está historizada)

● No genera registro, cálculo a posteriori

2.6/Módulos de auditoría

Page 11: Seguridad en Tryton

3/Administración de sistemas

Page 12: Seguridad en Tryton

● Conexión local o cifrada● trytond: utilizar usuario NO administrador pero con acceso

a toda la base de datos

3.1/PostgreSQL

Page 13: Seguridad en Tryton

● Conexión segura https:● Cliente web● Cliente escritorio● Webservices: XML-RPC y JSON-RPC

● Permisos se aplican también mediante los webservices● Aplicaciones específicas (trytond / flask): Permisos a nivel

de PostgreSQL

3.2/Conexiones

Page 14: Seguridad en Tryton

4/Programación

Page 15: Seguridad en Tryton

● Problema con los permisos:● Es muuuuuy complejo dar los permisos necesarios para

que un usuario● Podemos utilizar:

with Transaction().set_user(0):● @ModelView.button

4.1/Permisos programación: root

Page 16: Seguridad en Tryton

● python-sql: Evita SQL injectioncursor.execute(*action_report.select(action_report.id, action_report.report_content_data, order_by=action_report.id, limit=limit, offset=offset))

● Simpleeval (en sustitución de safe_eval – que no era tant safe)

● PySON

4.2/Seguridad

Page 17: Seguridad en Tryton

http://www.NaN-tic.com

Albert Cervera i [email protected]@albertnanlinkedin.com/in/albertca

Page 18: Seguridad en Tryton