Сетевые угрозы - эволюция и методы защиты

сетевые угрозы

Начнём с эволюции сетевых угроз. Первый компьютерный вирус для IBM-совместимых компьютеров назывался  “Brain” (1986 год). Вирус был создан 19-летним пакистанским программистом с благой целью — для защиты дискет с медицинским ПО от копирования компьютерными пиратами.  Сегодня вирус кажется примитивным, он не изменял данных, не повреждал файлы, не скрывался в системе. Он лишь записывался в загрузочный сектор дискет.

Но это заложило начало следующего этапа в развитии IT-технологий. Вирусы стали активно разрастаться, т.к. кто-то стал использовать новые технологии для создания самораспространяющегося ПО. В то же время начали активно действовать основатели многих ныне известных вендоров-производителей антивирусного ПО. Изначально они боролись с вредоносным ПО посредством сигнатурного метода — создавали набор подписей известных вирусов, движок тогдашних антивирусов искал известные последовательности в коде программы, и в случае совпадения паттерна с паттерном, существующим в наборе сигнатур, бил тревогу. Данный способ в настоящее время теряет свою популярность.

Чтобы как-то противодействовать защитникам ПО, создатели вирусов разработали новую технологию — полиморфизм. Первый известный полиморфный вирус – Chameleon (1990 год). Суть метода заключается в формировании программного кода вредоносной программы «на лету» — уже во время исполнения, при этом сама процедура, формирующая код, также не должна быть постоянной и видоизменяется при каждом новом заражении. В результате непрерывных манипуляций вирус постоянно мутирует. Часто в код добавляются операторы, не меняющие алгоритм работы программного кода. Применение технологии существенно снизило качество детектирования с  использованием сигнатурного метода, как следствие, обнаружение полиморфных вирусов было делом очень сложным.

сетевые угрозы

Рис. 1 Вирусный котик

 

 

 

 

 

 

 

 

Продемонстрирую вышеприведенное на котиках. Замечательный зверь на фото на самом деле является  злым вирусом, который, как и положено любой вредоносной программе, замаскирован под нечто полезное. Однако антивирусные продукты знают об этом фокусе, и как только они встречают нечто, напоминающее  изображение №2, они распознают это «нечто» как вредоносное ПО. Именно так  работает сигнатурный метод.

Теперь усложним задачу. На третьем фото все те же котики. Однако эти звери  совсем не похожи на животное со второго изображения. Это полиморфные котики-вирусы, каждый из них уникален, и мы не сможем их распознать по их «сигнатуре» с рис.2.

сетевые угрозы

Рис.2 Сигнатура вирусного котика

 

 

 

 

 

 

 

 

сетевые угрозы

Рис.3 Полиморфные вирусные котики

 

 

 

 

 

 

 

 

Отвлечемся от зверей и вернемся в день сегодняшний. В марте 2015 года была раскрыла хакерская группировка, предположительно из Ливана, под названием Volatile Cedar. Для достижения своих  целей группировка использовала троян под названием Explosive (название было найдено при анализе кода). Полный отчет по исследованию можно прочесть тут.

Давайте рассмотрим этот образец  вредоносного ПО подробнее. В функционал данного трояна входит богатый набор шпионских функций, среди которых сохранение ввода с клавиатуры, тайный сбор и последующая отправка файлов и паролей атакующим. Присутствует и другой достаточно интересный функционал – автоматическое инфицирование съемных USB-носителей, динамически обновляемый алгоритм поиска и подключения к командным  серверам ботнета, в котором предусмотрена многократная отказоустойчивость. Данный вредонос осуществляет мониторинг использования своими процессами CPU и оперативной памяти с тем, чтобы избежать своего раскрытия.

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

Резюмируя описание – неизвестные авторы потратили значительные ресурсы для написания этого вредоноса. Разумеется, это были не скрипт-киддис, скачивающие готовые конструкторы из Интернета, однако после глубокого анализа ПО и его кода становится очевидно, что мы имеем дело с качественно написанным образцом вредоносного ПО, однако это всего лишь обычная, рядовая угроза, ничего особенного…

Ресурсом virustotal.com. владеет компания Google. Это бесплатная возможность проверить файл на наличие угроз. На портале работают 57 антивирусных движков вендоров-производителей антивирусного ПО, которые проверяют  отправленный файл на наличие вредоносной активности. На выходе вы получаете результаты в виде таблицы, все ясно и понятно. Что ценно, есть возможность получить ретроспективный анализ по детекту каждого файла. Мы взяли файл Explosive и провели анализ его детектирования по состоянию на ноябрь 2013 года. Результат оказался предсказуем.  По мнению всех 57 вендоров, данный файл был безвредным. Ситуация не менялась до 30 марта 2015 года. По случайному совпадению, именно в этот день компания Check Point опубликовала свой отчет о обнаружении Volatile Cedar. В последующие дни часть вендоров стали детектировать данный файл как вредоносный. После того, как все больше количество вендоров на Virustotal стали детектировать данный файл, злоумышленники выпустили новые измененные версии вредоноса. И знаете что? История повторилась вновь. Временные промежутки были более короткими, но суть не поменялась – 0 из 57 вендоров сочли новые файлы вредоносными.

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

Привычная нам классическая антивирусная защита всегда была реактивна и с усложнением вредоносного кода– будь то обфускация, полиморфизм, метаморфизм или  таргетированное шифрование информации в инфицированной системе, она всегда оказывалась в роли преследователя. А сейчас мы живем в эпоху неизвестного неизвестного, и нам давно пора признать, что здесь и сейчас, сию секунду, на многих системах в разных странах мира запущены десятки неизвестных образцов вредоносного ПО, и они используют техники, которые нам пока неизвестны. Это вызов, и это причина, побуждающая вендоров  к инновациям и исследованиям.

Одной из таких инноваций в свое время стало использование песочниц, или эмуляторов. Существует множество реализаций песочниц, они могут быть частью антивирусного ПО (стандартный функционал сегодня), частью приложения (Google Chrome), частью операционной системы (ядро OS X) Мы будем говорить о первом варианте. Суть песочницы – в мониторинге активности исследуемого ПО. Мониторингу подлежат его операции в файловой системе, изменения, вносимые в реестр, активность, связанная с системными службами, а также сетевая активность. При мониторинге запуска документов (docx, xls, ppt, pdf и т.д.) как правило проводится статический анализ, поведение открытого документа сравнивается со белым списком разрешенной активности, список действий, выполненных документом затем фильтруется и на выходе мы имеем либо пустой список, что говорит о чистоте исследуемого образца, либо мы имеем список нетипичных активностей, что дает нам основание подозревать наличие в документе скрытого функционала. Пример – документ Word, который при запуске извлекает из себя исполняемый файл. И разумеется, по результатам эмуляции такой файл будет определен как вредоносный.

Эмуляция исполняемых файлов довольно схожа с эмуляцией документов. Здесь также существует набор событий, которое генерируется в ходе мониторинга запуска исполняемых файлов. Событие может как принадлежать к белому списку допустимой активности ПО, так и быть потенциально опасным. По достижении определенного веса событий, не относящихся к легитимным, исполняемый файл получает вердикт о его вредоносности.

Однако песочница недолго была неуязвимой для авторов вредоносного ПО. Как только это решение стало получать  широкое распространение, были найдены новые средства, позволяющие обнаружить и обойти песочницу. К ним относятся детект виртуальных сред, задержка запуска вредоносного кода, мониторинг действий пользователя (например, отсутствие ввода с клавиатуры может явиться признаком виртуальной среды) и многое другое. Так как в данный момент большинство таргетированнных атак подготавливаются и проводятся людьми, обладающими экспертными знаниями, то нынешнее поколение традиционных песочниц не защищено от возможности их обхода. Проблема усложняется тем, что в данный момент практически в открытом доступе находятся конструкторы вредоносных программ, с помощью которых даже неподготовленный человек может создать новый образец полиморфного вредоносного ПО, который помимо противодействия стандартным решениям оснащен функционалом противодействия попыткам его исследования в сандбоксе. Таким образом, и песочницы становятся все менее и менее эффективным средством.

Какой же выход из этой ситуации?

В июне 2015 года одна из крупных российских компаний стала жертвой таргетированной атаки. Вероятнее всего, с помощью фишингового письма и использования уязвимости нулевого дня был получен доступ к одному из компьютеров домена. Используя эту машину как плацдарм, злоумышленники смогли получить доступ к другим системам, по результатам расследования, использовалась еще одна уязвимость нулевого дня.

В атаке использовался массивный программный продукт размеров 19 мегабайт, в функционал которого входили плагины для сбора и скрытой передачи данных злоумышленникам и другой шпионской деятельности. Уникальной особенностью этого продукта являлось то, что он размещался полностью в оперативной памяти зараженного компьютера, в результате на жестком диске системы не было ничего, что можно было бы проверить на наличие вредоносного кода, тем более проэмулировать. Сложно найти черную кошку в темной комнате, особенно когда ее там нет. Но существовала проблема иного характера – что делать, если зараженных компьютер будет перезагружен? В этом случае содержимое оперативной памяти удаляется и после перезагрузки компьютер выходит из под контроля злоумышленников. Выход был найден. На другом компьютере был размещен драйвер, который подключался к контроллеру домена, получал от него обновленную информацию о компьютере-жертве и инфицировал его вновь.

Итак, мы имеем вредоносный код, не обращающийся к файловой системе, реестру, системным службам. Каким образом произвести детектирование такого кода? Нужны другие методы.

Давайте рассмотрим цепочку, по которой всегда происходит заражение. Прежде всего, любое заражение состоит из четырех стадий (Уязвимость — эксплойт – шеллкод – запуск вредоносного ПО).

Первое, что необходимо злоумышленнику – это уязвимость. Уязвимость клиентского ПО, Java, уязвимость операционной системы. Наличие уязвимости позволяет написать эксплойт, ее эксплуатирующую. Эксплойт в свою очередь, обходя защитные механизмы операционной системы, позволяет запустить шелл-код, который по сути является небольшим приложением, предназначенным для загрузки собственно вредоносного ПО, которое может быть или загружено по сети, или извлечено из самого себя. И только на этом этапе начинается вредоносная деятельность, ради которой и создавалась эта цепочка – заражение системы, хищение и передача конфиденциальных данных, либо загрузка дополнительных вредоносных модулей.

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

Выше мы рассмотрели способы детектирования и противодействия виртуальным средам, которыми пользуется вредоносное ПО.  Это происходит на последнем, заключительном этапе – этапе запуска вредоносного ПО. А что, если бы можно было найти возможность осуществлять мониторинг и анализ не на этапе запуска вредоносного ПО, что делают все вендоры-производители песочниц, а на этапе эксплойта? В этом случае качество и скорость обнаружения вредоносного ПО возросла бы в разы, а методы противодействия виртуальным средам стали бы неэффективны, поскольку детектирование происходило бы на более ранней стадии. И тот факт, что злоумышленник написал новый вариант вредоносной программы, больше бы не играл роли. Какая разница, если множество вариантов вредоносного ПО используют один и тот же эксплойт? Даже в случае, если вредоносное ПО располагается только в оперативной памяти, как в примере, рассмотренном выше, его все равно можно будет обнаружить.

Итак, эксплойтов в дикой природе существует весьма ограниченное количество. Появление нового эксплойта для широко используемого клиентского ПО или ОС не становится незамеченным для вендоров-производителей антивирусного ПО. Решение было найдено.Современные процессоры Intel, начиная с линейки Haswell, оснащены специализированными средствами для сбора информации о работе процессора, в ходе мониторинга собирается отладочная информация и информация о производительности, остановке процессов. Эти данные помогают разработчикам найти «бутылочные горлышки» в работе процессора, или найти информацию о ошибках в выполнении кода. Новая технология детекта на уровне процессора CPU-Level detection анализирует эти данные, и зная, как работает ROP-атака, умеет ее опознать и остановить ДО ТОГО, как будут применены любые средства противодействия детекту. В результате качество и скорость детекта возрастает в разы, а также существенно снижается уровень ошибочных срабатываний.

Существует еще одна проблема, связанная с песочницами. Анализ документов и файлов, присланных пользователю, занимает время. В случае существенной нагрузки на песочницу задержка может достигать до 30 минут. В результате, многие организации настраивают песочницу в режиме “detect only”, в такой архитектуре песочница работает с копией трафика. Как следствие, есть риск того, что пользователь откроет вредоносное вложение, в то время как оно находится в очереди на эмуляцию. Такая защита реактивна, и по получении информации о том, что файл во вложении вредоносный, начинается гонка на опережение. Иногда вредоносное ПО выигрывает.

Один из способов решения этой проблемы технология под названием Threat Extraction. Документ, находящийся в аттаче к письму, реконструируется, из него удаляется потенциально опасное содержимое (скрипты, внедренные OLE-объекты, макросы и т.д.), динамический контент преобразуется в статический, после чего гарантированно безопасное содержимое конвертируется в формат pdf и передается получателю. В случае, если по результатам эмуляции исходный документ чистый, пользователь сможет получить к нему доступ по ссылке в письме. В противном случае, файл будет удален. Использование этой технологии позволяет избежать временных задержек, связанных с очередью на эмуляцию, и обеспечить доставку конечным пользователям гарантированно безопасного содержимого.

Источник: http://bis-expert.ru/blog/9811/51282

Автор статьи: Анатолий Виклов