В рубрику "Оборудование и технологии" | К списку рубрик | К списку авторов | К списку публикаций
В начале 90-х гг. прошлого века, когда начала формироваться индустрия антивирусных программных продуктов, появились первые антивирусные программные пакеты, которые производили обнаружение вирусов на основе базы характерных участков вредоносного кода (сигнатур). В результате авторы вредоносных программ стали применять различные методы для усложнения детектирования своих продуктов появившимися программами защиты. В данной статье мы условно выделим три поколения методов защиты, придуманных вирусописателями за прошедшее время.
К первому поколению методов защиты вредоносных программ относятся следующие: упаковка, полиморфизм, обфускация.
Упаковка - процесс уменьшения размера исполняемого файла с сохранением возможности самостоятельного выполнения. Реализуется с помощью специальных утилит - пакеров. Ранее упаковка использовалась для экономии места на жестком диске. На данный момент эта функция пакеров частично устарела, однако упаковкой активно пользовались и продолжают пользоваться авторы вредоносных программ, так как если программа-антивирус не умеет распаковывать файлы, упакованные некоторым пакером, то и найти в них вирус она также в большинстве случаев не сможет. На настоящий момент известно несколько сот упаковщиков, количество различных версий которых приближается к трем тысячам.
Полиморфизм - метод формирования экземпляров вируса, при котором код вируса формируется "на лету" - уже во время исполнения, при этом сама процедура, формирующая код, также не является постоянной и видоизменяется при каждом новом заражении. Таким образом, в большинстве случаев два образца одного и того же вируса-полиморфика не имеют ни одного совпадения.
Обфускация (от англ. "obfus-cation" - запутывание) - один из методов защиты программного кода, который позволяет усложнить процесс реверсивной инженерии кода защищаемого программного продукта. Суть метода заключается в том, чтобы запутать программный код и устранить большинство логических связей в нем, то есть трансформировать его так, чтобы он был очень труден для изучения и модификации посторонними лицами. Обфускация может применяться для защиты любого программного обеспечения, не обязательно вредоносного. Однако в настоящее время она активно применяется именно авторами вредоносных программ (например, Trojan-Downloader.Win32.Zlob).
Ко второму поколению методов защиты вредоносных программ относятся "грубые" методы борьбы с защитным ПО и методы защиты от удаления.
В качестве методов борьбы с защитным программным обеспечением можно выделить следующие:
Основные методы защиты вредоносных программ от удаления:
Оба указанных способа защиты собственных файлов и ключей реестра применяются, например, тем же not-a-virus:Adware.Win32.Look2me.
Третье поколение методов защиты вредоносных программ - это скрытие их с помощью руктит-технологий и борьба с подсистемами проактивной защиты.
Руткит - программная техника или код, целью которых является сокрытие какой-либо деятельности или объектов в системе. Чаще всего злоумышленниками скрываются процессы, файлы, ключи реестра и сетевая активность. То есть все те объекты, которые могут демаскировать присутствие вредоносной программы в зараженной системе.
Распространение руткитов в последнее время приняло угрожающий характер. Практически все новые "серьезные" вредоносные программы семейств Worm и Trojan имеют в своем составе мощный руткит-компонент, работающий в режиме ядра операционной системы: Email-Worm.Win32.Zhelatin, Email-Worm.Win32.Warezov, Email-Worm.Win32.Bagle, кейлоггеры EliteKeylogger, Perfect Keylogger, SpyLantern, Backdoor.Win32.Haxdoor, Trojan-Clicker.Win32.Costrat.n и другие. Последний из перечисленных троянов интересен тем, что реализует редко используемые дополнительные методы скрытия, такие, как хранение своего тела в NTFS-потоке каталогов и перехват функций при помощи SysEnter.
Основным методом борьбы с подсистемами проактивной защиты на данный момент является программное нажатие на кнопку "Разрешить" в диалоге, показываемым антивирусным продуктом в тот момент, когда он проактивно определяет подозрительную активность вредоносного процесса. В результате пользователь вряд ли заметит очень быстро промелькнувший диалог, а вредоносная программа продолжит свое исполнение. Самым ярким примером такой программы является троянская программа Trojan-PSW.Win32.LdPinch, ворующая пароли для различных сервисов и прикладных программ, в том числе AOL Instant Messenger и ICQ, и личную информацию пользователей.
Вредоносные программы будут двигаться все больше в сторону повышения своей технологичности и методов сокрытия своего присутствия в системе. Разработки в области полиморфизма, обсфукации кода и руткит-технологии станут еще более массовыми и практически будут являться стандартом для большинства новых вредоносных программ.
Большинство существующих методик определения качества антивируса только по уровню детектирования вирусов путем сканирования коллекции файлов являются уже явно неполными. Дополнительно следует обязательно рассматривать такие аспекты работы антивирусной программы, как наличие проактивной защиты, возможность нахождения руткитов, самозащита, возможность удаления вредоносных программ, активно противодействующих своему удалению, и другие. В качестве примера можно привести тест защиты от удаления персональных сетевых экранов: http://www.firewallleaktester.com/termination.php.
Опубликовано: Журнал "Information Security/ Информационная безопасность" #2, 2007