Pull to refresh

Небольшое исследование самозащиты продуктов Dr.Web

Reading time 4 min
Views 7.3K
Продолжая свой предыдущий топик про ремувер от ЛК, как и обещал, расскажу про утилиту удаления продуктов от Dr.Web. В прошлый раз Лаборатория Касперского довольно быстро отреагировала и усложнила капчу, теперь от нее рябит в глазах, а желания писать алгоритм распознавания не возникает. Правда, перед тем как выложить версию с новой каптчей (build 157), они обновили старую, куда добавили удаление новейших продуктов линейки 2011 (build 155)…

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

Итак, прошу любить и жаловать, Dr.Web Anti-Virus Remover:



Сразу видно, что ребята делали с душой! Логотип на пол окошка, статусбар даже… Лепота! Всегда прикалывало как они умудряются совмещать в своих продуктах гламурные картинки с элементами интерфейса в стиле Win98:) Для выполнения удаления продукта опять требуют ввести каптчу, никаких подтверждений не выводится, только сообщение об успешном удалении. Посмотрим, так ли все красиво внутри и попробуем пойти несколькими путями…

1. Распознавание каптчи


Каптча у утилиты от Dr.Web, конечно, гораздо более стойкая, чем у ремувера от Лаборатории Касперского, во многом благодаря геометрическим искажениям символов, но и тут не обошлось без слабостей.
Во-первых, каптча состоит из 6 цифр, и они, что удивительно, не повторяются! Какой смысл в этой «фиче» я понять вообще не могу… Такой подход сокращает количество возможных вариантов почти в 7 раз! Это дает возможность использовать что-то вроде метода исключения при распознавании и существенно увеличивает вероятность успеха.
Во-вторых, каждая цифра на каптче окружена серым ореолом, в то время как шум чисто черный. Благодаря этому можно совершенно точно вырезать отдельные символы и отсеивать шум.
В-третьих, позиции цифр практически не изменяются, меняется только размер и стиль шрифта (с засечками или без), а так же степень искажения.
Из-за сильных искажений символов удалось добиться только 20% точности распознавания для всей каптчи, что в принципе приемлемо (для веб-каптч, например), но в данном случае мелькать по экрану, обновляя картинку пока не повезет, это уже бред. Дальше усложнять алгоритм распознавания было лень, поэтому решил попробовать зайти с другой стороны.

2. Патч ехе-файла ремувера


Можно просто вырезать проверку правильности кода и перекомпилировать утилиту. Но в таком случае ЭЦП становится недействительной. Ремувер работает, удаляет все кроме модуля самозащиты (видимо сказывается отсутствие валидной цифровой подписи). Тем не менее, антивирус полностью теряет работоспособность, кому нужна эта самозащита, если уже все удалили не совсем понятно.



При попытке удаления более свежей версии Dr.Web Security Space (6.0.2.07290) живым оставался SpIDer Guard.



3. Чтение правильного кода из памяти ремувера


Зачем распознавать каптчу если значение открыто лежит в памяти, да еще и по фиксированному адресу? Можно просто считать его и вставить в поле ввода. При таком подходе сохраняется ЭЦП, а значит ремувер гарантированно отработает как положено и снесет антивирус полностью. Программка для чтения куска памяти пишется минут за 20. «Благодаря» отсутствию у продуктов от Dr.Web проактивной защиты или HIPS, чтению памяти доверенной утилиты ничего не препятствует.



Вообще сам exe-файл утилиты содержит в открытом виде много интересного, например, пути до жизненно важных файлов и ключей реестра продуктов Dr.Web. В том же ремувере от Лаборатории Касперского все не так просто и такие данные не хранятся в открытом виде.



В дальнейшем неожиданно выяснилось, что хваленый модуль самозащиты продуктов Dr.Web сам страдает подобной проблемой! Значение каптчи точно так же, не стесняясь, хранится в памяти. Трудно поверить, что программисты, которые наворотили столь мощную (на вид) самозащиту, могли допустить такую детскую ошибку, но это так…



Для выгрузки модуля самозащиты SpIDerAgent_Set.exe вызывается с параметром -uninstall:##########, где ########## — число, неким образом зависящее от системного времени. При получении неверного кода, выгружалка самозащиты не запустится. Опять же, благодаря отсутствию всяческих ненужных (с точки зрения Dr.Web) поведенческих блокираторов, ничего не стоит отмотать системную дату на определенное значение и запустить SpIDerAgent_Set.exe с заранее известным кодом ;)



Раз уж речь зашла не только о ремувере, но и о самих продуктах Dr.Web, неправильно было бы обойти вниманием еще один вектор атаки на самозащиту.

4. Распознавание озвучки каптчи


При озвучке значения каптчи используется Microsoft Speech API, шумов нет, поэтому распознавание вообще не проблема, подобное уже было на Хабре. Такое впечатление, что эту функцию прикрутили вообще «для галочки». Лучше бы код перебрали на дыры…

P.S.


Эксперименты проводились с сентябрьскими версиями продуктов Dr.Web Anti-Virus Remover v.1.00.5.08230 и Dr.Web Security Space 6.0.2.07290. После того, как я сообщил об уязвимости, выпустили обновленную версию Dr.Web Anti-Virus Remover v.1.00.6.09200, в которой бреши прикрыли. На счет исправлений в линейки самих антивирусов хранят гордое молчание, но уж за 3 месяца должны были что-то придумать.

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

P.P.S


Как раз в сентябре на портале anti-malware.ru был опубликован сравнительный тест самозащиты антивирусов, что примечательно, победителями с результатами 100% и 99% оказались наши герои — Лаборатория Касперского (Kaspersky Internet Security 2011) и Доктор Веб (DrWeb Security Space 6.0) соответственно.



А недавно объявился зловред Trojan-PSW.Win32.VKont.alb (по классификации ЛК), который вообще на «ура» выкашивает практически все популярные антивирусы, в том числе и обладателей платиновой награды теста anti-malware.ru (Dr.Web на сегодняшний день уже пофиксили)…

Все это еще раз доказывает, что идеальной защиты не существует, как не существует и идеальных тестов этой самой защиты, и помните, что лучший антивирус — это голова!
Tags:
Hubs:
+64
Comments 86
Comments Comments 86

Articles