¿Qué es una vulnerabilidad de día cero?
Una vulnerabilidad denominada Zero-Day se refiere a un agujero en el software que se desconoce para el vendedor. Este agujero de seguridad es explotado por hackers antes de que el vendedor se dé cuenta y lo arregle. Los usos de los ataques de día cero pueden incluir la infiltración de malware, spyware o permitiendo un acceso no deseado a la información del usuario. Una vez que la vulnerabilidad se conoce, comienza una carrera para el desarrollador, que debe proteger a los usuarios.
Exploit Zero-Day
Este tipo de vulnerabilidad es una en la que se aprovecha la seguridad el mismo día en que la vulnerabilidad se conoce generalmente. Hay días cero entre el momento en que se descubre la vulnerabilidad y el primer ataque. Normalmente, cuando alguien detecta que un programa de software contiene un problema de seguridad potencial, esa persona o compañía notificará a la compañía de software para que se pueda tomar medidas. Dado tiempo, la compañía de software puede solucionar el código y distribuir un parche o una actualización de software.
No hay un método de detección que sea altamente confiable, sin embargo, hay dos cosas que podrían ayudar en gran medida a un administrador, la primera es la gestión de parches. El efecto de este método será algo limitado ya que el ataque aún se desconoce y ningún parche estaría disponible para abordar la explotación. Sin embargo, si todos los sistemas están actualizados, el alcance del ataque podría ser limitado y el atacante solo puede causar un daño mínimo, mientras que las amenazas adicionales están contenidas.
Además, con un sólido sistema de gestión de parches y un sistema de exploración de vulnerabilidad en su lugar, un administrador recibirá una notificación tan pronto como se realiza el ataque a las compañías públicas. Estas dos soluciones de software importantes permiten al administrador tomar una acción proactiva hasta que se libere un parche o solución. El administrador también se notificará cuando el parche para el ataque al día cero se haga público, lo que minimiza así la ventana de la oportunidad para que se realice un ataque.
La segunda opción es usar una buena solución antivirus. Un ataque de día cero no se convierte en conocimiento público por un período de tiempo y durante ese período, el programa antivirus no detectará ningún archivo que contenga esta vulnerabilidad específica utilizando técnicas de análisis de patrones estándar. Sin embargo, las soluciones antivirus efectivas no dependen únicamente de las definiciones antivirus para detectar amenazas. Un buen antivirus también utiliza una técnica llamada análisis de heurística.
Esta técnica no solo busca ciertos patrones en un archivo, sino que también analizará lo que realmente hace el archivo durante su ejecución normal. Dependiendo del comportamiento del archivo, un antivirus puede clasificar el archivo como un virus si se detecta un comportamiento sospechoso. Esta técnica puede ayudar a detectar una amenaza cero aunque nadie sabe de la existencia de la vulnerabilidad.
Mientras que las soluciones antivirus que utilizan los análisis heurísticos pueden ser una gran arma contra el malware de día cero, no hay garantía de que el comportamiento de malware siempre se clasifique como malicioso. Sin embargo, cuando AV se acopla con una estrategia de administración de parches sólidas, el administrador tiene una defensa mucho más fuerte contra la infección por amenazas cero.
¿Qué son las heurísticas?
En general, está bien entendido que los programas antimalware (incluidos los antivirus) funcionan al escanear archivos usando firmas que ya tienen. Una firma podría ser tan simple como una cadena o compleja como una pequeña macro o subrutina que le dice al motor de escaneo qué buscar y dónde buscar. El escaneo de la firma funciona muy bien para detectar amenazas que ya se han identificado, pero ¿cómo los programas antimalware detectan nuevas amenazas previamente invisibles? Uno de los métodos utilizados es la heurística.
En la informática, un heurístico es un algoritmo que realiza sistemáticamente rápidamente y/o proporciona buenos resultados. Pero para el software antimalware, también puede tener un significado más especializado: Heurístico se refiere a un conjunto de reglas, a diferencia de un conjunto específico de instrucciones del programa, que se utiliza para detectar un comportamiento malicioso sin tener que identificar de manera única al programa responsable de ello, que es cómo funciona un «escáner de virus» basado en la firma clásica, es decir, identificando el virus informático específico u otro programa.
Un motor heurístico utilizado por un programa antimalware incluye reglas para lo siguiente:
- Un programa que intenta copiarse a otros programas (en otras palabras, un virus informático clásico)
- Un programa que intenta escribir directamente al disco.
- Un programa que intenta permanecer residente en la memoria después de que haya terminado de ejecutar
- Un programa que se descifra cuando se ejecuta (un método que se usa a menudo por malware para evitar escáneres de firma)
- Un programa que se une a un puerto TCP / IP y escucha las instrucciones a través de una conexión de red (esto es prácticamente lo que un bot, también a veces llamado zombies)
- Un programa que intenta manipular (copiar, eliminar, modificar, cambiar el nombre, reemplazar a los siguientes) archivos que son requeridos por el sistema operativo
- Un programa que es similar a los programas ya conocidos por ser maliciosos.
Algunas reglas heurísticas pueden tener un peso mayor y, por lo tanto, puntuar más, que otras, lo que significa que es más probable que una coincidencia con una regla en particular indique la presencia de software malicioso, al igual que las múltiples coincidencias basadas en reglas diferentes.
Las heurísticas aún más avanzadas pueden rastrear las instrucciones en el código de un programa antes de pasarlo al procesador de la computadora para la ejecución, lo que sin duda resulta anticipado ante algún tipo de ataque o amenaza. Un motor heurístico podría estar examinando los procesos y estructuras en la memoria, la parte de datos (o carga útil) de los paquetes que viajan a través de una red y así sucesivamente. Finalmente, la ventaja del análisis heurístico del código es que puede detectar no solo variantes de los programas maliciosos existentes, sino también programas maliciosos, previamente desconocidos, también.