ДЕНИС БАТРАНКОВ
Поиск троянов вручную
В этой статье вы найдете ответы на следующие вопросы:
- Что делать, если вы предполагаете, что на вашем компьютере с Windows установлена программа-шпион или троян?
- Как найти троянскую программу или spyware, если ваш антивирус или AdWare ее не находит?
Статья для начинающих системных администраторов и опытных пользователей Windows описывает возможные способы поиска троянских программ и также описывает, как использовать для этого поиска программы и утилиты из стандартной поставки Windows 2000, XP и 2003 и программы сторонних разработчиков: netstat, msconfig, msinfo32, tlist, Sysinternals TCPView, CurrPorts, WinTasks, Security Task Manager, Starter, Winpatrol, Sysinternals Autoruns, Sysinternals ProcessExplorer, MoveOnBoot, Microsoft PortReporter, System Safety Monitor.
Если коротко описать процесс поиска программы, выполняющей нежелательные действия, то алгоритм обычно такой:
- Обновить базу данных установленного на вашем компьютере антивируса и проверить им все локальные диски. (Если антивируса нет, то установить его.) Вам нужно осознавать, что если антивирус не обнаружил троянов, то это не значит, что их у вас нет. На компьютере может работать свежий троян или специально подготовленная для вас программа-шпион, которой еще нет в базах ни одной компании производителя антивируса. И, возможно, вы тот человек, который первым выявит и пошлет эту программу для исследования в антивирусную компанию.
- Посмотреть, какие процессы работают на компьютере и какие соединения с Интернетом ими используются. Возможно, на диске появились новые файлы, возможно, старые файлы изменились. Возможно, в реестре появились новые ключи или параметры.
- Просмотреть логи персонального firewall. Если firewall не смог заблокировать несанкционированные соединения трояна в силу своей недостаточной функциональности или неправильной настройки, то есть надежда, что он хотя бы запротоколировал, какие соединения были пропущены в Интернет. Если хорошего персонального firewall нет, то хотя бы включите встроенный в Windows XP firewall, который называется ICF (как это сделать, описано на http://www.microsoft.com/rus/windowsxp/using/howto/networking/icf.asp). Протоколы встроенного firewall можно посмотреть с помощью любого текстового редактора, открыв файл C:WINDOWSpfirewall.log. Но лучше использовать более удобные утилиты, ссылки на которые легко найти при помощи Google (например, набрав в строке поиска «XP firewall logger»).
Первый пункт достаточно понятен и помогает в 80% случаев. За третий пункт нужно браться в самом запущенном случае и еще лучше со специалистом по компьютерной безопасности (далее КБ). Давайте попробуем выполнить действия, описанные во втором пункте. Тем более что при внимательном выполнении всех операций можно найти и убить любую гадость, засевшую в вашем компьютере.
Возникает вопрос, нужно ли отключаться от Интернета, если мы ищем вирус или троян? Вам понадобятся различные утилиты для поиска трояна (какие конкретно будет описано далее). Если эти утилиты уже есть или на жестком диске, или на компакт-диске, или у вас есть возможность сходить за нужными дисками, или скачать и записать на компакт-диск нужные программы на другом незараженном компьютере, то необходимо отключиться от Сети. Это нужно сделать, чтобы предотвратить дальнейшую утечку информации с компьютера. Отключаться нужно даже от локальной сети, например, сети офиса или домашней сети, чтобы не заражать соседние компьютеры.
Однако иногда встречаются особо запущенные случаи, в которых приходится скачивать нужные программы через Интернет. Например, я однажды приехал в гости к родственникам в Сибирь, обрадовался наличию компьютера с модемным доступом к Интернету, сел за него и, нажав по привычке , сразу обнаружил трояна в списке процессов. Поскольку нужных программ под рукой не было, пришлось лечить вручную. Единственной «защитой» этого компьютера с Windows XP был гордо стоящий антивирус с базами вирусов двухгодичной давности. В Windows даже не был включен ICF.
К сожалению, подавляющее большинство пользователей неопытны и несведущи в вопросах компьютерной безопасности. Компьютеры на платформе Intel и операционная система Windows являются высокотехнологичными продуктами. Ведь даже среди тех, кто пользуется общеизвестной программой Microsoft Word, не так много людей, кто изучал его на курсах или хотя бы читал к нему документацию. Что тут говорить про образованность в области компьютерной безопасности.
К каждому пользователю специалиста по компьютерной безопасности не приставишь. Поэтому на таких компьютерах все подготовительные мероприятия их владельцы будут делать сами при работающем трояне и подключенном Интернете, поскольку Интернет – единственное место, где они могут найти помощь и программное обеспечение для поиска троянов. Тем более чего им бояться – все важное троян уже наверняка украл и отослал своему владельцу. Но даже в этом случае, после того как вы скачали все необходимые утилиты на локальный диск, нужно отключиться от Сети.
Итак, боевая задача состоит в том, чтобы успешно пройти три этапа: найти трояна, убить его и поменять свои украденные пароли. Именно в такой последовательности.
Замечание: программа в операционной системе Windows представлена в виде процесса, в котором может работать несколько нитей, и все эти нити загружены в память из файлов, хранящихся на диске. Как правило, это файлы с расширением EXE и DLL. Расширения могут быть и другими. Злоумышленники часто используют другие расширения, чтобы никто не догадался.
Некоторыми проявлениями троянских программ являются:
- несанкционированные соединения c различными хостами в Интернете;
- открытые программами соединения, ожидающие подключения извне;
- попытка открыть ненужные для нормальной деятельности файлы на локальном диске;
- добавление себя в списки автозапуска;
- маскировка под стандартные системные процессы и размещение в системной папке Windows.
Находим троянскую программу, которая ждет входящего соединения
Обычно авторы таких программ называют свои программы «программами удаленного управления». Типичной иллюстрацией этого вида троянских программ является Back Orifice (см. описание http://www.viruslist.com/viruslist.html?id=3957&gloss=8227). Такие программы позволяют делать на вашем компьютере все что угодно: скачивать файлы, рассылать спам, быть прокси-сервером, участвовать в DOS-атаке, быть плацдармом для других атак, естественно, в рамках функций, предоставляемых им имеющейся операционной системой. В данном случае мы рассматриваем версии Windows: 2000 SP4, XP SP1, 2003.
Такие программы открывают TCP-порт на компьютере жертвы, устанавливают его в состояние LISTENING и ждут, когда хакер подключится на этот порт. Таким образом, нам нужно выявить все процессы, которые открыли TCP-порты и которые находятся в состоянии LISTENING, и решить, одобряете ли вы это соединение или нет. То же самое можно сказать про UDP-порты – за ними тоже надо смотреть, с единственным отличием, что у них нет состояний – с этих портов может как приниматься информация, так и отсылаться. С ходу можно сказать, что если у вас обычный компьютер, подключенный к выделенной линии или через модем в Интернет, то в идеале у вас не дожно быть слушающих портов. Даже если приложения или сервисы Windows открыли эти порты, то они должны быть закрыты персональным firewall.
Чтобы выявить программы, которые ожидают (и устанавливают) соединения в Windows XP и Windows 2003, можно, конечно, воспользоваться стандартной утилитой netstat c параметрами -ano. (Параметр -а заставляет netstat показывать все имеющиеся подключения и ожидающие порты, -n преобразует вывод адресов и портов в числовой формат, -o отображает для каждого подключения идентификатор процесса, создавшего это подключение). В Windows 2000 ключ -o еще не был изобретен. Например:
C:Documents and SettingsUser>netstat -ano
Активные подключения
Имя Локальный адрес Внешний адрес Состояние PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 856
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 1028
TCP 0.0.0.0:4928 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:4929 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:4946 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6213 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6218 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6247 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6253 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6299 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:6344 0.0.0.0:0 LISTENING 3660
TCP 0.0.0.0:9762 0.0.0.0:0 LISTENING 2324
TCP 0.0.0.0:10641 0.0.0.0:0 LISTENING 2884
TCP 0.0.0.0:10676 0.0.0.0:0 LISTENING 2324
TCP 0.0.0.0:10892 0.0.0.0:0 LISTENING 2324
TCP 127.0.0.1:111 0.0.0.0:0 LISTENING 2676
TCP 127.0.0.1:143 0.0.0.0:0 LISTENING 2676
TCP 127.0.0.1:3044 0.0.0.0:0 LISTENING 1608
TCP 127.0.0.1:3045 0.0.0.0:0 LISTENING 1028
TCP 127.0.0.1:3046 0.0.0.0:0 LISTENING 1028
TCP 127.0.0.1:3085 0.0.0.0:0 LISTENING 2324
TCP 127.0.0.1:5335 0.0.0.0:0 LISTENING 3232
TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING 3232
|
Результат, как видите, аскетичен: порты, конечно, выводятся, но вместо информации о приложениях выдается только номер процесса. Хотелось бы еще узнать имя процесса и местоположение файла, из которого он был запущен. Но давайте хотя бы разберемся с тем, что уже есть.
Если вы увидели у себя много TCP-соединений в состоянии LISTENING, то не пугайтесь – это, скорее всего, не трояны, а работающие по умолчанию стандартные сервисы Windows.
Алгоритм просмотра ожидающих соединений такой:
- Отметаем все соединения, у которых локальный адрес установлен 127.0.0.1 – это означает, что к этим портам может подключиться только программа, запущенная на этом же компьютере. Подключение извне к этому порту и адресу невозможно.
- Адрес 0.0.0.0 означает, что любое подключение по любому IP-адресу, который есть на вашем компьютере, с любого хоста Интернета будет возможно на указанный порт. Напомню, что на одной сетевой карте может быть несколько IP-адресов. Не говоря уже о том, что у вас может быть и несколько сетевых карт.
- В некоторых ожидающих соединениях вы увидите те, у которых явно указан IP-адрес одной из ваших сетевых карт. К ним также возможно подключиться из Интернета через указанный порт.
Получается, что для всех ожидающих соединений из последних двух пунктов нам нужно узнать, какое приложение создало это подключение, и нужно ли это вам.
Следующим этапом является установление имени приложения, использующего это соединение. Очевидно, результат команды netstat -ano в виде идентификатора процесса нас не устраивает, поскольку, пользуясь стандартными средствами графического интерфейса и командной строки Windows, невозможно получить по номеру процесса его имя и тем более имя исполняемого файла. Конечно, можно самому написать программу, которая выполняет такие действия, но, к счастью, в Сети уже есть приложения, которые делают то, что нам нужно.
Тем более что в статье Microsoft Knowledge Base Article – 816944 (http://support.microsoft.com/default.aspx?scid=kb;en-us;816944) сами сотрудники фирмы Microsoft советуют пользоваться такими программами, как TCPView (http://www.sysinternals.com/ntw2k/source/tcpview.shtml) и FPort (http://www.foundstone.com/knowledge/proddesc/fport.html).
Я, однако, советую другую программу, которая называется CurrPorts (http://freehost14.websamba.com/nirsoft/utils/cports.html). FPorts плох тем, что работает только в командной строке и ничего не умеет, кроме показа имени процесса и открытых им портов. TCPView – отличная программа, позволяет закрыть соединение и убить процесс, но CurrPorts более функциональна: ко всему перечисленному выводит больше информации о процессе, показывает соответствующие процессу сервисы, позволяет делать HTML-отчеты. Все эти программы бесплатны.
Замечание: на самом деле для просмотра процессов и их идентификаторов можно воспользоваться программой tlist.exe из файла support.cab, лежащего на каждом лицензионном диске Windows. К сожалению, эта программа не устанавливается по умолчанию.
Сравните TCPView и CurrPorts.
CurrPort может с промежутками в 2 секунды показывать программы, использующие открытые порты (лучше сказать, сокеты). К сожалению, соединения происходят достаточно быстро и практически невозможно отследить все соединения в реальном времени. Для выявления несанкционированных подключений нужно протоколировать все соединения и потом просматривать полученные записи.
Отлично, берем CurrPorts, получаем список процессов, которые что-то слушают во внешнем мире или даже соединяются с внешним миром.
http://us.mcafee.com/virusInfo/default.asp?id=description&virus_k=100277). Просто хакер скрыл под именем системного файла свою программу и положил ее в системную папку.
Итак, что делать, если вы нашли незнакомый процесс? Есть такая услуга: идентификация процесса по имени. Существуют сайты, на которых выложен список процессов, чаще всего встречающихся в операционной системе Windows. Таким образом, по имени процесса вы можете понять, для чего он нужен на вашем компьютере, какие порты он обычно использует, и сравнить с данными CurrPorts. Например, http://www.liutilities.com/products/wintaskspro/processlibrary. Для примера попробуйте посмотреть описание svchost.exe: http://www.neuber.com/taskmanager/process/svchost.exe.html. Кроме того, можно набрать в поисковой машине имя процесса и номер порта – вероятнее всего, вы найдете место, где описывается этот процесс или где описывается этот вирус или троян. Но лучше всего купить соответствующие продукты, которые помогут вам идентифицировать процессы без подключения к Интернету: например, WinTasks Pro (http://www.liutilities.com/products/wintaskspro) или Security Task Manager (http://www.neuber.com/task manager/index.html).
Таким образом, вы, пользуясь маленькой утилитой, нашли процессы, которые зачем-то слушают порты, и при помощи Интернета поняли, что это за процессы и нужно ли их удалять с диска. Если вы не уверены точно, что за процесс работает на вашем компьютере, обращайтесь к специалистам. Их можно найти в форумах, например, на http://www.securitylab.ru/forum.
Необходимо понимать, что многие трояны прячутся под именами системных процессов, чтобы их невозможно было убить из менеджера задач. Но CurrPorts благополучно убивает и системные процессы. Будьте осторожнее – умирание системного процесса может привести к зависанию или перезагрузке компьютера.
Другим вариантом такого ручного поиска процесса является просмотр всех процессов с помощью последней версии программы Sysinternals Process Explorer (http://www.sysinternals.com/ntw2k/freeware/procexp.shtml).
Одной из полезных функций данной программы является просмотр свойств каждого процесса, где показаны используемые этим процессом порты. Например, операционная система использует:
Открытый слушающий порт 445 означает, что система может предоставлять доступ к дискам посредством протокола SMB (Server Message Broadcast), также известного под названием CIFS (Common Internet File System) через Интернет. Неправильное конфигурирование этого сервиса может привести к возможности чтения системных и других файлов третьими лицами и захвату контроля над системой. Значительное количество пользователей открывают локальные диски для чтения и записи по сети для упрощения обмена информацией, давая также возможность и третьим лицам работать с их системами. Если вы не хотите, чтобы кто-то изучал ваши диски или даже вносил изменения в данные, хранящиеся на них, то лучше отключить этот сервис совсем. За 445 порт отвечает драйвер netbt.sys, поэтому есть два способа избавиться от него:
- отключить драйвер netbt.sys через «Диспетчер устройств», но тогда не будет работать DHCP-клиент Windows, что часто необходимо абонентам Интернета, использующим выделенные линии;
- переименовать в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters параметр TransportBindName (например, на OldTransportBindName), и после перезагрузки UDP- и TCP-порты будут отключены.
Если у вас внешний IP-адрес, то это нелишне сделать, поскольку по статистике 445 и 135 порты чаще всего сканируют в Интернете (см. статистику http://isc.sans.org/top10.php). Без преувеличения можно сказать, что каждый компьютер во внешней сети подвергается постоянным попыткам соединения с TCP-портами 445 и 135, рассчитывая на то, что пользователи оставили открытым анонимный доступ (null-сессию). 135 порт (NETBIOS) отключается в свойствах протокола TCP/IP в свойствах сетевой карты. Открытый порт 1026 говорит о том, что включена «Служба сообщений» (Messenger). Если вы ей не пользуетесь, то отключите этот сервис. Для этого запустите консоль управления сервисами Windows (services.msc), кликните правой кнопкой на «Службе сообщений», выберите «Свойства» и в поле «Тип запуска» выберите «Отключено» и нажмите «OK».
И так далее по шагам для каждой программы нужно изучить, что за порты она использует, зачем они ей нужны и желаете ли вы, чтобы она передавала куда-то данные.
Находим программу, производящую несанкционированные соединения с Интернетом
В этой части нам нужно распознать программу, которая, попав на компьютер, считывает нужные ей данные (например, ваши пароли) и отсылает их куда-то в Интернет. Поскольку ваши важные данные достаточно небольшого объема: учетные записи, пароли, адреса почтовых ящиков, телефоны dial-up, то передать все это можно очень быстро, особенно если упаковать. Естественно, что все это хранится на диске и все это можно прочитать и посмотреть. Посмотрите хотя бы утилиты MessenPass (http://www.nirsoft.net/utils/mspass.html) или Protected Storage PassView (http://www.nirsoft.net/utils/pspv.html). Первая утилита покажет пароли из любого мессенджера (ICQ, MSN, Trillian и т. д), вторая – из Explorer и Outlook.
Очевидно, что некоторые процессы соединяются с Интернетом на короткое время и нам очень сложно сидеть весь день за программой CurrPorts и следить, кто именно соединяется с Интернетом. Вдобавок, это может быть бесполезным, поскольку некоторые троянские программы соединяются с Интернетом не сами, а «просят» это сделать другую легальную программу, например, Explorer. Это позволяет им скрыться от слежения и вдобавок обмануть ваш персональный firewall. Например, я уверен, что у вас он пропускает все исходящие соединения Explorer.exe на любой адрес по 80 порту. (Если firewall вообще у вас стоит.) Поскольку Internet Explorer экспортирует функции, которыми может пользоваться любое стороннее приложение, то троян может от имени Internet Explorer зайти на сайт, созданный специально для него (например, недавно ставший известным maybeyes.biz), и как параметры строки передаст ваши логины и пароли или скачает свои дополнительные модули. Если хорошо поискать, то можно даже найти исходный текст подобной программы: tooleaky.zensoft.com/tooleaky.zip. Эта программа использует WinExec() для запуска Explorer.
Замечание: сайт maybeyes.biz создан специально для того, чтобы троян Ducky загрузил с этого сайта свою основную часть. Этот троян использует последнюю уязвимость в Windows XP SP1 и Windows 2003, которая позволяет ему загрузиться на ваш компьютер, пока вы просматриваете JPEG(JPG)-картинку. Подробное описание этой уязвимости на сайте Microsoft: MS04-028 (http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx). Обновление, исправляющее эту уязвимость, доступно на сайте Microsoft.
Бороться с таким видом троянов трудно. Персональные firewall не всегда помогают. А точнее, вообще не помогают. В этом можно убедиться, посмотрев список персональных firewall, прошедших leaktests (http://www.firewallleaktester.com/tests.htm). Leaktest – класс программ, реализующий один из видов утечки информации в обход персонального firewall. Как видно, пока нет идеального firewall, блокирующего все leaktests. Пока в лидерах Look’n’stop, но он тоже ловит не все. К сожалению, чтобы грамотно настроить персональный firewall, нужно обладать как минимум знаниями стека протоколов TCP/IP, представлять, как работает операционная система Windows, и быть знакомым с функциональными возможностями конкретного firewall. Но это тоже не всегда помогает, потому как злоумышленники постоянно ищут (и находят) новые методы обхода firewall. Профессионалы на основе накопленного опыта могут закрыть лазейки в операционной системе, которые уже известны. Но что хакеры придумают завтра – никому неизвестно. Поэтому выбора нет и придется повышать свою грамотность в отношении безопасности. Конечно, с ходу профессионалом в этой области стать сложно, но существенно затруднить нехорошим людям выполнение их замыслов вполне возможно.
Существует бесчисленное количество способов попадания трояна на ваш компьютер. Вы можете сами скачать его из Интернета, как «очень интересную программу, которую вы обязательно должны посмотреть», эта программа может прийти вам по электронной почте как «обновление безопасности от Microsoft». Кроме того, вам может послать специально или не специально зараженную программу ваш знакомый по ICQ или MSN, вы можете принести троян или вирус на дискете или компакт-диске. Не стоит думать, что на компакт-дисках не бывает вирусов и троянов. Я видел, как люди параноидально проверяют чистые дискеты из коробки на вирусы, но очень редко встречался с тем, что люди проверяют антивирусом свежекупленные компакт-диски с программным обеспечением или играми. Я видел однажды подобный компакт-диск. На нем была записана компьютерная игра и в довесок вирус.
Кроме того, существовало и существует огромное количество дырок в Windows и приложениях под Windows, которые распространяются без участия пользователя. Как правило, они пользуются отсутствием в исполняемом коде различных компонентов Windows проверок на длину входящих данных или параметров или, короче говоря, переполнением буфера. Например, известный компьютерный червь Blaster (http://support.microsoft.com/kb/826955/RU) использует переполнение буфера в сервисе RPC. А вот троян Ducky уже использует ошибку в обработке JPEG-картинок (переполнение буфера) для своего запуска на вашем компьютере. Как это ни ужасно, но, просто просмотрев картинку с удаленного сайта через Explorer, вы рискуете заразиться новым трояном. И неизвестно, что нас ждет завтра.
Понятно, что очень сложно предусмотреть все варианты заражения компьютера, и, более того, неизвестно, какие уязвимости Windows вирусы и трояны будут использовать в будущем, поэтому надо выполнять хотя бы два простых правила:
- не скачивать и не запускать неизвестные программы из Интернета;
- включить «автоматическое обновление Windows», чтобы вовремя устранять уязвимости.
Но если троян (или вирус) попал на ваш компьютер, то его задача: закрепиться и остаться на компьютере как можно дольше, а при возможности распространиться дальше. Тут и проявляется ахиллесова пята этих троянов (впрочем, как и любого другого вируса) – им нужно, чтобы их кто-то запускал при следущей загрузке Windows. Если они не могут запуститься, то не могут ничего сделать. Для своего последующего запуска они используют стандартные механизмы Windows: запись в папку автозагрузки и в список программ для автозапуска в реестре, запуск по расписанию, установка как сервис, запись в system.ini и win.ini. Как правило, такие трояны не используют вирусную технологию внедрения непосредственно в сам исполняемый файл, а идут отдельным модулем в виде exe- или dll-файла.
Наша задача свелась к тому, чтобы «поскрести по сусекам» и выявить все процессы, что у нас есть в автозапуске, и опять посмотреть, нужны ли они нам там. Программы, которые помогают это делать, уже написаны. Windows нам предлагает утилиту msconfig.exe, с помощью которой можно посмотреть INI-файлы, сервисы и автозагрузку.
Однако лучшим стандартным средством Windows для просмотра автоматически загружаемых программ является msinfo32.exe (можно запустить через меню «Пуск –> Программы –> Служебные –> Сведения о системе»).
Здесь вы увидите более полный список, поскольку получен он из гораздо большего количества укромных мест Windows. Но, к сожалению, отредактировать его эта программа не позволяет.
Ну и последний вариант – это просмотреть реестр Windows, используя утилиту regedit.exe. Например, в HKLMSoftwareMicrosoftWindowsCurrentVersionRun очень много интересного.
Посмотрим, какие варианты есть у сторонних разработчиков. Начну с программы Starter (http://codestuff.tripod.com/features.shtml), которая сама читает данные из реестра и INI-файлов и затем показывает содержимое в удобном виде.
Она просматривает и показывает имена программ, которые будут автоматически выполнены. Чтобы увидеть полную картину, нужно в «Настройках» во вкладке «Разное» поставить галочку на параметре «Элементы» только для экспертов, и тогда имена программ она будет брать из следующих ключей реестра, папок автозагрузки и INI-файлов:
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun;
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce;
- HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts;
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnceEx;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad;
- HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionpoliciesExplorerRun;
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon;
- HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionRun;
- HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionRunOnce;
- папка Current UserГлавное менюПрограммыАвтозагрузка;
- папка All UsersГлавное менюПрограммыАвтозагрузка;
- папка Default UserГлавное менюПрограммыАвтозагрузка;
- файл Win.ini: разделы [Windows].Run, [Windows].Load.
Еще одной ценной особенностью этой программы является то, что она показывает список процессов и подгруженные этими процессами DLL, что позволяет бороться с атаками DLL Injection. Я не буду заставлять вас разбираться еще и в этом. Оставьте работу специалистам по безопасности.
Но эта программа показывает не все места, где может прятаться троян. Еще нужно смотреть на встраиваемые модули (plugins) Explorer, WinAmp, Photoshop, смотреть, какие зарегистрированы ShellExtension (то, что запускается при нажатии правой кнопки на объекте), «Назначенные задания» и наконец сервисы. Давайте попробуем другую программу WinPatrol PLUS (http://www.winpatrol.com).
Программа платная, но даже в незарегистрированном варианте она позволяет узнать много про ваш Windows. Думаю, что самое полезное окошко в программе – это IE Helpers, где показаны дополнительные модули, которые подгружаются при запуске Explorer.
Чаще всего я использую программу Sysinternals Autoruns (http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml) – только она показывает ShellExtensions и другие хитрые компоненты Windows .
Итак, мы посмотрели, что находится в автозапуске, удалили ненужные программы и заодно удалили трояны, которые периодически запускаются для выполнения «нехороших» задач. Самое главное, что одновременно мы навели порядок в Windows.
И напоследок скажу, что если троянская программа при своем запуске удаляет себя из реестра и при завершении Windows добавляет себя снова в реестр, то в этом случае то, что вы читали выше, не работает. Но зато помогает кнопка Reset.
Убить трояна
Что самое интересное, периодически это становится трудной задачей. Что делать, если, пытаясь удалить файл, вы сталкиваетесь с сообщениями: «Доступ к файлу запрещен», «Файл используется»? Удалить такие файлы можно только специальным образом. Очевидно, удалять их нужно до того момента, как они начали использоваться, либо убивать процесс, заблокировавший файл, что не всегда возможно.
Я предлагаю скачать программу MoveOnBoot (http://www.softwarepatch.com/software/moveonboot.html), которая удалит по вашей просьбе файл в самом начале загрузки Windows, когда файл еще никем не используется. После установки программы просто кликаете правой кнопкой на этом файле, в открывшемся контекстном меню выбираете «Свойства» и в новой вкладке нажимаете кнопку Execute. После перезагрузки этот файл будет удален.
Как посмотреть, что «ушло» с вашего компьютера
Несмотря на все наши усилия (и не только наши), все равно нужно констатировать факт, что если мы нашли и обезвредили трояна, то неизвестно, что было украдено с компьютера. Поэтому, после того как мы провели «дезинфекцию», нужно обязательно поменять все пароли.
Чтобы в следующий раз не производить все перечисленные выше действия, давайте поставим какой-нибудь продукт, который бы протоколировал все успешные соединения с внешним миром, чтобы потом, уже после инцидента, можно было понять, откуда произошла утечка.
Во-первых, приходит на ум поставить галочку «записывать успешные соединения» во встроенном в Windows firewall и периодически просматривать эти записи. Ссылки на программы для удобного просмотра этих объемных протоколов легко найти с помощью любого поискового сервера, например Google.
Во-вторых, неплохим бесплатным решением является написанная Microsoft утилита, которая называется Port Reporter (http://support.microsoft.com/?id=837243). Советую внимательно посмотреть на нее. Эта утилита не только протоколирует соединения, но и расписывает все DLL, которыми пользовался процесс. Ну и, наконец, можно поставить любой сторонний firewall, который имеет функции протоколирования соединений. Например, Agnitum Outpost (http://www.agnitum.com/products/outpost). Но это платный способ.
Как все это автоматизировать
Здесь я хочу рассказать о программе System Safety Monitor (http://maxcomputing.narod.ru/ssm.html?lang=ru).
Все эти операции были бы необходимы, если бы мы своевременно узнавали о добавлении программ в реестр, в автозапуск, о запуске одних программ другими программами и т. д. Опять же нашелся человек, который это автоматизировал.
Краткие характеристики:
- Позволяет контролировать, какие приложения могут, а какие не могут быть запущены на вашем компьютере.
- Может запретить одному приложению запускать другое.
- Предотвращает процесс внедрения стороннего кода в чужое приложение («Dll Injection»).
- Может предотвратить установку клавиатурных шпионов.
- Дает возможность контролировать загрузку драйверов.
- Позволяет контролировать доступ к таким объектам ядра, как «DevicePhysicalMemory».
- Предупреждает об изменении «охраняемого» ключа реестра Windows.
- Позволяет легко редактировать список запускаемых при загрузке компьютера приложений.
- Автоматически закрывает окна в зависимости от их заголовка.
- Подобно меню может принудительно завершать работу запущенных процессов (даже тех, которые в Windows 9x не видны).
- Имеет легкоредактируемые списки разрешенных и запрещенных приложений. «Запрещенные» приложения автоматически закрываются при запуске.
- Уведомляет об установке новых сервисов Windows NT
- Уведомляет об изменениях в заданных INI-файлах и меню автозапуска Windows. По умолчанию контролируется win.ini и system.ini, но можно расширить этот список.
- Контролирует вызовы API, используемые для внедрения в чужое адресное пространство и для сокрытия процессов.
- Протоколирует события, происходящие в системе.
Эта программа опережает многие программы по функциональности. Она дает пользователю возможность быстро реагировать на событие, предоставляя подробную информацию о том, что произошло, легко настраивается под нужды пользователя и позволяет следить за безопасностью сразу нескольких уязвимых компонентов Windows.
Описанные в статье программы должны быть у вас всегда под рукой. Особенно полезными я считаю продукты Sysinternals. Было бы разумно скачать все необходимое программное обеспечение до появления трояна на вашем компьютере и записать на компакт-диск.