Hola,
Siempre que me preguntan por las mejores prácticas para operar con banca en línea tiendo a hacer el mismo comentario: además de aplicar el sentido común, la mejor manera de prevenir problemas desde el punto de vista técnico es hacer uso de la banca a distancia a través de máquinas que no corran sistemas Microsoft, y si no hay posibilidad o conocimientos, al menos operar en la banca en línea a través de sistemas virtualizados no Microsoft.
No es una recomendación que haga por tener nada en contra de Redmond. Los troyanos orientados a capturar credenciales están diseñados el 99,99% de las veces para funcionar en plataformas Windows, con lo que los agentes maliciosos, simple y llanamente, no funcionan en sistemas que no son Microsoft. Conviene comentar en este punto la excepción de Mac OS, un sistema no Microsoft para el cual sí existen amenazas cada vez más representativas, que aún siendo menos relevantes y abundantes que las diseñadas para plataformas Windows, no deben ser menospreciadas.
Los troyanos más usuales son aquellos orientados a modificar el sistema operativo y sus aplicaciones para, con la máxima transparencia para el usuario, provocar la captura de sus datos financieros, no sólo usuario y contraseña, sino las claves de operaciones y las coordenadas de sus tarjetas (cuando el servicio dispone de doble factor de autenticación/confirmación de operaciones). Así, es frecuente encontrar ejemplares que inyectan código HTML en navegadores, especialmente en Internet Explorer, no sólo para capturar login y pass, sino para inyectar después elaborados formularios HTML donde se insta a los usuarios a introducir la totalidad o parte de su tarjeta de coordenadas. Son frecuentes también los especímenes que capturan todo el tráfico GET/POST en determinados dominios pertenecientes a las bancas en línea, con la esperanza de poder comprometer así datos como la clave de operaciones.
También se han visto ejemplares, menos numerosos, orientados a explotar problemas en Firefox, aunque su número es muy inferior a los que están orientados a Internet Explorer. También los hay que pasan del navegador, ya que actúan sobre el sistema, como por ejemplo, los que modifican los DNS para transportar al usuario a páginas maliciosas, independientemente del producto de navegación que utilicen.
Sea como fuere, a día de hoy, los troyanos se diseñan para funcionar principalmente en Windows. Las razones son varias, siendo la principal que es la plataforma mayoritaria, y por tanto, atacándola, se maximizan la dispersión y rentabilidad de los ataques. Me juego una cena con quien quiera a que la mayoría de factorías de malware, especialmente las últimas en la cadena (las que compran y modifican malware, no las que desarrollan en sí los especímenes) no están capacitadas para programar agentes maliciosos en entornos UNIX, pero este tema no lo vamos a discutir ahora :)
Otra buena razón para que el malware mayoritario esté pensado para plataformas Microsoft y en menor medida, pero creciente, para Mac OS, es el modelo de software privativo con cobro por licencias, que hace que muchos usuarios descarguen software ilegal de redes de pares y servicios de filesharing en vez de adquirirlos de una manera legítima, pagando las correspondientes licencias. Una buena parte del malware reside y se dispersa mediante los cracks y keygens que acompañan descargas ilegales de software. Es frecuente ver también ejecutables acompañando a los ficheros ZIP o RAR que contienen álbumes musicales, o en las colecciones de fotos pornográficas. También abundan en las redes de pares ficheros maliciosos diversos que explotan vulnerabilidades de reproductores multimedia.
El objetivo de este texto es describir cómo podemos acceder a nuestra banca mediante un sistema virtualizado, lo que neutralizará la mayoría de probabilidades de sufrir un robo de credenciales. Y con la gran ventaja de emplear productos seguros y sin coste alguno para el usuario. Adicionalmente hablaremos de:
- Los riesgos que no mitiga el uso de una máquina virtual no Microsoft.
- Las características que debe tener un servicio de banca en línea para minimizar las probabilidades de sufrir fraude consumado.
- Las actitudes que harán que la probabilidad de sufrir fraude sea la menor posible.
Cómo acceder a un servicio de banca en línea a través de una máquina virtual
1. Descargar e instalar Sun VirtualBox xVM
Este producto se puede descargar gratuitamente en http://www.virtualbox.org/wiki/Downloads. El artículo está orientado a usuarios Windows, con lo que hay que descargar e instalar la versión for Windows hosts . Lo normal es instalar la versión x86, a no ser que tengas un AMD 64 y un Windows 64 bits (lo que a día de hoy, no es lo habitual)
Una vez ejecutado, el aspecto que debe presentar el producto debe ser similar al siguiente:
2. Descargar una distribución Linux para ejecutar en la máquina virtualizada
Opciones en este punto hay muchas, pero por tradición os aconsejo Slax. Se puede descargar en http://www.slax.org/get_slax.php?download=iso. Una vez descargado este fichero ISO (190 MB ocupa la versión 6.0.9) lo colocaremos en una ruta fácil de recordar, por ejemplo, C:\Virtualizacion
3. Preparación de la máquina virtual
Los pasos a seguir son los siguientes:
- Pulsar «Nueva máquina virtual», lo que disparará un asistente para crear la máquina. Pulsamos «Next» (el producto tiene una curiosa mezcla entre inglés y español y hay algunas secciones no traducidas)
- En la pantalla, damos nombre a la máquina virtual y seleccionamos el tipo de sistema a virtualizar. No pasa nada si no lo especificamos, pero como sabemos que Slax es Linux, así lo hacemos constar. Una vez terminado, pulsamos «Next».
- Especificamos el tamaño de la memoria base que será asignada a la máquina virtual. Se recomiendan 256 MB, pero podemos ampliar tranquilamente a, por ejemplo, 1024 MB.
- Para asignar disco duro, nos encontramos con que de entrada, no hay disco duro asignado. Pulsamos «Nuevo» y se dispara un nuevo asistente para crear el disco duro a utilizar por la máquina virtual.
- Seleccionamos, dentro del asistente, «Imagen de expansión dinámica», lo que creará un espacio adaptativo para las necesidades de disco duro de la distribución a ejecutar.
- Damos tamaño al disco duro asignado, por defecto aparecen 8 GB, pero se puede reducir tranquilamente a una cantidad más razonable, por ejemplo, 1 GB. Pulsamos «Next» cuando hayamos terminado este paso.
- Pulsamos «Finish» para finalizar el proceso de creación del disco duro, lo que nos devolverá a la pantalla «Disco Duro Virtual» que habíamos encontrado antes, pero con la diferencia de que ahora ya tenemos un disco duro asignado. Pulsamos «Next» y luego «Finish» para terminar el asistente.
- Una vez hayamos completado los pasos anteriores, el aspecto que debe tener la aplicación debe ser similar al siguiente:
- Toca por último asignar la imagen ISO de Slax que hemos descargado como el sistema a ejecutar. Para ello pulsamos en «Configuración» y dentro de ese menú, en el submenú «CD/DVD ROM». Marcamos la casilla «Monta la Unidad de CD/DVD» y seleccionamos el tipo «Archivo de Imagen ISO». Pulsamos el icono a la derecha de la opción «Archivo de Imagen ISO» y agregamos la imagen ISO. Se dispara un nuevo asistente:
Pulsamos «Agregar» y seleccionamos la imagen ISO que hemos descargado (la que hemos guardado en C:\Virtualizacion). Cuando hayamos localizado la imagen pulsamos «Seleccionar». Retornamos al menú anterior, el cual debería presentar un aspecto similar al siguiente:
- Pulsamos «Aceptar», y ya estamos en condiciones de ejecutar la máquina virtual.
4. Ejecución de la máquina virtual
Basta con pulsar el botón «Iniciar» en la pantalla principal de Sun VirtualBox xVM. Debería presentarse la siguiente ventana:
La mejor opción es la ejecución con entorno gráfico KDE, que se disparará automáticamente. Suele ser normal que aparezca un mensaje de memoria baja, dependiendo de la reserva de memoria que hayamos hecho antes. Aunque este error no bloquea la máquina, hace recomendable aumentar la cantidad de RAM asignada a la máquina para que funcione adecuadamente. Esto se puede hacer en el menú «Configuración» de Sun VirtualBox xVM.
Finalmente, tras la carga, el sistema se inicia. Ya tenemos un Linux Slax corriendo virtualizado, con el que podemos navegar a nuestra banca en línea tranquilamente. Con un doble click en la ventana, el teclado y el ratón funcionarán en la máquina virtual. Si queremos hacerlo en el sistema Windows, pulsamos el botón control derecho, y saldremos de la máquina.
5. Navegar con la máquina virtual
Slax cuenta con un cuidado aspecto gráfico y contiene numerosas aplicaciones, entre las que está Konqueror. Como la máquina virtual toma la configuración de red de la máquina Windows subyacente, no hay que configurar nada. Estamos listos para navegar.
El objetivo de todo lo que hemos hecho es poder acceder a nuestra banca en línea a través de un producto ajeno a los problemas de seguridad y condiciones de contorno que explotan habitualmente los troyanos. Al emplear una máquina virtual basada en UNIX, los troyanos mayoritarios no funcionarán, sencillamente, porque no pueden funcionar en un entorno Linux. Tampoco funcionarán las amenazas específicas orientadas a Internet Explorer, Firefox sobre Windows y en general, a cualquier amenaza que intente explotar problemas de seguridad en Windows y los productos que lo suelen acompañar (Java, Flash, etc). Pero no es oro todo lo que reluce …
¿De qué NO protege una máquina virtual?
Aunque la ganancia en seguridad en nuestras operaciones en línea es más que notoria, la virtualización no es la panacea, y existen algunas problemáticas que no se resuelven empleando estas soluciones:
- Phishing convencional y en general, cualquier ataque de ingeniería social. Si sigues un enlace falso que te lleva a una página modificada, e introduces tus datos, da igual que lo hagas en Linux o en Windows: tus datos estarán en manos de los atacantes.
- Sniffing o captura de tráfico. El tráfico provocado por nuestras acciones en la máquina virtual sale a Internet por el mismo adaptador que el sistema Windows, con lo que el tráfico generado puede ser capturado por agentes maliciosos. Desde el punto de vista del adaptador, si la banca opera en HTTPS (la amplia mayoría lo hace hace tiempo), el tráfico que podemos capturar estará cifrado y será inservible. Sin embargo, un proxy instalado entre el navegador y la salida a red podría capturar en claro nuestros datos, aunque esta posibilidad es descartable empleando una distribución como Slax, ya que requiere contaminación en origen, la cual, aún siendo factible, es de escasa probabilidad.
- Contaminación de nuestro enrutado. Si nuestro router está comprometido, es posible redirigir el tráfico a páginas maliciosas desde el hardware (routers, principalmente), aunque hayamos tecleado en el navegador de la máquina virtual una página legítima. Esta probabilidad, aunque existe, es de reducida probabilidad, pero debe ser tenida en cuenta.
- Contaminación de la distribución en origen. No es algo frecuente, pero ha sucedido. Este problema se puede solventar comprobando que las sumas de control del fichero ISO que descargamos coinciden con los anunciados por los autores de la distribución.
- Facilitar las claves y las tarjetas de coordenadas a otras personas. Da igual si usas Windows o Linux. Si le das las claves a alguien, esa persona puede ejecutar en tu nombre operaciones, con lo que conviene extremar las precauciones en este sentido.
- En general, gestionar mal la conservación confidencial de las claves, facilitando que en un evento de pérdida, despiste o sustracción alguien se haga con la totalidad de elementos necesarios para operar.
¿Qué características en un servicio de banca en línea dificultan la consumación del fraude?
- Tráfico HTTPS, por las razones que hemos comentado anteriormente.
- Empleo de doble factor. Los dobles factores pueden estar en la autenticación, en la confirmación de operaciones o en ambos sitios. La ventaja de disponer de doble factor de autenticación es impedir el acceso a nuestros datos financieros a los usuarios ilegítimos, que aunque no puedan operar en ausencia de claves de operación, pueden obtener un perfil para ejecutar acciones de extorsión.
- Alertas al móvil. Un sistema que nos envíe un mensaje cada vez que realizamos una operación o cambiamos una clave puede ayudarnos a identificar preventivamente un acceso ilegítimo.
- Servicio real 24×7 de atención telefónica y bloqueo, para poder requerir, ante la sospecha de compromiso, el bloqueo de nuestra cuenta en línea, así como de los productos financieros asociados (tarjetas, especialmente). Estos servicios deben además ser preventivos, ejecutando autónomamente bloqueos ante la sospecha de contaminación.
- Existencia de límites para operaciones. La existencia de límites permite mitigar para los distintos canales el importe de las cantidades que nos pueden sustraer, en caso de que finalmente seamos víctimas de un fraude.
¿Qué actitudes minimizan los riesgos de ser vícitmas del fraude?
- Navegación prudente y responsable. No visitar enlaces dudosos es una garantía de éxito. Extremar las precauciones en las redes P2P de intercambio, donde es frecuente encontrar malware.
- Mantenimiento adecuado del sistema operativo y sus aplicaciones. Tener al día los productos, instalando los parches recomendados, es siempre un factor mitigante.
- Aunque maniobremos en Internet con una máquina no Microsoft, conviene tener instalado y actualizado un producto antivirus, para minimizar los impactos restantes que procedan del correo, de la mensajería instantánea, de las redes P2P, etc.
- Sentido común. Recelar de lo sospechoso siempre conduce a la toma de decisiones adecuadas.
Un saludo para todos,
Buen artículo. Quería hacer una pregunta:
¿Esto protegería contra los «key-loggers», si hay alguno en el windows?
Imagino que no, ya que se supone que registran todo lo que se teclee. Pero no se si al capturar el teclado y el ratón desde la máquina virtual, estos no son accesibles desde el sistema anfitrión.
Otra cosa de la que tener cuidado, «key-loggers» por hardware:
http://deckerix.tuxfamily.org/leerArticulo.php?post=164
Muchas gracias.
Duda,
Te responderé con cautela, porque no te puedo dar una respuesta 100% veraz sin ejecutar las pruebas, y la verdad, no me había planteado esa prueba. La verdad, es un tema interesante que merece que comentemos.
Cuando tecleamos algo en la máquina virtual, estamos realizando pulsaciones en el teclado físico que son enviadas al «interior» de la máquina virtualizada, pero no dejan de ser pulsaciones que antes de «entrar» en el sistema virtualizado, han sido efectuadas fuera de él.
Por tanto, en caso de que el sistema que alberga la máquina virtual está comprometido con un keylogger, creo factible la captura de esos datos en virtud de lo expuesto. No obstante, insisto en que sería interesante ejecutar la prueba, ya que yo no puedo darte certeza al 100% sobre este particular.
No obstante, esto tiene fácil solución. Podemos tener en una carpeta de red un fichero de texto plano cifrado, en el que estén el login y la clave. Si abrimos, copiamos y pegamos, el efecto del keylogger queda anulado.
Gracias por tu aportación. Si localizas información sobre este asunto, coméntala. Me interesa :)
Saludos,
Hola.
Respecto de key-loggers, en efecto, la máquina virtual está expuesta. Como bien decía Sergio, la contaminación en este caso está en el origen.
Existen aplicaciones que «simulan» el controlador de teclado y encriptan las pulsaciones que vayamos realizando desde teclado y posteriormente lo entregan en claro al controlador final. Una especie de teclado virtual.
Pueden ayudar.
Un saludo.
Zebra,
Gracias por tu aportación. Creo que esos complementos pueden darle mucha más seguridad a la operativa con máquinas virtuales.
Si quieres dejarnos algún enlace, adelante. Te lo agradeceremos todos :)
Un saludo,
Algunos enlaces que he encontrado:
http://cactusdigital.net/hackers-descifran-radiaciones-electromagneticas-teclado
http://www.logadmin.net/2007/05/quin-dijo-que-los-teclados-virtuales-de.html
http://ares.cnice.mec.es/informes/17/contenido/36.htm
Hola de nuevo !! (aunque un poco tarde)
Con la expresión teclado virtual no me refería en concreto a las aplicaciones de captura mediante el ratón que disponen algunas, cada vez más, entidades financieras, incluso con variaciones en la propia disposición de las «teclas», que como apunta Sergio en uno de los enlaces también puede tener sus problemas.
Yo actualmente utilizo KeyScrambler (free for personal use) para Firefox que, como indicaba, realiza la encriptación de las teclas que pulsamos. A saber de algún spyware o similar que se coloque detrás del interfaz del mismo antes del teclado (habría que comprobar si esto es posible o produce conflicto de controlador).
Un saludo y Feliz Año (con retraso…).
PD: Sergio, seguramente cuando nos veamos en persona alguno de estos días por Málaga te recordaré quien soy. Estudiamos juntos en la época de instituto – en la misma clase (qué días aquellos…). Te sigo desde tu blog desde hace tiempo. Un abrazo de tu ex-compañero de infancia Javi.
Ah, lo siento, los enlaces fueron de «duda».
Un saludo y disculpa por el lapsus.
Otro teclado virtual que he encontrado:
http://www.visualbeta.es/7685/navegadores/virtual-keyboard-interface-un-teclado-virtual-a-traves-de-greasemonkey/
Al ser un script, el código está disponible. Y el greasemonkey creo que también se puede ver el código.
Perdón por el duplicado. Parecía que no lo enviaba…