El antivirus que lo detecta todo

No es broma, las nuevas estrategias en la detección de código malicioso apuntan a ese objetivo que puede sonar utópico. No quiere decir que nos estemos acercando al antivirus perfecto, sino que los nuevos enfoques de las soluciones de seguridad intentan identificar tanto al malware como a los ficheros legítimos, tratan de clasificar todo.

Si nuestro ordenador fuera una discoteca el antivirus sería el portero,
el encargado de decidir quién puede pasar y quién no a divertirse en
nuestro local. Dependiendo de lo exclusiva que sea nuestra discoteca, la dirección podría haber ordenado al portero que siguiera una de las
siguientes estrategias:

(1) sólo dejar pasar a las personas VIP y conocidas según una lista
(lista blanca).

(2) no dejar pasar a aquellas personas reconocidas como problemáticas
(lista negra).

Con la estrategia (1) nuestra discoteca sería demasiado elitista, ya que
no permitiría entrar a gente nueva o desconocida hasta que no hubiera
sido dado de alta en la lista blanca. Un verdadero incordio y no sería
operativo. En el caso (2) nuestro local estaría más animado y
evitaríamos a los individuos peligrosos reconocidos, que en un principio
no eran demasiados, así que la dirección de la discoteca apostó por esta opción.

El de los antivirus siempre había sido un mundo de listas negras,
estrategia número (2), con firmas y patrones para detectar al código
malicioso e impedirles que pudieran entrar o ejecutarse en nuestro
ordenador.

Con el tiempo se vio que esa estrategia era insuficiente, ya que había
mucho malware de nueva creación que no se encontraba en la lista negra (se les colaban muchos indeseables). La lista negra requería ser
constantemente actualizada y, aun así, no era suficiente. Se apostó por
potenciar la heurística, que en el caso de nuestro portero vendría a ser
una orden similar a la siguiente:

(3) no dejar pasar a personas que por sus características te parezcan
sospechosas o que pudieran causar problemas

Con la entrada de la heurística la discoteca tuvo algunos problemas, el
portero sospechó de gente VIP y no les dejó entrar. Así que la dirección
le dijo al portero que utilizara también una pequeña lista blanca para
reconocer a esas personas y no impedirles su entrada por error. De esta forma el portero comenzó a utilizar al mismo tiempo las estrategias (1), (2) y (3) de forma complementaria.

De esta misma forma el uso de listas blancas comenzó a ser más popular entre los antivirus, si bien solía limitarse a corregir y prevenir
falsos positivos, para no dar por malware o virus un fichero legítimo
muy conocido. Ya sabéis, detectar como malware el notepad.exe sería como negarle la entrada a nuestra discoteca a Pilar Rubio. Imperdonable.

Pasó el tiempo y la discoteca seguía teniendo incidentes y problemas de seguridad. Aun teniendo una lista negra, heurística y lista blanca,
seguían colándose muchos indeseables al local. La dirección pidió al
portero que aumentara su nivel de heurística, más paranoia a la hora de impedir el paso a personas que aparentemente pudieran dar problemas.

En el mundo de los antivirus hemos visto ese aumento de paranoia en
heurísticas más agresivas, por ejemplo aquellas que detectan como
malware un fichero por el simple hecho de estar tratados con un
“packer”.

Con la nueva heurística más paranoica aumentaron las reclamaciones a la dirección de la discoteca. A muchas personas que no eran tan famosas como para estar en la lista VIP o pequeña lista blanca se les negaba la entrada al local por parecer sospechosas a ojos del portero.

La discoteca estaba en crisis. Si aumentaba la heurística y paranoia del
portero tenían reclamaciones por impedir la entrada a personas
legítimas. Si disminuía la heurística se le colaban demasiados
indeseables.

En esa situación se encuentra la industria antivirus actual: una lista
negra actualizándose constantemente (hay antivirus que se actualizan
varias veces cada hora); una heurística agresiva para detectar nuevos
especímenes que no estén en su lista negra; y una lista blanca más
pequeña, y que se actualiza menos, para evitar meter la pata
excesivamente detectando como malware algún software muy conocido y/o extendido. El resultado es de crisis técnica, siguen teniendo muchos
problemas como en la discoteca, o bien están detectando como malicioso software legítimo, o bien se les sigue colando en cantidad malware de verdad, o en el peor de los casos ambas cosas.

Una de las soluciones podría ser tener una lista blanca muy grande y
actualizarla constantemente, como en el caso de la lista negra. Eso
limitaría el número de falsos positivos y las heurísticas podrían
concentrarse en aquellos ficheros totalmente desconocidos, que no están ni en la lista negra ni en la lista blanca, y que deberían ser un número más reducido.

De esta forma un antivirus podría tener un primer dictamen muy rápido
dado un fichero: o se encuentra en la lista negra y por tanto es
malicioso, o se encuentra en la lista blanca y no necesito analizarlo, o
lo marco como desconocido “lista gris” y le aplico una heurística
agresiva, o les hago un seguimiento especial (monitorización del
comportamiento), o lo paso a cuarentena a la espera de un proceso que permita tener un dictamen más o menos fiable.

Esta nueva estrategia requeriría manejar unas listas blancas y negras
muy grandes, y actualizarlas constantemente, para minimizar el número de ficheros que podrían caer en la lista gris (desconocidos). Eso se traduce en el consumo de un mayor número de recursos por parte del antivirus local: imaginemos que el portero tiene que consultar dos
listados de millones de registros cada vez que alguien quiere entrar a
nuestro local. En el PC significaría mayor consumo de memoria y CPU,
amén de una constante actualización de los ficheros de firmas a través
de Internet.

La solución a este problema de recursos viene de la mano de lo que se ha dado por llamar “cloud computing”, tan de moda desde hace un tiempo, y que no es más que traspasar parte del trabajo a un servidor remoto con una enorme capacidad de almacenamiento y proceso (lo que se conoce por “la nube”). En vez de tener que consultar unas enormes listas negras y blancas en el ordenador local, con el consiguiente consumo de recursos, esa consulta se hace a través de Internet a un gran servidor centralizado (un cluster de servidores) que devuelve al PC el resultado, si ese fichero está en su lista negra o blanca.

Con este enfoque el número de ficheros desconocidos disminuye y, por
tanto, el antivirus local puede centrarse en ellos con heurísticas o una
monitorización del comportamiento con mayor detenimiento para dictaminar si es un código malicioso o no. La otra ventaja es que ese dictamen local puede traspasarse a la nube, a los servidores centralizados, en tiempo real, de forma que ese malware nuevo descubierto en un PC formará parte de la lista negra y prevendrá a otros sistemas que realicen a posteriori una consulta sobre ese fichero en particular. Incluso, dependiendo de la estrategia del antivirus, los ejecutables desconocidos podrían ser enviados al servidor centralizado donde podría ser analizado automáticamente con mayores recursos informáticos o ser trasladado a un analista humano si el dictamen automático no es concluyente.

Esta realimentación constante, entre PCs y servidores centralizados que permite el “cloud computing”, está produciendo listas negras y blancas con millones de firmas o registros que serían inviables tener de forma local en un PC, y nos acercan un poco más a la utopía del antivirus que es capaz de detectar casi todo.

No sería de extrañar que a corto o medio plazo, dado un análisis a
demanda de un disco duro, un antivirus pudiera llegar a darnos un log
completo (identificando todos los ficheros), indicando cuales son
benignos según su lista blanca, cuales son malware según su lista negra, y aplicando un coeficiente de mayor o menor peligrosidad según
heurística a los archivos desconocidos.

Volviendo a nuestro portero, imaginemos que la discoteca ha contratado un sistema de reconocimiento facial que conecta automáticamente a un servidor centralizado que mantiene una gran base de datos de personas y sus antecedentes. Una cámara en la puerta automáticamente va capturando imágenes de las caras de las personas que quieren entrar, las envía al servidor centralizado donde se compara con su base de datos, y devuelve al portero en tiempo real si es alguien de confianza, si es alguien problemático, o si no tiene información de esa persona.

El portero puede ahora, de forma instantánea, permitir o denegar la
entrada según la respuesta del sistema, y sólo tendrá que utilizar su
heurística con unas pocas personas (las que el sistema no reconozca). Al ser pocas personas a las que debe aplicar la heurística podrá hacerlo
con más detenimiento, desde pedir documentación a cachearla, actuaciones que antes no podía realizar de forma indiscriminada por un problema de volumen y recursos. Si detecta que un desconocido lleva un arma, además de impedirle la entrada al local, se informa automáticamente al servidor centralizado que mantiene la base de datos, realimentando el sistema.

Como el mismo servidor centralizado da servicio a muchas discotecas, el sistema se alimenta de la información y actuaciones individuales de
muchos porteros en tiempo real. Además recoge información adicional que puede ser útil a la hora de correlacionar datos.

Visto así esta estrategia parece un avance importante para el mundo de lo antivirus, pero no es la panacea. El problema sigue siendo el mismo, dictaminar si un fichero es malicioso o no. Incluso puede que los
errores al dictaminar sean más graves, si marcamos por error que un
archivo es benigno y se cataloga en la lista blanca es más que probable
que se deje actuar a ese código en cualquier ordenador local a sus
anchas o, en el mejor de los casos, aplicándole análisis heurísticos o
de comportamiento más relajados en el sistema local. Imaginemos un
delincuente que está marcado como confiable en el sistema de
reconocimiento facial, entraría a todas las discotecas automáticamente y el portero no se molestaría en prestarle mayor atención.

Los servidores centralizados deberían tener mecanismos de reanálisis y
depuración de sus clasificaciones, para detectar errores tanto de
malware que se haya asignado a las listas blancas como de software
legítimo que han entrado por error en las listas negras. Tarea no
sencilla si tenemos en cuenta los volúmenes en los que pueden moverse las colecciones de ficheros, lo que implica automatización y por ende
dictámenes con un margen de error no despreciable.

Por lo tanto estos nuevos antivirus que tienden a intentar identificarlo
todo, tanto el malware como los ficheros legítimos, no necesariamente
tienen que ser más fiables. Una cosa es que lo identifiquen todo o casi
todo, otra cosa es que esa identificación sea correcta. Lo que si es
cierto es que las estrategias basadas en el “cloud computing” suponen un plus importante en la detección del malware, especialmente con
especímenes muy nuevos, dada la actualización en tiempo real de las
bases de datos que se consultan y la correlación centralizada de datos
que se puede realizar gracias a la realimentación constante que producen los antivirus conectados al servicio.

En definitiva, el “cloud computing” y el uso masivo de listas blancas
son una capa más a sumar al antivirus tradicional, pero no deberían por
si solos convertirse en solución de seguridad. Sus beneficios se pueden
notar ya en las primeras soluciones antivirus que lo están implantando,
sus debilidades tampoco se harán esperar.

Opina sobre esta noticia:
http://www.hispasec.com/unaaldia/3687/comentar

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: