¿Cómo encuentran los hackers las vulnerabilidades de día cero? ¿Qué proceso hay para localizar algo tan específico?

Un exploit de día cero no es una cosa específica, es un exploit no descubierto y parcheado antes.

Los hackers lo encuentran de dos maneras, una es buscando activamente una. Por ejemplo, digamos que quieren explotar Adobe Acrobat Reader. Primero tienen que encontrar un error en esa aplicación para explotar. La forma más fácil de hacerlo es, por supuesto, bloquear la aplicación, como en, hacer algo que haga que entre en un mal estado y finalice.

El bloqueo suele ser el resultado de un error en el programa, lo que hace que entre en un estado que el programador no pretendía y, por lo tanto, es una puerta de entrada para explotar el software (con la entrada adecuada).

Para encontrar el accidente, hay muchas formas. El más común es el fuzzing, que le proporciona millones de entradas diferentes y espera que se bloquee. Para aplicaciones robustas como Acrobat Reader, eso generalmente no producirá nada. Muchos otros métodos más avanzados están disponibles.

Una vez que se encuentra el choque, debe ser diseñado por ingeniería inversa. El hacker necesita comprender qué está sucediendo exactamente en el programa y, por lo tanto, por qué se está bloqueando exactamente. Una vez que se da cuenta de eso, sabe exactamente cómo puede manipular ese bloqueo, hacer otra cosa en lugar de fallar (por ejemplo, perder algo de memoria, ejecutar algún código).

En ese momento, el pirata informático desarrolla un exploit, un script relativamente simple que proporciona información a la aplicación de una manera que hace que su error haga algo que el pirata informático espera, como ejecutar código desde Internet (malware).

Ahora este exploit se llama exploit de día cero. Permanece en el día cero hasta que se distribuye lo suficiente como para que las personas noten la existencia de ese error en ese software y lo denuncien, y así los proveedores comienzan a corregirlo. Entonces ya no será día cero, pero sigue siendo útil para todas las versiones antiguas de ese software que tienen el error restante.

La segunda forma en que los piratas informáticos encuentran exploits de día cero, que es la forma más común, es pasivamente. Simplemente están trabajando con una aplicación y se bloquea. Voila! Simplemente atajan el primer / más largo paso.

Usted revisa las actualizaciones de parches de seguridad actuales en el sitio web de un editor de software (o SO), en el momento en que salen.

“Día cero” significa que la actualización de seguridad aún no se ha publicado durante 24 horas. Por ejemplo, no todos actualizan su sistema operativo el mismo día que se publica la actualización, por lo tanto, son vulnerables a un vector de ataque conocido. Todo lo que un pirata informático debe hacer es mantenerse al tanto de las actualizaciones, leer específicamente lo que hace la actualización (qué agujero de seguridad parchea), determinar si es rentable y luego escribir malware u otra cosa nefasta para explotarla, sabiendo que los sistemas de todos no son todo actualizado todavía (y la actualización automática podría estar deshabilitada). Por lo tanto, cuanto más rápido el hacker escriba su código desagradable y lo distribuya, mayores serán las posibilidades de éxito. La ironía aquí es que, por ejemplo, Microsoft está informando al mundo específicamente de la vulnerabilidad en el momento en que se lanza el parche, lo que proporciona a los hackers detalles sobre la vulnerabilidad sobre la cual actuar inmediatamente. La idea es que la mayoría de las personas no actualizan su software en las primeras 24 horas y tienen la actualización automática desactivada.

Ejemplo:

Documento informativo sobre seguridad de Microsoft 4025685

Generalmente los encuentran programadores y programadores. Pueden mirar a través del código y encontrar un error de seguridad o algo así. Un exploit de día cero es solo un exploit que el creador o los desarrolladores no conocen. Por lo tanto, los piratas informáticos suelen descomponer el código y realizar ingeniería inversa hasta que encuentran el día cero. No creo que haya ningún programa que encuentre exploits de día cero para usted. Tienen que encontrarlos ellos mismos.

Hay muchas vías que podrían llevar a alguien a descubrir un día cero. Probablemente podría ocurrir como un esfuerzo más concertado cuando alguien mira específicamente ciertas características y trata de enfocarse en eso o podría resultar de una manipulación más casual.