0day (англ. zero day) — термин, обозначающий неустранённые уязвимости, а также вредоносные программы, против которых ещё не разработаны защитные механизмы.
Сам термин означает, что у разработчиков было 0 дней на исправление дефекта: уязвимость или атака становится публично известна до момента выпуска производителем ПО исправлений ошибки (то есть потенциально уязвимость может эксплуатироваться на работающих копиях приложения без возможности защититься от неё).
На данный момент многие вирусописатели фокусируют свои усилия именно на обнаружении неизвестных уязвимостей в программном обеспечении. Это обусловлено высокой эффективностью использования уязвимостей, что, в свою очередь, связано с двумя фактами — высоким распространением уязвимого ПО (именно такое программное обеспечение, как правило, атакуют) и некоторым временным промежутком между обнаружением уязвимости компанией-разработчиком программного обеспечения и выпуском соответствующего обновления для исправления ошибки.
Для обнаружения уязвимостей вирусописатели используют различные техники, например: Дизассемблирование программного кода и последующий поиск ошибок непосредственно в коде программного обеспечения; Реверс-инжиниринг и последующий поиск ошибок в алгоритмах работы программного обеспечения; Fuzz-тестирование — своего рода стресс-тест для программного обеспечения, суть которого заключается в обработке программным обеспечением большого объёма информации, содержащей заведомо неверные параметры.
После обнаружения уязвимости в программном обеспечении начинается процесс разработки вредоносного кода, использующего обнаруженную уязвимость для заражения отдельных компьютеров или компьютерных сетей.
На сегодняшний день (2013), самой известной вредоносной программой, использующей 0day уязвимость в программном обеспечении, является червь Stuxnet, который был обнаружен летом 2010 года. Stuxnet использовал ранее неизвестную уязвимость операционных систем семейства Windows, связанную с алгоритмом обработки ярлыков. Следует отметить, что помимо 0day уязвимости Stuxnet использовал ещё три, ранее известные уязвимости.
Помимо создания вредоносных программ, использующих 0day уязвимости в программном обеспечении, вирусописатели активно работают и над созданием вредоносных программ, недетектируемых антивирусными сканерами и мониторами. Данные вредоносные программы также попадают под определение термина 0day.
Отсутствие детектирования антивирусными программами достигается за счёт применения вирусописателями таких технологий, как обфускация, шифрование программного кода и др.
В связи с применением специальных технологий 0day-угрозы не могут быть детектированы классическими антивирусными технологиями. Именно по этой причине продукты, в которых сделана ставка на классические антивирусные технологии, показывают весьма посредственный результат в динамических антивирусных тестированиях.
По мнению антивирусных компаний, для обеспечения эффективной защиты против 0day вредоносных программ и уязвимостей необходимо использование проактивных технологий антивирусной защиты. Благодаря специфике проактивных технологий защиты, они способны одинаково эффективно обеспечивать защиту как от известных, так и от неизвестных 0day-угроз. Хотя стоит отметить, что эффективность проактивной защиты не является абсолютной, и весомая доля 0day-угроз способна причинить вред жертвам злоумышленников. Независимых подтверждений этим утверждениям на настоящий момент нет.