Banca Electrónica: nuevos vectores de ataque

RESUMEN

En este informe, realizado por Hugo Vázquez Caramés, de Pentest, se presenta un perfil de los resultados obtenidos en el estudio de los mecanismos de seguridad utilizados habitualmente por el sector de la banca electrónica, en concreto el sistema de firma para operaciones de riesgo. Dicho perfil demuestra que independientemente de la solución empleada (teclados virtuales, tarjetas de coordenadas, ... (ver resumen completo)

 
ÍNDICE
EXTRACTO GRATUITO

Las metodologías que se describen en el siguiente informe no son nuevas ni presentan ninguna técnica "desconocida" o novedosa en cuanto a la base técnica en la que se sustentan. El presente informe, sin embargo, sí que muestra un nuevo enfoque en el uso de las técnicas "tradicionales" de intrusión para conseguir romper la seguridad de los sistemas de firma que utiliza la banca electrónica. Las conclusiones que se desprenden del estudio son que, actualmente, la gran mayoría de métodos de "firma" que utiliza la banca electrónica son susceptibles de verse comprometidos por toda una serie de vectores de ataque.

Resumen ejecutivo

El acceso en Internet a las aplicaciones web de uso restringido, se protege normalmente mediante una combinación de usuario y contraseña que se debe facilitar antes de entrar en la zona "privada". La banca on-line emplea además como sistema de seguridad adicional, y para las operaciones de riesgo, un mecanismo de protección conocido habitualmente como "firma". Cuando un usuario desea realizar una transferencia entre cuentas por ejemplo, se le solicita que se identifique (que firme). Esta identificación se lleva a cabo de distintas maneras en función del banco: unas entidades utilizan teclados virtuales, otras una tarjeta de coordenadas, otros dispositivos físicos que generan claves de un solo uso, etc.

Lo que tienen en común todos estos sistemas de firma, es que están destinados a identificar al usuario que realiza la operación, para esa operación en particular. Dicha identificación se realiza gracias a una información que el usuario envía al servidor. La confianza de este mecanismo de seguridad, radica principalmente en que la "información" que el usuario envía solo autoriza dicha operación, de manera que para cada gestión bancaria hay que volver a introducir la "firma" correspondiente. Este mecanismo es muy propio del sector de la banca y se viene utilizando para evitar cierto tipo de ataque muy conocido en el mundo de la seguridad informática.

Resumen técnico

La protección de las aplicaciones web viene siendo desde hace varios años uno de los mayores retos de los programadores. La dificultad de la protección de dichas aplicaciones radica en gran parte en que el protocolo de base que se utiliza para las comunicaciones entre el cliente y el servidor (http/https) no es seguro. Uno de los mayores problemas del protocolo http, es la inexistencia de un Page 12 mecanismo de seguimiento de sesión que sea formalmente seguro. Desde hace muchos años vienen realizándose distintas propuestas relativas a dichos mecanismos, por ejemplo la RFC 2109 de Febrero de 1997, la RFC 2964 y 2965 de Octubre de 2000, etc., o las posteriores propuestas de algunos fabricantes en concreto.

La problemática de la inseguridad del seguimiento de sesión en comunicaciones http ha intentado solventarse en el entorno bancario mediante el uso de un mecanismo de validación (la firma) que adolece de un contexto de sesión, y que por lo tanto en principio no es vulnerable a ataques de secuestro de sesión. La "firma" en el sector de la banca electrónica, es aquella identificación que se le solicita al usuario cada vez que este quiere realizar una operación "delicada". Esta identificación, independientemente del método empleado (teclados virtuales, tarjetas de coordenadas, "tokens", claves de un solo uso, o combinaciones de varios de los anteriores) tiene por objeto validar al usuario solo para esa operación en concreto.

Generalmente esta validación se pide en el último paso de confirmación de una operación de riesgo (por ejemplo una transferencia económica), y únicamente valida los datos enviados en el paso del formulario antes mencionado. El siguiente informe pretende mostrar como este esquema de validación, que se emplea para evitar la suplantación de identidad es vulnerable a los mismos ataques que se vienen empleando para secuestrar sesiones http, utilizando las mismas técnicas, únicamente en un contexto y unas circunstancias distintas a las habituales.

Siendo estrictos, este informe no presenta ninguna técnica nueva ni innovadora, sin embargo, sí demuestra que la aplicación de las técnicas de ataque "clásicas", en ciertos escenarios, y haciendo uso de un poco de imaginación pueden poner en riesgo gran parte de los sistemas de firma actualmente en uso por el sector de la banca electrónica. En el siguiente texto se hace referencia a conceptos como "Inyección de Código", "Cross Site Scripting", "Envenenamiento de Caché", "Sesión http", "Identificador de Sesión", "Cookie", "Secuencia" o "Estado" de una sesión, etc. La explicación detallada de cada una de estos conceptos particulares no es el objetivo de este documento, por lo que se recomienda estar familiarizado con dicha terminología.

>1 Objetivo del documento

El presente documento tiene por objeto mostrar nuevas estrategias o vectores de ataque a los sistemas de autentificación de banca electrónica. Este documento está basado en la investigación concreta de una entidad bancaria, y sus conclusiones afectan a un ámbito lo suficientemente amplio como para poder aplicarse a cualquier entorno web, aunque son de especial interés sus repercusiones en el entorno de la banca.

Este documento NO tiene por objeto convertirse en una guía de explotación práctica, ni ser una referencia para llevar a cabo acciones ilegales sobre sistemas telemáticos. Toda la información que se muestra a continuación, se ha obtenido lícitamente mediante la observación del comportamiento lógico de una aplicación. Sus conclusiones son el fruto de un minucioso estudio sobre un sistema de banca online. Las técnicas que se explican pueden no ser aplicables directamente en muchos casos.

2. Escenario común precedentes
2.1. Primer nivel de validación

Los sistemas de banca on-line, habitualmente utilizan dos niveles de autentificación. El primer nivel es el que se emplea para dar acceso al usuario a su entorno de banca electrónica, es decir, es el primer usuario y contraseña que pide el aplicativo. Con esta validación, el usuario puede realizar tareas de "supervisión", puede ver datos, pero no modificarlos (generalmente). Esto supone, poder comprobar el estado de las cuentas, su saldo, etc. Este primer nivel, puede usar distintos tipos de autentificación: usuario y contraseña estáticos, tarjeta de coordenadas, "token" físico, etc. Sea cual sea el método de validación, una vez autenticado, el usuario (su navegador) obtiene una serie de identificadores de sesión y/u otros parámetros que le sirven al servidor para llevar a cabo el seguimiento del cliente. Es decir, que el servidor, mantiene el estado de la sesión y puede diferenciar a varios clientes gracias a esta información que ambos extremos de la...

Para continuar leyendo

SOLICITA TU PRUEBA