Estoy tratando de entender por qué un atacante querría esperar para utilizar un exploit de día cero.
He leído que un atacante no quiere desperdiciar el día cero porque, en primer lugar, suelen ser muy caros de obtener, pero no me queda claro qué se entiende aquí por "desperdiciar". Los días cero pueden ser descubiertos por la comunidad (por ejemplo, investigadores de seguridad), lo que los haría inútiles. En este sentido, el día cero se ha desperdiciado por la inacción del atacante. ¿Existe el riesgo de utilizar el exploit de día cero demasiado pronto? Parece que un atacante querría minimizar las posibilidades de que se descubra el día cero y, por tanto, utilizarlo lo antes posible.
Pregunta: ¿Qué factores harían que el atacante esperara para utilizar un exploit de día cero?
**Es más probable que se queme un día 0 usándolo que sentándose en él.
Hay un delicado equilibrio entre esperar un 0day tanto tiempo que alguien lo descubra y lo parchee, y usarlo demasiado pronto e innecesariamente, quemarlo. El equilibrio tiende a inclinarse a favor de esperar más, ya que un buen 0day va a ser lo suficientemente oscuro como para que no se descubra rápidamente. En realidad, el mayor riesgo no es el descubrimiento en ese caso, sino la obsolescencia, cuando el código vulnerable se reescribe o se elimina por razones completamente ajenas, y el exploit del 0day deja de funcionar.
La mayoría de las veces, sin embargo, un atacante simplemente no necesita utilizarlo. Si tengo un valioso exploit de escalada de privilegios local de Linux, ¿por qué iba a usarlo cuando un poco de reconocimiento extra me dice que puedo usar un exploit antiguo contra un demonio privilegiado parcheado incorrectamente? Mejor guardarlo en el fondo para días lluviosos.
Hay algunas otras razones por las que los 0days pueden ser guardados por largos periodos:
Algunas personas simplemente acumulan 0días porque sí. Esto es demasiado frecuente.
Tal vez le hayas pedido prestado el 0day a alguien, en cuyo caso quemarlo le cabrearía.
El 0day puede ser inútil por sí solo, necesitando ser encadenado con otros exploits para funcionar.
Hubo una [interesante investigación](
presentada en BH US que analizaba la vida de los 0days.Porque los métodos antiguos son los mejores. ¿Por qué gastar un costoso 0-day cuando puedes usar un ataque SMBv1 o SQLi que te dará el mismo resultado? Usar un 0-day puede resultar en el descubrimiento de una respuesta forense reduciendo el valor y eliminando el número de objetivos contra los que será efectivo.
Desde el punto de vista del atacante, un exploit de día cero es un recurso valioso porque no se conoce públicamente. Esto da al atacante el elemento sorpresa cuando se despliega realmente, ya que el objetivo no será capaz de defenderse proactivamente contra él.
Cada vez que se utiliza una vulnerabilidad de día cero, existe la posibilidad de que el objetivo la descubra y de que el proveedor de software la parchee. Una vez cerrada la vulnerabilidad, la utilidad del exploit se reduce considerablemente y se limita a los objetivos que no hayan actualizado el software. Esto se conoce como "quemar" el exploit.
Dado que el objetivo de la mayoría de los atacantes hoy en día es ganar dinero directa o indirectamente (por ejemplo, robando información personal del objetivo y utilizándola para cometer fraude de identidad), los exploits de día cero tienen valor económico. El exploit pierde su valor si se quema y se vuelve ineficaz. En esencia, un día cero es un arma valiosa y prescindible que debe guardarse para utilizarla contra objetivos de gran valor que no puedan explotarse a través de vulnerabilidades conocidas públicamente.
Esto significa, por ejemplo, que un atacante que tenga como objetivo un sistema que ejecute una versión antigua de un determinado software con vulnerabilidades conocidas querrá utilizar un exploit existente y disponible públicamente en lugar de utilizar el exploit de día cero y arriesgarse a quemarlo. ¿Por qué desperdiciar un recurso valioso cuando se puede hacer el trabajo con una solución menos costosa?