Нулевой день (также известный как нулевой день ) — это уязвимость или дыра в безопасности компьютерной системы, неизвестная ее владельцам, разработчикам или кому-либо, кто способен ее устранить . [1] Пока уязвимость не будет устранена, злоумышленники могут использовать ее с помощью эксплойта нулевого дня или атаки нулевого дня . [2]
Термин «нулевой день» первоначально относился к количеству дней с момента публикации новой части программного обеспечения, поэтому «программное обеспечение нулевого дня» получалось путем взлома компьютера разработчика перед его выпуском. В конечном итоге этот термин стал применяться к уязвимостям, которые позволили совершить этот взлом, а также к количеству дней, в течение которых поставщику пришлось их исправить. [3] [4] [5] Поставщики, обнаружившие уязвимость, могут создавать исправления или предлагать обходные пути для ее смягчения, хотя пользователям необходимо развернуть это смягчение, чтобы устранить уязвимость в своих системах. Атаки нулевого дня представляют собой серьезную угрозу . [6]
Потенциальные векторы атак для уязвимостей нулевого дня идентичны известным уязвимостям и тем, для которых имеются доступные исправления. Например, когда пользователь посещает мошеннический веб-сайт , вредоносный код на сайте может использовать неисправленные уязвимости в веб-браузере . Веб-браузеры являются особой мишенью для преступников из-за их широкого распространения и использования. Киберпреступники , а также международные поставщики шпионского ПО , такие как израильская группа NSO [7], также могут отправлять вредоносные вложения к электронной почте через SMTP , используя уязвимости в приложении, открывающем вложение . [8] Эксплойты, использующие распространенные типы файлов , многочисленны и часты, о чем свидетельствует их все более частое появление в таких базах данных , как US-CERT . Преступники могут создать вредоносное ПО , чтобы использовать эксплойты этих типов файлов для взлома атакуемых систем или кражи конфиденциальных данных. [9]
Время от момента, когда программный эксплойт впервые становится активным, до момента, когда количество уязвимых систем становится незначительным, известно как окно уязвимости . [10] Сроки возникновения каждой уязвимости программного обеспечения определяются следующими основными событиями:
Таким образом, формула длины окна уязвимости имеет вид: t 2 − t 1b .
В этой формулировке всегда верно , что t0 ≤ t1a и t0 ≤ t1b . Обратите внимание, что t0 — это не то же самое, что нулевой день . Например, если хакер первым обнаружит (в момент t 0 ) уязвимость, поставщик может узнать о ней гораздо позже (в нулевой день).
Для обычных уязвимостей t 1b > t 1a . Это означает, что поставщик программного обеспечения знал об уязвимости и успел опубликовать исправление безопасности ( t 1a ), прежде чем какой-либо хакер смог создать работоспособный эксплойт ( t 1b ). Для эксплойтов нулевого дня t 1b ≤ t 1a , так что эксплойт становится активным до того, как патч станет доступен.
Не раскрывая известные уязвимости, поставщик программного обеспечения надеется достичь t 2 до того, как будет достигнут t 1b , избегая тем самым любых эксплойтов. Однако у производителя нет гарантий, что хакеры не найдут уязвимости самостоятельно. Более того, хакеры могут сами анализировать исправления безопасности и тем самым обнаруживать основные уязвимости и автоматически генерировать работающие эксплойты. [11] Эти эксплойты можно эффективно использовать до момента t 2 .
На практике длина окна уязвимости варьируется в зависимости от системы, поставщика и отдельных уязвимостей. Его часто измеряют в днях: в одном отчете за 2006 год средний показатель оценивается в 28 дней. [12]
Защита нулевого дня — это возможность обеспечить защиту от эксплойтов нулевого дня. Поскольку атаки нулевого дня, как правило, неизвестны общественности, от них часто бывает трудно защититься. Атаки нулевого дня часто эффективны даже против «защищенных» сетей и могут оставаться незамеченными даже после их запуска. Таким образом, пользователи так называемых безопасных систем также должны проявлять здравый смысл и практиковать безопасные компьютерные привычки. [13]
Существует множество методов ограничения эффективности уязвимостей нулевого дня, связанных с повреждением памяти, таких как переполнение буфера . Эти механизмы защиты существуют в современных операционных системах, таких как macOS , Windows Vista и более поздних версиях , Solaris , Linux , Unix и Unix-подобных средах; Пакет обновления 2 для Windows XP включает ограниченную защиту от общих уязвимостей, связанных с повреждением памяти [14] , а предыдущие версии включают еще меньше. Также существует программное обеспечение для защиты настольных компьютеров и серверов, позволяющее минимизировать уязвимости переполнения буфера нулевого дня. Обычно эти технологии включают эвристический анализ завершения , чтобы остановить атаки до того, как они причинят какой-либо вред. [15]
Было высказано предположение, что решение такого рода может быть недостижимым, поскольку в общем случае алгоритмически невозможно проанализировать любой произвольный код, чтобы определить, является ли он вредоносным: поскольку такой анализ сводится к проблеме остановки над линейным ограниченным автоматом. , что неразрешимо. Однако в большинстве случаев нет необходимости рассматривать общий случай (то есть сортировать все программы по категориям вредоносных и невредоносных) для устранения широкого спектра вредоносного поведения. Достаточно признать безопасность ограниченного набора программ (например, тех, которые могут получать доступ или изменять только заданное подмножество машинных ресурсов), отвергая при этом как некоторые безопасные, так и все небезопасные программы. Это требует поддержания целостности этих безопасных программ, что может оказаться затруднительным в случае эксплойта на уровне ядра. [ нужна цитата ]
Группа реагирования на чрезвычайные ситуации нулевого дня (ZERT) представляла собой группу инженеров-программистов, которые работали над выпуском сторонних патчей для эксплойтов нулевого дня.
Компьютерные черви перехватываются, используя знания о том, как они заражают своих хозяев. Черви нулевого дня используют внезапную атаку, пока они еще неизвестны специалистам по компьютерной безопасности . Недавняя история показывает увеличение скорости распространения червей. [16] Новые черви трудно обнаружить, поскольку их сигнатуры заражения неизвестны, а хорошо спроектированные черви могут очень быстро распространяться по Интернету , иногда с разрушительными последствиями. [17]
Существуют разные идеологии в отношении сбора и использования информации об уязвимостях нулевого дня. Многие поставщики компьютерной безопасности проводят исследования уязвимостей нулевого дня, чтобы лучше понять природу уязвимостей и их эксплуатацию отдельными лицами, компьютерными червями и вирусами. Альтернативно, некоторые поставщики покупают информацию об уязвимостях, чтобы расширить свои исследовательские возможности. Примером такой программы является инициатива Zero Day Initiative компании TippingPoint .
Хотя продажа и покупка информации об уязвимостях технически не является незаконной в большинстве стран мира, существует много споров по поводу метода раскрытия. Решение Германии от 2006 года о включении статьи 6 Конвенции о киберпреступности и Рамочного решения ЕС об атаках на информационные системы может сделать продажу или даже производство уязвимостей незаконными. [18]
Большинство формальных программ следуют тем или иным правилам раскрытия информации Rain Forest Puppy или более поздним Руководствам OIS по отчетности и реагированию на уязвимости безопасности. [ нужна цитация ] В общем, эти правила запрещают публичное раскрытие уязвимостей без уведомления поставщика и достаточного времени для создания исправления.
Вирус нулевого дня (также известный как вредоносное ПО нулевого дня или вредоносное ПО нового поколения ) — это ранее неизвестный компьютерный вирус или другое вредоносное ПО, для которого еще не доступны специальные сигнатуры антивирусного программного обеспечения . [19]
Традиционно антивирусное программное обеспечение для идентификации вредоносного ПО полагалось на сигнатуры . Сигнатура вируса — это уникальный шаблон или код, который можно использовать для обнаружения и идентификации конкретных вирусов. Антивирус сканирует сигнатуры файлов и сравнивает их с базой известных вредоносных кодов. Если они совпадают, файл помечается как угроза. Основным ограничением обнаружения на основе сигнатур является то, что оно способно помечать только уже известные вредоносные программы, что делает его бесполезным против атак нулевого дня. [20] Большинство современных антивирусных программ по-прежнему используют сигнатуры, но также выполняют и другие виды анализа. [ нужна цитата ]
При анализе кода анализируется машинный код файла на предмет наличия чего-либо подозрительного. Обычно вредоносное ПО имеет характерное поведение; анализ кода пытается определить, присутствует ли это в коде.
Несмотря на свою полезность, анализ кода имеет существенные ограничения. Не всегда легко определить, для чего предназначен тот или иной раздел кода, особенно если он очень сложен и был написан намеренно с целью обойти анализ. Еще одним ограничением анализа кода являются доступные время и ресурсы. В конкурентном мире антивирусного программного обеспечения всегда существует баланс между эффективностью анализа и задержкой.
Один из подходов к преодолению ограничений анализа кода заключается в том, чтобы антивирусное программное обеспечение запускало подозрительные участки кода в безопасной « песочнице» и наблюдало за их поведением. Это может быть на порядки быстрее, чем анализ того же кода, но должно противостоять (и обнаруживать) попытки кода обнаружить песочницу.
Общие сигнатуры — это сигнатуры, специфичные для определенного поведения, а не для конкретного элемента вредоносного ПО. Большинство новых вредоносных программ не являются чем-то совершенно новым, а представляют собой разновидность более ранних вредоносных программ или содержат код одного или нескольких более ранних примеров вредоносных программ. Таким образом, результаты предыдущего анализа можно использовать против новых вредоносных программ.
В антивирусной индустрии общепринято, что защита на основе сигнатур большинства производителей одинаково эффективна. Если для элемента вредоносного ПО доступна сигнатура, то каждый продукт (за исключением неработоспособного) должен ее обнаружить. Однако некоторые поставщики значительно быстрее других узнают о новых вирусах и/или обновляют базы данных сигнатур своих клиентов для их обнаружения. [21]
Существует широкий диапазон эффективности защиты от вирусов нулевого дня. Немецкий компьютерный журнал не обнаружил, что уровень обнаружения вирусов нулевого дня варьируется от 20% до 68%. [22] Производители сейчас конкурируют в первую очередь в области производительности вирусов нулевого дня.
В середине апреля 2017 года хакеры, известные как The Shadow Brokers (TSB), предположительно связанные с российским правительством, [23] [24] опубликовали файлы АНБ (первоначально считалось, что они принадлежат АНБ, позже это было подтверждено). через внутренние данные и американского осведомителя Эдварда Сноудена ) [25] , которые включают в себя серию «эксплойтов нулевого дня», нацеленных на программное обеспечение Microsoft Windows и инструмент для проникновения в провайдера услуг Общества всемирных межбанковских финансовых телекоммуникаций (SWIFT). [26] [27] [28] Ars Technica сообщила о заявлениях Shadow Brokers о хакерских атаках в середине января 2017 года, [29] а в апреле Shadow Brokers опубликовала эксплойты в качестве доказательства. [29]
Процесс Vulnerabilities Equities Process , впервые публично обнародованный в 2016 году, представляет собой процесс, используемый федеральным правительством США для определения в каждом конкретном случае того, как ему следует обрабатывать уязвимости нулевого дня в компьютерной безопасности : следует ли раскрывать их общественности, чтобы помочь улучшить общую компьютерную безопасность или сохранить их в секрете для использования в наступательных целях против противников правительства. [30] Этот процесс подвергался критике за ряд недостатков, включая ограничения соглашениями о неразглашении, отсутствие рейтингов риска, особый режим для АНБ и неполную приверженность раскрытию информации в качестве варианта по умолчанию. [31]
Уязвимость нулевого дня относится к уязвимости в программном обеспечении, неизвестной поставщику.
Эта дыра в безопасности может быть использована взломщиками до того, как поставщик узнает об этом и поспешит исправить — этот эксплойт называется атакой нулевого дня.
(Хронологический порядок)