remove

найти и уничтожить…\\ (пособие по борьбе с вирусами и троянами)

крис касперски ака мыщъх, no-email

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

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

Никто не в состоянии проанализировать все, имеющиеся в его распоряжении исполняемые файлы, динамические библиотеки, OCX-компоненты и т. д., поэтому гарантированно обнаружить зловредный код методом ручного анализа невозможно, особенно на ранних стадиях вторжения, когда заражено небольшое количество файлов. Однако, стоит вирусу поразить системный файл или специально подброшенную дрозофилу (а он рано или поздно сделает это), как он тут же выдаст себя с головой! С неразмножающимися троянскими программами дела обстоят намного сложнее. Засевший в укромном месте троян может прятаться годами, ничем не выдавая своего присутствия, а затем в одним «прекрасный» момент неожиданно проснуться и сделать из винчестера винегрет.

Это не означает, что ручной поиск бесполезен. Просто не стоит переоценивать его возможности…

Вирусы и троянские программы чаще всего пишутся начинающими программистами, не имеющих адекватного опыта проектирования, и практически всегда допускающих большое количество фатальных ошибок. «Благодаря» этому, самочувствие зараженной системы резко ухудшается – появляются сообщения о критических ошибках в самых неожиданных местах, полностью или частично нарушается работоспособность некоторых приложений. Время загрузки операционной системы значительно возрастает. Не удается выполнить проверку диска и/или его дефрагментацию. Производительность падает…

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

Рисунок 1 так выглядит сообщение о критической ошибке в Windows 2000 – верный спутник некорректно написанных программ, троянских коней и вирусов

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

Зловредный процесс внешне ничем не отличается от всех остальных процессов, и чтобы разоблачить его требуется знать все процессы своей системы в лицо. В частности, свежеустановленная Windows 2000/XP создает следующие процессы: internat.exe (русификатор), smss.exe (сервер менеджера сеансов), csrss.exe (сервер подсистемы win32), winlogon.exe (программа регистрации в системе и сетевой DDE агент), services.exe (диспетчер управления сервисами), lsass.exe (сервер защитной подсистемы), svchost.exe (контейнер для служб и сервисов), spolsv.exe (диспетчер очереди печати), regsvc.exe (регистратор), mstask.exe (планировщик), taskmgr.exe (диспетчер задач), explorer.exe (проводник).

При установке новых приложений и драйверов, этот список может быть значительно пополнен. Диспетчер Задач не отображает полного пути к исполняемому файлу процесса, заставляя нас теряться в догадках какому приложению он принадлежит. Попробуйте поискать файл по его имени на диске или запустите FAR и, подогнав курсор к соответствующему процессу в списке, нажмите <F3> и тогда FAR сообщит полный путь к нему. Файлы, находящиеся в каталоге легально установленного приложения, скорее всего этому самому приложению и принадлежат. Файлы, находящиеся в системном каталоге Windows, могут принадлежать кому угодно и чтобы избежать путаницы, возьмите себе за правило – каждый раз при установке нового приложения, обращать внимание на процессы, которое оно добавляет.

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

System Process (0)

System (8)

SMSS.EXE (316)

CSRSS.EXE (344)

WINLOGON.EXE (364) NetDDE Agent

SERVICES.EXE (392)

svchost.exe (548)

svchost.exe (580)

spoolsv.exe (624)

Smc.exe (672) Sygate Personal Firewall

ups.exe (696)

vmware-authd.ex (712)

vmnat.exe (748)

vmnetdhcp.exe (760)

LSASS.EXE (404)

explorer.exe (972) Program Manager

pdesk.exe (1052)

daemon.exe (1092) Virtual DAEMON Manager V3.41

internat.exe (1100)

CMD.EXE (1152) Обработчиккоманд Windows NT

taskmgr.exe (1168) Диспетчерзадач Windows

msimn.exe (1108) Входящие - Outlook Express

Far.exe (1196) tlist -t -s -p >11 - Far

CMD.EXE (1268)

tlist.exe (1280)

sndvol32.exe (1252) Общий

emule.exe (820) (U:0.9 D:1.6) eMule v0.30c

WINWORD.EXE (1272) remove.doc - Microsoft Word

Листинг 1 перечень активных процессов, отображаемый утилитой tlist, входящей в состав пакета Support Tools, бесплатно распространяемого фирмой Microsoft

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

С тех времен многое изменилось. Операционные системы стали сложнее, но вместе с тем и умнее. Контроль за системными ресурсами значительно ужесточился и прямой обман стал практически невозможным. Дождавшись окончания загрузки системы, запустите Диспетчер Задач (для этого достаточно нажать ALT-CTRL-DEL) и запомните (а лучше запишите) количество дескрипторов, процессов, потоков и объем выделенной памяти. При внедрении всякой автоматически загружающейся программы эти показания неизбежно изменятся!

Изменение количества потоков в процессе работы с системой – это вполне нормальное явление и само по себе еще ни о чем не говорит. Вот простой эксперимент. Запустите «Блокнот». Диспетчер Задач сообщает, что в нем имеется всего лишь один поток, так? А теперь откройте диалог «сохранить как» и количество потоков тут же поползет вверх. Один из них принадлежит драйверу звуковой карты, озвучивающему системные события. Один – непосредственно самому диалогу. Остальные (если они есть) – прочим системным драйверам, выполняющим свой код в контексте данного процесса.

Рисунок 2 Диспетчер Задач как правнучатый племянник утилиты mem времен MS-DOS

Операционные системы Windows 2000/XP оснащены специальными средствами проверки целостности исполняемых файлов, автоматически выполняющихся при всяком обращении к ним и при необходимости восстанавливающих искаженный файл в нормальный вид. По умолчанию, резервные копии хранятся в каталогах WINNT\System32\Dllcache и WINNT\ServicePackFiles.

У вируса есть два пути – либо отключить SFC (за это отвечает следующий ключ реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SFCDisable), либо единовременно поразить и сам заражаемый файл, и все его резервные копии, так что надежность автоматической проверки весьма сомнительна и лучше всего запускать SFC вручную с ключом /PURGECACHE, тогда она очистит файловый кэш и затребует дистрибьюивный компакт диск для его реконструкции, после чего выполнит сканирование системных файлов на предмет поиска несоответствий. Если со времен первой инсталляции, в систему добавлялись те или иные пакеты обновлений, утилита SFC либо вообще откажется перестраивать файловый кэш, либо выдаст большое количество ложных срабатываний, восстанавливая обновленные файлы в их первозданный вид, что явно не входит в наши планы. Поэтому, всегда приобретайте Windows с интегрированным Service Pack'ом самом последней версии (именно интегрированным, а не просто записанным в отдельную директорию, чем славится большинство пиратов) – там этих проблем нет.

Так же можно (читай: нужно) использовать и более продвинутые антивирусные средства (такие, например, как ADInf или AVP Disk Inspector), а в их отсутствии – утилиту посимвольного сравнения файлов FC.EXE, входящую в штатный комплект поставки любой версии Windows. Только не запускайте все эти программы непосредственно из самой запускаемой системы! Stealth-вирусов под Windows с каждым днем становится все больше и больше, а методика их маскировки все изощреннее и изощреннее.

Вопреки расхожему мнению, Windows может загружаться и с CD. Прежде всего на ум приходит Windows-PE – слегка усеченная версия Windows XP, официально распространяемая только среди партнеров Microsoft и центров сервисного обслуживания. В открытую продажу она до сих пор не поступала и если вам претит кормить пиратов (многие из которых к тому же и хамы), воспользуйтесь бесплатным Bart'sPEBuilder'ом (http://www.danilpremgi.com/nu2/pebuilder3032.zip), автоматически формирующим загрузочный диск на основе любой версии от Windows 2000 SP1 и старше.

Кстати говоря, при желании можно и вовсе изъять жесткий диск из компьютера, разместив систему и все необходимые для работы приложения на CD-ROM. Для записи временных файлов сгодиться виртуальный диск. Вполне удачное решение для игровой платформы, не правда ли? Теперь ни вирусы, ни обрушения операционной системы вам не страшны! Аналогичным путем можно модернизировать и офисные компьютеры. Обрабатываемые файлы в этом случае придется либо централизованно хранить на сервере (наиболее перспективный и экономичный путь), либо записывать на дискету, zip, CD-RW (чисто хакерский путь1)).

Рисунок 3 ревизор ADInf32 за работой

Рисунок 4 утилита SFC.EXE перестраивает файловый кэш, обращаясь непосредственно к дистрибьютвному диску

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

Для просмотра перечня открытых портов и установленных соединений можно воспользоваться утилитой netstat из штатного комплекта поставки Windows, запустив ее с ключом –a. К сожалению она не выдает имени процесса, установившего данное соединение (а для поисков троянов это актуально), вынуждая нас искать более совершенный инструментарий. Большой популярностью пользуется утилита TCPView Марка Руссиновича (www.sysinternals.com), не только выводящая развернутую статистику, но и позволяющая одним движением мыши закрыть любое сетевое соединение.

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

Рисунок 5 утилита TCPView отображает все установленные соединения и показывает какой именно процесс их установил

Рассматривая способы обнаружения заразы, мы ничего не сказали о технике ее удаления, поскольку эта тема совсем другого разговора. Если кратко – загрузившись с системного диска удалите папки WINNT и ProgramFiles (предварительно скопировав все ценные документы) и переустановите систему заново. Форматировать жесткий диск – совсем необязательно.

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