
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.
El antivirus que lo detecta todo
sábado, noviembre 29
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario