4 августа 2016

Под капотом киберзащиты: ловим эксплойты на живца

Новости Угрозы

Разработка комплексного защитного решения, такого как наш Kaspersky Internet Security, — работа сложная. Нужно постоянно учитывать меняющийся ландшафт угроз, блокировать атаки и уметь лечить уже зараженные компьютеры и смартфоны, фильтровать вредоносные сайты, программы и почтовые вложения. Желательно делать все это по возможности незаметно для пользователя, не занимая ресурсы компьютера.
Под капотом киберзащиты: ловим эксплойты на живца

Иногда даже немного обидно, что такой труд остается по большей части незаметным. Для этого много причин: подчас сложно объяснить, что делается и почему, технологии надо защищать от конкурентов, да и киберпреступникам не надо много рассказывать о том, как мы их ловим, — чтобы не было соблазна найти пути обхода.

Впрочем, иногда мы о технологиях рассказываем охотно: в случае если в России или в другой стране мы получаем патент. Если это происходит, значит, какая-то наша разработка признана уникальной, она уже проверена временем и работает надежно, и вполне можно рассказать о том, как мы боремся с кибератаками, чуть более подробно. Сегодня, например, поговорим о методе детектирования вредоносных программ с использованием технологий виртуальной стековой машины.

Да, в исходной патентной заявке всегда можно найти только подобную гремучую смесь из технических и юридических терминов. Постараюсь, чтобы название метода было единственным случаем использования такого языка в этом посте. Мы же хотим объяснять популярно. Вот и попробуем. Но сначала предыстория.

Давным-давно

Если все предельно упростить, то есть всего два способа, при помощи которых ваш компьютер может быть заражен. В первом случае вы должны сделать что-то сами: скачать и запустить файл, открыть офисный документ с вредоносным макросом, кликнуть на ссылку в спаме. Чтобы убедить вас это сделать, киберпреступники применяют целый арсенал уловок, именуемый «социальной инженерией«. Соблюдая определенные меры предосторожности, такие угрозы можно достаточно легко избегать, хотя, что уж там, даже самые опытные люди иногда попадаются на криминальные уловки. А вот во втором случае вам ничего делать не нужно.

Допустим, вы просто что-то ищете в Интернете, кликаете по подходящим ссылкам. Открываете и закрываете страницы, а через некоторое время обнаруживаете, что, например, все ваши пароли украдены или все документы на жестком диске зашифрованы. Как так получается?

Киберпреступники эксплуатируют уязвимость в вашей операционной системе или в одной из установленных программ. Если уязвимость есть, например, в Microsoft Office, то сработать она может после открытия документа в формате Word. Если уязвимость в браузере, то достаточно открыть зараженный сайт, а таких, увы, немало.

Так как через Сеть заражать проще всего, особой популярностью пользуются эксплойты именно для сайтов. И уязвимости они эксплуатируют не обязательно в браузерах. Это могут быть Java или Adobe Flash Player — они отвечают за демонстрацию сложных элементов на веб-страницах, но эти элементы на самом деле являются небольшими программами. Которые могут эксплуатировать уязвимости.

По статистике за 2015 год можно понять, какие программы атакуются чаще всего. Это Adobe Flash и Java, Adobe Reader, Microsoft Office и Microsoft Silverlight. На самом деле Adobe Flash в последнее время лидирует по количеству атак. Как минимум по трем причинам: это по-прежнему очень распространенная надстройка над браузерами, в ней часто находят уязвимости, а пользователи не так часто обновляют эту программу, как хотелось бы. Технология «Лаборатории», о которой я расскажу ниже, направлена преимущественно на защиту от эксплойтов именно для Adobe Flash.

Мимикрирование эксплойтов

Выше я уже говорил, что ролики в формате Flash — это небольшие программы. Они скачиваются вместе с другим содержимым веб-страницы и выполняются отдельно, с помощью установленного на вашем компьютере Adobe Flash. На самом деле все немного сложнее. Adobe Flash для безопасного выполнения таких программ запускает их в собственной виртуальной машине — это по сути «компьютер в компьютере».

Таким образом, даже если скачанный из Сети элемент попытается что-то сделать на вашем компьютере, ему просто не дадут доступ к реальным документам и файлам. К сожалению, это лишь теория, а на практике эксплойты как раз и обходят такую систему виртуализации, пользуясь прорехами в безопасности Adobe Flash.

Есть еще одна проблема: формат файла и самой виртуальной машины Flash очень удобен для того, чтобы скрывать настоящие намерения авторов программы. Настолько, что злоумышленники могут создавать как бы уникальный файл для каждой конкретной жертвы. Все эти миллионы эксплойтов будут на самом деле делать одно и то же, но со стороны, в том числе с точки зрения защитного решения, будут выглядеть по-разному. Кроме того, программы для Adobe Flash можно писать на трех разных языках программирования, что не упрощает проблему, а, наоборот, делает еще более сложной систему, которая могла бы отличать обычный контент для Flash от вредоносного.

А как вообще можно понять, что за код перед нами, пока мы его не выполним? Можно попробовать запустить программу на собственной виртуальной машине еще до того, как мы передадим код в Adobe Flash, и посмотреть, что она делает. Но это очень сложно, и, кроме того, любая подобная эмуляция «стоит дорого» с точки зрения ресурсов — занимает достаточно много машинного времени. Возможно, в реальности это будут только доли секунды, но мы-то все уже привыкли, что веб-страницы загружаются мгновенно.

Технология, разработанная экспертами «Лаборатории» Антоном Ивановым и Александром Лискиным, реализует элементы эмуляции подозрительного кода, но так, чтобы анализ шел максимально быстро и позволял детектировать множество однотипных, но различающихся в мелочах объектов. Авторы технологии использовали сам подход стековой виртуальной машины, но не для запуска кода, а для сбора информации о нем. Как выяснилось, вредоносные Flash-объекты вовсе не обязательно запускать, чтобы понять их намерения. И отличия, намеренно вносимые авторами эксплойтов чуть ли не в каждый экземпляр кода, не могут скрыть истинное предназначение, если к ним применить наш метод.

Результат применения технологии удивил даже многое повидавших экспертов. Если нам известен какой-то один метод «взлома Flash», то с помощью данного метода мы можем легко и на автомате блокировать все вредоносные программы, использующие этот же метод. После того как технологию внедрили в наши продукты Kaspersky Internet Security и Kaspersky Total Security, уровень детектирования этих специфических угроз вырос в два раза. В ситуации, когда в целом разработчики лучших защитных решений борются за увеличение эффективности детектирования всех вредоносных программ на доли процента, это действительно выдающийся результат.