Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

вторая_чать_диплома

.pdf
Скачиваний:
8
Добавлен:
19.03.2016
Размер:
1.63 Mб
Скачать

разных структур, которые могут быть связанны со скрываемой. Руткиты использующие данный подход, слишком сильно привязаны к версиям,

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

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

использовало его в своих первых версиях. Этапы такого подхода:

Получение привилегий для внедрения в системные процессы (не всегда требуется);

При старте программа пытается получить доступ к одному из системных процессов (зачастую это был svchost.exe), используется вызов WinApi OpenProcess для получения описателя процесса,

после чего появляется свобода действий;

Выделить память в открытом процессе, затем скопировать образ исполняемого файла в адресное пространство открытого процесса.

Копировать нужно в только что созданный участок памяти в целевом процессе, адрес по которому должно происходить выделение памяти должен точно соответствовать Image Base address

оригинального вредоносного файла. При разработке вредоносного кода используется линковка по отличному от стандартного,

базового адреса загрузки приложения. Большинство линковщиков(linkers) задают базовый адрес для исполняемых файлов равный 0x00400000. Нестандартный базовый адрес сразу же вызывает подозрение у большинства антивирусных сканеров;

21

Передать выполнение только что подготовленному коду в чужом контексте. Выполнение передаѐтся двумя способами – создание удалѐнного потока по средствам вызова WinApi CreateRemoteThread, передавая в качестве стартовой функции адрес точки входа (entry point) вредоносного кода или же модификация контекста выполнения потоков с использованием WinApi функций

– GetThreadContext, SetThreadContext.

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

Нестандартный Image Base адрес исполняемого файла, это первый сигнал для антивируса. Некоторые, достаточно простые антивирусные решения могут полагаться даже на такие не значительные изменения в принятии решений;

Алгоритм внедрения использует постоянный и последовательный набор системных вызовов – GetSystemPrivilage, OpenProcess, VirtualAllocEx, VirtualProtectEx, WriteProcessMemory, CreateRemoteThread. Исходя из этого, антивирусное приложение может обнаружить подозрительную активность ещѐ на ранних стадиях выполнения.

К категории скрытия контекста активности можно отнести старые методики заражения исполняемых файлов, применяющиеся при написании вирусов. В основе идеи лежит, принцип модифицирования некоторого исполняемого файла ровно один раз, после чего гарантируется постоянная активность вредоносной программы в чужом контексте. Ещѐ самые первые

22

компьютерные вирусы использовали этот подход для своего размножения,

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

применяющих эту идею на практике, к примеру, нашумевший Rustock,

который представляет собой многофункционального бота (одна из разновидности backdoors) с возможностью осуществлять массовые dDos

атаки, рассылки спама. Сеть, составленная из миллионов заражѐнных систем, оказывала настолько огромную нагрузку на каналы сети интернет,

что уничтожением ботнета и поиском организаторов, создателей программы занялись несколько крупных корпораций, включая Microsoft при содействии спец. служб США. Скрытие, на практике осуществлялось путѐм модификации файла ядра системы с полным внедрением тела вируса в оригинальный файл, что обеспечивало максимальную широту действий от имени операционной системы. Следует отметить ряд плюсов данного подхода:

Отсутствие оригинального файла с вредоносной программой, а так же различных записей в реестре для автоматического запуска при загрузке операционной системы;

Обнаружить такую угрозу достаточно трудно, поэтому требуются специальные сканеры, способные определить малейшие изменения в структуре исполняемого файла;

Удалить вредоносный код из заражѐнного файла можно только с использованием специально написанной микропрограммы для конкретной угрозы.

Минусы:

23

Сложность реализации механизма заражения. Специалист,

разрабатывающий микропрограмму внедрения, должен хорошо разбираться в формате исполняемых PE (portable executable)

файлов и знать различные тонкости работы системного загрузчика

(pe loader);

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

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

2.4 Использование эвристического анализа

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

вредоносный.

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

24

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

Методы эвристического сканирования не обеспечивают какой-либо гарантированной защиты от новых, отсутствующих в сигнатурном наборе компьютерных вирусов, что обусловлено использованием в качестве объекта анализа сигнатур ранее известных вирусов, а в качестве правил эвристической верификации – знаний о механизме полиморфизма сигнатур.

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

В ряде случаев эвристические методы оказываются чрезвычайно успешными, к примеру, в случае очень коротких программных частей в загрузочном секторе: если программа производит запись в сектор 1, дорожку

0, сторону 0, то это приводит к изменению раздела накопителя. Но кроме вспомогательной программы fdisk эта команда больше нигде не используется, и потому в случае еѐ неожиданного появления речь идѐт о загрузочном вирусе.

Данный подход является очень эффективным в борьбе с неизвестными угрозами, однако он имеет ряд недостатков:

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

упаковщиком (Win)Upack вызывает ложные срабатывания целого ряда антивирусных средств, не признающих такой проблемы;

25

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

(вирус), еѐ разработчики исследуют существующие распространенные антивирусные продукты, различными методами избегая еѐ детектирование при эвристическом сканировании. К

примеру, видоизменяя код, используя элементы, выполнение которых не поддерживается эмулятором кода данных антивирусов,

используя шифрование части кода и др.;

Даже при успешном определении, лечение неизвестного вируса практически всегда является невозможным. Как исключение,

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

таком случае, для лечения десятков и сотен вирусов может существовать одна запись в вирусной базе.

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

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

с уверенностью относят подобные действия к вредоносным, носящим деструктивный характер, что не всегда является истиной. Многие разработчики средств компьютерной защиты, инструментов по борьбе с пиратством разрабатывают средства самозащиты (защиты антивируса от удаления), контроля доступа к CD/DVD дискам с целью предотвращения запрещѐнного копирования лицензионной продукции. Так в 2005 году был грандиозный скандал из-за того что компания Sony использовала для сокрытия и защиты своих программных DRM-компонентов руткит-

технологии. Цель – запретить копирование выпускаемых компанией

26

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

2.5 Существующие решения для поиска скрытых угроз

Антивирусные программы обычно распознают вредоносный «софт» по сигнатурам – характерным цепочкам кода в теле вируса. Это своего рода

«особые приметы», по которым можно опознать и уничтожить «вредителя».

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

что сигнатурного поиска не достаточно для полной защиты системы,

необходимо использовать специальные методы по поиску и противодействию руткит технологиям.

На сегодняшний день существует системы безопасности,

осуществляющие разноплановую защиту:

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

что ложных срабатываний быть не должно. Либо файл действительно содержит вредоносный код, либо нет. Данный

27

подход хорошо зарекомендовал себя в практическом применении и активно используется на протяжении нескольких десятилетий, с

момента появления самых первых компьютерных угроз. Подобные средства защиты не в состоянии обнаружить неизвестную угрозу в случае отсутствия еѐ сигнатуры в антивирусной базе данных.

Скорость анализа файлов сигнатурным сканером достаточно небольшая по причине больших размеров сигнатурной базы данных, которая с каждым днѐм становится всѐ больше;

Эвристические сканеры угроз;

Сканеры уязвимостей программного обеспечения – осуществляют проверку установленного в пользовательской системе программного обеспечения, в случае обнаружения устаревших и не безопасных версий программ, выполняют их автоматическое обновление либо оповещают пользователя о существовании таковых;

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

Сканеры обнаружения скрытых угроз – это антируткит сканеры,

призванные обнаруживать любую скрытую активность;

Firewalls – программы для защиты пользователя в сети интернет.

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

28

Комплексная защита - под этим понимается сочетание всех выше перечисленных инструментов защиты. Как правило, такие продукты носят названия типа – Internet Security.

Но наиболее интересными в данном рассмотрении будут антируткиты.

Поэтому мы рассмотрим утилиты, специализирующиеся на поиске руткитов:

1)AVZ – это сравнительно небольшая антиврусная программа,

отечественного производства, имеющая размер порядка 8

мегабайт (для сравнения, полноценные антивирусные решения имеют размеры порядка 100 мегабайт и более). В своѐм наборе программа имеет огромнейшее количество методик и механизмов по обнаружению угроз, таких как – клавиатурные шпионы,

руткиты, вирусы, троянские программы, интернет черви и т.д.

Сканер данного приложения является мощным по следующим причинам:

Несмотря на скромный размер программы, она умудряется иметь при себе сигнатурную базу угроз, порядка миллиона записей;

Имеет встроенный эвристический анализатор, особенностью которого является небольшая степень ложных срабатываний;

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

2)RootkitRevealer – Утилита осуществляет сканирование работы

API-интерфейсов файловой системы (MFT, NTFS, FAT16/32), а

29

также системного реестра и выводит список несоответствий к реальным данным. Весь список несоответствий может означать,

что руткит работает в режиме ядра (Kernel–Mode Drivers) или в пользовательском режиме (User–Mode Drivers). RootkitRevealer

способна обнаружить наиболее часто встречающихся шпионов,

которые начинают работать сразу при включении компьютера,

присутствуют только в оперативной памяти, пытаются скрыть свои файлы или ключи реестра Windows. Программный продукт способен обнаружить любое пребывание руткитов из списка,

который опубликован на сайте www.rootkit.com, а также был первым инструментом, который обнаружил руткит XCP (eXtended Copy Protection) Sony;

3)GMER – используется для нахождения и удаления руткитов.

Приложение производит пoиск скрытых процессов, модулей,

служб, файлов, ключей реестра. Кроме этого, при еѐ помощи можно наблюдать за загрузкой драйверов, созданием процессов,

загрузкой библиотек, занесением новых записей в реестр,

установкой соединений TCP/IP, а также за действиями, которые выполняют фaйлы. В качестве результатов работы предоставляет большое количество технической информации связанной с перехватчиками, разобраться в которой обычному пользователю будет проблематично.

2.6Сравнение эффективности существующих решений

На данном этапе будет произведѐн небольшой эксперимент, в котором будут участвовать все приведѐнные выше утилиты поиска вредоносных,

скрытых угроз. В качестве угроз будут выступать реальные экземпляры программ:

1)Kernel-mode spy – руткит, который функционирует в режиме ядра операционной системы и занимается скрытием системных

30