Мир уязвимостей
Здравствуйте, уважаемые Хабраюзеры. Предлагаю вашему вниманию мой вольный перевод довольно интересной статьи, опубликованной Pierluigi Paganini в Infosec Institute (конец 2012 г., однако она нисколько не потеряла своей актуальности и сегодня), посвященной состоянию дел в мире 0day и 1day уязвимостей. Статья не претендует на глубокий технический анализ или оценку этого рынка, а всего лишь делает «краткий» экскурс в этой области, но я думаю, она будет интересна многим. Прошу под кат.
Введение
Каждый день мы узнаем о кибератаках и утечках данных, которые во многих случаях имеют катастрофические последствия для частных компаний и правительства. Сегодня технологии играют важнейшую роль в нашей жизни и каждый программный компонент, который окружает нас, может быть уязвим и использован со злым умыслом. Конечно, влияние этих уязвимостей зависит от характера и масштаба уязвимого ПО. Некоторые приложения используются чаще и уязвимости в них могут подвергать пользователя серьёзному риску. Возможный ущерб от уязвимости зависит от множества факторов, таких как уровень распространения уязвимого приложения, предыдущие уязвимости и контекст в котором скомпрометированное приложение используется.
0day уязвимости
В огромном мире уязвимостей, 0day уязвимости это настоящий кошмар для специалистов по безопасности. После любой утечки информации об ошибках и уязвимостях становится невозможным предсказать, где и когда они будут использованы. Это качество делает их идеальным инструментом для разработки кибероружия и правительственных атак. Интерес в поиске неизвестных уязвимостей для распространённых приложений полностью изменил роль хакеров. В прошлом это были люди, которые держались подальше от государства, сегодня индустрия и даже разведывательные агентства запустили полномасштабную кампанию по вербовке кадров в этой сфере.
Прибыль же от уязвимостей может быть получена по разным каналам, начиная от разработчика скомпрометированного приложения, заканчивая правительственными организациями, заинтересованными в уязвимости для проведения кибератак против враждебных государств, уязвимость также может быть продана на чёрном рынке.
Вокруг этой концепции вырос целый рынок в рамках которого скорость любой транзакции является основополагающим фактором. Как только найдена новая ошибка, и существует возможность её эксплуатации, разработчик должен быстро определить потенциальных покупателей, связаться с ними, чтобы договориться о цене и завершить сделку.
Знаменитый эксперт по безопасности Чарли Миллер описал этот рынок в своей статье: “The Legitimate Vulnerability Market: The Secretive World of 0-Day Exploit Sales”, осветив несколько ключевых вопросов:
- Сложность поиска покупателя и продавца;
- Проверка надежности покупателя;
- Сложность демонстрации работоспособности 0day эксплойта без разглашения информации о нём;
- Обеспечение эксклюзивности прав.
Принципиальная проблема для хакера, которому нужно продать уязвимость, заключается в его ловкости сделать это без разглашения слишком большого объема информации о ней. Процесс продажи очень сложен, потому что покупатель хочет убедиться в эффективности эксплойта и теоретически может попросить демонстрацию его наличия. Единственный способ доказать достоверность информации это полностью раскрыть её или продемонстрировать её в каком — то другом виде. Очевидно, раскрытие информации до продажи нежелательно, так как исследователь подвергается риску потерять свою интеллектуальную собственность без компенсаций.
Чтобы удовлетворить эти потребности родились профессиональные брокеры по продаже 0day эксплойтов, которые обеспечивают анонимность каждой из сторон в обмен на комиссию и проводят сделки между покупателями и продавцами.
Третья сторона гарантирует корректную оплату продавцу и конфиденциальность информации об уязвимости. Со стороны покупателя они проверяют информацию, предоставляемую продавцом. Доверенная третья сторона играет важную роль в этих сделках, так как этот рынок крайне нестабильный и характеризуется быстрой динамикой. Одна из наиболее известных фигур на этом рынке Grugq, также в качестве посредников могут выступать и небольшие компании, такие как: Vupen, Netragard, а также оборонный подрядчик Northrop Grumman.
Основатель Netragard Адриэль Дезатоля рассказал журналу Forbes, что он работает на рынке продажи эксплойтов в течение 10 лет, и он наблюдал быстрое изменение рынка, который буквально «взорвался» всего лишь в прошлом году (2011 – прим. переводчика). Адриель говорит, что сейчас есть много покупателей с большими деньгами и что время покупки снизилось с месяца до недель и что он приближается к продаже 12 – 14 0day эксплойтов каждый месяц в сравнении с 4-6 несколькими годами ранее.
Контрмеры и значение быстрого реагирования
Жизненный цикл 0day уязвимости состоит из следующих фаз:
- Уязвимость анонсирована;
- Эксплойт выпущен в открытый доступ;
- Уязвимость обнаружена разработчиком;
- Уязвимость раскрыта публично;
- Обновлены антивирусные сигнатуры;
- Выпущен патч;
- Развертывание патча завершено.
Рисунок 1. Жизненный цикл 0day уязвимости
Факт обнаружения уязвимости нулевого дня требует срочного реагирования. Период между эксплуатацией уязвимости и выпуском патча является решающим фактором для управления безопасностью программного обеспечения. Исследователи Лейла Бильге и Тудор Думитраш из Symanter Research Lab представили своё исследование под названием: “Before We Knew It … An Empirical Study of Zero-Day Attacks In The Real World“ в котором они объяснили, как знание такого типа уязвимостей даёт возможность правительству, хакерам или киберпреступникам взламывать любую цель, оставаясь при этом незамеченными. Исследование показало, что типичная 0day атака имеет среднюю продолжительность в 312 дней и как показано на рисунке 2, публикация информации об эксплойте в свободном доступе повышает число атак в 5 раз.
Рисунок 2 Число атак в зависимости от времени публикации 0day.
Публикация уязвимости порождает серию кибератак, в рамках которых злоумышленники пытаются извлечь выгоду из знания о ней и задержки в выпуске патча. Эти противоправные действия не имеют конкретного происхождения, что делает их сложными для предотвращения. Группы киберпреступников, хактивисты и кибертеррористы могут воспользоваться уязвимостью в различных секторах экономики, и ущерб от их деятельности зависит от контекста, в рамках которого они действуют. Убеждение в том, что уязвимости нулевого дня редко встречаются ошибочно, они встречаются так же, с одним лишь фундаментальным отличием в том, что информация о них не публикуется. Исследования выявили тревожную тенденцию: 60% ошибок идентифицируются как неизвестные и данные подтверждают, что существует гораздо больше 0day уязвимостей, чем прогнозировалось, плюс среднее время жизненного цикла 0day уязвимости может быть недооценено.
Один из самых обсуждаемых вопросов, как реагировать на публикацию 0day уязвимости. Многие эксперты убеждены, что необходимо немедленно раскрывать информацию о ней при этом, забывая, что это обычно является основной причиной для эскалации кибератак, эксплуатирующих эту ошибку. Вторая точка зрения предполагает хранить информацию об уязвимости в секрете, сообщая только компании, которая разработала скомпрометированное приложение. В этом случае, существует возможность контролировать всплеск атак после разглашения информации об уязвимости. Однако существует риск, что компания не сможет справиться с этим и выпустит подходящий патч для ошибки лишь через несколько месяцев после случившегося.
Не только 0day
Многие специалисты считают, что настоящим кошмаром для информационной безопасности являются 0day уязвимости и ошибки, которые невозможно предсказать и которые подвергают инфраструктурные объекты таким угрозам, которые трудно обнаружить и которые могут привести к серьезным последствиям. Несмотря на страх перед атаками нулевого дня, инфраструктурным объектам ежедневно угрожает огромное количество известных уязвимостей, для которых соответствующие контрмеры не применяются и это является общепризнанным фактом.
Несоблюдение лучших практик патч-менеджмента является основной причиной существующих проблем для частных компаний и правительства. В некоторых случаях процессы патч-менеджмента протекают крайне медленно, и окно реагирования на киберугрозы является чрезвычайно большим.
Рисунок 3 – Окно реагирования
От обнаружения к миллионному рынку
Как создать утилиту для эксплуатации уязвимости после её анонса? Процедура проста в сравнении с поиском 0day уязвимостей. После выпуска патча, исследователи и преступники могут определить конкретную уязвимость, используя методику двоичного сравнения (binary diffing technique). Термин «двоичное сравнение» (diff) происходит от имени консольной утилиты, которая используется для сравнения файлов, таким же образом, как и бинарные файлы до и после применения патча. Эта методика довольно эффективна и может применяться для исполняемых файлов Microsoft, потому что компания выпускает патчи регулярно, а идентифицировать код, затронутый патчем в бинарном файле для специалиста является достаточно простой задачей. Парочка самых известных фреймворков для двоичного сравнения: DarunGrim2 и Patchdiff2.
Теперь, когда мы описали 0day и 1day уязвимости, было бы полезно открыть для себя механизмы их коммерциализации. В статье, опубликованной на сайте Forbes, предлагаются цены на 0day уязвимости в продуктах популярных IT-компаний.
Рисунок 4 –Прайс на 0-day уязвимости (Forbes)
Цена на уязвимость зависит от множества факторов:
- Сложность определения уязвимости, зависимая от мер безопасности используемых в компании, которая разрабатывает приложение; чем больше времени необходимо для обнаружения, тем выше стоимость.
- Степень популярности приложения.
- Контекст эксплуатируемого приложения.
- Поставляется ли приложение по умолчанию с операционной системой ?
- Необходимость процесса аутентификации в уязвимом приложении ?
- Есть ли стандартные настройки межсетевого экрана, которые блокируют доступ к приложению ?
- Относится ли приложение к серверной или клиентской части ?
- Является ли взаимодействие с пользователем обязательным для эксплуатации уязвимости ?
- Версия атакуемого ПО. Чем позднее, тем выше прайс.
- Технические особенности: внедрение новой технологии на самом деле может привести к снижению интереса к уязвимости, которая связана с устаревшей технологией.
Trend Micro недавно опубликовало очень интересный доклад о русском underground рынке. Исследование основывалось на данных, полученных из анализа интернет-форумов и сервисов в которых участвуют русские хакеры, таких как: antichat.ru, xeka.ru и carding-cc.com. Они продемонстрировали, что существует возможность приобрести любое ПО и сервис для киберпреступников и мошенничества. В первую десятку вошло создание вредоносного кода и оказание услуг по написанию эксплойтов. Как правило, эксплойты продаются в связке, но они могут быть проданы и по отдельности или сданы в аренду на ограниченный период времени, на рисунке 5 приведены цены на них:
Рисунок 5 – Прайс лист на эксплойт-пакеты и сервисы
Выводы
Очевидно, что любая уязвимость представляет собой серьезную угрозу для конкретного приложения. Кроме того, она также может угрожать безопасности всей организации или правительству, в том случае, когда это касается приложений, применяемых на инфраструктурных объектах. Невозможно следуя стандартным подходам (прим. переводчика: автор имеет ввиду стандартные подходы к тестированию ПО) предотвратить широкий спектр уязвимостей, но ряд действий должен применяться, начиная с этапа разработки продукта. Требования безопасности должны приниматься во внимание во время разработки каждого решения. Предотвращение 0day уязвимостей является утопией, гораздо больше можно сделать после их обнаружения. Эффективное реагирование может предотвратить серьезные последствия с точки зрения безопасности. Необходимо улучшать процессы патч-менеджмента, особенно для крупных организаций, которые являются популярными целями для атак, и которые, как правило, долго реагируют на них. Не нужно забывать, что это гонка на время, и единственная способ защититься от 1day атак это пропатчить наши системы до того как на них нападут.
Оглавление
- Что такое уязвимость нулевого дня
- Откуда берутся zero-day уязвимости
- Превентивная защита
- Профилактическая защита
- Реагирование на эксплуатацию уязвимости нулевого дня
- Итоги
«Дикая природа» мира информационной безопасности насыщена самыми разными «хищниками». Некоторые из них страшны, но предсказуемы и угрожают только узкой группе организаций. Другие напротив – давно изучены и надежно защищены практически всеми акторами, которые озаботились своей кибербезопасностью.
Но есть риск, к которому в равной мере может оказаться не готовой и ИБ-ориентированный «бигтех», и вчера образовавшийся стартап: это уязвимости нулевого дня.
В этой статье будут разобраны причины существования 0-day уязвимостей, степень их критичности для функционирования компаний и возможные методы защиты от эксплуатации уязвимостей нулевого дня.
Что такое уязвимость нулевого дня
Уязвимость нулевого дня – это программная или логическая уязвимость информационной системы, которая обнаружена впервые и, на момент получения сведений об этой уязвимости специалистами компании, у них нет готового решения по защите от эксплуатации этой уязвимости.
Главное «оружие» zero-day, которое отличает эту группу от других уязвимостей – это внезапность и неразбериха. На момент выявления уязвимости ИБ-специалисты и разработчики, которые защищают инфраструктуру, оказываются в условиях ограниченности данных: у них есть только отчет от исследователей, которые эту уязвимость обнаружили, и данные ИБ-систем, которые установлены внутри инфраструктуры.
Евгений Грязнов
Ведущий консультант ИБ в компании R-Vision
Чтобы ответить на это вопрос, для начала следует определиться с терминологией. С точки зрения разработки 0-day ничем не отличается от других уязвимостей. Но особенность 0-day заключается в том, что на устранение этой уязвимости у разработчика было 0 дней.
Это означает, что против нее еще не созданы защитные меры, а сам производитель ПО узнает об уязвимости только тогда, когда она начинает активно эксплуатироваться в системах клиентов, а в каких-то случаях и сильно позже. При этом с того момента как уязвимость стала публично известна и до момента выпуска и установки исправлений (патчей), может пройти достаточное количество времени, в течение которого 0-day будет активно использоваться злоумышленниками для проведения атак.
Поскольку не каждая уязвимость представляет реальный риск, то обычно под 0-day понимают еще и уязвимости с высоким рейтингом CVSS (Common Vulnerability Scoring System), в частности, позволяющие удаленное выполнение кода. Для сокращения их количества компании используют техники безопасной разработки (AppSec), такие как фаззинг, статические и динамические анализаторы. Особое внимание следует обращать на своевременное обновление сторонних зависимостей и компонентов, в которых могут быть найдены 0-day. Ярким примером является известная уязвимость Log4j.
Ситуация дополнительно осложняется тем, что «нулевой день» не обязательно совпадает с днем, когда уязвимость нашли и начали эксплуатировать злоумышленники. Может сложиться ситуация, когда «защитники» начинают работать над «закрытием уязвимости», которая уже месяцами используется хакерами.
Однако, в большинстве случаев ситуация далеко не так критична сразу по нескольким причинам. В первую очередь, потому что большинство уязвимостей zero-day детектируются и устраняются на разных этапах разработки и тестирования перед запуском сервиса.
Александр Буравцов
Директор по информационной безопасности МойОфис
Эффективным способом сокращения 0-day уязвимостей является использование принципов безопасной разработки (SSDLC), которые мы применяем в нашей компании. Такой подход значительно повышает качество наших продуктов, поскольку под контролем оказываются все этапы разработки – от планирования до выпуска релиза.
На стадии создания архитектуры продукта практики SSDLC позволяют избежать использование уязвимых архитектурных паттернов и решений. На этапе разработки обеспечивают контроль безопасности кода и сторонних библиотек с помощью специализированных автоматизированных инструментов и позволяют исправлять уязвимости еще до их включения в основную кодовую базу. В процессе получения бинарных артефактов и подготовки релиза проведение динамического анализа, фаззинга и привлечение внешних команд тестировщиков помогают выявить и устранить то, что было пропущено ранее.
В результате, выпуская продукт, мы можем гарантировать его безопасность. Конечно, ничто не обеспечивает полного исключения уязвимостей, но по нашему опыту подход SSDLC значительно сокращает число потенциальных ошибок.
SSDLC и анализ защищенности не гарантируют того, что в инфраструктуре не осталось «нулевых» уязвимостей. Но для их поиска и детекции злоумышленникам придется обладать как минимум не меньшими компетенциями в области анализа защищенности и пентеста, чем тем, кто проводил проверку и разработку. А таких хакеров очень немного, и большинство из них состоят в APT-группировках.
Вторая причина того, что каждая новая 0-day уязвимость не становится «концом света» для сервиса заключается в том, что далеко не все из них действительно критичны для функционирования инфраструктуры и напрямую ведут к реализации недопустимых событий.
И третья причина – это существование разнообразных методов детектирования и защиты, в том числе и с помощью ИБ-инструментов, которые ориентированы на анализ поведения и поиск аномалий, то есть не опираются на информацию о ранее известных уязвимостях, а ищут маркеры эксплуатации ранее не выявленных.
Дмитрий Пудов
Генеральный директор NGR Softlab
Список таких инструментов достаточно обширен — от специализированных решений до различных аналитических инструментов, которые могут помочь своевременно среагировать на попытки эксплуатации 0-day или выстроить дополнительный эшелон защиты. Вместе с тем сложно говорить о каком-то одном инструменте в контексте 0-day уязвимостей — скорее это комплекс средств, способных на разных этапах развития атаки помочь своевременно ее обнаружить и среагировать. Например, полезными могут быть системы поведенческой аналитики или deception-технологии. Не менее важным аспектом является готовность команды информационной безопасности разбирать последствия успешных атак, с целью сбора необходимых атрибутов используемых техник и последующего предотвращения их применения.
Уязвимости нулевого дня – это довольно опасное явление, которое может привести к серьезным последствиям для компании и пользователей уязвимого сервиса. Однако, важно понимать, что не выявленные уязвимости существуют абсолютно во всех сервисах и компаниях. Если осознать этот факт и планомерно готовиться к тому, что такая уязвимость будет выявлена – риски существенно снизятся.
Откуда берутся zero-day уязвимости
Как было сказано ранее, zero-day – это день, когда данные об уязвимости стали известны разработчику программного обеспечения. Поэтому так важна работа исследователей, которые анализируют поведение хакерских группировок и данные с хакерских форумов – информация о новой уязвимости может появиться там раньше, чем в публичном поле, чем ее выявят «белые» исследователи.
Александр Новиков
Руководитель службы исследований, кибераналитики и развития Группы Т1
Когда 0-day находит «черный» хакер, он не сообщает о ней разработчикам, и о существовании уязвимости специалисты не знают, а следовательно она не может быть учтена в статистике.
Злоумышленник может написать код, позволяющий воспользоваться уязвимостью – эксплойт. Но совсем необязательно, что он воспользуется им сам – может продать в даркнете, и, может быть, в приватном канале, что максимально снижает количество знающих о наличии 0-day уязвимости.
Кроме того, после проникновения в сеть злоумышленник может либо сразу же атаковать, либо затаиться и ждать более подходящего времени – что также может увеличить промежуток времени между обнаружением уязвимости и осведомленности о ней.
В случаях, когда уязвимость находит «белый» хакер, он сообщает о ней разработчику, который выпускает обновление ПО, закрывающее уязвимость, и информация о ней появляется в публичном доступе.
Если же говорить о конкретных источниках происхождения уязвимостей нулевого дня, то их два:
-
Естественный. В ходе разработки продукта специалисты допустили ошибку или не смогли спрогнозировать сценарий « нецелевой» эксплуатации того или иного элемента кода. Можно сказать, что это человеческий фактор, влияние которого может быть снижено элементами автоматизации и вовлечением большого количества компетентных специалистов, но не может быть снижено до нуля.
-
Искусственный. Сюда можно отнести любые сознательно допущенные уязвимости, появление которых может быть обусловлено корыстными целями конкретного специалиста, недобросовестной конкуренцией или вмешательством иных третьих лиц.
Александр Герасимов
CISO Awillix
0-day уязвимости могут быть заложены изначально некоторыми специализированными структурами для достижения своих целей (шпионаж, умная кража данных и тд), или же найдены хакерами хитрые вектора атак, которые основываются как на низкоуровневых особенностях, так и на высокоуровневых.
Единого рецепта и лекарства от всех атак нет. Как совет — настроить инфраструктуру так, чтобы при необходимости можно было как накатить новое обновление, так и откатиться к старой, не подверженной уязвимостям, версии вашего продукта; мониторить регулярно информацию об уязвимостях и не допускать использования заведомо уязвимых версий.
Также, немаловажен и фактор технического прогресса. Взломостойкость ресурсов и сервисов, которые уже не поддерживаются производителем и не обновляются, будет падать год от года.
Исходя из причин появления уязвимостей нулевого дня можно вывести и три этапа борьбы с ними:
-
Превентивный. Вся совокупность действий по устранению уязвимостей до выхода в публичное пространство.
-
Профилактический. Комплекс проверок, тестирования и анализа на всем протяжении существования сервиса, с целью « опередить» злоумышленников в выявлении уязвимостей.
-
Реактивный. Все действия команды специалистов по реагированию и изучению выявленной уязвимости, оперативному «закрытию» и выпуску (установке) патча обновления, который решает эту проблему.
Виктор Чащин
Операционный директор компании «МУЛЬТИФАКТОР»
Не совсем корректно говорить про сокращение количества zero-day уязвимостей, потому что все найденные ошибки в самом начале и являются уязвимостями нулевого дня, поэтому нужно писать код так, как это завещают руководства по написанию безопасных приложений, тот же широко известный OWASP.
В абсолютном количестве, конечно, больше выявленных уязвимостей на счету «белых», хотя бы просто потому что их больше, и они постоянно занимаются поисками кода в своих проектах. «Черные» же чаще находят нетипичные ошибки, потому что им чаще приходится нетривиально подходить к задаче проникновения в исследуемую инфраструктуру.
На каждом этапе или уровне борьбы с эксплуатацией уязвимостей нулевого дня можно выделить свои практики и рекомендации, которые могут помочь компании как снизить риски обнаружения такой уязвимости злоумышленниками, так и эффективно отреагировать на детектирование такого события.
Превентивная защита
Превентивная защита начинается с осознания того факта, что ни один продукт в цифровой среде не безопасен в принципе. Соответственно, чем больше сервисов использует компания, тем больше потенциальных уязвимостей нулевого дня в них содержится, и тем выше риски.
Соответственно, имеет смысл пройтись «бритвой Оккама» по списку ИС и отказаться от тех, которые дублируют функции друг друга, не вызывают доверия из-за команды разработчиков (что особенно актуально в условиях геополитического кризиса) или просто не выполняют критически важных функций.
Если рассматривать эту проблему с точки зрения разработчика информационной системы или ресурса, то первейшим средством борьбы с уязвимости нулевого дня (и многими другими проблемами ИБ) становится внедрение практик безопасной разработки (SSDLC-подход).
Борис Ларин
Эксперт по кибербезопасности, «Лаборатория Касперского»
Количество 0-day уязвимостей и их возможный эффект можно уменьшить, если вести разработку, придерживаясь практик жизненного цикла разработки защищенного программного обеспечения – Secure Software Development Lifecycle (SSDLC). Одна из наиболее распространенных моделей SSDLC – это MS SDL, разработанная компанией Microsoft.
Основными этапами этой модели являются:
обучение всех задействованных сотрудников основам безопасной разработки;
выявление возможных рисков, угроз, и методов их митигаций на этапе дизайна;
реализация кода согласно лучшим практикам безопасной разработки (например: запрет на использование небезопасных методов, статический анализ кода до компиляции);
верификация скомпилированного кода программного обеспечения (например: фаззинг, проведение пентестов);
подготовка плана реагирования на ранее неизвестные угрозы.
Помимо этого, если продукт разрабатывается с нуля, у разработчиков существует возможность сделать выбор в пользу использования более современных и безопасных для памяти (Memory safe languages) языков программирования (например Rust, Go, и др.). Использование подобных языков не может защитить от всех типов уязвимостей, но спасет от наиболее распространенных уязвимостей, которым подвержены такие языки программирования как C и C++.
Сервис, который изначально создан с пониманием того, что его будут пытаться взломать, а бреши в защите неизбежно найдутся, будет изначально защищен на порядок лучше, чем тот, который создан на стандартном цикле разработки SDLC.
Профилактическая защита
Профилактическая борьба с zero-day уязвимостями частично перекликается с превентивной и заключается в трех аспектах:
-
регулярное разноформатное тестирование;
-
использование инструментов ИБ, которые могут помочь в выявлении атак с использованием уязвимостей нулевого дня;
-
создание регламентов реагирования и их отработка.
Кирилл Романов
Менеджер по развитию бизнеса департамента информационной безопасности «Сиссофт»
Обычно разработка делится на этапы, каждый из которых заканчивается проверкой на наличие уязвимостей. Если раньше проверка производилась вручную, то сейчас за процесс отвечают специализированные программы, например PT Application Inspector.
Когда продукт уже готов и используется в «боевом» режиме, стоит задуматься об использовании «песочницы», которая эмулирует инфраструктуру клиента. Она помогает проверить, что делает отправленный файл, пытается ли запустить что-то нехорошее. Если да, то он попадет в список блокировок и не сможет причинить вред инфраструктуре.
Разноформатное тестирование подразумевает под собой, в первую очередь, регулярный внутренний и внешний аудит безопасности, привлечение пентестеров, редтимминг и выход на программы bugbounty.
Если говорить об инструментах кибербезопасности, которые могут помочь в защите от 0-day, то важно понимать, что для их адекватного и эффективного функционирования нужны ИБ-инструменты «первой руки», такие как межсетевые экраны, антивирус, инструменты защиты почтового трафика, анализаторы трафика и ряд других.
Иван Чернов
Менеджер по развитию UserGate (эксперт в сфере информационной безопасности):
Современный ландшафт киберугроз настолько разнообразен и динамичен, что использование одних лишь базовых средств защиты уже не является достаточным шагом к построению полностью защищенной инфраструктуры, хотя бы даже в силу существования такого фактора, как уязвимость нулевого дня. Для того, чтобы «узнать ее в лицо», ты должен быть через нее же и взломан, поэтому логично, что в моменте прикрыться щитом от вредоносной эксплуатации 0-day априори невозможно, на то она и нулевая, то есть впервые появившаяся и никем еще не описанная.
Однако существуют профилактические методы и подходы, применяя которые, можно вовремя обнаружить следы компрометации и попытки эксплуатации даже 0-day, сократить поверхность проникновения атаки и прекратить ее. Метод строится на том, чтобы скрупулезно анализировать данные, искать и находить среди них значимые события, выявлять инциденты и расследовать их, чтобы затем ответственные лица (разработчики и ИБ-шники) эту уязвимость поправили или от нее защитили.
Специально для реализации такой проактивно-превентивной концепции в UserGate разработан собственный инструмент – мониторинг событий безопасности Log Analyzer.
LogAn сочетает в себе функционал SIEM (Security Information and Event Management) и IRP (Incident Response Platform), что предоставляет возможности для сбора логов и событий, поиска инцидентов и реагирования на них.
Очень важно понимать, что SIEM – инструмент сложный. И без должного подхода к классификации знаний ощутимую пользу не даст. Однако набор несложных рекомендаций позволит начать использовать LogAn, который тоже относится к классу SIEM, используя его эффективно, с первых же дней. Мы разработали даже собственные лайфхаки, позволяющие превратить систему из сложного в очень удобный инструмент.
Применительно к zero-day, наибольшую эффективность показывают системы и инструменты, которые направлены на комплексный анализ поведения, таргетирование цепочек атаки (взаимосвязи событий) и поиск аномалий в тех или иных элементах инфраструктуры.
Также, в таких случаях особенно эффективны deception-технологии, которые направлены на то, чтобы спровоцировать злоумышленника на совершение демаскирующего действия. Эти технологии нацелены не на детекцию ВПО или хакерских техник, а на обычные человеческие слабости, которые присущи хакерам любой квалификации.
Касательно регламентов и отработки действий на киберполигонах, главное их преимущество – это развенчание непредсказуемости и неочевидности, которыми часто окружены уязвимости нулевого дня. Разумеется, смоделировать алгоритм действий под конкретную ситуацию такого рода невозможно, но отработка универсальных действий позволяет снизить риск ошибок из-за спешки или стресса.
Реагирование на эксплуатацию уязвимости нулевого дня
В рамках этого раздела критическую важность имеют три аспекта:
-
Осведомленность. Данные о найденной уязвимости 0-day просто не дойдут до компании, если ее специалисты не держат «руку на пульсе» или, хотя бы, не читают сообщения от поставщика ПО.
-
Патч-менеджмент. Важно понимать, что первое обновление от поставщика может как «закрыть» уязвимость, так и оказаться неэффективным. А может и вовсе «наплодить» несколько новых брешей или вызвать сбой в работе всего сервиса.
-
Готовность. Если специалисты имеют опыт реагирования, полученный в ходе киберучений, внятные регламенты и достаточный набор инструментов – с большой вероятностью получится минимизировать потенциальный урон.
Евгений Кравцов
Senior Frontend Developer, SberDevices
Инструменты защиты от эксплуатации уязвимостей 0-day могут включать:
— Мониторинг сети: инструменты, которые обнаруживают неожиданную активность или аномалии, которые могут указывать на попытку эксплуатации 0-day уязвимости.
— Защита от внедрения кода: инструменты, которые предотвращают внедрение нежелательного кода, например, защита от спам-инъекций и атак эксплуатации буфера.
— Защита данных: инструменты, которые защищают данные от несанкционированного доступа или изменения, например, шифрование данных.
— Антивирусы: инструменты, которые обнаруживают и блокируют вредоносное ПО, которое может быть использовано для эксплуатации 0-day уязвимостей.
Важно также помнить о том, что эксплуатация уязвимости нулевого дня, за рядом исключений, не влечет за собой реализацию недопустимого события. И, в большинстве случаев, у специалистов SOC есть время чтобы минимизировать ущерб от атаки. Хотя, разумеется, всегда возможен сценарий с эксплуатацией уязвимости высокого уровня критичности, как и произошло с Log4Shell.
Итоги
Уязвимости нулевого дня – это не «бог из машины» и не новое явление в кибербезопасности. Они существовали всегда, и свой «страшный» окрас приобрели благодаря тому, что сервисы постоянно совершенствуются, как и уровень экспертизы кибербезопасности компаний. Поэтому хакерам приходится становиться особенно изворотливыми и искать особо не тривиальные способы проникнуть в инфраструктуру.
Вместе с тем, растет и арсенал борьбы с такого рода «черными лебедями», который пополняется не только новыми программными решениями, но и опытом специалистов в ходе предыдущих инцидентов, который позволяет снизить степень хаотичности в реагировании SOC на инцидент с использованием уязвимостей «нулевого дня».
Также, стоит сказать, что единственный надежный способ борьбы с такого рода уязвимостями – это осознание того факта, что система или сервис уязвимы ровно до тех пор, пока они функционируют, а значит и мониторинг защищенности всеми возможными способами должен быть неотъемлемой частью политики информационной безопасности компании.
Уязвимость нулевого дня (0day, zero day) — термин, который используется для обозначения не выявленных на стадии тестирования угроз безопасности, уязвимостей, брешей в программном коде, против которых не существует защиты. Изначально они не известны никому: разработчики, антивирусные компании, пользователи не подозревают об их существовании. Об уязвимости нулевого дня становится известно до того, как производитель выпускает обновления; следовательно, у разработчиков есть 0 дней, чтобы устранить изъян. Устройства, на которых установлена уязвимая программа, находятся в зоне риска, а пользователи не имеют возможности защититься.
Обнаружение и распознавание уязвимостей
Иногда уязвимость нулевого дня выявляют хакеры, которые не хотят использовать ее в злонамеренных целях и сообщают о ней разработчикам. В других случаях ошибку могут найти пользователи или сами разработчики, после чего производителями выпускается новая версия ПО или обновление. Кроме того, антивирусы тоже иногда могут зарегистрировать вредоносные действия.
Впрочем, очевидно, что обнаружить баг могут и хакеры-злоумышленники, преследующие вредоносные цели. Тогда они будут эксплуатировать его сами или продадут другим киберпреступникам.
Для обнаружения уязвимостей злоумышленники используют различные методы:
- дизассемблирование кода программы и поиск опасных ошибок в коде программного обеспечения;
- fuzz-тестирование или «стресс-тест» для ПО (программное обеспечение обрабатывает большой объем информации, которая содержит заведомо ложные настройки);
- реверс-инжиниринг и поиск уязвимостей в алгоритмах работы ПО.
В противоположном случае разработчик знает, что существует баг в коде, но не хочет или не может его устранить, не предупреждая никого об уязвимости.
Атаки на уязвимости нулевого дня
Если произошла атака с использованием уязвимости нулевого дня, то это значит, что злоумышленники знали о баге достаточное количество времени, чтобы написать и активировать вредоносную программу для его эксплуатации. Такие атаки опасны тем, что к ним невозможно подготовиться, а также тем, что постоянное обновление ПО не дает гарантии их предотвращения или снижения риска их возникновения.
Защита от уязвимостей нулевого дня и их устранение
Устранение ошибок входит в обязанности разработчика. Критическая проблема закрывается в течение нескольких дней или недель; все это время системы, использующие уязвимое ПО, будут находиться в опасности.
Для защиты можно использовать традиционные антивирусные технологии, а также проактивные средства:
- Sandboxing (песочницу);
- анализ поведения;
- эмуляцию кода;
- эвристический анализ;
- виртуализацию рабочего окружения.
Мир уязвимостей
Здравствуйте, уважаемые Хабраюзеры. Предлагаю вашему вниманию мой вольный перевод довольно интересной статьи, опубликованной Pierluigi Paganini в Infosec Institute (конец 2012 г., однако она нисколько не потеряла своей актуальности и сегодня), посвященной состоянию дел в мире 0day и 1day уязвимостей. Статья не претендует на глубокий технический анализ или оценку этого рынка, а всего лишь делает «краткий» экскурс в этой области, но я думаю, она будет интересна многим. Прошу под кат.
Введение
Каждый день мы узнаем о кибератаках и утечках данных, которые во многих случаях имеют катастрофические последствия для частных компаний и правительства. Сегодня технологии играют важнейшую роль в нашей жизни и каждый программный компонент, который окружает нас, может быть уязвим и использован со злым умыслом. Конечно, влияние этих уязвимостей зависит от характера и масштаба уязвимого ПО. Некоторые приложения используются чаще и уязвимости в них могут подвергать пользователя серьёзному риску. Возможный ущерб от уязвимости зависит от множества факторов, таких как уровень распространения уязвимого приложения, предыдущие уязвимости и контекст в котором скомпрометированное приложение используется.
0day уязвимости
В огромном мире уязвимостей, 0day уязвимости это настоящий кошмар для специалистов по безопасности. После любой утечки информации об ошибках и уязвимостях становится невозможным предсказать, где и когда они будут использованы. Это качество делает их идеальным инструментом для разработки кибероружия и правительственных атак. Интерес в поиске неизвестных уязвимостей для распространённых приложений полностью изменил роль хакеров. В прошлом это были люди, которые держались подальше от государства, сегодня индустрия и даже разведывательные агентства запустили полномасштабную кампанию по вербовке кадров в этой сфере.
Прибыль же от уязвимостей может быть получена по разным каналам, начиная от разработчика скомпрометированного приложения, заканчивая правительственными организациями, заинтересованными в уязвимости для проведения кибератак против враждебных государств, уязвимость также может быть продана на чёрном рынке.
Вокруг этой концепции вырос целый рынок в рамках которого скорость любой транзакции является основополагающим фактором. Как только найдена новая ошибка, и существует возможность её эксплуатации, разработчик должен быстро определить потенциальных покупателей, связаться с ними, чтобы договориться о цене и завершить сделку.
Знаменитый эксперт по безопасности Чарли Миллер описал этот рынок в своей статье: “The Legitimate Vulnerability Market: The Secretive World of 0-Day Exploit Sales”, осветив несколько ключевых вопросов:
- Сложность поиска покупателя и продавца;
- Проверка надежности покупателя;
- Сложность демонстрации работоспособности 0day эксплойта без разглашения информации о нём;
- Обеспечение эксклюзивности прав.
Принципиальная проблема для хакера, которому нужно продать уязвимость, заключается в его ловкости сделать это без разглашения слишком большого объема информации о ней. Процесс продажи очень сложен, потому что покупатель хочет убедиться в эффективности эксплойта и теоретически может попросить демонстрацию его наличия. Единственный способ доказать достоверность информации это полностью раскрыть её или продемонстрировать её в каком — то другом виде. Очевидно, раскрытие информации до продажи нежелательно, так как исследователь подвергается риску потерять свою интеллектуальную собственность без компенсаций.
Чтобы удовлетворить эти потребности родились профессиональные брокеры по продаже 0day эксплойтов, которые обеспечивают анонимность каждой из сторон в обмен на комиссию и проводят сделки между покупателями и продавцами.
Третья сторона гарантирует корректную оплату продавцу и конфиденциальность информации об уязвимости. Со стороны покупателя они проверяют информацию, предоставляемую продавцом. Доверенная третья сторона играет важную роль в этих сделках, так как этот рынок крайне нестабильный и характеризуется быстрой динамикой. Одна из наиболее известных фигур на этом рынке Grugq, также в качестве посредников могут выступать и небольшие компании, такие как: Vupen, Netragard, а также оборонный подрядчик Northrop Grumman.
Основатель Netragard Адриэль Дезатоля рассказал журналу Forbes, что он работает на рынке продажи эксплойтов в течение 10 лет, и он наблюдал быстрое изменение рынка, который буквально «взорвался» всего лишь в прошлом году (2011 – прим. переводчика). Адриель говорит, что сейчас есть много покупателей с большими деньгами и что время покупки снизилось с месяца до недель и что он приближается к продаже 12 – 14 0day эксплойтов каждый месяц в сравнении с 4-6 несколькими годами ранее.
Контрмеры и значение быстрого реагирования
Жизненный цикл 0day уязвимости состоит из следующих фаз:
- Уязвимость анонсирована;
- Эксплойт выпущен в открытый доступ;
- Уязвимость обнаружена разработчиком;
- Уязвимость раскрыта публично;
- Обновлены антивирусные сигнатуры;
- Выпущен патч;
- Развертывание патча завершено.
Рисунок 1. Жизненный цикл 0day уязвимости
Факт обнаружения уязвимости нулевого дня требует срочного реагирования. Период между эксплуатацией уязвимости и выпуском патча является решающим фактором для управления безопасностью программного обеспечения. Исследователи Лейла Бильге и Тудор Думитраш из Symanter Research Lab представили своё исследование под названием: “Before We Knew It … An Empirical Study of Zero-Day Attacks In The Real World“ в котором они объяснили, как знание такого типа уязвимостей даёт возможность правительству, хакерам или киберпреступникам взламывать любую цель, оставаясь при этом незамеченными. Исследование показало, что типичная 0day атака имеет среднюю продолжительность в 312 дней и как показано на рисунке 2, публикация информации об эксплойте в свободном доступе повышает число атак в 5 раз.
Рисунок 2 Число атак в зависимости от времени публикации 0day.
Публикация уязвимости порождает серию кибератак, в рамках которых злоумышленники пытаются извлечь выгоду из знания о ней и задержки в выпуске патча. Эти противоправные действия не имеют конкретного происхождения, что делает их сложными для предотвращения. Группы киберпреступников, хактивисты и кибертеррористы могут воспользоваться уязвимостью в различных секторах экономики, и ущерб от их деятельности зависит от контекста, в рамках которого они действуют. Убеждение в том, что уязвимости нулевого дня редко встречаются ошибочно, они встречаются так же, с одним лишь фундаментальным отличием в том, что информация о них не публикуется. Исследования выявили тревожную тенденцию: 60% ошибок идентифицируются как неизвестные и данные подтверждают, что существует гораздо больше 0day уязвимостей, чем прогнозировалось, плюс среднее время жизненного цикла 0day уязвимости может быть недооценено.
Один из самых обсуждаемых вопросов, как реагировать на публикацию 0day уязвимости. Многие эксперты убеждены, что необходимо немедленно раскрывать информацию о ней при этом, забывая, что это обычно является основной причиной для эскалации кибератак, эксплуатирующих эту ошибку. Вторая точка зрения предполагает хранить информацию об уязвимости в секрете, сообщая только компании, которая разработала скомпрометированное приложение. В этом случае, существует возможность контролировать всплеск атак после разглашения информации об уязвимости. Однако существует риск, что компания не сможет справиться с этим и выпустит подходящий патч для ошибки лишь через несколько месяцев после случившегося.
Не только 0day
Многие специалисты считают, что настоящим кошмаром для информационной безопасности являются 0day уязвимости и ошибки, которые невозможно предсказать и которые подвергают инфраструктурные объекты таким угрозам, которые трудно обнаружить и которые могут привести к серьезным последствиям. Несмотря на страх перед атаками нулевого дня, инфраструктурным объектам ежедневно угрожает огромное количество известных уязвимостей, для которых соответствующие контрмеры не применяются и это является общепризнанным фактом.
Несоблюдение лучших практик патч-менеджмента является основной причиной существующих проблем для частных компаний и правительства. В некоторых случаях процессы патч-менеджмента протекают крайне медленно, и окно реагирования на киберугрозы является чрезвычайно большим.
Рисунок 3 – Окно реагирования
От обнаружения к миллионному рынку
Как создать утилиту для эксплуатации уязвимости после её анонса? Процедура проста в сравнении с поиском 0day уязвимостей. После выпуска патча, исследователи и преступники могут определить конкретную уязвимость, используя методику двоичного сравнения (binary diffing technique). Термин «двоичное сравнение» (diff) происходит от имени консольной утилиты, которая используется для сравнения файлов, таким же образом, как и бинарные файлы до и после применения патча. Эта методика довольно эффективна и может применяться для исполняемых файлов Microsoft, потому что компания выпускает патчи регулярно, а идентифицировать код, затронутый патчем в бинарном файле для специалиста является достаточно простой задачей. Парочка самых известных фреймворков для двоичного сравнения: DarunGrim2 и Patchdiff2.
Теперь, когда мы описали 0day и 1day уязвимости, было бы полезно открыть для себя механизмы их коммерциализации. В статье, опубликованной на сайте Forbes, предлагаются цены на 0day уязвимости в продуктах популярных IT-компаний.
Рисунок 4 –Прайс на 0-day уязвимости (Forbes)
Цена на уязвимость зависит от множества факторов:
- Сложность определения уязвимости, зависимая от мер безопасности используемых в компании, которая разрабатывает приложение; чем больше времени необходимо для обнаружения, тем выше стоимость.
- Степень популярности приложения.
- Контекст эксплуатируемого приложения.
- Поставляется ли приложение по умолчанию с операционной системой ?
- Необходимость процесса аутентификации в уязвимом приложении ?
- Есть ли стандартные настройки межсетевого экрана, которые блокируют доступ к приложению ?
- Относится ли приложение к серверной или клиентской части ?
- Является ли взаимодействие с пользователем обязательным для эксплуатации уязвимости ?
- Версия атакуемого ПО. Чем позднее, тем выше прайс.
- Технические особенности: внедрение новой технологии на самом деле может привести к снижению интереса к уязвимости, которая связана с устаревшей технологией.
Trend Micro недавно опубликовало очень интересный доклад о русском underground рынке. Исследование основывалось на данных, полученных из анализа интернет-форумов и сервисов в которых участвуют русские хакеры, таких как: antichat.ru, xeka.ru и carding-cc.com. Они продемонстрировали, что существует возможность приобрести любое ПО и сервис для киберпреступников и мошенничества. В первую десятку вошло создание вредоносного кода и оказание услуг по написанию эксплойтов. Как правило, эксплойты продаются в связке, но они могут быть проданы и по отдельности или сданы в аренду на ограниченный период времени, на рисунке 5 приведены цены на них:
Рисунок 5 – Прайс лист на эксплойт-пакеты и сервисы
Выводы
Очевидно, что любая уязвимость представляет собой серьезную угрозу для конкретного приложения. Кроме того, она также может угрожать безопасности всей организации или правительству, в том случае, когда это касается приложений, применяемых на инфраструктурных объектах. Невозможно следуя стандартным подходам (прим. переводчика: автор имеет ввиду стандартные подходы к тестированию ПО) предотвратить широкий спектр уязвимостей, но ряд действий должен применяться, начиная с этапа разработки продукта. Требования безопасности должны приниматься во внимание во время разработки каждого решения. Предотвращение 0day уязвимостей является утопией, гораздо больше можно сделать после их обнаружения. Эффективное реагирование может предотвратить серьезные последствия с точки зрения безопасности. Необходимо улучшать процессы патч-менеджмента, особенно для крупных организаций, которые являются популярными целями для атак, и которые, как правило, долго реагируют на них. Не нужно забывать, что это гонка на время, и единственная способ защититься от 1day атак это пропатчить наши системы до того как на них нападут.
Когда не было времени защититься. Поговорим об особенностях 0day-уязвимостей.
https://gbcdn.mrgcdn.ru/uploads/post/245/og_cover_image/347972f40d590f3e65962a2eb6afa26b
Что происходит после того, как хакер обнаруживает новую или так называемую 0day уязвимость? Учитывая то, что никаких защитных механизмов против нее еще не разработано, уязвимость может эксплуатироваться в приложении без какой-либо возможности от нее защититься. Сам этот термин означает, что у разработчиков не было ни одного дня на исправление обнаруженного дефекта. Если требуется гарантированный результат, то злоумышленник должен использовать именно 0day уязвимость, иначе производитель ПО выпустит патч, который со временем ее закроет. Кроме того, попытка воспользоваться эксплоитом (программой, использующей данную ошибку в софте для атаки системы) может привести к срабатыванию соответствующей сигнатуры антивирусной программы или межсетевого экрана. Однако если вирусописатель применил шифрование тела вируса и обфускацию его исходного кода, антивирусная программа, скорее всего, не обнаружит вирус, эксплуатирующий неизвестную уязвимость.
Сколько времени обычно проходит от обнаружения уязвимости до выпуска патча?
Если хакер является именно злоумышленником, а не легальным пентестером, то сразу после эксплуатации уязвимости и достижения своих черных целей он может опубликовать результаты своих исследований на соответствующих форумах. Даже если он этого не сделает, после удачного взлома часто остаются следы, которые позволяют определить, какая именно уязвимость привела к утечке информации, и передать данные производителю программы. Если уязвимость критическая, то устранение ее займет дни и недели — после этого пользователям будет предложено обновиться и система будет снова защищена. Однако после обнаружения уязвимости могут пройти месяцы — и все это время система будет незащищенной. Самое важное — насколько широкий круг лиц посвящен в проблему: чем он больше, тем выше вероятность эксплуатации уязвимости.
Уязвимости операционной системы
Если речь идет об уязвимостях операционной системы, то тут все усложняется. В большинстве случаев, ваш ПК является частью локальной сети. Если одна из рабочих станций уязвима (например, там установлена устаревшая версия ОС), то она представляет собой слабое звено цепи, через которое легко получить доступ к другим компьютерам и скомпрометировать всю сеть. Если речь идет о домашнем ПК, то угроза не столь высока. Однако, через эксплуатацию какой-либо известной уязвимости ваш компьютер будет инфицирован и, например, без вашего ведома будет принимать участие в DDoS-атаках, т.е. станет частью ботнета.
Зачем это нужно знать разработчику?
Уязвимости можно найти практически в любой программе, вопрос лишь в том, сколько времени и усилий злоумышленнику на это потребуется. В большинстве случаев, уязвимости можно обнаружить стандартным сканером. Например, если вы пишете веб-приложение, то одним из самых известных сканеров является Acunetix. Если злоумышленник не сможет в короткий срок найти уязвимость в программе с помощью сканера, есть высокая вероятность того, что он вообще откажется от попыток взлома. Поиск неизвестных ранее уязвимостей с помощью реверсинга программы может занять довольно продолжительное время и потребует совершенно другой квалификации хакера. В то же время, как уже было сказано выше, неизвестная ранее 0day уязвимость – это успех, что позволит гарантированно взломать приложение без каких-либо шансов предотвратить атаку с помощью антивирусного ПО.
Защита от реверсинга и взлома
Затруднить взлом своей программы можно и нужно, для этого используется целый ряд способов, начиная от обфускации кода до удаленного запуска части кода на удаленных серверах, однако это уже тема для отдельной статьи.
Интересно почитать продолжение?
А тем, кто определился с тем, что хочет стать программистом, рекомендуем профессию «Веб-разработчик».
From Wikipedia, the free encyclopedia
A zero-day (also known as a 0-day) is a computer-software vulnerability previously unknown to those who should be interested in its mitigation, like the vendor of the target software.[1] Until the vulnerability is mitigated, hackers can exploit it to adversely affect programs, data, additional computers or a network.[2] An exploit taking advantage of a zero-day is called a zero-day exploit, or zero-day attack.
The term «zero-day» originally referred to the number of days since a new piece of software was released to the public, so «zero-day software» was obtained by hacking into a developer’s computer before release. Eventually the term was applied to the vulnerabilities that allowed this hacking, and to the number of days that the vendor has had to fix them.[3][4][5] Once the vendors learn of the vulnerability, they will usually create patches or advise workarounds to mitigate it.
The more recently that the vendor has become aware of the vulnerability, the more likely it is that no fix or mitigation has been developed. Once a fix is developed, the chance of the exploit succeeding decreases as more users apply the fix over time. For zero-day exploits, unless the vulnerability is inadvertently fixed, such as by an unrelated update that happens to fix the vulnerability, the probability that a user has applied a vendor-supplied patch that fixes the problem is zero, so the exploit would remain available. Zero-day attacks are a severe threat.[6]
Attack vectors[edit]
Potential attack vectors for a zero-day vulnerability are identical to known vulnerabilities and those that have available patches. For example, when a user visits a rogue website, malicious code on the site can exploit unpatched vulnerabilities in a Web browser. Web browsers are a particular target for criminals because of their widespread distribution and usage. Cybercriminals, as well as international vendors of spyware such as Israel’s NSO Group,[7] can also send malicious e-mail attachments via SMTP, which exploit vulnerabilities in the application opening the attachment.[8] Exploits that take advantage of common file types are numerous and frequent, as evidenced by their increasing appearances in databases such as US-CERT. Criminals can engineer malware to take advantage of these file type exploits to compromise attacked systems or steal confidential data.[9]
Window of vulnerability[edit]
The time from when a software exploit first becomes active to the time when the number of vulnerable systems shrinks to insignificance is known as the window of vulnerability.[10] The timeline for each software vulnerability is defined by the following main events:
- t0: The vulnerability is discovered (by anyone).
- t1a: A security patch is published (e.g., by the software vendor).
- t1b: An exploit becomes active.
- t2: Most vulnerable systems have applied the patch.
Thus the formula for the length of the window of vulnerability is: t2 − t1b.
In this formulation, it is always true that t0 ≤ t1a, and t0 ≤ t1b. Note that t0 is not the same as day zero. For example, if a hacker is the first to discover (at t0) the vulnerability, the vendor might not learn of it until much later (on day zero).
For normal vulnerabilities, t1b > t1a. This implies that the software vendor was aware of the vulnerability and had time to publish a security patch (t1a) before any hacker could craft a workable exploit (t1b). For zero-day exploits, t1b ≤ t1a, such that the exploit becomes active before a patch is made available.
By not disclosing known vulnerabilities, a software vendor hopes to reach t2 before t1b is reached, thus avoiding any exploits. However, the vendor has no guarantees that hackers will not find vulnerabilities on their own. Furthermore, hackers can analyze the security patches themselves, and thereby discover the underlying vulnerabilities and automatically generate working exploits.[11] These exploits can be used effectively up until time t2.
In practice, the length of the window of vulnerability varies between systems, vendors, and individual vulnerabilities. It is often measured in days, with one report from 2006 estimating the average as 28 days.[12]
Protection[edit]
Zero-day protection is the ability to provide protection against zero-day exploits. Since zero-day attacks are generally unknown to the public, it is often difficult to defend against them. Zero-day attacks are often effective against «secure» networks and can remain undetected even after they are launched. Thus, users of so-called secure systems must also exercise common sense and practice safe computing habits.[13]
Many techniques exist to limit the effectiveness of zero-day memory corruption vulnerabilities such as buffer overflows. These protection mechanisms exist in contemporary operating systems such as macOS, Windows Vista and beyond (see also: Security and safety features new to Windows Vista), Solaris, Linux, Unix, and Unix-like environments; Windows XP Service Pack 2 includes limited protection against generic memory corruption vulnerabilities[14] and previous versions include even less. Desktop and server protection software also exist to mitigate zero-day buffer overflow vulnerabilities. Typically, these technologies involve heuristic termination analysis in order to stop attacks before they cause any harm.[15]
It has been suggested that a solution of this kind may be out of reach because it is algorithmically impossible in the general case to analyze any arbitrary code to determine if it is malicious, as such an analysis reduces to the halting problem over a linear bounded automaton, which is unsolvable. It is, however, unnecessary to address the general case (that is, to sort all programs into the categories of malicious or non-malicious) under most circumstances in order to eliminate a wide range of malicious behaviors. It suffices to recognize the safety of a limited set of programs (e.g., those that can access or modify only a given subset of machine resources) while rejecting both some safe and all unsafe programs. This does require the integrity of those safe programs to be maintained, which may prove difficult in the face of a kernel-level exploit.[citation needed]
The Zeroday Emergency Response Team (ZERT) was a group of software engineers who worked to release non-vendor patches for zero-day exploits.
Worms[edit]
Zero-day worms take advantage of a surprise attack while they are still unknown to computer security professionals. Recent history shows an increasing rate of worm propagation.[16] Well designed worms can spread very fast with devastating consequences to the Internet and other systems.[citation needed]
Ethics[edit]
Differing ideologies exist relating to the collection and use of zero-day vulnerability information. Many computer security vendors perform research on zero-day vulnerabilities in order to better understand the nature of vulnerabilities and their exploitation by individuals, computer worms and viruses. Alternatively, some vendors purchase vulnerabilities to augment their research capacity.[clarification needed] An example of such a program is TippingPoint’s Zero Day Initiative. While selling and buying these vulnerabilities is not technically illegal in most parts of the world, there is a lot of controversy over the method of disclosure. A 2006 German decision to include Article 6 of the Convention on Cybercrime and the EU Framework Decision on Attacks against Information Systems may make selling or even manufacturing vulnerabilities illegal.[citation needed]
Most formal programs follow some form of Rain Forest Puppy’s disclosure guidelines or the more recent OIS Guidelines for Security Vulnerability Reporting and Response.[citation needed] In general, these rules forbid the public disclosure of vulnerabilities without notification to the vendor and adequate time to produce a patch.
Viruses[edit]
A zero-day virus (also known as zero-day malware or next-generation malware) is a previously unknown computer virus or other malware for which specific antivirus software signatures are not yet available.[17]
Traditionally, antivirus software relied upon signatures to identify malware. A virus signature is a unique pattern or code that can be used to detect and identify specific viruses. The antivirus scans file signatures and compares them to a database of known malicious codes. If they match, the file is flagged and treated as a threat. The major limitation of signature-based detection is that it is only capable of flagging already known malware, making it useless against zero-day attacks.[18] Most modern antivirus software still uses signatures but also carries out other types of analysis.[citation needed]
Code analysis[edit]
In code analysis, the machine code of the file is analysed to see if there is anything that looks suspicious. Typically, malware has characteristic behaviour; code analysis attempts to detect if this is present in the code.
Although useful, code analysis has significant limitations. It is not always easy to determine what a section of code is intended to do, particularly if it is very complex and has been deliberately written with the intention of defeating analysis. Another limitation of code analysis is the time and resources available. In the competitive world of antivirus software, there is always a balance between the effectiveness of analysis and the time delay involved.
One approach to overcome the limitations of code analysis is for the antivirus software to run suspect sections of code in a safe sandbox and observe their behavior. This can be orders of magnitude faster than analyzing the same code, but must resist (and detect) attempts by the code to detect the sandbox.
Generic signatures[edit]
Generic signatures are signatures that are specific to certain behaviour rather than a specific item of malware. Most new malware is not totally novel, but is a variation on earlier malware, or contains code from one or more earlier examples of malware. Thus, the results of previous analysis can be used against new malware.
Competitiveness in the antivirus software industry[edit]
It is generally accepted in the antivirus industry that most vendors’ signature-based protection is identically effective. If a signature is available for an item of malware, then every product (unless dysfunctional) should detect it. However, some vendors are significantly faster than others at becoming aware of new viruses and/or updating their customers’ signature databases to detect them.[19]
There is a wide range of effectiveness in terms of zero-day virus protection. The German computer magazine c’t found that detection rates for zero-day viruses varied from 20% to 68%.[20] It is primarily in the area of zero-day virus performance that manufacturers now compete.
U.S. government involvement[edit]
NSA’s use of zero-day exploits (2017)[edit]
In mid-April 2017 the hackers known as The Shadow Brokers (TSB), who are allegedly linked to the Russian government,[21][22] released files from the NSA (initially just regarded as alleged to be from the NSA, later confirmed through internal details and by American whistleblower Edward Snowden)[23] which include a series of ‘zero-day exploits’ targeting Microsoft Windows software and a tool to penetrate the Society for Worldwide Interbank Financial Telecommunication (SWIFT)’s service provider.[24][25][26] Ars Technica had reported Shadow Brokers’ hacking claims in mid-January 2017,[27] and in April the Shadow Brokers posted the exploits as proof.[27]
Vulnerabilities Equities Process[edit]
The Vulnerabilities Equities Process, first revealed publicly in 2016, is a process used by the U.S. federal government to determine on a case-by-case basis how it should treat zero-day computer security vulnerabilities: whether to disclose them to the public to help improve general computer security or to keep them secret for offensive use against the government’s adversaries.[28] The process has been criticized for a number of deficiencies, including restriction by non-disclosure agreements, lack of risk ratings, special treatment for the NSA, and a less than full commitment to disclosure as the default option.[29]
See also[edit]
- Access control
- Bug bounty program
- Exploit-as-a-Service
- Heuristic analysis
- Market for zero-day exploits
- Network Access Control
- Network Access Protection
- Network Admission Control
- Software-defined protection
- Targeted attacks
- Vault 7
- White hat (computer security)
- Zero Days, a documentary about the 4 zero-days in stuxnet
References[edit]
- ^ Guo, Mingyu; Wang, Guanhua; Hata, Hideaki; Babar, Muhammad Ali (2021-07-01). «Revenue maximizing markets for zero-day exploits». Autonomous Agents and Multi-Agent Systems. 35 (2): 36. arXiv:2006.14184. doi:10.1007/s10458-021-09522-w. ISSN 1387-2532.
- ^ Compare: «What is a Zero-Day Vulnerability?». pctools. Symantec. Archived from the original on 2017-07-04. Retrieved 2016-01-20.
A zero day vulnerability refers to an exploitable bug in software that is unknown to the vendor. This security hole may be exploited by crackers before the vendor becomes aware and hurries to fix it—this exploit is called a zero day attack.
- ^ Zetter, Kim (Nov 11, 2014). «Hacker Lexicon: What Is a Zero Day?». Wired.
- ^ «Where the term «Zero Day» comes from — mmmm». 2018-01-31. Archived from the original on 2018-01-31. Retrieved 2021-09-05.
- ^ «Flash Vulnerabilities Causing Problems». ESET. Archived from the original on March 4, 2016. Retrieved Mar 4, 2016.
- ^ The Man Who Found Stuxnet – Sergey Ulasen in the Spotlight published on November 2, 2011
- ^ Ahmed, Azam; Perlroth, Nicole (19 June 2017). «Using Texts as Lures, Government Spyware Targets Mexican Journalists and Their Families». The New York Times. Archived from the original on 2017-12-29. Retrieved 19 May 2019.
- ^ «SANS sees upsurge in zero-day Web-based attacks». Computerworld. Archived from the original on December 22, 2008.
- ^ «E-mail Residual Risk Assessment» (PDF). Avinti, Inc. p. 2.
- ^ Johansen, Håvard; Johansen, Dag; Renesse, Robbert van (2007-05-14). Venter, Hein; Eloff, Mariki; Labuschagne, Les; Eloff, Jan; Solms, Rossouw von (eds.). New Approaches for Security, Privacy and Trust in Complex Environments. IFIP International Federation for Information Processing. Springer US. pp. 373–384. doi:10.1007/978-0-387-72367-9_32. ISBN 9780387723662.
- ^ Halvar, Flake (2016-10-25). «Structural Comparison of Executable Objects». Lecture Notes in Informatics: 46. doi:10.17877/de290r-2007.
- ^ Internet Security Threat Report. Vol. 10. Symantec Corp. September 2006. p. 12.
- ^ «What is a Zero-Day Exploit? — An introduction to zero-day software exploits and tips on avoiding them at home». what-is-what.com.
- ^ «Changes to Functionality in Microsoft Windows XP Service Pack 2». Microsoft.
- ^ «Mitigating XML Injection 0-Day Attacks through Strategy-Based Detection Systems» (PDF). Retrieved 29 December 2013.
- ^ «2021 has broken the record for zero-day hacking attacks». MIT Technology Review. Retrieved 2022-05-01.
- ^ «Cyberhawk – zero day threat detection review». Kickstartnews. Retrieved 29 December 2013.
- ^ «What Are Zero-Day Attacks? | Safety Detective». Safety Detective. 2018-08-30. Retrieved 2018-11-22.
- ^ Robert Westervelt (April 2011). «Antivirus vendors go beyond signature-based antivirus». Retrieved 7 January 2019.
- ^ Goodin, Dan (21 December 2008). «Anti-virus protection gets worse». The Channel. Retrieved 29 December 2013.
- ^ «Circumstantial evidence and conventional wisdom indicates Russian responsibility. Here’s why that is significant». Twitter. August 16, 2016. Retrieved August 22, 2016.
- ^ Price, Rob. «Edward Snowden: Russia might have leaked ni9G3r alleged NSA cyberweapons as a ‘warning’«. Business Insider. Retrieved August 22, 2016.
- ^ Sam Biddle (August 19, 2016). «The NSA Leak is Real, Snowden Documents Confirm». The Intercept. Retrieved April 15, 2017.
- ^ Henry Farrell (April 15, 2017), «Hackers have just dumped a treasure trove of NSA data. Here’s what it means.», The Washington Post, retrieved April 15, 2017
- ^ Baldwin, Clare (15 April 2017). «Hackers release files indicating NSA monitored global bank transfers». Reuters. Retrieved April 15, 2017.
- ^ Lawler, Richard. «Shadow Brokers release also suggests NSA spied on bank transactions». Engadget. Retrieved April 15, 2017.
- ^ a b Dan Goodin (2017-01-13). «NSA-leaking Shadow Brokers lob Molotov cocktail before exiting world stage». Ars Technica. Retrieved January 14, 2017.
- ^ Newman, Lily Hay (2017-11-15). «Feds Explain Their Software Bug Stash—But Don’t Erase Concerns». WIRED. Retrieved 2017-11-16.
- ^ McCarthy, Kieren (15 November 2017). «The four problems with the US government’s latest rulebook on security bug disclosures». The Register. Retrieved 2017-11-16.
Further reading[edit]
- Messmer, Ellen (April 6, 2007). «Is Desktop Antivirus Dead?». PC World. Archived from the original on April 24, 2016. Retrieved July 24, 2015.
- Naraine, Ryan (December 1, 2006). «Anti-Virus Is Dead, D-E-A-D, Dead!». eWeek. Archived from the original on January 7, 2010.
- Examples of zero-day attacks
(Chronological order)
- «PowerPoint Zero-Day Attack May Be Case of Corporate Espionage». FoxNews. July 24, 2006.
- Naraine, Ryan (December 7, 2006). «Microsoft Issues Word Zero-Day Attack Alert». eWeek.
- «Attackers seize on new zero-day in Word». InfoWorld. February 15, 2007.
From Wikipedia, the free encyclopedia
A zero-day (also known as a 0-day) is a computer-software vulnerability previously unknown to those who should be interested in its mitigation, like the vendor of the target software.[1] Until the vulnerability is mitigated, hackers can exploit it to adversely affect programs, data, additional computers or a network.[2] An exploit taking advantage of a zero-day is called a zero-day exploit, or zero-day attack.
The term «zero-day» originally referred to the number of days since a new piece of software was released to the public, so «zero-day software» was obtained by hacking into a developer’s computer before release. Eventually the term was applied to the vulnerabilities that allowed this hacking, and to the number of days that the vendor has had to fix them.[3][4][5] Once the vendors learn of the vulnerability, they will usually create patches or advise workarounds to mitigate it.
The more recently that the vendor has become aware of the vulnerability, the more likely it is that no fix or mitigation has been developed. Once a fix is developed, the chance of the exploit succeeding decreases as more users apply the fix over time. For zero-day exploits, unless the vulnerability is inadvertently fixed, such as by an unrelated update that happens to fix the vulnerability, the probability that a user has applied a vendor-supplied patch that fixes the problem is zero, so the exploit would remain available. Zero-day attacks are a severe threat.[6]
Attack vectors[edit]
Potential attack vectors for a zero-day vulnerability are identical to known vulnerabilities and those that have available patches. For example, when a user visits a rogue website, malicious code on the site can exploit unpatched vulnerabilities in a Web browser. Web browsers are a particular target for criminals because of their widespread distribution and usage. Cybercriminals, as well as international vendors of spyware such as Israel’s NSO Group,[7] can also send malicious e-mail attachments via SMTP, which exploit vulnerabilities in the application opening the attachment.[8] Exploits that take advantage of common file types are numerous and frequent, as evidenced by their increasing appearances in databases such as US-CERT. Criminals can engineer malware to take advantage of these file type exploits to compromise attacked systems or steal confidential data.[9]
Window of vulnerability[edit]
The time from when a software exploit first becomes active to the time when the number of vulnerable systems shrinks to insignificance is known as the window of vulnerability.[10] The timeline for each software vulnerability is defined by the following main events:
- t0: The vulnerability is discovered (by anyone).
- t1a: A security patch is published (e.g., by the software vendor).
- t1b: An exploit becomes active.
- t2: Most vulnerable systems have applied the patch.
Thus the formula for the length of the window of vulnerability is: t2 − t1b.
In this formulation, it is always true that t0 ≤ t1a, and t0 ≤ t1b. Note that t0 is not the same as day zero. For example, if a hacker is the first to discover (at t0) the vulnerability, the vendor might not learn of it until much later (on day zero).
For normal vulnerabilities, t1b > t1a. This implies that the software vendor was aware of the vulnerability and had time to publish a security patch (t1a) before any hacker could craft a workable exploit (t1b). For zero-day exploits, t1b ≤ t1a, such that the exploit becomes active before a patch is made available.
By not disclosing known vulnerabilities, a software vendor hopes to reach t2 before t1b is reached, thus avoiding any exploits. However, the vendor has no guarantees that hackers will not find vulnerabilities on their own. Furthermore, hackers can analyze the security patches themselves, and thereby discover the underlying vulnerabilities and automatically generate working exploits.[11] These exploits can be used effectively up until time t2.
In practice, the length of the window of vulnerability varies between systems, vendors, and individual vulnerabilities. It is often measured in days, with one report from 2006 estimating the average as 28 days.[12]
Protection[edit]
Zero-day protection is the ability to provide protection against zero-day exploits. Since zero-day attacks are generally unknown to the public, it is often difficult to defend against them. Zero-day attacks are often effective against «secure» networks and can remain undetected even after they are launched. Thus, users of so-called secure systems must also exercise common sense and practice safe computing habits.[13]
Many techniques exist to limit the effectiveness of zero-day memory corruption vulnerabilities such as buffer overflows. These protection mechanisms exist in contemporary operating systems such as macOS, Windows Vista and beyond (see also: Security and safety features new to Windows Vista), Solaris, Linux, Unix, and Unix-like environments; Windows XP Service Pack 2 includes limited protection against generic memory corruption vulnerabilities[14] and previous versions include even less. Desktop and server protection software also exist to mitigate zero-day buffer overflow vulnerabilities. Typically, these technologies involve heuristic termination analysis in order to stop attacks before they cause any harm.[15]
It has been suggested that a solution of this kind may be out of reach because it is algorithmically impossible in the general case to analyze any arbitrary code to determine if it is malicious, as such an analysis reduces to the halting problem over a linear bounded automaton, which is unsolvable. It is, however, unnecessary to address the general case (that is, to sort all programs into the categories of malicious or non-malicious) under most circumstances in order to eliminate a wide range of malicious behaviors. It suffices to recognize the safety of a limited set of programs (e.g., those that can access or modify only a given subset of machine resources) while rejecting both some safe and all unsafe programs. This does require the integrity of those safe programs to be maintained, which may prove difficult in the face of a kernel-level exploit.[citation needed]
The Zeroday Emergency Response Team (ZERT) was a group of software engineers who worked to release non-vendor patches for zero-day exploits.
Worms[edit]
Zero-day worms take advantage of a surprise attack while they are still unknown to computer security professionals. Recent history shows an increasing rate of worm propagation.[16] Well designed worms can spread very fast with devastating consequences to the Internet and other systems.[citation needed]
Ethics[edit]
Differing ideologies exist relating to the collection and use of zero-day vulnerability information. Many computer security vendors perform research on zero-day vulnerabilities in order to better understand the nature of vulnerabilities and their exploitation by individuals, computer worms and viruses. Alternatively, some vendors purchase vulnerabilities to augment their research capacity.[clarification needed] An example of such a program is TippingPoint’s Zero Day Initiative. While selling and buying these vulnerabilities is not technically illegal in most parts of the world, there is a lot of controversy over the method of disclosure. A 2006 German decision to include Article 6 of the Convention on Cybercrime and the EU Framework Decision on Attacks against Information Systems may make selling or even manufacturing vulnerabilities illegal.[citation needed]
Most formal programs follow some form of Rain Forest Puppy’s disclosure guidelines or the more recent OIS Guidelines for Security Vulnerability Reporting and Response.[citation needed] In general, these rules forbid the public disclosure of vulnerabilities without notification to the vendor and adequate time to produce a patch.
Viruses[edit]
A zero-day virus (also known as zero-day malware or next-generation malware) is a previously unknown computer virus or other malware for which specific antivirus software signatures are not yet available.[17]
Traditionally, antivirus software relied upon signatures to identify malware. A virus signature is a unique pattern or code that can be used to detect and identify specific viruses. The antivirus scans file signatures and compares them to a database of known malicious codes. If they match, the file is flagged and treated as a threat. The major limitation of signature-based detection is that it is only capable of flagging already known malware, making it useless against zero-day attacks.[18] Most modern antivirus software still uses signatures but also carries out other types of analysis.[citation needed]
Code analysis[edit]
In code analysis, the machine code of the file is analysed to see if there is anything that looks suspicious. Typically, malware has characteristic behaviour; code analysis attempts to detect if this is present in the code.
Although useful, code analysis has significant limitations. It is not always easy to determine what a section of code is intended to do, particularly if it is very complex and has been deliberately written with the intention of defeating analysis. Another limitation of code analysis is the time and resources available. In the competitive world of antivirus software, there is always a balance between the effectiveness of analysis and the time delay involved.
One approach to overcome the limitations of code analysis is for the antivirus software to run suspect sections of code in a safe sandbox and observe their behavior. This can be orders of magnitude faster than analyzing the same code, but must resist (and detect) attempts by the code to detect the sandbox.
Generic signatures[edit]
Generic signatures are signatures that are specific to certain behaviour rather than a specific item of malware. Most new malware is not totally novel, but is a variation on earlier malware, or contains code from one or more earlier examples of malware. Thus, the results of previous analysis can be used against new malware.
Competitiveness in the antivirus software industry[edit]
It is generally accepted in the antivirus industry that most vendors’ signature-based protection is identically effective. If a signature is available for an item of malware, then every product (unless dysfunctional) should detect it. However, some vendors are significantly faster than others at becoming aware of new viruses and/or updating their customers’ signature databases to detect them.[19]
There is a wide range of effectiveness in terms of zero-day virus protection. The German computer magazine c’t found that detection rates for zero-day viruses varied from 20% to 68%.[20] It is primarily in the area of zero-day virus performance that manufacturers now compete.
U.S. government involvement[edit]
NSA’s use of zero-day exploits (2017)[edit]
In mid-April 2017 the hackers known as The Shadow Brokers (TSB), who are allegedly linked to the Russian government,[21][22] released files from the NSA (initially just regarded as alleged to be from the NSA, later confirmed through internal details and by American whistleblower Edward Snowden)[23] which include a series of ‘zero-day exploits’ targeting Microsoft Windows software and a tool to penetrate the Society for Worldwide Interbank Financial Telecommunication (SWIFT)’s service provider.[24][25][26] Ars Technica had reported Shadow Brokers’ hacking claims in mid-January 2017,[27] and in April the Shadow Brokers posted the exploits as proof.[27]
Vulnerabilities Equities Process[edit]
The Vulnerabilities Equities Process, first revealed publicly in 2016, is a process used by the U.S. federal government to determine on a case-by-case basis how it should treat zero-day computer security vulnerabilities: whether to disclose them to the public to help improve general computer security or to keep them secret for offensive use against the government’s adversaries.[28] The process has been criticized for a number of deficiencies, including restriction by non-disclosure agreements, lack of risk ratings, special treatment for the NSA, and a less than full commitment to disclosure as the default option.[29]
See also[edit]
- Access control
- Bug bounty program
- Exploit-as-a-Service
- Heuristic analysis
- Market for zero-day exploits
- Network Access Control
- Network Access Protection
- Network Admission Control
- Software-defined protection
- Targeted attacks
- Vault 7
- White hat (computer security)
- Zero Days, a documentary about the 4 zero-days in stuxnet
References[edit]
- ^ Guo, Mingyu; Wang, Guanhua; Hata, Hideaki; Babar, Muhammad Ali (2021-07-01). «Revenue maximizing markets for zero-day exploits». Autonomous Agents and Multi-Agent Systems. 35 (2): 36. arXiv:2006.14184. doi:10.1007/s10458-021-09522-w. ISSN 1387-2532.
- ^ Compare: «What is a Zero-Day Vulnerability?». pctools. Symantec. Archived from the original on 2017-07-04. Retrieved 2016-01-20.
A zero day vulnerability refers to an exploitable bug in software that is unknown to the vendor. This security hole may be exploited by crackers before the vendor becomes aware and hurries to fix it—this exploit is called a zero day attack.
- ^ Zetter, Kim (Nov 11, 2014). «Hacker Lexicon: What Is a Zero Day?». Wired.
- ^ «Where the term «Zero Day» comes from — mmmm». 2018-01-31. Archived from the original on 2018-01-31. Retrieved 2021-09-05.
- ^ «Flash Vulnerabilities Causing Problems». ESET. Archived from the original on March 4, 2016. Retrieved Mar 4, 2016.
- ^ The Man Who Found Stuxnet – Sergey Ulasen in the Spotlight published on November 2, 2011
- ^ Ahmed, Azam; Perlroth, Nicole (19 June 2017). «Using Texts as Lures, Government Spyware Targets Mexican Journalists and Their Families». The New York Times. Archived from the original on 2017-12-29. Retrieved 19 May 2019.
- ^ «SANS sees upsurge in zero-day Web-based attacks». Computerworld. Archived from the original on December 22, 2008.
- ^ «E-mail Residual Risk Assessment» (PDF). Avinti, Inc. p. 2.
- ^ Johansen, Håvard; Johansen, Dag; Renesse, Robbert van (2007-05-14). Venter, Hein; Eloff, Mariki; Labuschagne, Les; Eloff, Jan; Solms, Rossouw von (eds.). New Approaches for Security, Privacy and Trust in Complex Environments. IFIP International Federation for Information Processing. Springer US. pp. 373–384. doi:10.1007/978-0-387-72367-9_32. ISBN 9780387723662.
- ^ Halvar, Flake (2016-10-25). «Structural Comparison of Executable Objects». Lecture Notes in Informatics: 46. doi:10.17877/de290r-2007.
- ^ Internet Security Threat Report. Vol. 10. Symantec Corp. September 2006. p. 12.
- ^ «What is a Zero-Day Exploit? — An introduction to zero-day software exploits and tips on avoiding them at home». what-is-what.com.
- ^ «Changes to Functionality in Microsoft Windows XP Service Pack 2». Microsoft.
- ^ «Mitigating XML Injection 0-Day Attacks through Strategy-Based Detection Systems» (PDF). Retrieved 29 December 2013.
- ^ «2021 has broken the record for zero-day hacking attacks». MIT Technology Review. Retrieved 2022-05-01.
- ^ «Cyberhawk – zero day threat detection review». Kickstartnews. Retrieved 29 December 2013.
- ^ «What Are Zero-Day Attacks? | Safety Detective». Safety Detective. 2018-08-30. Retrieved 2018-11-22.
- ^ Robert Westervelt (April 2011). «Antivirus vendors go beyond signature-based antivirus». Retrieved 7 January 2019.
- ^ Goodin, Dan (21 December 2008). «Anti-virus protection gets worse». The Channel. Retrieved 29 December 2013.
- ^ «Circumstantial evidence and conventional wisdom indicates Russian responsibility. Here’s why that is significant». Twitter. August 16, 2016. Retrieved August 22, 2016.
- ^ Price, Rob. «Edward Snowden: Russia might have leaked ni9G3r alleged NSA cyberweapons as a ‘warning’«. Business Insider. Retrieved August 22, 2016.
- ^ Sam Biddle (August 19, 2016). «The NSA Leak is Real, Snowden Documents Confirm». The Intercept. Retrieved April 15, 2017.
- ^ Henry Farrell (April 15, 2017), «Hackers have just dumped a treasure trove of NSA data. Here’s what it means.», The Washington Post, retrieved April 15, 2017
- ^ Baldwin, Clare (15 April 2017). «Hackers release files indicating NSA monitored global bank transfers». Reuters. Retrieved April 15, 2017.
- ^ Lawler, Richard. «Shadow Brokers release also suggests NSA spied on bank transactions». Engadget. Retrieved April 15, 2017.
- ^ a b Dan Goodin (2017-01-13). «NSA-leaking Shadow Brokers lob Molotov cocktail before exiting world stage». Ars Technica. Retrieved January 14, 2017.
- ^ Newman, Lily Hay (2017-11-15). «Feds Explain Their Software Bug Stash—But Don’t Erase Concerns». WIRED. Retrieved 2017-11-16.
- ^ McCarthy, Kieren (15 November 2017). «The four problems with the US government’s latest rulebook on security bug disclosures». The Register. Retrieved 2017-11-16.
Further reading[edit]
- Messmer, Ellen (April 6, 2007). «Is Desktop Antivirus Dead?». PC World. Archived from the original on April 24, 2016. Retrieved July 24, 2015.
- Naraine, Ryan (December 1, 2006). «Anti-Virus Is Dead, D-E-A-D, Dead!». eWeek. Archived from the original on January 7, 2010.
- Examples of zero-day attacks
(Chronological order)
- «PowerPoint Zero-Day Attack May Be Case of Corporate Espionage». FoxNews. July 24, 2006.
- Naraine, Ryan (December 7, 2006). «Microsoft Issues Word Zero-Day Attack Alert». eWeek.
- «Attackers seize on new zero-day in Word». InfoWorld. February 15, 2007.
Уязвимость нулевого дня (0day, zero day) — термин, который используется для обозначения не выявленных на стадии тестирования угроз безопасности, уязвимостей, брешей в программном коде, против которых не существует защиты. Изначально они не известны никому: разработчики, антивирусные компании, пользователи не подозревают об их существовании. Об уязвимости нулевого дня становится известно до того, как производитель выпускает обновления; следовательно, у разработчиков есть 0 дней, чтобы устранить изъян. Устройства, на которых установлена уязвимая программа, находятся в зоне риска, а пользователи не имеют возможности защититься.
Обнаружение и распознавание уязвимостей
Иногда уязвимость нулевого дня выявляют хакеры, которые не хотят использовать ее в злонамеренных целях и сообщают о ней разработчикам. В других случаях ошибку могут найти пользователи или сами разработчики, после чего производителями выпускается новая версия ПО или обновление. Кроме того, антивирусы тоже иногда могут зарегистрировать вредоносные действия.
Впрочем, очевидно, что обнаружить баг могут и хакеры-злоумышленники, преследующие вредоносные цели. Тогда они будут эксплуатировать его сами или продадут другим киберпреступникам.
Для обнаружения уязвимостей злоумышленники используют различные методы:
- дизассемблирование кода программы и поиск опасных ошибок в коде программного обеспечения;
- fuzz-тестирование или «стресс-тест» для ПО (программное обеспечение обрабатывает большой объем информации, которая содержит заведомо ложные настройки);
- реверс-инжиниринг и поиск уязвимостей в алгоритмах работы ПО.
В противоположном случае разработчик знает, что существует баг в коде, но не хочет или не может его устранить, не предупреждая никого об уязвимости.
Атаки на уязвимости нулевого дня
Если произошла атака с использованием уязвимости нулевого дня, то это значит, что злоумышленники знали о баге достаточное количество времени, чтобы написать и активировать вредоносную программу для его эксплуатации. Такие атаки опасны тем, что к ним невозможно подготовиться, а также тем, что постоянное обновление ПО не дает гарантии их предотвращения или снижения риска их возникновения.
Защита от уязвимостей нулевого дня и их устранение
Устранение ошибок входит в обязанности разработчика. Критическая проблема закрывается в течение нескольких дней или недель; все это время системы, использующие уязвимое ПО, будут находиться в опасности.
Для защиты можно использовать традиционные антивирусные технологии, а также проактивные средства:
- Sandboxing (песочницу);
- анализ поведения;
- эмуляцию кода;
- эвристический анализ;
- виртуализацию рабочего окружения.
Это может расстраивать, когда часть программного обеспечения требует обновления с помощью исправлений безопасности, но они очень важны для безопасности вашего устройства. Когда программа обновляется, она лучше защищает себя от ужасных атак нулевого дня и обеспечивает вашу безопасность.
С учетом сказанного, что такое эксплойт нулевого дня и почему так важно постоянно обновлять свое программное обеспечение?
Что такое эксплойт нулевого дня?
Прежде чем мы перейдем к тому, что такое эксплойт нулевого дня (или нулевого дня), нам нужно взглянуть на мир охоты за эксплойтами. Разработчику чрезвычайно сложно публиковать программное обеспечение, в котором нет ошибок; в результате это создает охотников за эксплойтами, которые хотят найти эти ошибки.
Охотник за эксплойтами будет пробовать разные методы, чтобы найти брешь в защите программного обеспечения. Это может включать в себя обман программы, позволяющий злоумышленнику получить удаленный доступ к программному обеспечению, или принуждение к запуску вредоносной программы.
Как только охотник находит подвиг, он может выбрать один из двух путей. Это зависит в первую очередь от их общего настроения и причин, по которым они охотятся.
Устранение уязвимости нулевого дня
Если охотник за ошибками – исследователь или энтузиаст, история, скорее всего, пойдет по правильному пути. В этом случае охотник за эксплойтами тайно сообщит об ошибке разработчику, чтобы эксплойт не попал в чужие руки.
Как только разработчик узнает об эксплойте, он может быстро разработать и выпустить патч, прежде чем кто-либо еще узнает об ошибке. Конечно, исправление полезно только в том случае, если пользователи действительно загружают его, поэтому некоторые программы автоматически проверяют и загружают исправления безопасности.
Этот метод установки исправлений может вас раздражать, поскольку часть программного обеспечения может требовать обновления каждый день. Тем не менее, важно, чтобы эти обновления запускались, поскольку разработчик может исправить эксплойт нулевого дня для защиты своих пользователей.
Использование уязвимости нулевого дня
Однако другой путь не имеет такого счастливого конца. Если охотник за ошибками ищет эксплойты, которыми они могут злоупотребить, он будет держать эти знания подальше от разработчика. Затем охотник за ошибками разработает и выпустит программу, которая использует ошибку в личных целях.
Этот сценарий особенно неприятен, так как он активно используется без ведома разработчика. Они не могут исправить то, о чем не знают, что дает киберпреступникам полную свободу действий над всеми копиями программного обеспечения, пока кто-то другой не обнаружит ошибку.
Как только разработчик узнает об активно используемой ошибке, это превращается в гонку со временем. Если разработчик поторопится, он сможет устранить ошибку до того, как будет нанесен какой-либо ущерб; в противном случае это может поставить под угрозу безопасность клиентов.
Когда злонамеренный агент находит и использует ошибку, это создает критический момент в кибербезопасности, когда две стороны соревнуются, чтобы исправить или использовать уязвимость. Этот момент обозначен термином «эксплойт нулевого дня». Это потому, что эксплойт разрабатывается в тот же день, когда была обнаружена ошибка – это «нулевой день».
Опасность эксплойтов нулевого дня
Эксплойты нулевого дня опасны, потому что у них есть два преимущества перед миром кибербезопасности. Они не только злоупотребляют ошибкой, которая еще не исправлена, но и делают это без ведома разработчика, пока не станет слишком поздно.
Stuxnet – особенно неприятный пример атаки нулевого дня. Stuxnet злоупотребил эксплойтом, обнаруженным в иранском центре по обогащению урана. Stuxnet проник в систему, заставил центрифуги вращаться так быстро, что они развалились, а затем сделал ложный диагностический отчет, в котором говорилось, что все в порядке.
Он сознательно старался изо всех сил обмануть пользователей системы, заставив их думать, что все идет гладко. Таким образом, никто не знал, что что-то не так, пока около тысячи центрифуг не разорвались в клочья.
Природа вируса нулевого дня означает, что он может с большой эффективностью скрыться от радаров. Антивирусы его не ловят, потому что не знают, что искать. Программное обеспечение не может от него защититься, потому что изначально не знает, что в нем есть изъян.
Это делает атаку нулевого дня неприятным способом для хакера нанести ущерб, даже если жертва даже не осознает, что происходит.
Как обезопасить себя от уязвимостей нулевого дня
Угрозы нулевого дня определенно звучат устрашающе, и их ни в коем случае нельзя недооценивать. Однако еще не все потеряно; есть способы позаботиться о себе и предотвратить заражение компьютера нулевым днем.
Лучшая защита от вируса нулевого дня – это четкое представление о том, чего нельзя делать в Интернете. Разработчики вредоносных программ могут использовать все проблемы нулевого дня, которые им нужны, но им все равно нужно каким-то образом перенести полезную нагрузку на ваш компьютер. Пока вы отрицаете это, ваше устройство защищено от большинства угроз.
Таким образом, вам определенно следует узнать как можно больше об онлайн-безопасности . Не все советы подходят для защиты от нулевого дня, но вам все равно нужно знать, как безопасно пользоваться Интернетом.
Если у вас уже есть основы, вы можете многое сделать, чтобы защитить себя от уязвимостей нулевого дня . Эти эксплойты лучше всего работают в системах, которые не обновляются регулярно, поэтому загрузка исправления нулевого дня, как только он будет готов, – фантастический способ обезопасить себя.
Стать героем против угроз нулевого дня
Угроза нулевого дня может быть серьезной проблемой кибербезопасности, но это не значит, что вы полностью беспомощны против них. Теперь вы знаете, что такое угроза нулевого дня, почему они так опасны и почему важно поддерживать все свое программное обеспечение в актуальном состоянии, независимо от того, насколько раздражают запросы на обновление.
Обеспечение защиты вашего ПК от кибератак может вскружить вам голову. К счастью, если вы будете следовать нескольким правилам, которые можно и чего нельзя делать, вы будете защищены от большинства угроз в Интернете.