Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida –...

32
Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – [email protected] Alexander Wolff – [email protected]

Transcript of Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida –...

Page 1: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Seguridad en Aplicaciones GeneXus Algunos consejos prácticos

Enrique Almeida – [email protected]

Alexander Wolff – [email protected]

Page 2: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Agenda

Quienes somos

Conceptos básicos de seguridad

Incorporación de seguridad a aplicaciones

Implementaciones realizadas

Conclusiones

Page 3: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

¿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

Page 4: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

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

Page 5: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Seguridad

Garantizar que los recursos del sistema (datos y programas) sean usados de la forma

planificada.

Es indispensable planificar

Manejo de riesgos

Page 6: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Definiciones

AutenticaciónIdentificar los clientes de nuestra aplicación

AutorizaciónEl cliente esta autorizado a realizar esa acción

Comunicación SeguraPrivacidad – No puede ser visto por agentes no autorizados

Integridad – Lograr que la información no sea modificada

AuditoriaEvidencia de accesos y acciones con recursos del sistema.

Registro de intentos de accesos

Page 7: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Capas tecnológicas

Sistema Operativo / Software de base

Aplicación GeneXus

Datos

DBMS Mensajes, txtXML, imagenes

Page 8: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Seguridad

Identificar Escenarios

Estudio de Riesgos x Escenario

Implementación de Medidas

Evaluar

Page 9: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Identificando Escenarios SIGE-ERP

WINJava

SQL Server

Funcionarios

Público

WEBJava

Autenticado

Web PúblicoJava

EDIJava

Clientes

InternetClientes Mayores

Page 10: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Escenario I – Java Win Sql server

Conexión con usuario único y fijo

Dejar registrado quien modifica determinadas tablas

Solo algunos usuarios pueden realizar operaciones “sensibles”.

AplicaciónGeneXus

Java

JDBC

SQL ServerFuncionarios

Page 11: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Seguridad

Identificar Escenarios

Estudio de Riesgos x Escenario

Implementación de Medidas

Evaluar

Page 12: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Riesgos

Capas Problema

Software de base

Aplicación Datos

Autentica-ción

Autorización

Comunica-ción segura

Auditoría

Page 13: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Riesgos Escenario I - Java Win SQL Server

Capas Problema

Win

/Linux

AplicaciónJava

SQL Server

Autenticación Usuario y Contraseña

Se usan usuarios del SO

Usuario fijo

Autorización Ambientes y Usuarios

Comunicación segura

Auditoria Operaciones

Aplicación

Procesar Transaction Log

Page 14: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Seguridad

Identificar Escenarios

Estudio de Riesgos x Escenario

Mitigando Riesgos / Medidas

Evaluar

Page 15: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Riesgos Escenario I - Java Win SQL Server

Capas Problema

Win

/Linux

AplicaciónJava

SQL Server

Autenticación Usuario y Contraseña

Se usan usuarios del SO

Usuario fijo

Autorización Ambientes y Usuarios

Comunicación segura

Auditoria Operacionesde la aplicación

Procesar Transaction Log

Page 16: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Autorización en la AplicaciónAmbientes y Usuarios

Operaciones

Ver Factura

Emitir Factura

Anular Factura 8

5

3

Usuarios

Nivel del usuario

Ambiente Facturación

if Nivel( EALMEIDA, Facturacion) >= Nivel( Emitir Factura )call(EmitoFactura)

elseMsg(‘Usuario no Autorizado’)

endif

Page 17: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Riesgos Escenario I - Java Win SQL Server

Capas Problema

Win

/Linux

Aplicación SQL Server

Autenticación Usuario y Contraseña

Se usan usuarios del SO

Usuario fijo

Autorización Ambientes y Usuarios

Comunicación segura

Auditoria OperacionesAplicación

Procesar Transaction Log

Page 18: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Auditoria de datos y operaciones

Auditar modificaciones de datos

Auditar operaciones de la aplicación

Unificar tablas de auditoria facilita consultas

Triggers

Log Transaccional

Auditoria DBMS

Tablas de Auditoria

AplicaciónGeneXus

Operación

Page 19: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Tablas de Auditoria

Page 20: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

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

Page 21: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Auditoria de Datos Transaction Log

Transaction Log almacena valor anterior / nuevo

¿A que usuario “cargarle” las modificaciones?

Propiedad “Before Commit” para firmar el Log

SQL Server Transaction Log

. . . CommitBegin

Transaction

Insert

DBMSuser=sa

Update

DBMSuser=sa

New //Bitacora Usuario=‘AWOLFF’ Programa=‘pFactura’EndNew

Page 22: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Auditoria de DatosProcesando el Log transaccional

Carga Auditoria

Base de Datos de auditoria

Log Transaccional

“firmado”

ConsultasApexSQLLog Tool

ListaTablas

auditadas

XML datos Auditoria

AplicaciónGeneXus

UserId=AWOLFF

SQL Server

user=sapass=xxx

Page 23: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Triggers

Trigger INS

Tablas de Auditoria

Trigger UPD

Trigger DEL

Tabla

Aplicación

Operación (INS, UPD, DEL)

Consulta de Auditoria

Page 24: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

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

Page 25: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

www.AuditDatabase.com

Page 26: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

IIS

Escenario II – ASP.NET/Oracle

Proteger credenciales del usuario en redes públicas

Proteger privacidad de cierta información sensible

Clientes heterogéneos

AplicaciónWEB GeneXus

.NET

ADO.NETOracleUsuario InternetInternet

Page 27: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

ASP.NET / Oracle

Capas Problema

IIS ASP.NET Oracle

Autenticación Basic + SSL

Forms Usuario fijo

Autorización Script Ambientes y Niveles

Privilegios Mínimos

Comunicación segura

SSL

Auditoria Logs IIS Operaciones de la Aplicación

Triggers

Page 28: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Datos a proteger en la comunicación

Credenciales de usuario

Información sensible del propio negocio

Autenticación y Comunicación Segura / IIS – ASP.NET

IIS

AplicaciónWEB GeneXus

.NETBrowser

https (SSL)

Usuario/ContraseñaTarjetas de créditoInformación financiera

Page 29: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

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:”

Autenticación y Comunicación Segura / IIS

Page 30: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Estudio de Seguridad

Identificar Escenarios

Estudio de Riesgos x Escenario

Mitigando Riesgos / Medidas

Evaluar

Page 31: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

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

Page 32: Seguridad en Aplicaciones GeneXus Algunos consejos prácticos Enrique Almeida – ealmeida@concepto.com.uy Alexander Wolff – awolff@concepto.com.uy.

Seguridad en Aplicaciones GeneXus – Algunos consejos prácticos

Enrique Almeida – [email protected]

Alexander Wolff – [email protected]