¿Qué necesita el malware para lograr su objetivo?

Un sistema operativo o una aplicación pueden ser atacados por un malware siempre que sean capaces de ejecutar un programa que no es parte del sistema o de la aplicación. Este requisito, en general, lo cumplen todos los sistemas operativos populares, muchas aplicaciones de oficina, programas de edición de imágenes, y otros softwares con lenguajes script integrados.

A lo largo de las últimas décadas, una innumerable cantidad de virus informáticos, gusanos y troyanos fueron creados para la mayoría de los principales sistemas operativos y aplicaciones. Sin embargo, existe un pequeño número de sistemas operativos y aplicaciones menos conocidas en las que aún no se han detectado amenazas informáticas. Entonces, ¿cuál es la diferencia entre estos dos grupos?
El malware para un sistema operativo o para una aplicación específica surge cuando se cumplen simultáneamente tres condiciones:

  • Popularidad o uso generalizado de un sistema operativo específico;
  • Disponibilidad de documentación: el sistema operativo debe estar documentado de manera adecuada y suficiente.
  • Vulnerabilidades en el sistema: el sistema operativo debe estar desprotegido, o contar con ciertas vulnerabilidades de seguridad.

Cada una de las condiciones nombradas es una condición necesaria para que aparezcan programas maliciosos que pueden atacar un sistema.

El sistema operativo debe ser popular, sólo así logrará capturar la atención de al menos un criminal cibernético o de un hacker. Si únicamente existen unas pocas copias de un sistema operativo, es muy poco probable que éste sea atacado. En caso contrario, si el fabricante de un sistema operativo logra que su producto se distribuya de manera masiva, lo más probable es que atraiga el interés de los hackers y los creadores de virus.

Naturalmente, esto nos lleva a la conclusión de que cuanto más popular sea un sistema operativo o una aplicación, tanto más serán víctimas de ciberataques. La práctica apoya esta conjetura: la cantidad de programas maliciosos creados para Windows, Linux y Mac OS X guarda una estrecha correlación con las cuotas de mercado de cada uno de estos sistemas operativos.

Se requiere la disponibilidad de la documentación completa por una razón evidente: un creador de virus (generalmente, un programador) necesita disponer de una descripción técnica para saber cómo usar los servicios del sistema operativo y cómo crear aplicaciones ejecutables en dicho sistema. Por ejemplo, los fabricantes de teléfonos móviles no dieron a conocer ninguna documentación de sus productos cuando se produjo el cambio de siglo. Por lo tanto, ni los productores de software legítimo, ni lo cibercriminales podían crear programas para estos dispositivos. Tanto los teléfonos que soportan Java como los Smartphone poseen una documentación detallada sobre cómo desarrollar aplicaciones para estas plataformas. Debido a esto, constantemente emergen nuevas muestras de malware creados específicamente para estos dispositivos.

Las vulnerabilidades en el software pueden ser de programación (un error en el código del programa que permita que un virus pueda colarse y obtener el control total sobre el sistema) o lógicas (formas legales o documentadas de penetrar en los sistemas). Si un sistema operativo o una aplicación cuentan con alguna vulnerabilidad, tal sistema estará abierto a que cientos de programas maliciosos lo ataquen, aunque esté bien protegido.

Desafortunadamente, no existen ejemplos de sistemas operativos o aplicaciones multifuncionales abiertas y ampliamente conocidas. La máquina virtual de Java satisface parcialmente la condición de protección: esta máquina ejecuta aplicaciones Java en modo sandbox, es decir, que controla estrictamente todas las acciones de la aplicación potencialmente peligrosas.

De hecho, no existen virus reales o troyanos que hayan tomado la forma de aplicaciones Java y hayan durado mucho tiempo, con la excepción de virus de prueba que son prácticamente inviables en la vida real. Las aplicaciones Java maliciosas sólo se producen cuando se descubren nuevos métodos para sortear el sistema de seguridad incorporado en la máquina Java.

Los sistemas operativos de teléfonos móviles regulares (que no son teléfonos inteligentes, y que no soportan programas de Java externos) pueden ser un buen ejemplo de sistemas protegidos ampliamente utilizados. Los nuevos programas no se pueden instalar en estos sistemas, a pesar de que existe una documentación sobre cómo crear software para ellos. Por lo tanto, por un lado, estos sistemas están severamente limitados en su funcionalidad, y no se pueden ampliar. Pero, por el otro, no existen virus en estos sistemas.

La plataforma BREW es otro ejemplo de un sistema cerrado frente a los virus. Los teléfonos móviles que ejecutan esta plataforma, sólo permiten la instalación de aplicaciones certificadas con firmas criptográficas y distribuidas únicamente a través de proveedores de servicios móviles. Si bien los productores de software de terceros también son contratados, y existe una documentación detallada, cada aplicación debe ser certificada, lo cual ralentiza el desarrollo de nuevos programasw y complica sus procesos de negocio. Como resultado, este sistema no puede contar con una gran popularidad o una gran selección de aplicaciones, en comparación con sus competidores.

Difícilmente podamos imaginar que sistemas operativos de escritorio como Windows o Mac OS X se basen en estos mismos principios. Si esto fuera así, el desarrollo de software por parte de compañías independientes sería mucho más difícil (quizás imposible), el rango de servicios Web sería mucho más estrecho y los procesos de negocio serían mucho más lentos. El mundo sería un lugar muy diferente – más lento, más apagado y privado-. La cruda realidad nos muestra que los daños causados por los ataques de malware son, en realidad, el precio que pagamos por vivir en un mundo donde las altas tecnologías están sometidas a una evolución vertiginosa.