Что значит уязвимость нулевого дня
Как защитить Вашу компанию от атак нулевого дня
Любая атака, которая использует преимущества «окна возможностей» в результате недавно обнаруженных уязвимостей, — называется атакой нулевого дня. Другими словами, речь идет об оперативно выполняемой атаке, которая осуществляется кибер-преступниками раньше, чем эксперты безопасности смогут устранить данную уязвимость… или даже прежде, чем они узнают о данной атаке.
Любая атака такого типа – это мечта любого хакера, т.к. она гарантирует мгновенную славу (иногда эти уязвимости распространяются в «теневом Интернете»), при этом такие атаки известны своей деструктивностью (особенно, когда она используется хакером для собственной выгоды). Также такие атаки являются полезным инструментом для правительств ряда стран, которые пытаются нарушить работу иностранных систем или предприятий.
Путь поиска «нулевых дней»
Защита от подобных атак настолько важна, что крупные технологические компании используют собственные команды хакеров, которые стараются обнаружить и исследовать уязвимости «нулевого дня» раньше, чем кибер-преступники воспользуются ими.
Назначение таких команд – разработка соответствующих патчей, а также информирование поставщика уязвимого программного обеспечения. Например, Google имеет свою собственную команду хакеров под названием Project Zero, возглавляемую Крисом Эвансом, в составе которой присутствуют и другие хорошо известные хакеры, такие как Джордж Хотц (обладатель крупнейшего за всю истории приза за обнаружение уязвимости), Тэвис Орманди, Бен Хокс и Брит Ян Биир. Другие компании, такие как Endgame Systems, Revuln, VUPEN Security, Netragard или Exodus Intelligence также ведут активную работу по обнаружению подобных угроз.
Важно иметь ввиду еще один аспект, связанный с уязвимостями нулевого дня. Если хакеры, обнаружившие уязвимость, решили не распространять о ней информацию и выбрали более дискретный способ ее использования, то пользователи могут неделями, месяцами или даже годами подвергаться риску со стороны этих неизвестных уязвимостей (это и есть так называемые постоянные угрозы повышенной сложности – APT или Advanced Persistent Threats).
Как защититься от атак нулевого дня
Как уже упоминалось выше, очень сложно определить, откуда может исходить опасность таких атак нулевого дня. Невозможно просто сделать вакцину от них. Мы можем знать о существовании таких атак, но мы не знаем, чем они вызваны. Поэтому традиционные инструменты безопасности (например, антивирус) не способны бороться с потенциальными вредоносными программами, которые до сих пор не идентифицированы.
Впрочем, существуют определенные действия и меры, которые могли бы нам помочь снизить разрушительное воздействие атак нулевого дня.
• Никогда не устанавливайте лишние программы: каждая программа, установленная в Вашей системе, — это окно для проникновения потенциальных атак нулевого дня. Рекомендуется периодически просматривать список установленных программ и удалять те, которые Вы больше не используете.
• Не забывайте про обновления: имеющееся у Вас программное обеспечение всегда должно быть обновлено до последней версии.
• Используйте надежный файервол: если невозможно обнаружить вредоносную программу, которая проникает с использованием неизвестной уязвимости, то, может быть, Вы сможете обнаружить подозрительное соединение и блокировать его, пока это еще не поздно.
Однако, если пойти дальше, то очень важно, чтобы наши системы имели дополнительный защитный барьер, который не зависит от сигнатурной технологии обнаружения вредоносного программного обеспечения. Принимая во внимание данный факт, Panda Security разработала Adaptive Defense 360, который основан на различных подходах: мониторинг каждого приложения и анализ их поведения в режиме реального времени с помощью техник машинного обучения и платформ Больших данных.
Все это позволяет Adaptive Defense 360 предложить два типа блокировки:
• Основной режим блокировки, который допускает запуск как программного обеспечения, помеченного как goodware (невредоносное ПО), так и приложений, которые еще не были каталогизированы автоматизированными системами и экспертами Panda Security.
• Расширенный режим блокировки, который допускает только запуск тех приложений, которые отмечены как goodware.
Атаки нулевого дня, APT-атаки и защита от них с использованием решений Check Point
Множество систем безопасности на сегодня являются системами поиска совпадений (сигнатур) и моделей поведения уже известных угроз. Они бессильны против новых атак, на которые ещё нет сигнатур и патчей от производителя. Причем новые атаки, как правило, не имеют цели нанести заметного ущерба, а спроектированы для незаметного, скрытного выполнения вредных действий.
В данной статье будет рассмотрена анатомия проникновения вредоносного ПО в IT-инфраструктуры, а также решения Check Point, которые можно использовать, для защиты от такого рода атак.
Итак, как же стадии проникновения атаки нулевого дня в IT-инфраструктуры?
1. Приходит электронное письмо определенному сотруднику с использованием направленного фишинга, которое содержит вложение (файл, архив), как правило Adobe Reader файл (т.к. наиболее уязвимое корпоративное приложение – Adobe Reader) или же MS DOC файл со вшитым эксплоитом под используемое приложение. Как только пользователь открывает его или выполняет предварительный просмотр, эксплоит уже начал действовать. Он выполняет переполнение буфера приложения, открывшего файл, и получает права локального администратора, подложив соответствующую команду на исполнение.
2. После этого вредоносный код производит исходящую коммуникацию (outbound callback) к управляющему серверу (Command&Control Server).
4. Загруженный файл расшифровуется, устанавливается в системе и начинает выполнять эксфильтрацию данных, т.е. находить личные данные (логины, пароли, персональные файлы), корпоративные данные (счета, накладные и т.д.) и отсылать их по определенному адресу (как правило по шифрованному каналу)
5. Последний шаг – распространение и заражение других систем. Зная пароли от сервисов персональных коммуникаций (установив кейлоггер на скомпрометированой системе) можно от имени жертвы выслать вредоносные ссылки всем, кто с ней общается.
Все данные действия отображены на рис.1
Рис1. Процесс проникновения вредоносного ПО в IT-инфраструктуру
Определение атак нулевого дня и продвинутых стойких угроз
Давайте теперь рассмотрим, как решения компании Check Point обнаруживают такие попытки проникновения и какие ключевые факторы при анализе таких атак.
Начнем с рассмотрения задачи определения вредоносного ПО.
Как было рассмотрено ранее, изначально пользователю приходит вложение в почтовом сообщении с содержанием эксплоита. Как узнать, является ли вложение зараженным или нет?
Ответ – провести статический и, по надобности, динамический анализ всех документов и вложений в электронных письмах на содержание угроз.
Статический анализ заключается в проверке на соответствие сигнатурам антивируса Check Point.
Если в веб-объектах и документах не обнаружено угроз, они проверяются на подозрительность при помощи:
• эвристического анализа;
• проверке SNORT и YARA правилами;
• проверки наличия доверенной цифровой подписи документа;
Если документ оказался подозрительным, производится динамический анализ — запуск в эмулированной пользовательской среде, которая представляет собой виртуальную машину с предустановленными основными приложениями. Далее система Check Point наблюдает за поведением запущенного документа (создание дополнительных файлов, изменения ключей в реестре, установление коммуникаций с C&C-серверами).
Далее выносится вердикт о вредоносности документа. Если он оказался зараженным, то такой документ блокируется. Нет – пропускается пользователю.
Регламентируемая задержка при проверке статическим и динамическим анализом – до 2 минут.
Данное решение в Check Point представлено в двух видах:
• облачный сервис
• устройство на площадке заказчика
Сервис
При подключении сервиса есть несколько типов квот, которые отображены в таблице 1.
Табл.1. Квотирование облачного сервиса инспекции почтовых вложений Check Point на содержание атак нулевого дня и APT-атак
Поддерживаемые платформы и операционные среды Check Point для подключения сервиса отображены в таблице ниже
Подключение данного сервиса не зависит от количества шлюзов Check Point в существующей IT-инфраструктуре.
Устройство на площадке заказчика
Если же подключать облачный сервис нету желания по тем или иным причинам, можно взять устройство Check Point, специально предназначенное для этого.
Есть два устройства Check Point под эту задачу. Квотирование происходит тоже по количеству инспектируемых файлов в месяц. Количество пользователей – рекомендуемый параметр, но не столь важен, как количество файлов. Данные устройства и их параметры отображены на Рис.2.
Рис.2. Устройства Check Point для инспекции почтовых вложений на содержание атак нулевого дня и APT-атак
Как сервис, так и устройство, имеют одинаковые технические характеристики по типам инспектируемых файлов и поддерживаемых эмулированных операционных средах. Спецификация по данным параметрам представлена в таблице 2.
Табл.2. Поддерживаемые форматы файлов и виртуальные среды для инспекции почтовых вложений
Также есть тестовый онлайн сервис, с помощью которого можно проанализировать файл на наличие содержащегося вредоносного ПО и в положительном случае будет отображено его действия в эмулированной пользовательской среде. Данный сервис доступен по веб-ссылке ниже
threatemulation.checkpoint.com/teb/upload.jsp
Во всех случаях применяется эксплоит, который получает контроль над ПК жертвы и устанавливает исходящую сетевую коммуникацию к C&C-серверу, который далее передает вредоносное ПО, выполняющее самые разнообразные действия.
Заметить такие атаки крайне сложно, поскольку о них ещё не знают и почти все современные системы безопасности работают по принципу поиска совпадений и известных моделей поведения. Обнаружить в большинстве случаев тоже трудно, поскольку они явно не показывают своих действий, а незаметно отсылают данные злоумышленнику.
Уязвимость нулевого дня
Уязвимость нулевого дня (0day, zero day) — термин, который используется для обозначения не выявленных на стадии тестирования угроз безопасности, уязвимостей, брешей в программном коде, против которых не существует защиты. Изначально они не известны никому: разработчики, антивирусные компании, пользователи не подозревают об их существовании. Об уязвимости нулевого дня становится известно до того, как производитель выпускает обновления; следовательно, у разработчиков есть 0 дней, чтобы устранить изъян. Устройства, на которых установлена уязвимая программа, находятся в зоне риска, а пользователи не имеют возможности защититься.
Обнаружение и распознавание уязвимостей
Иногда уязвимость нулевого дня выявляют хакеры, которые не хотят использовать ее в злонамеренных целях и сообщают о ней разработчикам. В других случаях ошибку могут найти пользователи или сами разработчики, после чего производителями выпускается новая версия ПО или обновление. Кроме того, антивирусы тоже иногда могут зарегистрировать вредоносные действия.
Впрочем, очевидно, что обнаружить баг могут и хакеры-злоумышленники, преследующие вредоносные цели. Тогда они будут эксплуатировать его сами или продадут другим киберпреступникам.
Для обнаружения уязвимостей злоумышленники используют различные методы:
В противоположном случае разработчик знает, что существует баг в коде, но не хочет или не может его устранить, не предупреждая никого об уязвимости.
Атаки на уязвимости нулевого дня
Если произошла атака с использованием уязвимости нулевого дня, то это значит, что злоумышленники знали о баге достаточное количество времени, чтобы написать и активировать вредоносную программу для его эксплуатации. Такие атаки опасны тем, что к ним невозможно подготовиться, а также тем, что постоянное обновление ПО не дает гарантии их предотвращения или снижения риска их возникновения.
Защита от уязвимостей нулевого дня и их устранение
Устранение ошибок входит в обязанности разработчика. Критическая проблема закрывается в течение нескольких дней или недель; все это время системы, использующие уязвимое ПО, будут находиться в опасности.
Для защиты можно использовать традиционные антивирусные технологии, а также проактивные средства:
Что такое атака нулевого дня? Определение и описание
Нулевой день. Определение и описание
«Нулевой день» – это общий термин, описывающий недавно обнаруженные уязвимости в системе безопасности, которые могут быть использованы злоумышленниками для атаки на систему. Термин «нулевой день» показывает, что поставщик или разработчик только что узнали об уязвимости, и у них есть «ноль дней» на ее исправление. Атака нулевого происходит в результате использования злоумышленниками уязвимости до того, как разработчикам удалось ее исправить.
Нулевой день иногда обозначают как 0-день. Слова уязвимость, эксплойт и атака обычно используются в сочетании со словами «нулевого дня», и важно понимать разницу между этими терминами:
Что такое и как работают атаки нулевого дня?
В программном обеспечении часто есть уязвимости безопасности, которые злоумышленники могут использовать для причинения вреда. Разработчики программного обеспечения всегда ищут уязвимости, которые необходимо исправить. В результате разрабатываются и выпускаются программные обновления.
Однако иногда злоумышленники обнаруживают уязвимость раньше разработчиков. Пока уязвимость не закрыта, злоумышленники могут написать и внедрить код, позволяющий ей воспользоваться. Он называется кодом эксплойта.
В результате внедрения кода эксплойта могут пострадать пользователи программного обеспечения, например, вследствие кражи личных данных или других киберпреступлений. Как только злоумышленники находят уязвимость нулевого дня, им нужно получить доступ к уязвимой системе. Часто для этого используются сообщения электронной почты с применением приемов социальной инженерии – злоумышленники выдают свои сообщения за сообщения от известных легальных отправителей. Цель сообщения – заставить пользователя выполнить определенное действие, например, открыть файл или посетить вредоносный веб-сайт. При этом загружается вредоносная программа злоумышленника, проникающая в файлы пользователя и выполняющая кражу конфиденциальных данных.
Когда об уязвимости становится известно, разработчики пытаются исправить ее, чтобы остановить атаку. Однако уязвимости в системе безопасности часто не удается обнаружить сразу. Иногда до момента обнаружения уязвимости, ставшей причиной атаки, могут пройти дни, недели и даже месяцы. И даже после выпуска патча, закрывающего уязвимость нулевого дня, не все пользователи сразу же его устанавливают. В последние годы хакеры стали гораздо быстрее обнаруживать и использовать уязвимости.
Эксплойты продаются в даркнете за большие деньги. После обнаружения и исправления эксплойт больше не считается угрозой нулевого дня.
Особая опасность атак нулевого дня заключается в том, что о них знают только сами злоумышленники. После проникновения в сеть преступники могут либо атаковать немедленно, либо затаиться и ждать наиболее подходящего времени.
Кто совершает атаки нулевого дня?
Злоумышленники, совершающие атаки нулевого дня, делятся на категории в зависимости от мотивов. Например:
На кого нацелены эксплойты нулевого дня?
При атаках нулевого дня могут использоваться различные уязвимые объекты:
В результате круг потенциальных жертв становится достаточно широким:
Также полезно выделить целевые и нецелевые атаки нулевого дня:
Даже когда атаки нулевого дня не нацелены ни на кого конкретного, от них все равно может пострадать большое количество людей, обычно вследствие побочного эффекта. Нецелевые атаки направлены на максимальное количество пользователей, а значит могут пострадать данные обычных людей.
Как выявить атаки нулевого дня
Существуют различные виды уязвимостей нулевого дня: отсутствие шифрования данных, отсутствие авторизации, неработающие алгоритмы, ошибки, проблемы с безопасностью паролей и прочие. Обнаружить их может оказаться непросто. Из-за характера этих уязвимостей подробная информация об эксплойтах нулевого дня доступна только после их идентификации.
Организации, подвергшиеся атаке нулевого дня, могут наблюдать нетипичный трафик или подозрительные действия, такие как сканирование, исходящие от клиента или сервиса. Некоторые методы обнаружения атак нулевого дня включают:
Часто используется комбинация различных систем обнаружения.
Примеры атак нулевого дня
Ниже приведены примеры последних атак нулевого дня.
2021: уязвимость нулевого дня Google Chrome
В 2021 году Google Chrome подвергся серии атак нулевого дня, ставших причиной ряда обновлений Chrome. Уязвимость возникла из-за ошибки в JavaScript-движке V8, используемом в веб-браузере.
2020: Zoom
У популярной платформы видеоконференцсвязи была обнаружена уязвимость. В результате этой атаки нулевого дня злоумышленники получали удаленный доступ к компьютерам пользователей, на которых установлены старые версии Windows. Если атака была нацелена на администратора, злоумышленники могли полностью захватить его компьютер и получить доступ ко всем файлам.
2020: Apple iOS
Apple iOS часто называют самой безопасной платформой для смартфонов. Однако в 2020 году она подверглась как минимум двум атакам нулевого дня. Одна из ошибок нулевого дня позволила злоумышленникам удаленно скомпрометировать iPhone.
2019: Microsoft Windows, Восточная Европа
Эта атака была направлена на повышение локальных привилегий – уязвимую часть Microsoft Windows, и нацелена на государственные учреждения в Восточной Европе. В этой атаке нулевого дня использовалась уязвимость локальных привилегий Microsoft Windows для запуска произвольного кода и установки программ, а также для просмотра и изменения данных о скомпрометированных программах. После идентификации атаки и сообщения и ней в Центр по реагированию на угрозы Microsoft, был разработан и выпущен патч.
2017: Microsoft Word
Результатом этого эксплойта нулевого дня стала компрометация личных банковских счетов. Жертвами оказались люди, которые неосознанно открывали вредоносный документ Word. В документе отображалось предложение загрузить удаленное содержимое – всплывающее окно, запрашивающее внешний доступ из другой программы. При нажатии на кнопку «Да» на устройства пользователей устанавливалось вредоносное ПО, перехватывающее учетные данные для входа в интернет-банк.
Stuxnet
Один из самых известных примеров атак нулевого дня – Stuxnet – вредоносный компьютерный червь, впервые обнаруженный в 2010 году, но зародившийся еще в 2005 году. Его атаке подверглись производственные компьютеры с программируемыми логическими контроллерами (ПЛК). Основной целью были заводы Ирана по обогащению урана, атака на которые могла подорвать ядерную программу страны. Червь проник на ПЛК через уязвимости в программном обеспечении Siemens Step7 и заставил ПЛК выполнять непредусмотренные команды на сборочном оборудовании. История Stuxnet впоследствии легла в основу документального фильма «Уязвимость нулевых дней» (Zero Days).
Как защититься от атак нулевого дня
Для защиты от атак нулевого дня и обеспечения безопасности компьютеров и данных частным лицам и организациям важно выполнять определенные правила кибербезопасности. Они включают:
Своевременное обновление программ и операционных систем. Производители включают в новые выпуски исправления безопасности для устранения недавно обнаруженных уязвимостей. Своевременное обновление повышает вашу безопасность.
Использование только необходимых программ. Чем больше у вас программного обеспечения, тем больше потенциальных уязвимостей. Использование только необходимых программ позволит снизить риск для сети.
Использование сетевого экрана. Сетевой экран играет важную роль в защите системы от угроз нулевого дня. Настройка сетевого экрана так, чтобы допускались только необходимые транзакции, позволит обеспечить максимальную защиту.
Обучение сотрудников организаций. Многие атаки нулевого дня основаны на человеческих ошибках. Обучение сотрудников и пользователей правильным навыкам обеспечения безопасности и защиты поможет как обеспечить их безопасность в интернете, так и защитить организацию от эксплойтов нулевого дня и других цифровых угроз.
Использование комплексного антивирусного программного решения. Kaspersky Total Security помогает защитить ваши устройства, блокируя известные и неизвестные угрозы.
Уязвимости «нулевого дня»
Что происходит после того, как хакер обнаруживает новую или так называемую 0day уязвимость? Учитывая то, что никаких защитных механизмов против нее еще не разработано, уязвимость может эксплуатироваться в приложении без какой-либо возможности от нее защититься. Сам этот термин означает, что у разработчиков не было ни одного дня на исправление обнаруженного дефекта. Если требуется гарантированный результат, то злоумышленник должен использовать именно 0day уязвимость, иначе производитель ПО выпустит патч, который со временем ее закроет. Кроме того, попытка воспользоваться эксплоитом (программой, использующей данную ошибку в софте для атаки системы) может привести к срабатыванию соответствующей сигнатуры антивирусной программы или межсетевого экрана. Однако если вирусописатель применил шифрование тела вируса и обфускацию его исходного кода, антивирусная программа, скорее всего, не обнаружит вирус, эксплуатирующий неизвестную уязвимость.
Сколько времени обычно проходит от обнаружения уязвимости до выпуска патча?
Уязвимости операционной системы
Если речь идет об уязвимостях операционной системы, то тут все усложняется. В большинстве случаев, ваш ПК является частью локальной сети. Если одна из рабочих станций уязвима (например, там установлена устаревшая версия ОС), то она представляет собой слабое звено цепи, через которое легко получить доступ к другим компьютерам и скомпрометировать всю сеть. Если речь идет о домашнем ПК, то угроза не столь высока. Однако, через эксплуатацию какой-либо известной уязвимости ваш компьютер будет инфицирован и, например, без вашего ведома будет принимать участие в DDoS-атаках, т.е. станет частью ботнета.
Зачем это нужно знать разработчику?
Уязвимости можно найти практически в любой программе, вопрос лишь в том, сколько времени и усилий злоумышленнику на это потребуется. В большинстве случаев, уязвимости можно обнаружить стандартным сканером. Например, если вы пишете веб-приложение, то одним из самых известных сканеров является Acunetix. Если злоумышленник не сможет в короткий срок найти уязвимость в программе с помощью сканера, есть высокая вероятность того, что он вообще откажется от попыток взлома. Поиск неизвестных ранее уязвимостей с помощью реверсинга программы может занять довольно продолжительное время и потребует совершенно другой квалификации хакера. В то же время, как уже было сказано выше, неизвестная ранее 0day уязвимость – это успех, что позволит гарантированно взломать приложение без каких-либо шансов предотвратить атаку с помощью антивирусного ПО.
Защита от реверсинга и взлома
Затруднить взлом своей программы можно и нужно, для этого используется целый ряд способов, начиная от обфускации кода до удаленного запуска части кода на удаленных серверах, однако это уже тема для отдельной статьи.
Интересно почитать продолжение?
А тем, кто определился с тем, что хочет стать программистом, рекомендуем профессию «Веб-разработчик».
Что происходит после того, как хакер обнаруживает новую или так называемую 0day уязвимость? Учитывая то, что никаких защитных механизмов против нее еще не разработано, уязвимость может эксплуатироваться в приложении без какой-либо возможности от нее защититься. Сам этот термин означает, что у разработчиков не было ни одного дня на исправление обнаруженного дефекта. Если требуется гарантированный результат, то злоумышленник должен использовать именно 0day уязвимость, иначе производитель ПО выпустит патч, который со временем ее закроет. Кроме того, попытка воспользоваться эксплоитом (программой, использующей данную ошибку в софте для атаки системы) может привести к срабатыванию соответствующей сигнатуры антивирусной программы или межсетевого экрана. Однако если вирусописатель применил шифрование тела вируса и обфускацию его исходного кода, антивирусная программа, скорее всего, не обнаружит вирус, эксплуатирующий неизвестную уязвимость.
Сколько времени обычно проходит от обнаружения уязвимости до выпуска патча?
Уязвимости операционной системы
Если речь идет об уязвимостях операционной системы, то тут все усложняется. В большинстве случаев, ваш ПК является частью локальной сети. Если одна из рабочих станций уязвима (например, там установлена устаревшая версия ОС), то она представляет собой слабое звено цепи, через которое легко получить доступ к другим компьютерам и скомпрометировать всю сеть. Если речь идет о домашнем ПК, то угроза не столь высока. Однако, через эксплуатацию какой-либо известной уязвимости ваш компьютер будет инфицирован и, например, без вашего ведома будет принимать участие в DDoS-атаках, т.е. станет частью ботнета.
Зачем это нужно знать разработчику?
Уязвимости можно найти практически в любой программе, вопрос лишь в том, сколько времени и усилий злоумышленнику на это потребуется. В большинстве случаев, уязвимости можно обнаружить стандартным сканером. Например, если вы пишете веб-приложение, то одним из самых известных сканеров является Acunetix. Если злоумышленник не сможет в короткий срок найти уязвимость в программе с помощью сканера, есть высокая вероятность того, что он вообще откажется от попыток взлома. Поиск неизвестных ранее уязвимостей с помощью реверсинга программы может занять довольно продолжительное время и потребует совершенно другой квалификации хакера. В то же время, как уже было сказано выше, неизвестная ранее 0day уязвимость – это успех, что позволит гарантированно взломать приложение без каких-либо шансов предотвратить атаку с помощью антивирусного ПО.
Защита от реверсинга и взлома
Затруднить взлом своей программы можно и нужно, для этого используется целый ряд способов, начиная от обфускации кода до удаленного запуска части кода на удаленных серверах, однако это уже тема для отдельной статьи.
Интересно почитать продолжение?
А тем, кто определился с тем, что хочет стать программистом, рекомендуем профессию «Веб-разработчик».