La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Seguridad en Aplicaciones GeneXus Algunos consejos prácticos

Presentaciones similares


Presentación del tema: "Seguridad en Aplicaciones GeneXus Algunos consejos prácticos"— Transcripción de la presentación:

1 Seguridad en Aplicaciones GeneXus Algunos consejos prácticos
Enrique Almeida – Alexander Wolff –

2 Agenda Quienes somos Conceptos básicos de seguridad
Incorporación de seguridad a aplicaciones Implementaciones realizadas Conclusiones

3 ¿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

4 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 millones Recaudación U$S 819 millones en el 2006. Aduana de Costa Rica No somos especialistas en seguridad

5 Seguridad Garantizar que los recursos del sistema (datos y programas) sean usados de la forma planificada. Es indispensable planificar Manejo de riesgos La seguridad informática, generalmente consiste en asegurar que los recursos del sistema de información (material informático o programas) de una organización sean utilizados de la manera que se decidió. Tabla de contenidos [ocultar] 1 Introducción 1.1 Términos relacionados con la seguridad informática 2 Análisis de riesgos 3 Puesta en marcha de una política de seguridad 4 Las amenazas 5 Técnicas de aseguramiento del sistema 5.1 Consideraciones de software 5.2 Consideraciones de una red 6 Algunos tópicos erróneos acerca de la seguridad 7 Organismos oficiales de seguridad informática 8 Enlaces externos [editar] Introducción Podemos entender como seguridad una característica de cualquier sistema (informático o no) que nos indica que ese sistema está libre de peligro, daño o riesgo. Se entiende como peligro o daño todo aquello que pueda afectar su funcionamiento directo o los resultados que se obtienen del mismo. Para la mayoría de los expertos el concepto de seguridad en la informática es utópico porque no existe un sistema 100% seguro. Para que un sistema se pueda definir como seguro debemos de dotar de tres características al mismo: Integridad Confidencialidad Disponibilidad Dependiendo de las fuentes de amenazas, la seguridad puede dividirse en seguridad lógica y seguridad física. Términos relacionados con la seguridad informática Activo: recurso del sistema de información o relacionado con éste, necesario para que la organización funcione correctamente y alcance los objetivos propuestos. Amenaza: es un evento que pueden desencadenar un incidente en la organización, produciendo daños materiales o pérdidas inmateriales en sus activos. Impacto: consecuencia de la materialización de una amenaza. Riesgo: posibilidad de que se produzca un Impacto determinado en un Activo, en un Dominio o en toda la Organización. Vulnerabilidad: posibilidad de ocurrencia de la materialización de una amenaza sobre un Activo. Ataque: evento, exitoso o no, que atenta sobre el buen funcionamiento del sistema. Desastre o Contingencia: interrupción de la capacidad de acceso a información y procesamiento de la misma a través de computadoras necesarias para la operación normal de un negocio. Aunque a simple vista se puede entender que un Riesgo y una Vulnerabilidad se podrían englobar un mismo concepto, una definición más informal denota la diferencia entre riesgo y vulnerabilidad, de modo que se debe la Vulnerabilidad está ligada a una Amenaza y el Riesgo a un Impacto. Análisis de riesgos El activo más importante que se posee es la información, y por lo tanto deben existir técnicas que la aseguren, más allá de la seguridad física que se establezca sobre los equipos en los cuales se almacena. Estas técnicas las brinda la seguridad lógica que consiste en la aplicación de barreras y procedimientos que resguardan el acceso a los datos y sólo permiten acceder a ellos a las personas autorizadas para hacerlo. Existe un viejo dicho en la seguridad informática que dicta: "lo que no está permitido debe estar prohibido" y esto es lo que debe hacer ésta seguridad lógica. Los objetivos para conseguirlo son: Restringir el acceso (de personas de la organización y de las que no lo son) a los programas y archivos. Asegurar que los operadores puedan trabajar pero que no puedan modificar los programas ni los archivos que no correspondan (sin una supervisión minuciosa). Asegurar que se utilicen los datos, archivos y programas correctos en/y/por el procedimiento elegido. Asegurar que la información transmitida sea la misma que reciba el destinatario al cual se ha enviado y que no le llegue a otro. Asegurar que existan sistemas y pasos de emergencia alternativos de transmisión entre diferentes puntos. Organizar a cada uno de los empleados por jerarquía informática, con claves distintas y permisos bien establecidos, en todos y cada uno de los sistemas o softwares empleados. Puesta en marcha de una política de seguridad Generalmente se ocupa exclusivamente a asegurar los derechos de acceso a los datos y recursos con las herramientas de control y mecanismos de identificación. Estos mecanismos permiten saber que los operadores tiene sólo los permisos que se les dio. La seguridad informática debe ser estudiada para que no impida el trabajo de los operadores en lo que les es necesario y que puedan utilizar el sistema informático con toda confianza. Por eso en lo referente a elaborar una política de seguridad, conviene: elaborar reglas y procedimientos para cada servicio de la organización definir las acciones a emprender y elegir las personas a contactar en caso de detectar una posible intrusión sensibilizar los operadores con los problemas ligados con la seguridad de los sistemas informáticos Los derechos de acceso de los operadores deben ser definidos por los responsables jerárquicos y no por los administradores informáticos, los cuales tienen que conseguir que los recursos y derechos de acceso sean coherentes con la política de seguridad definida. Además, como el administrador suele ser el único en conocer perfectamente el sistema, tiene que derivar a la directiva cualquier problema e información relevante sobre la seguridad, y eventualmente aconsejar estrategias a poner en marcha, así como ser el punto de entrada de la comunicación a los trabajadores sobre problemas y recomendaciones en término de seguridad. Las amenazas Una vez que la programación y el funcionamiento de un dispositivo de almacenamiento (o transmisión) de la información se consideran seguras, todavía deben ser tenidos en cuenta los circunstancias "no informáticas" que pueden afectar a los datos, las cuales son a menudo imprevisibles o inevitables, de modo que la única protección posible es la redundancia (en el caso de los datos) y la descentralización -por ejemplo mediante estructura de redes- (en el caso de las comunicaciones). Estos fenómenos pueden ser causados por: un operador: causa del mayor problema ligado a la seguridad de un sistema informático (por que no le importa, no se da cuenta o a propósito). programas maliciosos: programas destinados a perjudicar o a hacer un uso ilícito de los recursos del sistema es instalado (por inatención o maldad) en el ordenador abriendo una puerta a intrusos o bien modificando los datos. Estos programas pueden ser un virus informático, un gusano informático, un troyano, una bomba lógica o un programa espía o Spyware un intruso : persona que consigue acceder a los datos o programas de los cuales no tiene acceso permitido (cracker, defacer, script kiddie o Script boy, viruxer, etc.) un siniestro (robo, incendio, por agua) : una mala manipulación o una malintención derivan a la pérdida del material o de los archivos. el personal interno de Sistemas. Las pujas de poder que llevan a disociaciones entre los sectores y soluciones incompatibles para la seguridad informática. Técnicas de aseguramiento del sistema Codificar la información: Criptología, Criptografía y Criptociencia. Contraseñas difíciles de averiguar. Vigilancia de red. Tecnologías repelentes o protectoras: cortafuegos, sistema de detección de intrusos - anti-spyware, antivirus, llaves para protección de software, etc. Mantener los sistemas de información con las actualizaciones que más impacten en la seguridad. Consideraciones de software Tener instalado en la máquina únicamente el software necesario reduce riesgos. Así mismo tener controlado el software asegura la calidad de la procedencia del mismo (el sofware pirata o sin garantías aumenta los riesgos). En todo caso un inventario de software proporciona un método correcto de asegurar la reinstalación en caso de desastre. El software con métodos de instalación rápidos facilita también la resintalación en caso de contingencia. Existe software que es famoso por la cantidad de agujeros de seguridad que introduce. Se pueden buscar alternativas que proporcionen iguales funcionalidades pero permitiendo una seguridad extra. Consideraciones de una red Los puntos de entrada en la red son generalmente el correo, las páginas web y la entrada de ficheros desde discos, o de ordenadores ajenos, como portátiles. Mantener al máximo el número de recursos de red en sólo en modo lectura impide que ordenadores infectados propagen virus. En el mismo sentido se pueden reducir los permisos de los usuarios al mínimo. Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan trabajar durante el tiempo inactivo de las máquinas. Controlar y monitorizar el acceso a Internet puede detectar, en fases de recuperación, como se ha introducido el virus. Algunos tópicos erróneos acerca de la seguridad Mi sistema no es importante para un hacker. Este tópico se basa en la idea de que no introducir passwords seguras en una empresa no entraña riesgos pues ¿quien va a querer obtener información mía?. Sin embargo, dado que los métodos de contagio se realizan por medio de programas automáticos, desde unas máquinas a otras, estos no distinguen buenos de malos, interesantes de no interesantes, etc. Por tanto abrir sistemas y dejarlos sin claves es facilitar la vida a los virus. Estoy protegido pues no abro archivos que no conozco. Esto es falso, pues existen múltiples formas de contagio, además los programas realizan acciones sin la supervisión del usuario poniendo en riesgo los sistemas. Como tengo antivirus estoy protegido. En general los programas antivirus no son capaces de detectar todas las posibles formas de contagio existentes, ni las nuevas que pudieran aparecer conforme los ordenadores aumenten las capacidades de comunicación. Como dispongo de un firewall no me contagio. Esto únicamente proporciona una limitada capacidad de respuesta. Las formas de infectarse en una red son múltiples. Unas provienen directamente de accesos al sistema (de lo que protege un firewall) y otras de conexiones que se realizan (de las que no me protege). Emplear usuarios con altos privilegios para realizar conexiones puede entrañar riesgos. Organismos oficiales de seguridad informática Existen organismos oficiales encargados de asegurar servicios de prevención de riesgos y asistencia a los tratamientos de incidencias. Como el CERT/CC (Computer Emergency Response Team Coordination Center) del SEI de la Carnegie Mellon University son centros de alertas y reacción frente a los ataques informáticos, destinados a las empresas o administradores, pero generalmente estas informaciones son accesibles a todo el mundo.

6 Definiciones Autenticación Autorización Comunicación Segura Auditoria
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 Las estrategias de seguridad de aplicaciones se basan en resolver de la mejor forma los 3 siguientes problemas: Autenticación Autorización Comunicación Segura Autenticación: Es el proceso de identificar los clientes de nuestra aplicación. Estos clientes pueden ser usuarios finales, servicios, procesos o computadoras. En el caso de las aplicaciones Web, el usuario final es autenticado inicialmente por la aplicación Web. A la vez, los pedidos posteriores de este usuario son autenticados por las capas inferiores de software (servicios, servidores de bases de datos, etc.) Autorización: Es el mecanismo que controla en cada acceso a un recurso, que el cliente esté autorizado a acceder a dicho recurso. Recursos pueden ser archivos, bases de datos, tablas, tuplas, claves del registro, etc. Comunicación Segura: Algunas aplicaciones transmiten información sensible a través de las distintas capas de la aplicación. Ejemplos de información sensible son datos bancarios, números de tarjetas de crédito, etc. Otro ejemplo de información sensible son credenciales de usuario. Una comunicación segura de la información se brinda resolviendo los siguientes 2 problemas: Privacidad: Lograr que la información sensible no puede ser vista por agentes no autorizados. La privacidad de los datos se resuelve típicamente encriptando la información a transmitir. Integridad: Lograr que la información transmitida no sea modificada de forma accidental o mal Otro punto vinculado fuertemente a la seguridad de aplicaciones es la Auditoria. Auditoria: En el contexto de las aplicaciones, una auditoria es el estudio que comprende el análisis de accesos a los recursos que se quieren proteger. Ejemplos de recursos a proteger puede ser un archivo, un usuario, las tupla de una tabla, etc. La auditoria persigue el objetivo de dejar en evidencia posibles accesos (o intentos de acceso) no autorizados para tomar acciones correctivas

7 Sistema Operativo / Software de base
Capas tecnológicas Sistema Operativo / Software de base Aplicación GeneXus Datos DBMS Mensajes, txt XML, imagenes Con el fin de hacer mas facil el estudio de los posibles riesgos que implica una aplicación conviene dividir el estudio en diferentes ambitos / ambientes y una de las formas de hacerlo es por capas de software. Sistema Operativo / Software de base Implica todas las definiciones de seguridad que se realizan tanto en la definicion de usuarios, y las listas de autorizacion de los mismos. Es todo el software que mi aplicación necesita utilizar, o utiliza algun servicio de ellos. Por ejemplo Sistema Operativo, IIS, Tomcat, maquinas virtuales java, .NET, browsers, etc Aplicación Es la aplicación desarrolladas por nosotros, con sus opciones de configuracion Datos Es el area de base de datos, archivos, documentos, imagenes y todo lugar algo del sistema

8 Identificar Escenarios
Estudio de Seguridad Identificar Escenarios Estudio de Riesgos x Escenario Implementación de Medidas Evaluar

9 Identificando Escenarios SIGE-ERP
WIN Java Funcionarios Internet SQL Server WEB Java Autenticado Clientes EDI Java Clientes Mayores Web Público Java Público

10 Escenario I – Java Win Sql server
Aplicación GeneXus Java SQL Server JDBC Funcionarios Conexión con usuario único y fijo Dejar registrado quien modifica determinadas tablas Solo algunos usuarios pueden realizar operaciones “sensibles”.

11 Identificar Escenarios
Estudio de Seguridad Identificar Escenarios Estudio de Riesgos x Escenario Implementación de Medidas Evaluar

12 Estudio de Riesgos Capas   Problema Software de base Aplicación
Datos Autentica- ción Autorización Comunica-ción segura Auditoría

13 Estudio de Riesgos Escenario I - Java Win SQL Server
Capas   Problema Win /Linux Aplicación Java 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

14 Identificar Escenarios
Estudio de Seguridad Identificar Escenarios Estudio de Riesgos x Escenario Mitigando Riesgos / Medidas Evaluar

15 Estudio de Riesgos Escenario I - Java Win SQL Server
Capas   Problema Win /Linux Aplicación Java 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 de la aplicación Procesar Transaction Log

16 Autorización en la Aplicación Ambientes y Usuarios
Ambiente Facturación Nivel del usuario Operaciones Anular Factura 8 Usuarios Emitir Factura 5 Ver Factura 3 if Nivel( EALMEIDA, Facturacion) >= Nivel( Emitir Factura ) call(EmitoFactura) else Msg(‘Usuario no Autorizado’) endif

17 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 Operaciones Aplicación Procesar Transaction Log

18 Auditoria de datos y operaciones
Auditar modificaciones de datos Auditar operaciones de la aplicación Unificar tablas de auditoria facilita consultas Auditoria DBMS En lo referente a modificaciones de datos que realiza un usuario sobre la base de datos hay 2 grandes clases de información a auditar: Auditar cambios sobre tuplas de tablas con información sensible Operaciones de la aplicación La primera observación es que la información de auditoría que se registra en ambos casos tiene muchas similaridades. Hora Usuario PC Aplicación - Cualquiera de las 3 técnicas hacen un preprocesamiento con el objetivo de encontrar información interesante de auditoria Para grabarla en las estructuras de auditoria (típicamente un conjunto de una o varias tablas) Auditoria intrínseca del DBMS presenta generalmente dificultades para encontrar valer anterior – valor nuevo de columna de una tupla Ejemplos de auditoría intrínseca del DBMS: SQL Server Profiler Auditoría de Oracle MySQL server logs files (“general query log”, “binary log”, “sloq query log”) Tablas de Auditoria Aplicación GeneXus Operación Log Transaccional Triggers

19 Tablas de Auditoria

20 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

21 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 DBMSuser=sa Update DBMSuser=sa New //Bitacora Usuario=‘AWOLFF’ Programa=‘pFactura’ EndNew Begin Transaction . . . Commit SQL Server Transaction Log

22 Auditoria de Datos Procesando el Log transaccional
Log Transaccional “firmado” Carga Auditoria Base de Datos de auditoria Aplicación GeneXus UserId=AWOLFF SQL Server user=sa pass=xxx Consultas ApexSQL Log Tool Lista Tablas auditadas XML datos Auditoria

23 Operación (INS, UPD, DEL)
Triggers Aplicación Consulta de Auditoria Operación (INS, UPD, DEL) Tabla Trigger DEL Trigger (sobre una tabla): código ejecutable almacenado en el DBMS que se activa cuando ocurre un evento de Insert, Update o Delete Tablas de Auditoria Trigger UPD Trigger INS

24 Triggers II Ventajas Desventajas
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

25

26 Escenario II – ASP.NET/Oracle
IIS Aplicación WEB GeneXus .NET Oracle ADO.NET Usuario Internet Proteger credenciales del usuario en redes públicas Proteger privacidad de cierta información sensible Clientes heterogéneos

27 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

28 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 IIS En la comunicación Navegador – Servidor WEB hay 2 tipos de información a proteger: - Información de autenticación (credenciales, tickets) - Datos que el propio negocio declara como “sensibles” y se debe cuidar la privacidad de los mismos o que incluso existe una legislatura que obliga a cuidar cierta información. Casos típicos: números de tarjetas de crédito, información financiera, médica, etc. Aplicación WEB GeneXus .NET https (SSL) Browser Usuario/Contraseña Tarjetas de crédito Información financiera

29 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 Autenticación: En la aplicación Web descripta, las 3 formas de autenticación más comunes son: Windows Integrated Autenticación por Formulario de la aplicación (Forms/Custom Authentication) Basic Windows Integrated es un mecanismo de autenticación de IIS que resuelve muy bien el problema de transmitir de forma segura las credenciales del usuario, de cualquier forma para poder usarse este protocolo hay que cumplir algunos requerimientos que no siempre se pueden cumplir en redes heterogéneas como que el browsers sea Internet Explorer y no se encuentren detrás de un proxy. Por eso en algunos escenarios se opta por otro tipo de autenticación. - En el caso de Forms/Custom authentication es la aplicación quien pide usuario/contraseña al usuario a través de un formulario web. Si se usara http se estarían transmitiendo las credenciales del usuario como texto plano y cualquier atacante que escuchara la red obtendría la contraseña del mismo. Para que esta información se envíe de forma encriptada se debe usar https. Algunas optan por usar https en todos sus formularios, otras optan por usar https solo en el formulario de autenticación en el resto de los formularios usan http (ya que https tiene una penalización de performance sobre el servidor web) y cada vez que el usuario va a realizar una operación sensible (por ejemplo confirmar una compra) le solicitan nuevamente las credenciales al usuario a través de https ya que en este caso el ticket de autenticación con el cual operó el usuario pudo haber sido comprometido al ser transmitido por http y haber quedado en poder de un usuario malicioso. Si bien el ticket no contiene las credenciales del usuario (con lo cual la contraseña del usuario no corre peligro), el usuario malicioso puede operar “haciéndose pasar por” el usuario original - En el caso de Basic Authentication, es IIS quien solicita la autenticación del usuario. Si bien este protocolo de autenticación tiene la ventaja de ser ampliamente soportado por todos los navegadores ya que forma parte de la implementación del standard http, presenta una debilidad importante al transmite las credenciales del usuario como texto plano en cada request. Por este motivo si se usa Basic Authentication se debe configurar el virtual directory de la aplicación para que use el protocolo SSL. Comunicación Segura: Por último, para proteger el tránsito de información sensible del negocio también se debe configurar en IIS que el directorio virtual de la aplicación use el protocolo SSL. También podrían configurarse solo algunos formularios con https y el resto dejarlos con http.

30 Identificar Escenarios
Estudio de Seguridad Identificar Escenarios Estudio de Riesgos x Escenario Mitigando Riesgos / Medidas Evaluar

31 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

32 Seguridad en Aplicaciones GeneXus – Algunos consejos prácticos
Enrique Almeida – Alexander Wolff –


Descargar ppt "Seguridad en Aplicaciones GeneXus Algunos consejos prácticos"

Presentaciones similares


Anuncios Google