MALWAREÒÐÞÊ Ñ ÊËÞ×ÎÌ ØÈÔÐÎÂÀÍÈßДля шифрования пути к файлу во втором тесте и маскировки передачифлага MOVEFILE_DELAY_UNTIL_REBOOT функции MoveFileEx втретьем использовался специальный трюк, который позволяет обойтиэвристические анализаторы антивирусного ПО. Если мы сохранимключ для расшифровки некой строки в памяти программы напрямую (ввиде константы или передаваемого значения), то анализаторы кода смогутотследить всю цепочку использования этого ключа и в конце получитьисходную информацию в раскриптованном виде.Но ключ можно сформировать из двух частей: базовая и псевдослучайнаячасти. Базовая часть — это просто число, которое хранится впамяти. Весь фокус в псевдослучайной части. Ее надо сгенерироватьтак, чтобы эвристическая машина не смогла проанализировать кодгенерации. Сделать это можно, вызвав некоторую системную функциюс такими параметрами, которые приведут к однозначному результату:DWORD pseudoRandomDigit(const DWORD digit){fopen("dsjklfjsdlk", "r");DWORD err = ::GetLastError();}вторая — с правами активного в данный момент пользователя. Удалятьбудем именно этот файл, который по умолчанию лежит в папке«%programfiles%\Kaspersky Lab\Kaspersky CRYSTAL\». Запускаемутилиту, передав ей в качестве одного из параметров полное имяэкзешника и … Кристал начал ругаться на нашу тестовую утилиту,определив ее рейтинг опасности как «высокий». Если бы это былреальный зловред, то пользователю пришлось бы решать, разрешитьподозрительной программе выполниться или нет. Если все-таки датьсвободу нашей утилите, то после ребута системы антивирус не запускается.Программа сделала свое дело и удалила главный бинарникКасперского. В случае запрета выполнения подозрительной тулзывсе будет хорошо — avp.exe останется на своем месте и по-прежнемубудет радовать пользователей красивой иконкой в трее.Итак, Kaspersky CRYSTAL прошел первое испытание, но, к сожалению,всего лишь на троечку. Очень часто пользователи жмут накнопку «Да» не читая, что там пишут.Следующее защитное ПО — Dr.Web Security Space Pro. В отличие отCRYSTAL, Доктор Веб состоит из множества исполняемых exe-файлов,каждый из которых ответственен за свою функцию. Но удалитьмы попробуем самый главный бинарь, который, как и в Касперском,запускается от имени системы — dwengine.exe. Тестоваяутилита удаления отработала без проблем, Доктор даже не пискнул.Но посмотрим, что будет после перезагрузки. А после нее всеосталось на своих местах — анитвирус как новенький! Ну что же,попробуем стереть какой-нибудь другой важный файл, например,утилиту обновления или базы с сигнатурами. После несколькихзапусков смертоносного кода и перезагрузки компьютера Докторостается жив, и поэтому получает за первое испытание твердуюпятерку. Никакого шума, никаких вопросов к пользователю. Простоне удаляется :).080return digit + err;Функции pseudoRandomDigit передается базовая часть ключа. Послеэтого мы пытаемся открыть несуществующий файл, в результате чегополучим вполне определенный код ошибки. Прибавляя этот код кбазовой части ключа, мы лишаем эвристические анализаторы всякойнадежды понять, что же все-таки произошло. В результате чего антивирусне может расшифровать строку, а, следовательно, и предъявитькакие-либо претензии.ТЕСТ №2Второй краш-тест очень похож на первый, но с одним единственнымотличием — путь к удаляемому файлу мы передаем в зашифрованномвиде. Процедура шифрования тоже не совсем простая. Мыиспользуем специальный трюк, чтобы обмануть эвристики нашихантивирусов. Подробнее об этом можно почитать во врезке. А покапосмотрим, как справятся с этим испытанием Касперский и ДокторВеб.Первый в очереди — Kaspersky CRYSTAL. Предварительно зашифровавпуть к avp.exe, мы передаем его нашей утилите. РеакцияКристала на второй тест полностью совпадает с реакцией на первый.Антивирус предложил выбрать, что делать с подозрительнойпрограммой. В случае, если мы разрешаем ее выполнение, послеперезагрузки Kaspersky не загрузится. Итог: второе испытаниеКаспер тоже проходит на тройку.Ситуация с Dr.Web полностью идентична предыдущей. Все попыткиудалить какие-либо файлы, требуемые для его работы, потерпелинеудачу. Не удалялся даже банальный license.txt! За такую стойкостьДоктор Веб получает пять.ТЕСТ №3Третье испытание также будет удалять нужные для антивирусногоПО файлы, но при этом будет маскировать сам факт попытки удаления.Как говорилось выше, для того, чтобы стереть файл при загрузкеОС, нужно функции MoveFileEx в качестве одного из параметровпередать флаг MOVEFILE_DELAY_UNTIL_REBOOT. Именно этот флагмы и замаскируем под нечто безобидное, что позволит усыпитьбдительность эвристики (см. врезку).На запуск теста с маскировкой удаления Kaspersky CRYSTAL никакне прореагировал. Сообщение, в котором бы говорилось об опаснойпрограмме, не появилось. Может быть, Кристал блокирует этуугрозу втихаря? Перезагружаем, и... нет. Касперский провалил этоттест. ПО не запустилось, avp.exe исчез с жесткого диска без какихлибоследов. Маскировка удаления файлов принесла свои плоды.Анализатор кода CRYSTAL не смог распознать угрозу и поплатилсяза это. Результат: двойка и ничего, кроме двойки. А что же с Dr.Web?Провалит ли он, наконец, хоть одно испытание? Как оказалось, нет.Доктор тверд, как скала. Никакие хитрые попытки удалить важныефайлы его не берут. А все из-за того, что доступ ко всем нужным иненужным бинарникам из дистрибутива Веба был заблокированна уровне файловой системы. Такой подход решил все проблемы свандализмом. Просто так поменять эти права у нас не получится,все гайки закручены очень крепко. Заслуженная пятерка.ТЕСТ №4Следующий тест мы будем проводить с помощью стандартныхинструментов Windows XP Professional. В главном меню системывыберем пункт «Выполнить...» и впишем туда следующее: gpedit.msc. Откроется консоль с групповыми политиками. Там выберем«User Configuration», затем «Administrative Templates», «System».Справа найдем «Don't run specified Windows applications». Эта опцияпозволяет запретить запуск определенных программ на основеих имени.Для Касперского мы будем блокировать avp.exe. Прописав запретна его запуск в политиках Windows, мы перезагружаем компьютери смотрим на результат. После старта системы Kaspersky CRYSTALработает, как ни в чем не бывало. Запустился не только сервис справами системы, но и процесс с привилегиями текущего пользователя.Похоже, это первая пятерка у Каспера. Поздравляем!С Dr.Web ситуация чуть хуже. Блокирование запуска dwengine.exe никак не повлияло на работу Доктора, а вот если прописатьв политиках имя сканера, то он не запустится. Таким же образомпарализуется работа SpIDer Guard. Никакие сообщения при запускекакого-нибудь зловреда пользователю показаны не будут. Но стоитотметить, что защитные функции антивирус потерял не полностью.XÀÊÅÐ 08 /139/ 10
Зачем и почему нужно вводить капчу иотключать самозащиту — неясно. Прощесогласиться :)Он выполнит действия, заложенные в настройках поумолчанию, например, бережно перенесет вирус в карантин,но пользователь об этом, к сожалению, ничегоне узнает. Доктор Веб получает четверку.ТЕСТ №5В пятом и последнем испытании мы попытаемся полностьюудалить защитное ПО с помощью штатного инсталлятора.Но удалить так, чтобы пользователь ничегоне заметил. Практически у всех современных инструментовдля развертывания приложений в системе естьтак называемый «тихий режим», когда пользователюне задается никаких лишних вопросов. Вот с помощьюэтого режима мы будем тестировать антивирусы.Для «невидимой» деинсталляции Kaspersky CRYSTALнужно выполнить следующую команду: msiexec /quiet /uninstall {1A59064A-12A9-469F-99F6-04BF118DBCFF}.Ключ /quiet означает, что пользователь не увидит ниодного окна, касающегося процесса анинсталла. Идентификаторв фигурных скобках уникален для установленногодистрибутива Кристал. После выполнения этойкоманды Касперский не выдает никаких сообщений,касающихся попытки его удаления, но и сама деинсталляциякак таковая завершается неудачей. Касперсправился с испытанием — без лишнего шума он пресекпопытку несанкционированного удаления. Втораяпятерка.Для тестирования Dr.Web была выполнена та же команда,с той лишь разницей, что был заменен идентификатордистрибутива. Через некоторое время после запускаmsiexec с нужными параметрами на экране появилсядиалог с предложением отключить модуль самозащитыи ввести капчу. В случае правильного набора цифровогокода Доктор исчезнет с компьютера пользователяСканер работает. Все чисто.навсегда. То, что Доктор Веб спросил разрешения оботключении самозащиты — это хорошо, но плохо, чтоон не сообщил нам причины, по которой самозащитаотключается. Неопытный юзер может подумать, что такнужно, и с чистой совестью ввести капчу. В итоге Dr.Webполучает тройку, поскольку непонятные окошки с непонятнымтекстом — дурной тон.ИТОГИНа этом все. Пять ужасных испытаний пройдены.Некоторые хуже, некоторые лучше. Но ни KasperskyCRYSTAL, ни Dr.Web Security Space Pro не смогли сдатьвсе тесты на отлично. Для большей наглядности можнопосмотреть в таблицу с оценками и вспомнить, как этобыло.zKASPERSKY CRYSTAL VS DR.WEBSECURITY SPACE PROИтоги: Доктор Веб оказался устойчивей ко всяким деструктивным выпадам в егосторону. Он хорошо защитил свои файлы на уровне ФС и смог противостоять жестокимполитикам безопасности Windows. А его модуль самозащиты не позволитзлоумышленникам тихо и незаметно удалить антивирус.Касперский справился чуть хуже. Главной проблемой для него стал замаскированныйвызов MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT. Итоговаяоценка за краш-тестирование: Kaspersky CRYSTAL — 3.6 балла, Dr.Web SecuritySpace Pro — 4.4 балла.Òåñò ¹1Òåñò ¹2Òåñò ¹3Òåñò ¹4Òåñò ¹5Ñðåäíèé áàëëKASPERSKY CRYSTAL332553.6DR.WEB SECURITY SPACE PRO555434.4XÀÊÅÐ 08 /139/ 10081