Enviado por seguridadinformatica.es en September 21, 2007 a 11:03am
Este trabajo es parte de una tesis doctoral. En este artículo se reportan solamente algunas de las políticas principales. Este trabajo proporciona un estudio de la seguridad sobre el entorno de Internet Banking. La meta es proporcionar un conjunto de políticas de seguridad que toman en cuenta la mayoría de los controles del estándar ISO27001. Incluidas en tales políticas se definen: metodología de programación segura, implantación del Sistema Operativo, del Sevidor Web, etc; con el fin de poder implementar un sistema no vulnerable frente ataques de tipo phishing y pharming.
El proceso se ha estudiado para ser aplicado fácilmente con el mínimo impacto debido a la actualización del sistema actual de Internet Banking. El método propuesto, además de ser resistente a ataques de tipo phishing y pharming, es resistente a ataques “man in the middle” (MITM), ingeniería social, buffer overflow, SQL Injection, Cross Side Scripting (XSS), etc.
El método propuesto tiene la ventaja de proporcionar seguridad también en entornos hostiles, como puede ser el de una máquina del cliente infectada por troyanos bancarios, capaces de capturar los datos de acceso a la web del banco. En este proyecto se propone el uso de un proceso de mutua autentificación y subraya la ineficacia de los certificados digitales para autenticar la entidad financiera. El usuario en la mayoría de los casos no sabe distinguir entre uno válido y uno no válido, o también muchas otras veces el usuario ni siquiera se fija en estos detalles y acepta sin más el certificado. Además no es la mejor idea hacer residir la seguridad de las actividades bancarias on-line en certificados digitales, ya que el protocolo podría verse afectado (como lo fue en el pasado) por alguna vulnerabilidad que en condiciones particulares pondría en peligro al usuario.
1. Introducción
Diferentes técnicas y estándares se han desarrollado para proporcionar seguridad de la información en diversos usos, pero actualmente no existe ninguna para una aproximación metodológica a la seguridad de las actividades bancarias en Internet. Sin embargo, hay un aumento del número de nuevos ataques y de virus contra páginas Web de entidades financieras, tales como "fraudes phishing" y "pharming", los cuales habría que solventar para garantizar la confianza y seguridad de los clientes de los servicios bancarios on-line.
Este artículo describe políticas de seguridad relativas a los aspectos siguientes:
2. Estado del arte
Muchas instituciones financieras ofrecen diferentes servicios bancarios on-line a sus clientes, con diferentes niveles de funcionalidad. La protección de la información en estos servicios también se implementa con diferentes técnicas, y puede que sea más vulnerable frente a un ataque que otro.
En un nivel general, la mayoría de los sistemas de gestión de la seguridad de la información siguen las directivas especificadas en el estándar ISO/IEC 27001 [1]. Esta especificación proporciona las reglas generales para la selección de los controles apropiados de la seguridad para proteger nuestro activo más importante: la información.
En el nivel específico de la seguridad de las actividades bancarias de Internet, la situación es diferente. No hay un estándar establecido para los servicios bancarios en entorno Web, pero hay algunos manuales orientados a este particular entorno. Algún ejemplo de estos puede ser el Payment Card Industry (PCI) Data security Standard (DSS) [2]. Además algunas organizaciones del gobierno han publicado sus propios manuales, por ejemplo en el caso de América, “the electronic banking guides” manuales creados por el Office of the Comptroller of the Currency (OCC) [3], los procedimientos “e-banking examination” creados por el Federal Financial Institutions Examination Council (FFIEC) [4], o las especificaciones creadas por el Federal Trade Commission (FTC) [5].
Nuestro trabajo pretende proporcionar un estudio completo de las vulnerabilidades y posibles medidas de salvaguarda presentes en entorno de Web Banking.
3. Modelo Lógico
Nuestra aproximación al estudio de seguridad para web banking se basa en el siguiente modelo lógico:
Entre estos elementos, el menos configurable es Internet. En este entorno consideramos no poder imponer medidas de salvaguarda o especificaciones. En el caso del entorno del cliente tenemos que tomar en consideración el caso peor. Esto nos permitiría el lujo de poder efectuar movimientos bancarios de forma “segura” en cualquier entorno, afectados por troyanos, keyloggers, sniffers, virus, etc.
Por último, en el caso del servidor de la entidad bancaria, aquí se necesita un gran nivel de seguridad, ya que es nuestro entorno de confianza (no para el usuario, ya que la entidad bancaria podría ser suplantada) y es donde podemos forzar e implementar medidas de seguridad. Nuestro modelo considera ambas partes mutuamente de no confianza, implicando la necesidad de la mutua autenticación y de la necesidad de las máximas medidas de salvaguarda.
Nuestro modelo se basa en los siguientes aspectos: seguridad de la aplicación bancaria web, servidor web del banco, red del banco, contraseñas, y otras políticas de seguridad.
4. Principios de Seguridad
Nuestro modelo se basa en el teorema principal:
De este teorema se deducen los corolarios [7]:
5. Políticas de seguridad
5.1.1 Autenticación
Los sistemas Web banking, como todos los servicios web, usan el protocolo HTTP. Sólo se debe de usar HTTPS y las variables tienen que pasarse por método POST. Es muy importante que sólo se acepte POST, ya que un usuario malicioso podría crear una página y enviar conjuntamente POST y GET.
Para nuestro entorno el mejor método de autenticación es la mutua autenticación, esto nos permite evitar o por lo menos detectar el phishing y pharming sin comprometer la integridad de la cuenta web bancaria. El orden en el cual se efectúa la autenticación, como muchos otros factores, es importante y hay que implantar muchas medidas de salvaguarda en cuanto se trata de un proceso muy delicado; una simple falta de un detalle llevaría a un resultado catastrófico.
Buena parte de la investigación efectuada se ha dedicado a la definición de vulnerabilidades, al análisis de riesgo y la búsqueda de medidas de seguridad capaces de satisfacer nuestras necesidades; ha sido necesario definir muchas medidas de salvaguarda para que el método de mutua autentificación propuesto sea robusto frente a las actualmente conocidas amenazas en entorno web.
El sistema de mutua autenticación propuesto detecta intentos de suplantación y bloquea el atacante (IP y/o cuentas web del atacante y/o del atacado). Además nuestro sistema promociona la seguridad también cuando el entorno cliente está comprometido (virus, “man in the middle”, troyanos bancarios) y también en el caso de phishing y pharming.
5.1.2 Sesión
La sesión es un elemento muy importante en entorno web, ya que a menudo se usa para identificar el usuario después del proceso de login; si la sesión es vulnerable la cuenta podrá ser comprometida. Algunos requerimientos de seguridad definidos para la sesión son: la sesión tiene que ser cifrada, validada, tiene que tener una longitud igual o superior a 64 dígitos, tiene que tener un time out de 15 minutos, etc.
5.1.3 Validación de datos
La validación de datos de entrada y salida es un factor determinante para la seguridad de la aplicación: cualquier deficiencia en el proceso de validación podría ser letal y hacernos vulnerables.
Antes de efectuar la verdadera validación se pasa la entrada por filtros detectores de ataques y posteriormente se efectúa la canonicalización (UTF-8 para URLs) y a continuación es posible validar según longitud, rango, tipo, caracteres permitidos, no permitidos, etc. Durante el proceso de definición de los requerimientos es importante respetar las filosofías básicas como denegar por defecto, permitir sólo lo permitido y otorgar el mínimo privilegio.
Cuando ocurre un fallo de validación (si no se reconoce como ataque) se gestiona como una sospecha de ataque, un ataque con peso reducido.
5.1.4 Logs
Los logs son importantes para muchos fines como la detección de ataques y errores, verificación de la correcta funcionalidad, realización de análisis forenses y otros. En esta política se ha definido la información y eventos por auditar y los requerimientos de seguridad.
Un ejemplo de información a rastrear son los intentos de inicio de sesión realizados correctamente e incorrectamente, la actividad de usuario, etc.
5.1.5 Gestión de errores
Un usuario malicioso podría tomar ventaja de un mensaje de error y usarlo en un futuro ataque. Es muy importante efectuar una correcta y completa gestión de errores y excepciones y redirigir los errores a la página que gestiona los errores.
5.5 Seguridad de plataforma
Este conjunto de políticas gestiona la seguridad de la plataforma bajo diferentes aspectos como seguridad del servidor, del sistema operativo y sistema de ficheros, base de datos, red, etc. Requerimientos generales y detallados se han proporcionado para los diferentes entonos, tal y como entorno Windows y Unix.
5.5.1. Seguridad en el Sistema Operativo
Seguridad en Windows
En esta sección se definen los requerimientos de seguridad para el sistema operativo Windows, algunos de ellos son: usar sólo software original, estar al corriente en términos de parches, eliminar todo lo viejo y lo no necesario, cambiar o quitar los banners, revisar periódicamente privilegios y fortaleza de passwords, cifrar el fichero SAM, tener actualizado el antivirus, restringir las sesiones nulas, filtrar puertos de NetBios, etc.
Seguridad en Unix/Linux
En esta sección hemos definido las medidas de salvaguarda a implantar para sistemas Unix, hemos promocionado seguridad bajo diferentes aspectos como: auditar periódicamente las contraseñas y cuentas y privilegios de usuarios, asegurar el Lilo/Grub, usar fichero shadow para almacenar las contraseñas, permitir sólo contraseñas seguras, no permitir conexión con usuario root de forma remota, cambiar los banners, asegurarse contra ataques de enlace simbólico, etc.
5.5.2 Base de Datos
La base de datos es un elemento muy sensible y necesita de un nivel alto de seguridad; confidencialidad e integridad tienen que proporcionarse por defecto. Toda la información almacenada en la base de datos se ha clasificado según niveles de sensibilidad y por cada nivel se han definido unas reglas de comportamiento para almacenaje, envío, eliminación, etc.
Además se han definido los requerimientos de seguridad a cumplir, tales como implementar ACL, efectuar copias de seguridad, cifrar la información sensible, habilitar logs, borrar configuraciones y cuentas por defecto, que la base de datos sea normalizada a la 5ª forma normal, etc.
5.5.3 Servidor Web
En esta política se han proporcionado reglas generales, a nivel de seguridad, para la implantación y configuración del servidor web de la entidad bancaria. Particulares procedimientos han sido definidos para los servidores web más usados: Microsoft IIS y Apache. Alguna de las reglas generales definidas son: estar al corriente en términos de parches, separar partición de sistema y partición de datos, ejecutar los servicios con el mínimo privilegio posible, no permitir listado de directorios, etc.
5.5.4 Seguridad de Red
Se propone la implantación de una DMZ, donde estará ubicado el servidor web de la entidad bancaria, la parte frontend y la backend tienen protección perimetral proporcionada por un firewall. Además se requiere el uso de sistemas detectores de intrusos (IDS). Por razones de eficiencia se aconseja implantar dos IDS, uno en la frontend y el otro en la backend.
Se propone la implantación de un sistema redundante y muy tolerante a fallos que hace uso de warm site, discos de tipo RAID, redundancia de los dispositivos y configuraciones en fail-over.
5.6 Política de contraseñas
En esta política se definen los requerimientos para las contraseñas. Se definen límites como longitud mínima, espacio de caracteres a usar, bloqueo por número de intentos fallidos, tiempo de bloqueo y también se proporciona un listado de acciones no permitidas como la de compartir la contraseña que la contraseña pertenezca a palabras de diccionario o sea similar al nombre de usuario, almacenar la contraseña de usuario en un formato reversible, el uso de contraseñas débiles, etc.
5.7 Soporte
Esta política define los procedimientos y requerimientos para peticiones de servicios por parte de los clientes. Se gestionan tareas como petición de cambio de contraseña entrega de tarjeta, denuncia y anulación de claves/tarjetas comprometidas/perdidas/robadas y solicitudes de cambio de límites o datos personales.
6 Conclusiones
Nuestro objetivo era el de proponer medidas de salvaguarda para lograr un entorno de web banking resistente a las condiciones más adversas, como pueden ser ataques de tipo phishing y pharming y entornos comprometidos del cliente por troyanos bancarios, virus, etc.
El objetivo ha sido alcanzado y el sistema propuesto resulta ser robusto gracias a la implantación de diferentes medidas de salvaguarda que proporcionan seguridad bajo diferentes entornos hostiles tales como ataques Man in the Middle, inyecciones de SQL, Cross Side Scripting, presencia de malware en el lado cliente, desbordamiento de buffer y obviamente bajo ataques de tipo phishing y pharming.
Tal y como se ha mencionado anteriormente, el sistema propuesto ha sido pensado para poderse adaptar a la infraestructura actualmente usada por las entidades bancarias que implique el mínimo impacto y coste.
Referencias
[1] ISO/IEC 27001 (2005): Tecnología de la información -- Gestión de un sistema de seguridad de la información
[2] http://www.pcisecuritystandards.org/
[3] http://www.occ.treas.gov/
[4] http://www.ffiec.gov/
[5] http://www.ftc.gov/
[6] http://www.sqlsecurity.com/FAQs/SQLSecurityChecklist/tabid/57/Defau...
[7] http://www.owasp.org/
Autor: Antonio San Martino, Xavier Perramon


© 2008 Creado por seguridadinformatica.es
Informar de un problema | Retroalimentación | Privacidad | Términos del servicio
¡Necesitas ser un miembro de seguridad informatica - Red social para añadir comentarios!
Únete a esta red