Generando aplicaciones seguras con GeneXus. Crear un manejo de permisos de usuarios de mi sistema. Evitar que personas no autorizadas puedan autenticarse ante mi aplicación. Asegurar que los usuarios accedan solamente a los datos que que están autorizados a manipular.
3. Autenticación
!= Autorización
Autenticación: Es el proceso por el
cual demostramos que somos quienes
decimos ser.
Autorización: Se produce despues de
la Autenticación y es el proceso por el
cual obtenemos o no permisos para
efectuar una determinada acción.
4. ¿ Que implica?
• Crear un manejo de permisos de usuarios de
mi sistema.
• Evitar que personas no autorizadas puedan
autenticarse ante mi aplicación.
• Asegurar que los usuarios accedan solamente
a los datos que que están autorizados a
manipular.
5. Errores comunes
• No controlar que exista un usuario logueado en todas las
pantallas de la aplicación
• No validar los roles en cada pantalla
• Confiar en que el usuario llega a las pantallas de mi
aplicación siguiendo los links en ella.
• No usar las Transacciones como parte de mi aplicación
pero dejarlas accesibles.
• Dejar los prompts automaticos sin seguridad
• Poner el código del usuario logueado en el form o pasarlo
por parametro
• Dejar disponible en producción el archivo
DeveloperMenu.xml
6. Consideraciones
• No se puede confiar en las validaciones que
ejecutan del lado del cliente. (Browser).
•Las validaciones de los datos ingresados se
deben hacer del lado del servidor.
•Propiedades Visible y Enabled no aseguran
que el valor de las variables o atributos no
sea modificado.
7. • Aplicaciones para Smart Devices
• Compuesta por una parte nativa en
el Dispositivo que se alimenta de
servicios REST alojados en un
Servidor Web.
• Servicios REST:
http://.../higueron/servlet/rest/cliente/
Transacción
1
Clave
Nuevos Problemas de Seguridad en EVO2
8. {"Cliente":{"CliId":129,"CliNom":"Rodolfo","CliNac":"1976-08-5"}}
• JSON
• REST Usa operaciones del protocolo HTTP (GET, PUT, POST,
DELETE)
• Los servicios se generan cuando la Trn se expone como WS
REST en una App SD (Ej: Al aplicar WWSD a una TRN)
• Hay que poner reglas que hagan las comprobaciones de
autenticación y autorización.
Nuevos Problemas de Seguridad en EVO2
9. ¿Como nos ayuda GeneXus?
• Encriptación de parametros (SiteKey y
SessionKey).
• GAM !!
• Se encarga de prevenir
automáticamente ataques de tipo "SQL
Injection".
10. Buenas practicas
• Usar MD5, SHA1 o similar para la
encriptación de contraseñas (algoritmos de
reducción criptográficos).
• NUNCA pasar identificadores de usuario
por parámetro
• ??????