¿Qué hace hoy GeneXus por la seguridad de nuestras Aplicaciones?
Alejandro ZeballosInvestigación y Desarrollo (GAM), Artech
Tres pilares de la seguridad
Disponibilidad
Integridad
Confidencialidad
Mapa de seguridad
Seguridad física1Seguridad en
comunicacionesSeguridad en Internet
2
3
4
5
6
Seguridad wireless
Capacitación en seguridad
Seguridad de la información
v“ ”
GeneXus nos provee la funcionalidad de poder incorporar SEGURIDAD a nuestras aplicaciones WEB y Smart Devices.
Veamos estos puntos
¿Qué hace en WEB? ¿Qué hace en SD?
Casos de uso Futuro
¿Qué es GAM?
v
¿QUÉ ES GAM?
¿Qué es GAM?• GAM = GeneXus Access Manager• Biblioteca integrada a GeneXus• Fácil de incorporar a la KB
• Provee una solución a:– Autenticación– Autorización
v
¿QUÉ HACE EN WEB?
¿Qué hace en WEB?• Autenticación
– Base de datos Local– Web Service Externo– Facebook– Google– Twitter
• Autorización– Quien puede ejecutar/acceder a un objeto– En las Transacciones permiso por Modo
Autenticación WEB
WEB APPLICATI
ON DB APP.
DB GAMGAM API
Login Usuario PasswordHTTPS
SessionRespuesta
Application Server
Autorización WEB• Generación de Permisos por cada objeto
– <nombre-objeto>_Execute– En Transacciones hay permisos por Modo
• Código del chequeo de seguridad en el generador– Declarativo– No se “ensucia” el código GeneXus
• Chequeo de seguridad en cada Get/Post/Ajax/etc.
Autorización WEB
WEB APPLICATI
ON
DB APP. DB GAM
GAM APIGET/POST/AJAXValid
Session
Respuesta
Application Server
Valid Permission
v
¿QUÉ HACE EN SMART DEVICES?
¿Qué hace en Smart Devices?• Autenticación
– Utilizamos oauth 2.0
• Autorización– Quien puede ejecutar/acceder a un servicio o objeto SD– En las Transacciones permiso por Modo de cada BC
expuesto como Servicio
• HTTPS
Autenticación SD
WEB APPLICATI
ON
DB APP. DB GAM
GAM APILogin Client _Id Client _Secret Usuario Password
Valid Token
Access Token
Application Server
Valid Permission
GET o PUT con Access Token
Respuesta RESTHTTP 200/401/403
Autorización SD
v
CASOS DE USO
Caso de uso• Aplicación del evento
– Aplicación SD pública– Usuario anónimo– Backend privado y con permisos
Caso de uso• Pesobook
– Backend privado– Aplicación SD privada
v
FUTURO
Futuro del GAM en TILO• Permisos en la KB
– Conocer quien lo utiliza– Ayudar al programador con intellisense
• Permisos por Control
• Permisos por Datos
• Menú dinámico en función a la metadata del GAM
v
CONCLUSIONES
¿Y con esto es suficiente?• Resolvemos de seguridad en la aplicación
• Utilizar HTTPS para autenticación
• Proceso consciente de lo que se publica
• Seguir pasos de Hardening
ReferenciasWIKI de GXtechnical
• http://wiki.gxtechnical.com
“Security Scanner”: Analizador de KB
• http://marketplace.genexus.com
“Going into production: checklist for Applications using GAM”:• http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Going+into+production%3A+checklist+for+Applicati
ons+using+GAM
“OWASP Top 10 in GeneXus Applications”:
• http://wiki.gxtechnical.com/commwiki/servlet/hwiki?OWASP+Top+10+in+GeneXus+Applications,
OWASP top 10:
• https://www.owasp.org/index.php/Top_10_2010-Main
Referencias• Conferencias relacionadas
– Cómo hacer aplicaciones seguras - Sala 2C, hoy, 11:00– Café con Seguridad – Piso 25, hoy, 11:45
• Alejandro Zeballos, Investigación&Desarrollo (GAM), [email protected]
¡GRACIAS!
Alejandro Zeballos
Artech