Existen diversas, aunque ligeramente diferentes definiciones de vulnerabilidades de día cero. Algunas definiciones se refieren como defectos de software que dejan los usuarios expuestos a ciberataques antes de que esté disponible o sea público, un parche o solución; mientras que otras definen a este término como una vulnerabilidad de seguridad en el mismo día en que la vulnerabilidad se da a conocer públicamente (día cero). En la primera definición, una vulnerabilidad de día cero puede ser desconocida para todo el mundo exceptuando algún atacante; algunos autores se refieren a los ataques a estas vulnerabilidades como ‘anterior al día cero’. En otros casos, el proveedor de software puede ser consciente de la vulnerabilidad, pero aún no ha emitido una solución o parche que lo resuelva.
Es muy difícil descubrir estos ataques; de hecho, a menudo se requieren meses, y a veces años antes de que un desarrollador sea consciente de la vulnerabilidad que ha dado lugar a un ataque concreto.
En cualquier caso, el resultado es el mismo: los usuarios están muy expuestos a los ataques. Como indican L. Bilge y T. Dumitras en [5 ] “Mientras se desconoce una vulnerabilidad, no puede repararse el software afectado y los productos antivirus no puede detectar el ataque a través del escaneo basado en firmas”. Las vulnerabilidades de software pueden ser descubiertas por crackers, compañías de seguridad o investigadores, por los propios proveedores de dicho software, o por los usuarios. Si son descubiertas por un cracker, es muy posible que durante un tiempo exista un mecanismo informático o programa que se aproveche de dicha debilidad y que sea conocido sólo en el mundo de los hackers/crackes, hasta que las compañías de software de seguridad o el proveedor de ese software se den cuenta.
Los ataques de día cero han permitido a algunos de los ataques más duros de los últimos años. Por ejemplo, la operación Aurora (2009) explotaba una vulnerabilidad de Internet Explorer con más de 20 objetivos, incluyendo Morgan Stanley, Google, Yahoo, Dow Chemical, Adobe Systems, Juniper Networks e incluso software para empresas de seguridad como Symantec
Probablemente, el ataque de día cero más famoso fue Stuxnet (2010). De hecho, el gusano Stuxnet utilizó cuatro ataques de día cero separados para dañar los controladores industriales e interrumpir instalación de enriquecimiento de uranio de Natanz en Irán. Stuxnet fue diseñado para manipular los controladores industriales lógicos programables ( PLCs) realizados por Siemens que controlaban y supervisaban la velocidad de las centrifugadoras. Los atacantes remotos no pudieron acceder directamente a estos dispositivos ya que los equipos no estaban conectados a Internet; lo que hicieron fue diseñar su ataque para que se propagase a través de unidades de disco USB infectados. De esta manera, se infectaron primero ordenadores pertenecientes a cinco empresas externas, que se creía que están conectadas de alguna manera con el programa nuclear. El uso de cuatro vulnerabilidades de día cero fue un hecho único. Por otra parte, Stuxnet también utilizó y se aprovechó de otras vulnerabilidades, lo que muestra la extraordinaria sofisticación y planificación que hubo para hacer este ataque.