Funcionamiento de los antivirus
Los antivirus utilizan distintos tipos de mecanismos para detectar virus. Como demostró Frederick Cohen ningún método es totalmente efectivo para identificar un virus. Los tipos de mecanismos más usados por los antivirus para detectar virus son:
- Basados en Firma de virus: El antivirus dispone de una base de datos en las que almacena firmas de virus. En el pasado estas firmas eran hashes con los que se intentaba ajustar todos los ficheros del equipo analizado. Esta medida es fácil de eludir cambiando cualquier instrucción del código y el hash resultante no coincidiría con ninguna firma de la base de datos. No tardó en sofisticarse esa técnica y se empezó a intentar buscar una secuencia de bytes concreta en cada muestra de malware que lo identificara, así de esta manera, tendrías que saber que parte del código es con la que han identificado tu binario para modificarla y no ser detectable. Es habitual el uso de reglas Yara para declarar patrones específicos para detectar un malware concreto. Para luchar contra estas firmas en los malware se emplearon codificadores que modificaban todo el código del binario. Ejemplos de codificadores son el básico XOR o el “Shikata ga nai” de Metasploit que añadía una capa de polimorfismo, generando una cadena de bits diferente cada vez que se produce la codificación. También surgieron los packers que encapsulaban el código dentro del binario y lo cifraban, de tal manera que las firmas no eran capaces de ser útiles. La debilidad de estos sistemas es que en el código hay que añadir las instrucciones necesarias para el desempaquetado del código y eso puede generar firmas que identifiquen un binario como potencialmente malicioso.
- Basados en Detección heurística: Consiste en el escaneo de los archivos buscando patrones de código que se asemejan a los que se usan en los virus. Ya no es necesaria una coincidencia exacta con una firma de virus almacenada si no que se buscan similitudes más generales aplicando algoritmos.
- Basados en Detección por comportamiento: consiste en escanear el sistema tras detectar un fallo o mal funcionamiento. Por lo general, mediante este mecanismo se pueden detectar software ya identificado o no, pero es una medida que se usa tras la infección.
- Basados en la Detección por caja de arena (o sandbox): consiste en ejecutar el software en máquinas virtuales y determinar si el software ejecuta instrucciones maliciosas o no. A pesar de que este mecanismo es seguro, toma bastante tiempo ejecutar las pruebas antes de ejecutar el software en la máquina real.
- Basados en la Detección por inteligencia artificial: consiste en el uso de tecnologías de inteligencia artificial para detectar comportamiento malicioso. Ejemplos de antivirus que san estas tecnologías son MIT AI2 (desarrollado por el MIT y IBM Watson for Cyber Security (desarrollado por IBM).
- Basado en Indicadores de compromiso (IDC): Una vez los IDC han sido identificados pueden ser utilizados para la detección temprana de intentos de ataque que utilizan sistemas antivirus.
Los antivirus tradicionalmente se ejecutan en el sistema analizado y utiliza la red para actualizar su software y datos. Los antivirus en la nube lo que hacen es delegar la mayor parte del procesamiento del antivirus en la nube. Hay que establecer decisión de que procesamientos son lo suficientemente importantes como para incluirlas en el cliente local sin saturar y cuáles deberían permanecer en un servidor en la nube. Las principales ventajas que se tienen son: acceso más rápido a actualizaciones de software y datos (no depender de actualización manual o de las actualizaciones automáticas programadas), el cliente del antivirus en el equipo a analizar es mucho más pequeño y requiere poco procesamiento dejando recursos para nuestro uso, facilidad de uso e instalación. Las principales desventajas son: dependencia con respecto a la conexión, posibles problemas de privacidad al enviar datos a la nube y posible foco de infección secundaria al subir datos a la nube.
Fuente: Wikipedia