Работаем без антивируса

Пока что я не знаю никого, кто бы прямо или косвенно не пострадал от действий компьютерных вирусов. Антивирусные компании много хотят за свои продукты, которые так и не обеспечивают надлежащей защиты. Спрашивается, зачем вообще тогда покупать антивирусное ПО? Все что создано человеком может быть уничтожено, это относится как к антивирусам так и к вирусам. Человека обмануть намного сложнее, чем программу. Поэтому эта статья посвящена описанию методики обнаружения и деактивации вирусного программного обеспечения без антивирусного продукта. Запомните есть только одна вещь, ценность которую невозможно обойти/сломать/обмануть - это Знание, собственное понимание процесса. Сегодня я расскажу на реальных примерах как обнаружить и поймать у себя на компьютере Интернет-червей и шпионское ПО. Конечно есть еще много видов, но я взял самые распространенные и решил написать про то, что было у меня на практике, дабы не сказать чего лишнего. Если повезет в поиске расскажу про макро-вирусы, бэкдоры и руткиты. Итак перед тем как приступись, отмечу, в данной статье рассматриваю только операционную систему семейства NT, подключенную к интернету. У меня самого стоит Win2000 SP4, вирусы ловлю на WinXP PE. Итак перейдем к беглому, а затем и детальному анализу системы на предпет червей и шпионов. Беглым осмотром мы просто обнаружаем наличие программы и локализуем ее, детальный анализ уже идет на уровне файла и процессов. Там я расскажу о прекрасной программе PETools, впрочем всему свое время.

Анализ системы
Логично, что для того чтобы обнаружить и обезвредить вредоносную программу необходимо существование таковой программы. Профилактика остается профилактикой, о ней поговорим дальше, однако надо первым делом определить есть ли на компьютере вообще вирусы. Для каждого типа вредоносных программ соответственно есть свои симптомы, которые иногда видны невооруженным глазом, иногда незаметны вовсе. Давайте посмотрим, какие вообще бывают симптомы заражения. Поскольку мы ведем речь о компьютере, подключенном к глобальной сети, то первым симптомом является чрезмерно быстрый расход, как правило, исходящего трафика, это обуславливается тем, что очень многие интернет-черви выполняют функции DDoS- машин или просто ботов. Как известно , при DDoS атаке величина исходящего трафика равна максимальной величине трафика за единицу времени. Конечно, на гигабитном канале это может быть и не так заметно если проводится DdoS атака шириной с диалап соединение, но как правило бросается в глаза заторможенность системы при открытии интернет ресурсов (Еще хотелось бы отметить, что речь пойдет о вирусах, которые хоть как то скрывают себя системе, ведь не надо объяснять ничего если у вас в папке Автозагрузка лежит файл kfgsklgf.exe который ловится фаерволлом и т.д.). следующее по списку, это невозможность зайти на многие сайты антивирусных компаний, сбои в работе платных программ типа CRC- error, это уже обусловлено тем, что достаточно многие коммерческие протекторы поддерживают функцию проверки четности или же целости исполняемого файла (и не только протекторы, но и сами разработчики защит), что сделано для защиты программы от взлома. Не будем говорить об эффективности данного метода против крякеров и реверсеров, однако сигнализацией к вирусному заражению это может сработать идеально. Плата начинающих вирмейкеров за не убиваемые процессы, то что при выключении или перезагрузке компьютера идет длительное завершение какого нибудь-процесса, или же вообще компьютер зависает при завершении работы. Думаю про процессы говорить не надо, а так же про папку автозагрузка, если там есть что-то непонятное или новое, то, возможно, это вирус, однако про это попозже.

Частая перезагрузка компьютера, вылет из интеренета, завершение антивирусных программ, недоступность сервера обновления системы microsoft, недоступность сайтов антивирусных компаний, ошибки при обновлении антивируса, ошибки вызванные изменением структуры платных программ, сообщение windows, что исполняемые файлы повреждены, появление неизвестных файлов в корневом каталоге, это лишь краткий перечень симптомов зараженной машины. Помимо прямых вредоносных программ существует так называемое шпионской программное обеспечение, это всевозможные кейлоггеры, дамперы электронных ключей, нежелательные "помощники" к браузеру. Честно говоря, по методу обнаружения их можно разделить на два противоположных лагеря. Допустим кейлоггер, присоединенный динамической библиотекой к оболочке операционной системы обнаружить на лету крайне сложно, и наоборот, невесть откуда взявшийся помощник (плагин, строка поиска и т.д.) к internet Explorer'у (как правило) бросается в глаза сразу же. Итак, я думаю, настало время оставить эту пессимистическую ноту и перейти к реалистичной практике обнаружения и деактивации вредоносного программного обеспечения.

Обнаружение на лету
Первым делом мы научимся обнаруживать и уничтожать интернет-черви. Про почтовые черви я рассказывать не буду, алгоритм он один для всех, однако метод распространения почтовых червей настолько банален, что если вы умудрились запустить файл из аттача, то эта статья вам не поможет все равно. Для наглядности приведу пример из жизни, как обнаружил недектируемый ни одним антивирусом (до сих пор) IRC-bot, на уязвимой машине. Принцип распространения таких червей довольно прост, через найденную уязвимость в операционной системе. Если подумать головой то можно понять, что основным способом забросить себя на уязвимую машину является вызов ftp-сервера на этой машине. По статистике уязвимостей это печально известный tftp.exe (который, кстати, я не разу не использовал и думаю, что и создан он был только для вирусописателей). Первый симптом таких червей это исходящий трафик и не только из-за DDoS атак, просто вирус, попадая на машину, начинает поиск другой уязвимой машины в сети, то есть попросту сканирует диапазоны IP-адресов. Далее все очень просто, первым делом смотрим логи в журнале событий ОС, что находится по адресу:
Панель управления -> Администрирование -> Журнал событий
Нас интересуют уведомления о запущенных службах и главное уведомления об ошибках. Уже как два года черви лезут через ошибку в DCOM сервере, поэтому любая ошибка, связанная с этим сервером уже есть повод полагать о наличие вируса в системе. Чтобы точно убедится в наличии последнего, в отчете об ошибке надо посмотреть имя и права пользователя допустившего ошибку. Если на этом месте стоит "пользователь неопределен" или что-то подобное то радуйтесь, вы заражены! и вам придется читать дальше. Я именно так и обнаружил своего первого вируса на специальной сборочной машине (просто компьютер подключенный к сети с win2000, безо всяких пакетов обновление, экранов и т.д. специально для сбора таких программ =)). Если действовать по логике, а не по инстинкту, то первым делом вы должны закрыть дыру в системе для последующих проникновений, а потом уже локализовывать вирусы. Как я уже говорил, такие вирусы обычно лезут через tftp.exe, поэтому (если он вам действительно не нужен! если никогда его не видели, значит, не нужен) просто удаляем его из системы. Для этого сначала удаляем его из архива
%WINDIR%Driver Cachedriver.cab
затем из папок обновления ОС, если таковые имеются, после этого из
%WINDIR%system32dllcache и уже потом просто из
%WINDIR%system32

Возможно, ОС скажет, что файлы повреждены и попросит диск с дистрибутивом, не соглашайтесь! А не то он восстановится и опять будет открыта дыра. Когда вы проделаете этот шаг можно приступать к локализации вируса. Посмотреть какие приложения используют сетевое подключение, помогает маленькая удобная программа TCPView, однако некоторые черви имеют хороший алгоритм шифрации или хуже того, прикрепляются к процессам либо маскируются под процессы. Самый распространенный процесс для маскировки - это, несомненно, служба svhost.exe, в диспетчере задач таких процессов несколько, а что самое поразительное, можно создать программу с таким же именем и тогда отличить, кто есть кто практически невозможно. Но шанс есть и зависит от внимательности. Первым делом посмотрите в диспетчере задач (а лучше в программе Process Explorer) разработчика программ. У svhost.exe это как не странно M$, конечно можно добавить подложную информацию и в код вируса, однако тут есть пара нюансов. Первый и наверное главный состоит в том, что хорошо написанный вирус не содержит не таблицы импорта, не секций данных. Поэтому ресурсов у такого файла нет, а, следовательно, записать в ресурсы создателя нельзя. Либо можно создать ресурс, однако тогда появится лишний объем файла, что крайне нежелательно вирмейкеру. Еще надо сказать про svhost.exe, это набор системных служб и каждая служба - это запущенный файл с определенными параметрами. Соответственно в Панели управления -> Администрирование -> Службы, содержатся все загружаемые службы svhost.exe, советую подсчитать количество работающих служб и процессов svhost.exe, если не сходиться , то уже все понятно (только не забудьте сравнивать количество РАБОТАЮЩИХ служб). Подробнее в приложении А.

Надо так же отметить, что возможно и среди служб есть вирус, на это могу сказать одно, список служб есть и на MSDN и еще много где в сети, так что просто взять и сравнить проблемы не составит. После таких вот действий вы сможете получить имя файла, который возможно является вирусом. О том, как определять непосредственно вирус или нет, я расскажу чуть дальше, а сейчас оторвемся от рассуждений и посмотрим еще несколько моментов. Как вы, наверное, уже знаете, для нормальной работы ОС необходимо всего 5 файлов в корневом каталоге, поэтому все остальные файлы вы можете смело удалять, если конечно вы не умудряетесь ставить программы в корневой каталог. Кстати файлы для нормальной работы, вот они:

ntldr
boot.ini
pagefile.sys
Bootfont.bin
NTDETECT.COM

Больше ничего быть не должно. Если есть и вы не знаете, откуда оно там появилось то переходите к главе [Детальный анализ].Приаттачивание к процессам мы так же рассмотрим в главе [детальный анализ], а сейчас поговорим про автозапуск.

Естественно вирус должен как-то загружаться при старте системы, как правило. Соответственно смотрим следующие ключи реестра на предмет подозрительных программ. (А если вы уже нашли вирус, то ищите имя файла везде в реестре и удаляйте):
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify
HKLMSOFTWAREMicrosoftWindows
NTCurrentVersionWinlogonUserinit
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonShell
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
HKLMSOFTWAREMicrosoftActive SetupInstalled Components
HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerSharedTaskSchedulerHKLM
SOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad
HKCUSoftwareMicrosoftWindowsCurrentVersionRun

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

Начну я свой рассказ с самых распространенных шпионов. В одном небезызвестном журнале один хороший программист правильно назвал их блохами ослика. Простейший шпион очень часто скрывается за невинным на вид тулбаром. Знайте, что если у вас, вдруг, откуда не возьмись, появилась новая кнопка или же строка поиска в браузере то считайте, что за вами следят. Уж очень отчетливо видно, если у вас вдруг изменилась стартовая страница браузера, тут уж и говорить нечего. Конечно, прошу простить меня за некоторую некорректность в терминах. Вирусы, меняющие стартовые страницы в браузере вовсе не обязательно будут шпионами, однако, как правило, это так и поэтому позвольте здесь в этой статье отнести их к шпионам. рассмотрим пример из жизни, когда я пришел на работу и увидел на одном компьютере странного вида строку поиска в браузере, на мой вопрос откуда она взялась я так ничего и не получил. пришлось разбираться самому. Как вообще может пролезть шпион в систему? Есть несколько методов, как вы уже заметили речь идет про Internet Explorer, дело в том, что самый распространенный метод проникновения вируса в систему через браузер - это именно посредством использование технологии ActiveX, саму технологию уже достаточно описали и зацикливаться я на ее рассмотрении не буду. Так же заменить стартовую страницу, к примеру, можно простым Java-скриптом, расположенным на странице, тем же javascript можно даже закачивать файлы и выполнять их на уязвимой системе.

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

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

И, наконец, третий способ это прикрепление своей библиотеки к стандартным программам ОС, таким как explorer.exe и iexplorer.exe, проще говоря написание плагинов к этим программам. Тут опять же есть пара способов, это прикрепление с помощью BHO (об самом способе прикрепления писал Gorlum, пользуясь случаем привет ему и почет :)) и просто внедрение своей библиотеки в исполняемый файл. разница, какой понимаю ее я в том что Browser Helper Object описано и предложено самой корпорацией M$, и используется как плагин к браузеру, а внедрение библиотек - это уже не столько плагин, сколько как самодостаточная программа, больше напоминающая файловый вирус прошлых лет.

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

Стартовая страница
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain параметр StartPage.
HKEY_USERSS-1-5-21-1214440339-507921405-839522115- 1000SoftwareMicrosoftInternet ExplorerMain параметр StartPage

Регистрирование объектов типа кнопок, тулбаров и т.д.
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser
Helper Objects
Вот тут регистрируется все "помошники" и если у вас таковых нет то ключ должен быть пуст, если не пуст, то удаляйте.

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

Ищем получше
Поскольку к моенту написания данной статью я хотел сделать ее понятной всем, то эта глава может и показаться некоторым людям непонятной, но я старался упростить все как мог. Я не буду объяснять вас архитектуру PE-файла, хотя мы будем к ней обращатся. Подробнее есть множество мануалов в сети, а про PE-файлы хорошо было написано Iczelion'ом. Может быть, когда ни будь, да опишу тоже.
Итак, приступая к детальному анализу нам потребуются некоторые инструменты, я использую в этом случае и советую использовать PETools by NEOx и PEiD (Можно вообще обойтись одним Soft Ice'ом, но лучше побольше инструментов да попроще, для реверсеров отмечу, что сейчас пойдет речь о просмотре таблицы импорта и упакованности файла, поэтому пропустите мимо ушей то извращение, которое вы сейчас увдите) Значит, как я уже говорил, был такой случай, что в браузере появилась непонятно откуда строка поиска и стартовая страница. Проверив реестр, я не нашел изменения статовой страницы, а так же не нашел регистрации плагинов в браузере. При детальном осмотре оказалась, что данная строка поиска (тулбар проще) появляется во всех окнах ОС. Это уже немного меняло суть дела. Я предположил, что занимаются этим два независимых друг от друга шпиона и именно методом внедрения динамической библиотеки. При этом надо различать, что если тулбар был бы только в браузере, значит, внедрился он в процесс iexplorer.exe, но у нас был он везде, следовательно, проверять надо было в explorer.exe. Я начал проерять браузер. Для этого я запустил PETools и просто посмотрел, какие библиотеки использует браузер. Мне подвернулась удача в лице нерадивого вирмейкера, на фоне системных библиотек из %SYSTEMROOT% красовалась некая smt.dll с путем, уходящем, куда то в TEMP. Перезагрузка в безопасном режиме и удаление этой библиотеки, и все в норме, шпион убит. Осталось только опять вызвать PETools, кликнуть правой кнопкой мыши на нашем процессе и произвести пересборку файла. Это самый простой случай в моей практике. Перейдем к следующему, находим и убиваем тулбар. Тем же образом я посмотрел процесс explorer.exe и ничего бросающегося в глаза, не нашел. Из этого следует два варианта, либо я не знаю наизусть всех библиотек, и тулбар затерялся среди них, либо мне не дано по знаниям его обнаружить. К счастью вышло первое. Но как же тогда отличить настоящую библиотеку от подложной. я скажу, а вы уже поймете сами. Как известно вирмейкеры гонятся за минимализацией и зашифрованостью кода. То есть не один тулбар как правило не будет лежать в открытом виде, во-первых код можно уменьшить, а значит нужно, и во-вторых если кто нибудь (чаще даже не антивирус, а конкурент) обнаружит данную библиотеку то ему незашифрованный код легче понять. Поэтому берем PEiD и производим массовое сканирование импортируемых библиотек. Библиотеки от microsoft естественно написаны на visual C++ и ничем не упакованы, поэтому если мы видим (а я как раз увидел подозрительную seUpd.dll упакованную UPX) упакованную или зашифрованную библиотеку то 99% это, то, что мы искали. Проверит она это или нет очень просто, переместите в безопасном режиме ее и посмотрите результат. Конечно, можно было бы распаковать, посмотреть дизасм листинг и подумать, что же она делает, но не бдем в то углубляться. Если вы не нашли все-таки упакованную библиотеку, то полезно редактором ресурсов типа Restorator посмотреть версии файла, как я уже говорил у всех библиотек от M$ там так и написано. Вот на таких делах прокалываются вирмейкеры. Стыдно должно быть им вообще писать такие вирусы. На последок хочу еще заметить, что библиотека *.dll не обязательно может внедрятся в процессы. В ОС Windows есть такое полезное приложение, как rundll32.exe, и я могу запускать с помощью этого процесса любую библиотеку. И при этом не обязательно в автозагрузке писать rundll32.exe myspy.dll, достаточно прописать это внутри зараженного файла. Тогда вы будете видеть только свои (зараженные файлы, которые маловероятно будут детектироваться антивирусом) и процесс rundll32.exe, и больше ничего. Как быть в таких случаях? Здесь уже придется углубляться в структуру файла и ОС, поэтому оставим это за рамками данной статьи. Насчет упакованности/зашифрованности вируса относится не только к библиотекам, но и ко всем системным файлам. На этой приятной ноте я хочу закончить главную часть статьи, написано было много, однако это только 1% всех способов обнаружения. Мой способ пускай и не лучший, но я им пользуюсь сам и довольно продуктивно (хорошо только не на своем компьютере). По возможности если получится, напишу продолжение про макро-вирусы, кейлоггеры и бэкдоры, словом про то, что я уже ловил.

приложение А
Список системных служб svhost.exe (WinXP)
DHCP-клиент svchost.exe -k netsvcs
DNS-клиент svchost.exe -k NetworkService
Автоматическое обновление svchost.exe -k netsvcs
Вторичный вход в систему svchost.exe -k netsvcs
Диспетчер логических дисков svchost.exe -k netsvcs
Запуск серверных процессов DCOM svchost -k DcomLaunch
Инструментарий управления Windows svchost.exe -k netsvcs
Клиент отслеживания изменившихся связей svchost.exe -k netsvcs
Модуль поддержки NetBIOS через TCP/IP svchost.exe -k
LocalService
Обозреватель компьютеров svchost.exe -k netsvcs
Определение оборудования оболочки svchost.exe -k netsvcs
Рабочая станция svchost.exe -k netsvcs
Сервер svchost.exe -k netsvcs
Служба восстановления системы svchost.exe -k netsvcs
Служба времени Windows svchost.exe -k netsvcs
Служба регистрации ошибок svchost.exe -k netsvcs
Службы криптографии svchost.exe -k netsvcs
Справка и поддержка svchost.exe -k netsvcs
Темы svchost.exe -k netsvcs
Уведомление о системных событиях svchost.exe -k netsvcs
Удаленный вызов процедур (RPC) svchost -k rpcss
Центр обеспечения безопасности svchost.exe -k netsvcs
Диспетчер авто-подключений удаленного доступа svchost.exe -k netsvcs
Протокол HTTP SSL svchost.exe -k HTTPFilter
Расширения драйверов WMI svchost.exe -k netsvcs
Служба загрузки изображений (WIA) svchost.exe -k imgsvc
Служба обеспечения сети svchost.exe -k netsvcs
Служба серийных номеров переносных устройств мультимедиа svchost.exe -k netsvcs
Совместимость быстрого переключения пользователей svchost.exe -k netsvcs
Съемные ЗУ svchost.exe -k netsvcs
Узел универсальных PnP-устройств svchost.exe -k LocalService
Управление приложениями svchost.exe -k netsvcs
Фоновая интеллектуальная служба передачи svchost.exe -k netsvcs
Диспетчер подключений удаленного доступа svchost.exe -k netsvcs
Сетевые подключения svchost.exe -k netsvcs
Система событий COM+ svchost.exe -k netsvcs
Служба обнаружения SSDP svchost.exe -k LocalService
Служба сетевого расположения (NLA) svchost.exe -k netsvcs
Службы терминалов svchost -k DComLaunch
Телефония svchost.exe -k netsvcs
Windows Audio svchost.exe -k netsvcs
Доступ к HID-устройствам svchost.exe -k netsvcs
Маршрутизация и удаленный доступ svchost.exe -k netsvcs
Оповещатель svchost.exe -k LocalService
Планировщик заданий svchost.exe -k netsvcs
Служба сообщений svchost.exe -k netsvcs
Итого шесть процессов при работе всех служб.

Разделы: 

Дополнительные разделы: 

Комментарии

Да, статеечка реальная. Есть, чего подчерпнуть. Хороший спаммер - дохлый спаммер.
gclub gclub