Download Seguridad en aplicaciones GeneXus

Document related concepts
no text concepts found
Transcript
Seguridad en Aplicaciones GeneXus
Algunos consejos prácticos
Enrique Almeida – [email protected]
Alexander Wolff – [email protected]
Agenda
Quienes somos
Conceptos básicos de seguridad
Incorporación de seguridad a
aplicaciones
Implementaciones realizadas
Conclusiones
¿Quienes somos?
Desarrollo de software y Consultoría
Más de 10 años con GeneXus
Reconocimientos
.NET- Early adopter of new technology (2001)
Mejor beta tester GeneXus (2000, 2001, 2004)
Certificación ISO 9001:2000
Nuestra experiencia
Misión crítica con GeneXus
SIGE (ERP para empresas Medianas o
Grandes)
KB con 10 años
Aduana de Uruguay
Operaciones por U$S 7.000 millones
Recaudación U$S 819 millones en el 2006.
Aduana de Costa Rica
No somos especialistas en seguridad
Seguridad
Garantizar que los recursos del sistema (datos
y programas) sean usados de la forma
planificada.
Es indispensable planificar
Manejo de riesgos
Definiciones
Autenticación
Identificar los clientes de nuestra aplicación
Autorización
El cliente esta autorizado a realizar esa acción
Comunicación Segura
Privacidad – No puede ser visto por agentes no autorizados
Integridad – Lograr que la información no sea modificada
Auditoria
Evidencia de accesos y acciones con recursos del sistema.
Registro de intentos de accesos
Capas tecnológicas
Sistema Operativo / Software de base
Aplicación GeneXus
Datos
DBMS
Mensajes, txt
XML, imagenes
Estudio de Seguridad
Identificar Escenarios
Estudio de Riesgos x Escenario
Implementación de Medidas
Evaluar
Identificando Escenarios SIGE-ERP
Funcionarios
WIN
Java
Clientes
WEB
Java
Autenticado
Clientes
Mayores
Público
Internet
EDI
Java
Web Público
Java
SQL Server
Escenario I – Java Win Sql server
Funcionarios
Aplicación
GeneXus
Java
JDBC
SQL Server
Conexión con usuario único y fijo
Dejar registrado quien modifica determinadas tablas
Solo algunos usuarios pueden realizar
operaciones “sensibles”.
Estudio de Seguridad
Identificar Escenarios
Estudio de Riesgos x Escenario
Implementación de Medidas
Evaluar
Estudio de Riesgos
Capas  Software
 Problema de base
Autenticación
Autorización
Comunicación segura
Auditoría
Aplicación
Datos
Estudio de Riesgos
Escenario I - Java Win SQL Server
Capas 
 Problema
Autenticación
Autorización
Win
/Linux
Aplicación SQL Server
Java
Usuario y
Se usan
Contraseña usuarios del
SO
Usuario fijo
Ambientes y
Usuarios
Comunicación
segura
Auditoria
Operaciones Procesar
Transaction Log
Aplicación
Estudio de Seguridad
Identificar Escenarios
Estudio de Riesgos x Escenario
Mitigando Riesgos / Medidas
Evaluar
Estudio de Riesgos
Escenario I - Java Win SQL Server
Capas 
 Problema
Autenticación
Autorización
Win
/Linux
Aplicación SQL Server
Java
Usuario y
Se usan
Contraseña usuarios del
SO
Usuario fijo
Ambientes y
Usuarios
Comunicación
segura
Auditoria
Operaciones
de la
aplicación
Procesar
Transaction Log
Autorización en la Aplicación
Ambientes y Usuarios
Ambiente Facturación
Nivel del usuario
Usuarios
Operaciones
Anular Factura
8
Emitir Factura
5
Ver Factura
3
if Nivel( EALMEIDA, Facturacion) >= Nivel( Emitir Factura )
call(EmitoFactura)
else
Msg(‘Usuario no Autorizado’)
endif
Estudio de Riesgos
Escenario I - Java Win SQL Server
Capas 
 Problema
Autenticación
Autorización
Win
Aplicación SQL Server
/Linux
Usuario y
Se usan
Contraseña usuarios del
SO
Usuario fijo
Ambientes y
Usuarios
Comunicación
segura
Auditoria
Operaciones
Aplicación
Procesar
Transaction Log
Auditoria de datos y operaciones
Auditar modificaciones de datos
Auditar operaciones de la aplicación
Unificar tablas de auditoria facilita consultas
Auditoria DBMS
Log Transaccional
Triggers
Tablas de
Auditoria
Operación Aplicación
GeneXus
Tablas de Auditoria
Auditoria de cada DBMS
DBMS’s mas populares tienen su auditoria
SQL Server Profiler
MySQL general query log, binary log
Auditoria de Oracle
Posibilidad auditar SELECT’s
Problemas determinar valor anterior/nuevo
Auditoria de Datos
Transaction Log
Transaction Log almacena valor anterior / nuevo
¿A que usuario “cargarle” las modificaciones?
Propiedad “Before Commit” para firmar el Log
Insert
Update
Begin
Transaction DBMSuser=sa.
..
DBMSuser=sa
New //Bitacora
Usuario=‘AWOLFF’
Programa=‘pFactura’
EndNew
SQL Server Transaction Log
Commit
Auditoria de Datos
Procesando el Log transaccional
SQL Server
Log
Transaccional
“firmado”
Base de Datos
de auditoria
user=sa
pass=xxx
ApexSQL
Log Tool
Aplicación
GeneXus
UserId=AWOLFF
Lista
Tablas
auditadas
Carga
Auditoria
XML datos
Auditoria
Consultas
Triggers
Aplicación
Consulta de
Auditoria
Operación (INS, UPD, DEL)
Trigger DEL
Tabla
Trigger UPD
Trigger INS
Tablas de
Auditoria
Triggers II
Ventajas
Disponibles de forma nativa en los DBMS’s
Respuesta instantánea ante un evento auditado
Desventajas
Hay que definir con anticipación que auditar
Peligro de pérdida en Reorganizaciones
Tienen una penalización de performance
Hay que programarlos para cada DBMS
www.AuditDatabase.com
Escenario II – ASP.NET/Oracle
Usuario
Internet
Aplicación
WEB GeneXus
.NET
ADO.NET
Oracle
IIS
Proteger credenciales del usuario en redes públicas
Proteger privacidad de cierta información sensible
Clientes heterogéneos
ASP.NET / Oracle
Capas 
 Problema
IIS
Autenticación Basic +
SSL
Autorización
Script
ASP.NET
Oracle
Forms
Usuario fijo
Ambientes y
Niveles
Privilegios
Mínimos
Operaciones
de la
Aplicación
Triggers
Comunicación SSL
segura
Auditoria
Logs IIS
Autenticación y Comunicación
Segura / IIS – ASP.NET
Datos a proteger en la comunicación
Credenciales de usuario
Información sensible del propio negocio
https (SSL)
Browser
Usuario/Contraseña
Tarjetas de crédito
Información financiera
Aplicación
WEB GeneXus
.NET
IIS
Autenticación y Comunicación
Segura / IIS
Credenciales y Tickets de Autenticación
Windows Integrated Authentication
Form de usuario/contraseña + SSL
Basic Authentication + SSL en toda la aplicación
Información del Negocio
SSL en formularios que manejan info. Sensible
En GX propiedad Protocol Specification =
“SECURE HTTPS:”
Estudio de Seguridad
Identificar Escenarios
Estudio de Riesgos x Escenario
Mitigando Riesgos / Medidas
Evaluar
Conclusiones
Complejo y necesita especialización
Cada vez mas importante
Consume recursos
BD Aduanas 135Gb, cerca de la mitad es auditoria
Se necesitan metodologías
Darle mas visibilidad al tema
Discutir ideas
Seguridad en Aplicaciones GeneXus
– Algunos consejos prácticos
Enrique Almeida – [email protected]
Alexander Wolff – [email protected]