Si bien se sugiere con frecuencia que esta disminución general
se debe a la ineficacia de la industria antivirus, o a su deseo de
aferrarse a un modelo de detección de virus específicos,
no es esta la causa del problema.
Un factor importante que contribuye
con esta situación es la creciente sofisticación de los
autores de código malicioso, que han desarrollado un amplio
rango de enfoques para minimizar la susceptibilidad de sus productos
a la detección heurística, y que prueban su eficacia
en base a analizadores adecuadamente actualizados y configurados.
El problema es más conflictivo ahora que hace unos pocos años atrás, cuando se consideraba (al menos por los desarrolladores) una especie de bonificación adicional si un producto antivirus detectaba algo más
que virus.
Actualmente, los virus (por ejemplo los programas con una funcionalidad
multiplicativa identificable), son solo una porción muy pequeña
del conjunto de programas maliciosos [17].
En
cierto sentido, esto dificulta mucho más el trabajo de los analizadores:
conceptualmente es simple detectar un virus heurísticamente si se
puede desenmarañar suficientemente el código para determinar
que su intención es multiplicarse, aunque no siempre es técnicamente
posible detectar un programa de este tipo.
Determinar automáticamente
que un programa es un robot (bot),
o cierta clase de troyano, o simplemente malicioso, es un desafío
mucho mayor. [5]
Analicemos el ejemplo clásico: una aplicación que formatea
un disco no es malicioso por definición, de hecho, tal vez esa sea
su función única
y evidente.
Sin embargo, si el usuario del ordenador ejecuta este
programa, creyendo que verá una película o que mejorará su
acceso a Internet, es razonable considerarlo malicioso.
El problema
real en este tipo de casos, reside en establecer un algoritmo
que discrimine en base al conocimiento que tiene el usuario acerca del propósito
de la aplicación, y de la intención del programador, más
que analizando una característica del código.
Si no podemos establecer una heurística confiable para distinguir
los intentos maliciosos, de todos modos podemos aplicar otro tipo de heurística
y asignar un puntaje conveniente a cada programa.
Una aplicación cuyo
código tiene un parecido cercano a un programa malicioso conocido,
tendrá un puntaje alto.
Existen muchos comportamientos diferentes
que pueden disparar señales de alerta, de acuerdo al contexto, por
ejemplo al abrir un canal de IRC, o un SMTP (Simple Mail Transfer Protocol,
Protocolo simple de transferencia
de correo electrónico) o
un mecanismo de transferencia de archivos.
El análisis de los archivos
ejecutables puede señalar muchas irregularidades de la codificación,
tales como parches sospechosos y combinaciones de marcas, inconsistencias
en el encabezado, indicaciones de diferencias de tamaño, y demás.
El contexto más amplio, en el cual se descubre un programa posiblemente
malicioso, también
puede brindar claves sobre su naturaleza.
El análisis de los mensajes
podría indicar similitudes con algún programa de envío
de correo masivo conocido, o un troyano que se disemina por este
medio.
Incluso,
podría contener información útil, como la contraseña
de un archivo cifrado.
A pesar de que algunos analizadores tienen esta capacidad, sería demasiado optimista esperar que un motor de análisis heurístico busque automáticamente
una frase de acceso secreta (passphrase),
especialmente en un mensaje con un alto porcentaje de contenido gráfico.
Las posibilidades de detectar este tipo de frases podría ser más
alto en un mensaje que se parece a otros mensajes maliciosos.
Los mensajes que transportan programas dañinos, o localizadores
de recursos (URL, Uniform Resource Locator) también podrían parecerse a otros tipos de medios maliciosos, como correos masivos o mensajes de falsificación
de sitios.
Los programadores de virus y de aplicaciones de envío de correo no deseado, han estado compartiendo técnicas entre sí durante muchos años: la evidencia muestra una creciente confluencia de intereses entre estos dos grupos anteriormente disímiles.
A menudo se espera que los analizadores de correo electrónico detecten
este, y otros tipos de abuso, además del código
malicioso puro.
Los análisis de tráfico, podrían mostrar
patrones asociados con actividad maliciosa, como aplicaciones
de envío
de correo masivo, correo no deseado y fraudes generados por botnets (redes
de ordenadores robot) y demás.
Por estas razones, el análisis
(heurístico o no) de las puertas de enlace en busca de correo basura,
puede sumar un aporte considerable a la eficacia de la detección de
código
malicioso.
Sin embargo, es absolutamente falso creer que en un futuro cercano veremos
los altos porcentajes de detecciones proactivas que obteníamos en los primeros días del análisis heurístico,
por mucho que les pese a los usuarios y a los desarrolladores.
Los autores de código malicioso tienen otras prioridades.
Más que en un enfoque expansivo (máxima diseminación
de una sola variante), ahora su técnica se basa en breves ráfagas
de una determinada instancia de código malicioso, que podría
estar dirigido a individuos o grupos específicos.
Aun pequeños
cambios como una rápida serie de rutinas en tiempo de ejecución
diseñadas para modificar las huellas de un programa, pueden reducir
la detección (heurística o no) y limitar los recursos incluso
en los laboratorios más
grandes del rubro.
Las formas de código malicioso que utilizan tecnología botnet frecuentemente,
para actualizarse y modificarse a sí mismas, son muy difíciles
de detectar una vez que se han instalado en un ordenador comprometido.
Sin embargo, no hay motivos para entrar en pánico: hemos convivido con estos problemas durante muchos años.
La higiene sensata del ordenador, las buenas prácticas de emparchado,
y las actualizaciones frecuentes de las aplicaciones contra código
malicioso aún brindan una buena protección.
No
solamente eso: la sofisticación cada vez mayor de las técnicas
de virtualización y emulación, junto con el análisis
heurístico,
siguen siendo un componente poderoso y en continuo perfeccionamiento
del arsenal de la industria de seguridad.
Sin embargo, ni los desarrolladores de aplicaciones antivirus, ni los
adeptos a las tecnologías alternativas del momento pueden asegurar
que son capaces de detectar todas las amenazas futuras proactivamente.
La clave, entonces, radica en mantener las expectativas dentro de límites
realistas.