Вместе с одеждой женщина совлекает с себя стыд. Геродот
English Russian
         Information Technology


Партнеры сайта


www.freecons.ru
Бесплатное консультирование граждан Российской Федерации по юридическим вопросам.


New Image College
Обучение в Канаде графическому дизайну и веб-дизайну на русском и украинском языке.




CЕРВИСЫ




Большая юридическая библиотека

Адвокатский кабинет "КИТ" юридическая библиотека

Зарубежное законодательство. Каталог национальных сайтов по юриспруденции.

ICANN - UDPR (Процедура разрешения доменных споров)

Вопросы законодательства в области авторского права. (Проект Андрея Минкова)

"Интернет и право" (частный ресурс Антона Серго).

Журнал "Информационное право"

Право и Интернет. Law & Internet Research (Russia).

Министерство информационных технологий и связи РФ

Федеральный правовой портал.

Институт Развития Свободы Информации




















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Rambler's Top100
Яндекс цитирования Анализ сайта
Гостей на сайте.
 Всего 12593
 Сегодня 4
 Сейчас 1

Сайт живет
 

  Вирусы, шпионы, спам


Вирусы, шпионы, спам
Киберпреступность в мире
Бесплатные консультации юриста
Доменное имя
Соблюдение авторских прав
Советы специалистов по безопасности
Вредоносное ПО - классификация, обнаружение и удаление.
Методики обнаружения вредоносного ПО.
RootKit - принципы и механизмы работы.
Программы шпионы.
KeyLogger.
Cookies.
Spam.

Вредоносное ПО - классификация, обнаружение и удаление.

Вирусы
     Компьютерные вирусы — это программы, способные распространяться самостоятельно, дописывая свой код к файлам или в служебные области диска. Вирусы могут быть менее опасными (вызывать нежелательные видеоэффекты) и более опасными (изменять или уничтожать информацию владельца), но в любом случае, даже если вирус не содержит деструктивных функций, он так или иначе влияет на работу системы — занимает место и может мешать работе других программ. В зависимости от среды обитания вирусы можно разделить на:
     сетевые
     файловые
     загрузочные
     файлово-загрузочные.
     Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения COM и EXE. Они могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.
     По способу заражения вирусы делятся на:
     резидентные
     нерезидентные.
     Резидентный вирус
     При заражении (инфицировании) компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т. п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера.
     Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.
     Файловые вирусы
     В отличие от загрузочных вирусов, которые практически всегда резидентные, файловые вирусы не обязательно резидентны. Областью обитания файловых вирусов являются файлы. Если файловый вирус не резидентный, то при запуске инфицированного исполняемого файла вирус за- вписывает свой код в тело программного файла таким образом, что при запуске программы вирус первым получает управление. Произведя некоторые действия, вирус передает управление зараженной программе. При запуске вирус сканирует локальные диски компьютера и сетевые каталоги в поисках нового объекта для заражения. После того как подходящий программный файл будет найден, вирус записывает в него свой код, чтобы получить управление при запуске этого файла. Если файловый вирус резидентный, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла. Относительно новой разновидностью файлового вируса является макрокомандный вирус, распространяющийся с документами офисных приложений, таких как Microsoft Word for Windows или Microsoft Excel for,Windows. Документы офисных приложений содержат в себе не только текст и графические изображения, но и макрокоманды, которые представляют собой ничто иное, как программы. Эти программы составляются на языке, напоминающем Бейсик. Вирус может изменять существующие макрокоманды и добавлять новые, внедряя свое тело в файл документа. Механизм распространения макрокомандных вирусов основан на том, что существуют макрокоманды, которые запускаются при открывании документа для редактирования или при выполнении других операций. Разработчик макрокомандного вируса берет файл с именем, например, readme.doc, и записывает в него одну или несколько вирусных макрокоманд, например, вирусную макрокоманду с именем AutoExec. Когда пользователь открывает такой файл при помощи текстового процессора Microsoft Word for Windows, эта макрокоманда будет автоматически запущена на выполнение. При этом вирус получит управление и может заразить другие документы, хранящиеся на дисках. Если вирусная макрокоманда имеет имя FileSaveAs, то распространение вируса будет происходить при сохранении документа. Для предотвращения заражения макрокомандными вирусами необходимо перед просмотром или редактированием проверять новые файлы документов с помощью антивирусных программ, способных искать такие вирусы.
     Загрузочные вирусы
     Вторая большая группа вирусов - это так называемые загрузочные вирусы. Распространение и активизация этих вирусов происходит в момент загрузки операционной системы, еще до того, как пользователь успел за- пустить какую-либо антивирусную программу. Сразу после включения электропитания компьютера начинает работать программа инициализации, записанная в ПЗУ базовой системы ввода/вывода BIOS. Эта программа проверяет оперативную память и другие устройства компьютера, а затем передает управление программе начальной загрузки, которая также находится в BIOS. Программа начальной загрузки пытается прочитать в оперативную память содержимое самого первого сектора нулевой дорожки жесткого диска, в котором находится главная загрузочная запись Master Boot Record (MBR), либо содержимое самого первого сектора нулевой дорожки дискеты, вставленной в устройство A:. Этот сектор содержит загрузочную запись Boot Record (BR). Существует две возможности загрузить операционную систему - с жесткого диска или с дискеты. При загрузке с жесткого диска в память по фиксированному адресу читается содержимое главной загрузочной записи. Эта запись представляет собой программу, задачей которой является загрузка операционной системы с логического диска. Загрузчик, расположенный в главной загрузочной записи MBR просматривает таблицу разделов диска Partition Table, которая находится в том же секторе диска, что и сама запись MBR. После того как в этой таблице будет найден раздел, отмеченный как активный, выполняется чтение самого первого сектора этого раздела в оперативную память, - сектора загрузочной записи BR. В этом секторе находится еще один загрузчик. Задачей загрузчика BR является считывание в оперативную память стартовых модулей операционной системы и передача им управления. Способ загрузки зависит от операционной системы, поэтому каждая операционная система имеет свой собственный загрузчик BR. Загрузка с дискеты происходит проще, так как формат дискеты в точности соответствует формату логического диска. Самый первый сектор нулевой дорожки дискеты содержит загрузочную запись BR, которая читается в память. После чтения ей передается управление. Дискеты могут быть системными и несистемными. Системную дискету MS-DOS можно подготовить при помощи команды format, указав ей параметр /s, либо при помощи команды sys. И в том, и в другом случае в первый сектор нулевой дорожки дискеты записывается программа начальной загрузки MS-DOS. Если же дискета была отформатирована командой format без параметра /s, она будет несистемной. Тем не менее, в первый сектор нулевой дорожки дискеты все равно записывается программа, единственным назначением которой является вывод сообщения о необходимости вставить в НГМД системную дискету. Данное обстоятельство - присутствие загрузочной записи на несистемной дискете - играет важную роль при распространении загрузочных вирусов. Загрузка операционной системы является многоступенчатым процессом, ход которого зависит от разных обстоятельств. В этом процессе задействовано три программы, которые служат объектом нападения загрузочных вирусов: главная загрузочная запись; загрузочная запись на логическом диске; загрузочная запись на дискете Вирусы могут заменять некоторые или все перечисленные выше объекты, встраивая в них свое тело и сохраняя содержимое оригинального загрузочного сектора в каком-либо более или менее подходящем для этого месте на диске компьютера. В результате при включении компьютера программа загрузки, расположенная в BIOS, загружает в память вирусный код и передает ему управление. Дальнейшая загрузка операционной системы происходит под контролем вируса, что затрудняет, а в некоторых случаях и исключает его обнаружение антивирусными программами. Комбинированные файлово-загрузочные вирусы Наиболее совершенные и наиболее опасные вирусы используют методы распространения, характерные и для файловых, и для загрузочных вирусов. Такие вирусы записывают свое тело в файлы и в загрузочные записи дискет и дисков.
     Полиморфные вирусы
     Этот вид компьютерных вирусов представляется на сегодняшний день наиболее опасным. Полиморфные вирусы - вирусы, модифицирующие свой код в зараженных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите. Такие вирусы не только шифруют свой код, используя различные пути шифрования, но и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных шифровальных вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифровальщика и расшифровщика. Полиморфные вирусы - это вирусы с самомодифицирующимися расшифровщиками. Цель такого шифрования: сделать, невозможным проанализировать, код вируса с помощью обычного дизассемблирования, даже имея зараженный и оригинальный файлы. Этот код зашифрован и представляет собой бессмысленный набор команд. Расшифровка производится самим вирусом уже непосредственно во время выполнения. При этом возможны варианты: он может расшифровать себя всего сразу, а может выполнить такую расшифровку в ходе работы, может вновь шифровать уже отработавшие участки. Все это делается ради затруднения анализа кода вируса.
     Стелс-вирусы
     В ходе проверки компьютера антивирусные программы считывают данные - файлы и системные области с жестких дисков и дискет, пользуясь средствами операционной системы и базовой системы ввода/вывода BIOS. Ряд вирусов, после запуска оставляют в оперативной памяти компьютера специальные модули, перехватывающие обращение программ к дисковой подсистеме компьютера. Если такой модуль обнаруживает, что программа пытается прочитать зараженный файл или системную область диска, он на ходу подменяет читаемые данные, как будто вируса на диске нет. Стелс-вирусы обманывают антивирусные программы и в результате остаются незамеченными. Тем не менее, существует простой способ отключить механизм маскировки стелс-вирусов. Достаточно загрузить компьютер с не зараженной системной дискеты и сразу, не запуская других программ с диска компьютера (которые также могут оказаться зараженными), проверить компьютер антивирусной программой. При загрузке с системной дискеты вирус не может получить управление и установить в оперативной памяти резидентный модуль, реализующий стелс-механизм. Антивирусная программа сможет прочитать информацию, действительно записанную на диске, и легко обнаружит вирус. Системная дискета для антивирусного контроля должна быть подготовлена заранее. Кроме системных файлов, на нее следует записать антивирусные программы.

Сетевые черви
     Червей (worms) часто называют вирусами, хотя, строго говоря, они таковыми не являются, — это программы, которые не изменяют файлы на дисках, а распространяются в компьютерной сети, проникают в память компьютера, вычисляют сетевые адреса других компьютеров и рассылают по этим адресам свои копии. Программы этого типа могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). Сетевые черви подразделяются на следующие типы: Интернет-черви (распространяются по Интернету), LAN-черви (распространяются по локальной сети), IRC-черви Internet Relay Chat (распространяются через чаты).
     Email-Worm — почтовые черви К данной категории червей относятся те из них, которые для своего распространения используют электронную почту. При этом червь отсылает либо свою копию в виде вложения в электронное письмо, либо ссылку на свой файл, расположенный на каком-либо сетевом ресурсе (например, URL на зараженный файл, расположенный на взломанном или хакерском веб-сайте). В первом случае код червя активизируется при открытии (запуске) зараженного вложения, во втором — при открытии ссылки на зараженный файл. В обоих случаях эффект одинаков — активизируется код червя. Для отправки зараженных сообщений почтовые черви используют различные способы. Наиболее распространены: • прямое подключение к SMTP-серверу, используя встроенную в код червя почтовую библиотеку; • использование сервисов MS Outlook; • использование функций Windows MAPI. Различные методы используются почтовыми червями для поиска почтовых адресов, на которые будут рассылаться зараженные письма. Почтовые черви: • рассылают себя по всем адресам, обнаруженным в адресной книге MS Outlook; • считывает адреса из адресной базы WAB; • сканируют «подходящие» файлы на диске и выделяет в них строки, являющиеся адресами электронной почты; • отсылают себя во всем адресам, обнаруженным в письмах в почтовом ящике (при этом некоторые почтовые черви «отвечают» на обнаруженные в ящике письма). Многие черви используют сразу несколько из перечисленных методов. Встречаются также и другие способы поиска адресов электронной почты
     IM-Worm — черви, использующие интернет-пейджеры Известные компьютерные черви данного типа используют единственный способ распространения — рассылку на обнаруженные контакты (из контакт-листа) сообщений, содержащих URL на файл, расположенный на каком-либо веб-сервере. Данный прием практически полностью повторяет аналогичный способ рассылки, использующийся почтовыми червями.
     IRC-Worm — черви в IRC-каналах У данного типа червей, как и у почтовых червей, существуют два способа распространения червя по IRC-каналам, повторяющие способы, описанные выше. Первый заключается в отсылке URL-ссылки на копию червя. Второй способ — отсылка зараженного файла какому-либо пользователю сети. При этом атакуемый пользователь должен подтвердить прием файла, затем сохранить его на диск и открыть (запустить на выполнение).
     Net-Worm — прочие сетевые черви Существуют прочие способы заражения удаленных компьютеров, например: • копирование червя на сетевые ресурсы; • проникновение червя на компьютер через уязвимости в операционных системах и приложениях; • проникновение в сетевые ресурсы публичного использования; • паразитирование на других вредоносных программах. Первый способ заключается в том, что червь ищет удаленные компьютеры и копирует себя в каталоги, открытые на чтение и запись (если такие обнаружены). При этом черви данного типа или перебирают доступные сетевые каталоги, используя функции операционной системы, и/или случайным образом ищут компьютеры в глобальной сети, подключаются к ним и пытаются открыть их диски на полный доступ. Для проникновения вторым способом черви ищут в сети компьютеры, на которых используется программное обеспечение, содержащее критические уязвимости. Для заражения уязвимых компьютеров червь посылает специально оформленный сетевой пакет или запрос (эксплойт уязвимости), в результате чего код (или часть кода) червя проникает на компьютер-жертву. Если сетевой пакет содержит только часть кода червя, он затем скачивает основной файл и запускает его на исполнение. Отдельную категорию составляют черви, использующие для своего распространения веб- и FTP-сервера. Заражение происходит в два этапа. Сначала червь проникает в компьютер-сервер и необходимым образом модифицирует служебные файлы сервера (например, статические веб-страницы). Затем червь «ждет» посетителей, которые запрашивают информацию с зараженного сервера (например, открывают зараженную веб-страницу), и таким образом проникает на другие компьютеры в сети. Существуют сетевые черви, паразитирующие на других червях и/или троянских программах уделенного администрирования (бэкдорах). Данные черви используют тот факт, что многие бэкдоры позволяют по определенной команде скачивать указанный файл и запускать его на локальном диске. То же возможно с некоторыми червями, содержащими бэкдор-процедуры. Для заражения удаленных компьютеров данные черви ищут другие компьютеры в сети и посылают на них команду скачивания и запуска своей копии. Если атакуемый компьютер оказывается уже зараженным «подходящей» троянской программой, червь проникает в него и активизирует свою копию. Следует отметить, что многие компьютерные черви используют более одного способа распространения своих копий по сетям, использующие два и более методов атаки удаленных компьютеров.
     P2P-Worm — черви для файлообменных сетей Механизм работы большинства подобных червей достаточно прост — для внедрения в P2P-сеть червю достаточно скопировать себя в каталог обмена файлами, который обычно расположен на локальной машине. Всю остальную работу по распространению вируса P2P-сеть берет на себя — при поиске файлов в сети она сообщит удаленным пользователям о данном файле и предоставит весь необходимый сервис для скачивания файла с зараженного компьютера. Существуют более сложные P2P-черви, которые имитируют сетевой протокол конкретной файлообменной системы и на поисковые запросы отвечают положительно — при этом червь предлагает для скачивания свою копию.
Источник: www.viruslist.com

Троянские программы
     Троянские программы, троянские кони, или просто троянцы, — это программы, которые совершают деструктивные действия, но при этом не размножаются и не рассылаются сами. Своим названием эти программы обязаны троянскому коню из «Илиады» Гомера. Подобно троянскому коню программа-троянец выдает себя за что-либо вполне безобидное, «подделываясь» под другие программы (игры, новые версии популярных утилит и пр.). Троянские программы подразделяют на несколько видов:
     утилиты несанкционированного удаленного управления, внедряясь в ваш компьютер, предоставляют хозяину троянца доступ к этому компьютеру и возможность управления им;
     эмуляторы DDoS-атак (Distributed Denial of Service) вызывают «атаки» на Web-серверы, при которых на Web-сервер из разных мест поступает большое количество пакетов, что приводит к отказу системы;
     похитители секретной информации воруют информацию;
     дроппер (от англ. drop — бросать) — программа, задача которой «сбросить» в систему вирус или другие вредоносные программы.
     Рассмотрим некоторые виды троянских программ подробнее.

     Утилиты несанкционированного удаленного управления
     Утилиты несанкционированного удаленного управления по существу представляют собой полнофункциональные утилиты для удаленного администрирования компьютера, которые открывают злоумышленнику доступ к вашему компьютеру, позволяя ему выполнять на нем различные операции. Типичным примером такой программы является троянский конь BO (Back Orifice), полное название которого Backdoor.BO. По своей сути Back Orifice является мощной системой удаленного администрирования, позволяющей своему владельцу контролировать компьютеры посредством локальной сети или через Интернет. При запуске троянец самоустанавливается в системе, при этом пользователю компьютера, на который внедрилась программа, не выдается никаких сообщений о действиях троянца. Ссылка на троянца отсутствует в списке активных приложений. В результате пользователь компьютера может и не знать, что на его компьютере установлена троянская программа, в то время как его компьютер открыт для удаленного управления. В зависимости от команды троянец может выполнять следующие действия:
     высылать имена компьютера и пользователя, а также информацию о системе: тип процессора, размер памяти;
     разрешать удаленный доступ к дискам;
     искать файлы на дисках;
     посылать/принимать файлы, а также уничтожать, копировать их и т.п.;
     создавать/уничтожать каталоги;
     упаковывать/распаковывать файлы;
     отключать текущего пользователя от сети;
     подключаться к сетевым ресурсам;
     получать и отправлять кэшированные пароли (которые задействовались пользователем в течение текущего сеанса);
     читать/модифицировать системный реестр;
     открывать/перенаправлять другие сокеты TCP/IP;
     перехватывать, запоминать и затем высылать строки, вводимые с клавиатуры в момент подсоединения компьютера к сети;
     многие другие действия.

     Эмуляторы DDoS-атак
     DoS-атака (Denial-of-Service) — тип атаки, организованной хакерами, при которой на сервер приходит множество запросов на предоставление услуги. Сервер расходует ресурсы на обслуживание «лишних» запросов и при превышении определенного трафика перестает справляться с обслуживанием запросов законных пользователей. В результате подобной атаки может возникнуть ситуация, когда пользователь не может зайти на тот или иной сайт. Сущность DoS-атаки заключается в том, чтобы вызвать перегрузку системы за счет передачи искусственно созданного трафика и помешать обратиться за сервисом легальным пользователям. DDoS-атаки (Distributed Denial of Service) происходят в разных местах, но преследуют одну цель: устанавливается большое количество серверов DoS на различных компьютерах, которые по команде центрального клиента высылают огромный трафик по одному и тому же адресу. Центральный клиент управляет распределенной армией серверов DoS — отсюда и термин Distributed DoS, или DDoS. C помощью DDoS-атаки можно «забить» сервер любой мощности — нужно только подобрать необходимое количество участвующих в атаке компьютеров. Интересно отметить, что технология DDoS была создана не хакерами — она использовалась для тестирования пропускной способности систем. Как известно, суть тестирования состоит в том, чтобы создать испытываемой системе максимально тяжелые условия функционирования. Именно так возникли программы, которые с распределенных источников забрасывали один адрес сообщениями для оценки устойчивости его на подобные воздействия и для определения порога перегрузки. Хотя выше мы уже рассказали о том, как работают троянские программы, еще раз подчеркнем: вы можете даже не знать, что получили троянца и ваш компьютер участвует в DDoS-атаке. Атака идет с множества адресов ничего не подозревающих пользователей троянцев, среди которых нет адреса злоумышленника. Защита от DDoS-атак строится на анализе источников избыточного, по сравнению с обычным, трафика и на запрете его передачи.

     Троянские программы — похитители секретной информации
     Данные программы воруют системные пароли, откуда и название: PSW — Password-Stealing-Ware. При запуске PSW-троянцы ищут конфиденциальную информацию, например пароли доступа к Интернету, и отсылают ее по указанному адресу. Обычно PSW-троянцы являются Windows-программами, которые при работе используют стандартные функции Windows. Некоторые Windows-PSW-троянцы также копируют себя в каталог Windows, регистрируются в системном реестре и запускаются при каждой перезагрузке Windows, что позволяет им отсылать конфиденциальную информацию в течение длительного времени. Имеется значительное количество троянских программ, которые воруют пароли пользователей и прочую системную информацию и пересылают ее злоумышленникам. Если мы говорим о домашнем компьютере, подключенном к Сети, то наибольший интерес для хакера представляют пароли доступа в Интернет. Заполучив пароль, хакер может воспользоваться вашим кошельком. В статье использованы материалы вирусной энциклопедии www.viruslist.com



Методики обнаружения вредоносного ПО.

     Введение. Практика последних лет показывает, что разработчики антивирусных и анти-SpyWare программных продуктов не успевают оперативно вносить в базы сигнатуры всех разновидностей вредоносных программ. В результате независимо от применяемого антивирусного пакета любой пользователь может рано или поздно столкнуться с тем, что на его компьютер попадет вредоносная программа, которую не сможет обнаружить и удалить применяемый пользователем антивирус. Хуже всего дело обстоит с AdWare и SpyWare программами – далеко не все производители антивирусов включают такие программы в свои базы. Кроме того, ожидать добавления вредоносной программы в базы антивируса можно достаточно долго, поскольку для этого разработчики антивируса должны получить ее образец. В результате для пользователя получается замкнутый круг, выйти из которого можно тремя путями – переустановить систему, пригласить специалистов для консультации или попробовать самостоятельно обнаружить вредоносную программу и отправить ее разработчикам антивирусных пакетов. В данной статье описан набор бесплатных утилит, которые могут быть полезны для поиска и уничтожения большинства вредоносных программ, описаны основные методики проверки компьютера.
     Утилиты для анализа ПК
Утилита FileMon (производитель SysInternals).
SpyWare, Adware, борьба с вирусами Утилита позволяет осуществлять мониторинг всех файловых операций в реальном времени, распространяется бесплатно. Кроме файловых операций FileMon позволяет осуществлять мониторинг операций с именованными каналами (Named Pipes), Mail Slot и сетевыми ресурсами. FileMon не нуждается в инсталляции и может быть запущен с компакт-диска или из сетевой папки. Необходимо учесть, что внутри исполняемого файла filemon.exe хранятся драйвера, которые извлекаются и инсталлируются в момент запуска. Полезной особенностью программы является возможность настраиваемой фильтрации регистрируемых событий.
SpyWare, Adware, борьба с вирусами
Кроме фильтра предусмотрен пункт меню «Volumes», который позволяет включить или выключить мониторинг для каждого тома. Протокол утилиты может быть сохранен в текстовый файл для последующего анализа. Разделителем полей протокола является символ табуляции, что позволяет импортировать его в Microsoft Excel.
Утилита FileMon (производитель SysInternals).
SpyWare, Adware, борьба с вирусами Утилита позволяет осуществлять мониторинг всех операций с реестром в реальном времени, распространяется бесплатно. Интерфейс данной утилиты аналогичен FileMon. Исполняемый файл использует для работы драйвер, который хранится внутри исполняемого файла и устанавливаются в момент запуска программы. Запись событий можно временно приостановить при помощи пункта меню «File\Capture events». Двойной щелчок мышью на строке протокола приводит к открытию редактора реестра и автоматическому позиционированию на соответствующий ключ реестра. Как и в случае с FileMon протоколы утилиты могут быть сохранены в текстовый файл для анализа.
Process Explorer (производитель SysInternals)
SpyWare, Adware, борьба с вирусами Основной задачей Process Explorer является просмотр списка запущенных процессов. Для каждого процесса отображаются потоки, используемые им библиотеки, Handle (с расшифровкой типа Handle и отображением уточняющей информации). Помимо просмотра списка процессов программа может выполнять ряд полезных сервисных функций, в частности осуществлять поиск процесса по его окну и составлять список процессов, использующих указанную библиотеку. Для каждого процесса есть возможность просмотра детализированной информации. Детализированная информация включает данные о потоках, прослушиваемых портах TCP/UDP, параметры безопасности, переменные окружения, список найденных в исполняемом файле (на диске и в памяти процесса) текстовых данных с возможностью поиска и сохранения найденной информации для анализа. Как показывает практика, в памяти подозрительного процесса можно обнаружить много интересных текстовых строк, например адреса в Интернет, по которым программа ведет обмен. Еще одной заслуживающей внимания возможностью утилиты является встроенная поддержка механизма проверки цифровых подписей файлов.
Утилита Autoruns (производитель SysInternals).
Утилита является диспетчером автозапуска с расширенными возможностями. Утилита анализирует практически все способы автозапуска, применяемые вредоносными программами. Одной из наиболее полезных функций программы является поддержка проверки цифровых подписей Microsoft и отображение результатов их проверки. Кроме визуального отображения результатов проверки в настройках программы имеется переключатель «Hide signed Microsoft entries». Его включение приводит к тому, что все подписанные Microsoft программы и библиотеки автоматически исключаются из списка, что существенно упрощает его анализ. Утилита распространяется в двух вариантах: в виде стандартной программы с диалоговым интерфейсом и в виде консольного приложения, управляемого ключами командной строки. Утилита анализирует множество ключей реестра, управляющих автозапуском, отображает список служб, модулей расширения проводника, BHO и панели Internet Explorer, назначенные задания. Любая библиотека или программа может быть временно удалена из автозагрузки, что позволяет на время отключить запуск подозрительных программ и библиотек.
Утилита Sigcheck (производитель SysInternals).
Эта небольшая консольная утилита позволяет просматривать и проверять цифровые подписи указанного файла. Утилита очень полезна для идентификации системных файлов, которые имеют цифровую подпись Microsoft. SpyWare, Adware, борьба с вирусами

Утилита HijackThis (http://www.tomcoyote.org/hjt/)
SpyWare, Adware, борьба с вирусами Протоколы утилиты HijackThis являются стандартом для многих конференций, посвященных информационной безопасности. Утилита анализирует системные настройки и отображает их на экране в виде списка. Важно отметить, что утилита не анализирует собранную информацию – предполагается, что пользователь самостоятельно примет решение о том, какие элементы появились в результате деятельности вредоносных программ. Пользователь может отметить один или несколько элементов, после нажатия кнопки “Fix” утилита производит их исправление или удаление. Утилита позволяет сохранять текстовые протоколы с результатами анализа, протокол достаточно легко анализировать вручную или с помощью автоматизированных анализаторов.
a-squared HiJackFree (http://www.hijackfree.com/en/)
SpyWare, Adware, борьба с вирусами Данная программа представляет собой универсальный анализатор, отображающий элементы автозапуска (включая многие экзотические), модули расширения Explorer, службы и запущенные процессы, открытые порты, содержимое файла Hosts. По результатам анализа формируется XML протокол, который может быть сохранен или передан для анализа на сайт www.hijackfree.com Результаты анализа отображаются немедленно, полученный в результате анализа HTML протокол можно сохранить. Однако следует помнить, что для формирования протокола результаты анализа Вашего компьютера передаются компании a-squared. Утилита TDIMon (производитель SysInternals). Утилита TDIMon предназначена для мониторинга сетевой активности приложений. В протоколе утилиты регистрируются обмен приложений по протоколам TCP и UDP. Программа не нуждается в инсталляции и может оказаться весьма полезной для обнаружения программ, ведущих скрытный обмен с сетью
Утилита AVZ (http://z-oleg.com/secur/)
SpyWare, Adware, борьба с вирусами Данная утилита помимо сигнатурного сканера содержит анализатор запущенных процессов, служб, драйверов, модулей пространства ядра, диспетчер автозапуска и расширений Internet Explorer, анализатор настроек SPI (LSP/NSP/TSP), анализатор открытых портов TCP/UDP и сетевых ресурсов. Утилита содержит встроенные средства поиска данных в реестре и файлов на диске. Все эти функции защищены встроенным антируткитом. Встроенное исследование системы позволяет формировать HTML протоколы, которые можно использовать для экспресс-анализа системы. Анализ запускается из меню «Файл \ Исследование системы», протокол размещается в указанной пользователем папке. Встроенная база безопасных файлов позволяет AVZ опознавать файлы, входящие в состав операционной системы и файлы распространенных приложений. Опознанные файлы выделяются цветом и могут быть автоматически исключены из протоколов исследования системы, что в ряде случаев существенно упрощает их анализ. Специализированные утилиты для поиска RootKit F-Secure BackLite Данная программа предназначена для поиска маскирующихся процессов, файлов и папок. Несмотря на статус “Beta” программа работает достаточно стабильно, в инсталляции не нуждается (тем не менее, неявная инсталляция есть – программа копирует на диск и устанавливает на время работы свой драйвер). SysInternals RootkitRevealer Детектор Rootkit от фирмы SysInternals, работает без инсталляции. Основной задачей данной утилиты является поиск маскирующихся файлов и ключей реестра. Следует обратить внимание на то, что в случае логических ошибок на диске данная утилита может выдать ложные подозрения. Кроме того, подозрения на маскировку файлов не обязательно являются признаком наличия в системе RootKit.
Полезные On-Line сервисы
      www.hijackthis.de Автоматический анализатор протоколов утилиты HijackThis. Работает только с протоколами последней версии данной утилиты, по результатам анализа генерирует протокол с указанием, на какие позиции следует обратить внимание.
      www.virustotal.com Проверка файла несколькими антивирусами. В настоящий момент проверка переданного для анализа файла проводится при помощи 19-ти антивирусных пакетов.
      www.virusscan.jotti.org Проверка файла несколькими антивирусами. На этом сайте проверка файла производится при помощи 13-ти антивирусов, и кроме проверки антивирусами проводится экспресс-анализ файла – вычисление его MD5 суммы, попытка определения упаковщика и оценка «степени опасности» файла по некоторым критериям создателей сайта.
      www.virusinfo.info Русскоязычная конференция, полностью посвященная вирусологии, борьбе с AdWare/SpyWare программами и защите компьютера. Для начинающего пользователя ценность представляет раздел «Помогите», в котором рассматриваются проблемы пользователей, анализируются полученные от пользователей протоколы и подозрительные файлы.
      www.forum.ixbt.com Русскоязычная конференция, содержит подразделы «Системное администрирование, безопасность», «Техподдержка» и «Программы: Интернет», в которых обсуждаются вопросы безопасности, антивирусные программы, Firewall и методы обнаружения вирусов. Подготовка к анализу Итак, мы сформировали список основных инструментов, которые потребуются для анализа компьютера, можно приступать к анализу. Перед его проведением стоить найти ответ на ряд вопросов: В чем заключается проблема с компьютером, в чем конкретно она проявляется. От точности ответа на данный вопрос зависит эффективность дальнейшего анализа – к сожалению, очень часто анализ начинается с туманной формулировки «компьютер вроде тормозит …». При наличии внешних проявлений вредоносной программы необходимо установить периодичность их появления и проверить, связаны ли они с наличием доступа в Интернет; Необходимо примерно определить момент вероятного появления вредоносной программы. Естественно, что точно установить это затруднительно, но приблизительный интервал с запасом установить необходимо; Необходимо уточнить, какие действия производились перед предположительным появлением вредоносной программы. Практика показывает, что появление ряда вредоносных программ происходит после установки какого-либо программного обеспечения, открытия подозрительных писем или Интернет сайтов.
Анализ
     1. Поиск RootKit Практика показала, что анализ компьютера нужно начинать с поиска программ, применяющих RootKit механизмы. Это очень важный момент, поскольку большое количество современных вредоносных программ активно маскируют свое присутствие на компьютере. С другой стороны большинство описанных выше программ-анализаторов работают через стандартные API, и перехват нескольких функций делает программу «невидимкой» за счет маскировки ее ключей реестра, файлов и процессов. Желательно применить все рекомендованные программы (RootkitRevealer, BackLite и AVZ), т.к. они используют различные алгоритмы поиска RootKit. По протоколу утилиты AVZ можно проанализировать, есть ли перехваты каких-либо функций в user-mode и kernel-mode. Сам по себе перехват ни о чем не говорит, поскольку перехватчик может быть установлен антивирусом, Firewall, различными средствами мониторинга системы. Например, утилита FileMon во время работы перехватывает несколько функций KiST, отвечающих за работу с реестром. В случае подозрения на RootKit можно включить противодействие руткитам AVZ – в этом случае делается попытка нейтрализации перехватчиков. Следует учитывать, что нейтрализация перехватчиков user-mode происходит только для процесса AVZ, в то время как нейтрализация kernel-mode перехватчиков оказывает воздействие на всю систему. Если одна из перечисленных программ обнаружит подозрение на маскировку процессов или файлов, то заподозренные файлы необходимо тщательно исследовать. Для этого можно применить описанные выше on-line сервисы, позволяющие проверить подозрительный файл десятком антивирусов. После поиска (и уничтожения в случае обнаружения) RootKit можно приступить к дальнейшему анализу системы. В случае активного противодействия удалению со стороны вредоносной программы самым простым способом ее удаления является подключение HDD к заранее чистому компьютеру и удалений файлов, обнаруженных в ходе поиска руткита.
     2. Анализ запущенных процессов Анализ списка запущенных процессов сводится к тому, что необходимо идентифицировать каждый из них. Процессы, которые AVZ определяет как безопасные, можно с высокой степенью вероятности считать таковыми и снять с подозрения. Аналогично можно поступить с файлами, подписанными Microsoft (проверить подпись можно консольной программой Sigcheck). Все остальные запущенные процессы можно разделить на две категории – процессы, назначение которых Вам известно, и программы неизвестного происхождения – их необходимо тщательно проверить. В ходе проверки рекомендуется обратить внимание на размер файла (троянские программы, почтовые и сетевые вирусы как привило небольшого размера) и дату его создания/модификации.
     3. Анализ автозапуска Анализ автозагружаемых программ и библиотек очень удобно проводить при помощи утилиты Autoruns от SysInternals. Для упрощения анализа рекомендуется включить опции «Verify Code Signatures» и «Hide Signed Microsoft Entries» в меню «Options». Следует учесть, что анализ элементов автозапуска может длиться несколько минут – это связано с тем, что для каждого файла идет проверка цифровых подписей.
     4. Поиск файлов на диске Поиск файлов на диске достаточно эффективен в случае, если известна примерная дата появления вредоносной программы. В этом случае можно осуществить поиск по маске «*.exe *.com *.sys *.pif *.com *.lnk *.chm» с фильтрацией по диапазону дат (причем поиск желательно произвести дважды – по дате создания файла и по дате модификации). Для выполнения поиска файлов удобно применять встроенную систему поиска AVZ – в ней можно исключить из результатов поиска файлы, опознанные по базе безопасных.
     5. Анализ BHO и модулей расширения Internet Explorer Анализ различных модулей расширения Internet Explorer является важной задачей, поскольку многие SpyWare и AdWare программы устанавливаются как BHO (Browser Helper Object). Анализ рекомендуется вести из утилиты Autoruns (закладка Internet Explorer) или AVZ (Сервис\Менеджер расширений IE). Все подозрительные модули расширения рекомендуется отключить, причем перед отключением необходимо в обязательном порядке закрыть все экземпляры Internet Explorer. Это связано с тем, что некоторые BHO отслеживают наличие своих ключей в реестре в момент выгрузки и восстанавливают их при необходимости, что затрудняет их удаление.
     6. Папка Downloaded Program Files Многие шпионские программы и программы класса Trojan-Downloader выполнены в виде ActiveX и некоторые их компоненты можно обнаружить в папке Downloaded Program Files. Следует отметить, что просмотр данной папки при помощи проводника Windows неудобен, для просмотра файлов рекомендуется воспользоваться менеджерами файлов типа FAR или Windows Commander. Сама папка Downloaded Program Files размещается в папке Windows, у папки установлен атрибут «системный».
     7. Анализ файла hosts Файл hosts участвует в процессе определения IP адреса сервера по его имени. Модификация этого файла может привести к нарушению данного процесса и подмене адреса любого сервера (данный процесс является простейшей формой DNS спуфинга). Как правило, добавленные троянской программой в файл hosts строки имеют вид: 1.2.3.4 google.com 127.0.0.1 downloads1.kaspersky-labs.com В первой из приведенных строк происходит подмена адреса google.com на некий адрес 1.2.3.4. Во второй строке примера показан классический способ блокирования процесса обновления антивирусных баз. Анализ файла hosts сводится к изучению его содержимого в любом текстовом редакторе (например в блокноте), или в специализированной утилите (например HiJackFree или HijackThis). Обнаружение посторонних записей, особенно связанных с популярными поисковыми системами или антивирусными продуктами однозначно свидетельствует о деятельности троянской программы.
     8. Изучение папки «Избранное» Internet Explorer У Internet Explorer есть интересная функция (о которой правда часто забывают) – перед открытием указанного в строке адрес сайта происходит автоматический просмотр папки «Избранное» и сравнение названия ссылок этой папки с текстом в строке «Адрес». В случае совпадения введенный адрес автоматически изменяется на адрес из найденной ссылки. С одной стороны это удобно – можно создать ссылку с названием «поиск», указывающую на www.yandex.ru – тогда указание в поле «адрес» слова «поиск» приведет к открытию сайта www.yandex.ru. Однако возможна и обратная операция – можно в папке «Избранное» создать ссылку с именем www.yandex.ru и указать в ней некий посторонний адрес – в результате произойдет автоматическая подмена адреса. Следовательно, в ходе проверки компьютера необходимо произвести поиск и удаление подобных ссылок. Действия в типовых ситуациях Рассмотрим несколько типовых случаев, которые по статистике чаще всего можно наблюдать на зараженных компьютерах. Периодически выводятся окна с рекламной информацией. В такой ситуации необходимо установить, какая из запущенных программ выводит данные окна. Это удобно сделать при помощи программы Process Explorer – необходимо перетащить значок с изображением прицела из панели управления Process Explorer на окно неопознанной программы - Process Explorer определит, какой программе принадлежит данное окно. Если обнаружится, что окно принадлежит Internet Explorer, то необходимо проанализировать загруженные им библиотеки и модули расширения (BHO). Кроме того, Process Explorer показывает процессы в виде древовидного списка – стоит обратить внимание на то, какой процесс является родительским для «подозреваемого»; Стартовая страница Internet Explorer периодически изменяется на некую страницу X. Настройки IE хранятся в реестре, поэтому для обнаружения изменяющего страницу «вредителя» очень удобно применить утилиту RegMon. После запуска утилиты необходимо настроить фильтр утилиты RegMon, указав в качестве образца адрес X или его фрагмент. Затем остается только восстановить стартовую страницу и дождаться ее изменения – далее по протоколу RegMon можно установить, какой процесс выполнил данную операцию. Изменяются настройки Internet Explorer, в том числе недоступные из диалога «свойства обозревателя». Чаще всего изменяется страница поиска или префиксы протоколов, замена стартовой страницы может рассматриваться как частный случай этой ситуации. Методика обнаружения ответственного за это вредоносного процесса аналогична случаю с подменой стартовой страницы, в настройке фильтра RegMon в поле Include рекомендуется задать образец «Microsoft\Internet Explorer» и оставить включенной опции «Log Writes» и «Log Successes». В результате будет фиксироваться все изменения настроек с указанием, какая программа производит изменение. Для восстановления настроек можно применить кнопку «Сброс параметров» на закладке «Свойства программы» в окне «Свойства обозревателя» или использовать восстановление системы в AVZ. В обоих случаях это приведет к сбросу все настроек на значения по умолчанию. На рабочем столе (на диске, в определенных папках) периодически появляются посторонние файлы и ярлыки. Для определенности предположим, что на рабочем столе появляется файл dialer.exe, причем через некоторое время после его удаления файл появляется снова. Воспользуемся утилитой FileMon, причем для уменьшения размеров протокола рекомендуется настроить фильтр этой утилиты. В нашем случае образец в строке Include фильтра будет «dialer.exe», из всех переключателей можно оставить включенным только “Log Writes” и «Log Successes». С таким фильтром FileMon будет регистрировать только операции записи в файл с именем «dialer.exe». Далее остается подождать появления файла и по протоколу FileMon установить создающее его приложение. После удаления вредоносной программы (вручную или при помощи антивируса) возникли проблемы с доступом в Интернет. Подобная ситуация как правило возникает в случае удаления модуля, зарегистрированного в качестве расширения Winsock. Проанализировать зарегистрированные модули расширения Winsock можно в AVZ – меню Сервис, пункт «Менеджер Winsock SPI». Менеджер оснащен автоматическим анализатором, который в состоянии обнаружить типовые ошибки и исправить их. Список ошибок можно посмотреть на закладке «Поиск ошибок», там же имеется кнопка «Автоматическое исправление найденных ошибок». В большинстве случаев анализатор AVZ в состоянии справиться с ошибками. Если он не поможет (а такое возможно в случае серьезного повреждения настроек, например полного удаления ключей реестра, хранящих настройку), рекомендуется обраться к статьям 299357, 817571 и 811259, размещенным на сайте Microsoft (http://support.microsoft.com/kb/<номер статьи>). В данных статьях подробно рассмотрены методики ручного сброса, восстановления и проверки настроек протоколов TCP/IP; Изменились обои и настройки рабочего стола, меню настройки рабочего стола недоступно. Подобная ситуация все чаще регистрируется в последние месяцы и связана с оригинальной методикой демонстрации рекламы – вместо отображения рекламной информации в отдельных окнах современные троянские программы внедряют ее в рабочий стол. В ряде случаев можно восстановить настройки вручную, однако некоторые троянских программы блокирую вызов меню настройки при помощи параметров в ключе реестра Software\Microsoft\Windows\CurrentVersion\Policies. Для разблокировки меню и сброса настроек можно применить “Восстановление системы” AVZ, там предусмотрена специальная функция «Восстановление настроек рабочего стола». Нарушилось обновление антивирусных программ, хотя доступ в Интернет работает нормально. В такой ситуации рекомендуется проверить файл HOSTS, возможно, в нем появились дополнительные записи. Отследить модифицирующий файл hosts процесс достаточно легко при помощи утилиты FileMon, восстановить файл проще всего вручную – в нем должна быть единственная строка вида «127.0.0.1 localhost». Для редактирования фала Hosts можно воспользоваться программами HiJackFree или HijackThis. Заключение В данной статье описаны базовые методики анализа компьютера, доступные даже начинающему пользователю. Описанные утилиты позволяют провести анализ компьютера и решить типовые задачи, связанные с выявлением вредоносных программ без применения антивируса.
Источник информации сайт z-oleg.com



RootKit - принципы и механизмы работы.


     Введение Термин RootKit исторически пришел из мира Unix, где под этим термином понимается набор утилит, которые хакер устанавливает на взломанном им компьютере после получения первоначального доступа. Это, как правило, хакерский инструментарий (снифферы, сканеры) и троянские программы, замещающие основные утилиты Unix. RootKit позволяет хакеру закрепиться во взломанной системе и скрыть следы своей деятельности. В системе Windows под RootKit принято считать программу, которая внедряется в систему и перехватывает системные функции, или производит замену системных библиотек. Перехват и модификация низкоуровневых API функций в первую очередь позволяет такой программе достаточно качественно маскировать свое присутствие в системе, защищая ее от обнаружения пользователем и антивирусным ПО. Кроме того, многие RootKit могут маскировать присутствие в системе любых описанных в его конфигурации процессов, папок и файлов на диске, ключей в реестре. Многие RootKit устанавливают в систему свои драйверы и сервисы (они естественно также являются «невидимыми»). В последнее время угроза RootKit становится все более актуальной, т.к. разработчики вирусов, троянских программ и шпионского программного обеспечения начинают встраивать RootKit-технологии в свои вредоносные программы. Одним из классических примеров может служить троянская программа Trojan-Spy.Win32.Qukart, которая маскирует свое присутствие в системе при помощи RootKit-технологии (данная программа интересна тем, что ее RootKit-механизм прекрасно работает в Windows 95\98\ME\2000\XP). Для эффективной борьбы с RootKit необходимо понимание принципов и механизмов его работы. Условно все RootKit-технологии можно разделить на две категории – работающие в режиме пользователя (user-mode) и в режиме ядра (kernel-mode). Первая категория RootKit основана на перехвате функций библиотек пользовательского режима, вторая – на установке в систему драйвера, осуществляющего перехват функций уровня ядра. Далее при описании методов перехвата функций описание идет применительно к RootKit, однако нужно помнить, описанные методики универсальны и применяются множеством полезных программ и утилит.
Методы перехвата API функций в режиме пользователя (user mode)
     Описания методик перехвата функций снабжены схемами их работы, при этом красная пунктирная стрелка показывает вмешательство RootKit в процесс работы программы, красные стрелки показывают отклонения в логике работы, вызванные вмешательством RootKit. Перехват функций позволяет RootKit модифицировать результаты их работы – например, перехват функции поиска файла на диске позволяет исключить из результатов поиска маскируемые файлы, а перехват функций типа ntdll.ZwQuerySystemInformation позволяет замаскировать запущенные процессы и загруженные библиотеки. Принцип вызова API функции
     Перед рассмотрением принципов работы RootKit пользовательского режима необходимо кратко и упрощенно рассмотреть принцип вызова функций, размещенных в DLL. Известно два базовых способа:
     1.Раннее связывание (статически импортируемые функции). Этот метод основан на том, компилятору известен перечень импортируемых программой функций. Опираясь на эту информацию, компилятор формирует так называемую таблицу импорта EXE файла. Таблица импорта – это особая структура (ее местоположение и размер описываются в заголовке EXE файла), которая содержит список используемых программой библиотек и список импортируемых из каждой библиотеки функций. Для каждой функции в таблице имеется поле для хранения адреса, но на стадии компиляции адрес не известен. В процессе загрузки EXE файла система анализирует его таблицу импорта, загружает все перечисленные в ней DLL и производит занесение в таблицу импорта реальных адресов функций этих DLL. У раннего связывания есть существенный плюс – на момент запуска программы все необходимые DLL оказываются загруженными, таблица импорта заполнена – и все это делается системой, без участия программы. Но отсутствие в процессе загрузки указанной в его таблице импорта DLL (или отсутствие в DLL требуемой функции) приведет к ошибке загрузки программы. Кроме того, очень часто нет необходимости загружать все используемые программой DLL в момент запуска программы. На рисунке показан процесс раннего связывания – в момент загрузки происходит заполнение адресов в таблице импорта (шаг 1), в момент вызова функции из таблицы импорта берется адрес функции (шаг 2) и происходит собственно вызов функции (шаг 3); SpyWare, Adware, борьба с вирусами
     2.Позднее связывание. Отличается от раннего связывания тем, что загрузка DLL производится динамически при помощи функции API LoadLibrary. Эта функция находится в kernel32.dll, поэтому если не прибегать к хакерским приемам, то kernel32.dll придется загружать статически. При помощи LoadLibrary программа может загрузить интересующую ее библиотеку в любой момент времени. Соответственно для получения адреса функции применяется функция kernel32.dll GetProcAddress. На рисунке шаг 4 соответствует загрузке библиотеки при помощи LoadLibrary и определению адресов при помощи GetProcAddress. Далее можно вызывать функции DLL (шаг 5), но естественно при этом таблица импорта не нужна. Чтобы не вызывать GetProcAddress перед каждым вызова функции из DLL программист может однократно определить адреса интересующих его функций и сохранить их в массиве или некоторых переменных. Независимо от метода связывания системе необходимо знать, какие функции экспортирует DLL. Для этого у каждой DLL имеется таблица экспорта – таблица, в которой перечислены экспортируемые DLL функции, их номера (ординалы) и относительные адреса функций (RVA).
1. Модификация машинного кода прикладной программы.
SpyWare, Adware, борьба с вирусами В этом случае модифицируется машинный код, отвечающий в прикладной программе за вызов той или иной функции API. Это методика сложна в реализации, т.к. существует множество языков программирования, версий компиляторов и программист может реализовать вызов API функций различными методиками. Но теоретически подобное возможно при условии, что внедрение будет идти в заранее заданную программу известной версии. В этом случае можно проанализировать ее машинный код и разработать перехватчик.
2. Модификация таблицы импорта
SpyWare, Adware, борьба с вирусами Данная методика описана в книге Рихтера и является одной из классических. Идея метода проста – RootKit находит в памяти таблицу импорта программы и исправляет адреса интересующих его функций на адреса своих перехватчиков (естественно, он предварительно где-то у себя запоминает правильные адреса). В момент вызова API функции программа считывает ее адрес из таблицы импорта и передает по этому адресу управление. Методика универсальна, но у нее есть существенный недостаток (и его хорошо видно на схеме) - перехватываются только статически импортируемые функции. Но есть и плюс – методика очень проста в реализации и есть масса примеров, демонстрирующих ее реализацию. Поиск таблицы импорта в памяти не представляет особой сложности, поскольку для этого существуют специализированные API функции, позволяющие работать с образом программы в памяти. Исходный текст такого перехватчика на языке C занимает несколько листов печатного текста;
3. Перехват функций LoadLibrary и GetProcAddress.
SpyWare, Adware, борьба с вирусами Перехват функций LoadLibrary и GetProcAddress может быть выполнен любым методом, в классической реализации применяется методика 2 – модификация таблицы импорта. Идея методики проста – если перехватить GetProcAddress, то при запросе адреса можно выдавать программе не реальные адреса интересующих ее функций, а адреса своих перехватчиков. Как и в методе 2 программа «не почувствует» разницы. При вызове GetProcAddress она получает адрес и выполняет вызов функции. У данного метода есть минус – он не позволяет перехватить статически импортируемые функции;
4. Метод, сочетающий методику 2 и 3
SpyWare, Adware, борьба с вирусами В данной методике модифицируется таблица импорта, причем в обязательном порядке перехватываются функции LoadLibrary и GetProcAddress библиотеки kernel32.dll. В этом случае при вызове статически импортируемых функций искаженные адреса берутся из таблицы импорта, при динамическом определении адреса вызывается перехваченная функция GetProcAddress, которая возвращает адреса функций-перехватчиков. В результате у программы не остается шансов узнать правильный адрес функции.
5. Модификация программного кода API функции.
SpyWare, Adware, борьба с вирусами Данные метод сложнее в реализации, чем подмена адреса. Методика состоит в том, что RootKit находит в памяти машинный код интересующих его функций API и модифицирует его. При таком методе перехвата функции уже нет надобности в модификации таблицы импорта запущенных программ и передаче программам искаженных адресов при вызове GetProcAddress. С точки зрения вызова функции все остается «как есть» за одним исключением – теперь уже по «правильному» адресу внутри «правильной» DLL находится машинный код RootKit. Чаще всего вмешательство в машинный код перехватываемых функций минимально. В начале функции размещается не более 2-3 машинных команд, передающих управление основной функции-перехватчику. Для выполнения вызова модифицированных функций RootKit должен сохранить исходный машинный код для каждой модифицированной им функции (естественно, сохраняется не весь машинный код функции, а измененные при перехвате байты). Именно такая методика перехвата реализована в широко известном HackerDefender и библиотеке AFX Rootkit www.rootkit.com
6.Модификация библиотек DLL на диске
Данная методика состоит в том, что системная библиотека модифицируется на диске. Методы модификации аналогичны описанным выше, только изменения производятся не в памяти, а на диске. Подобная методика не получила широкого распространения.
Перехват функций в режиме ядра (kernel mode)
     Для понимание типовой для методики перехвата функций в режиме ядра следует рассмотреть принципы взаимодействия библиотек пользовательского режима и ядра. Рассмотрим это взаимодействие на упрощенной схеме: SpyWare, Adware, борьба с вирусами
     Введение Основное взаимодействие с ядром производится через ntdll.dll, большинство функций которой являются переходниками, обращающимся к ядру через прерывание INT 2Eh (следует заметить, что прикладной программе ничто не мешает напрямую вызывать INT 2Eh). Дальнейшее обращение к функциям ядра основана на структуре, именуемой KeServiceDescriptorTable (или сокращенно SDT), расположенной в ntoskrnl.exe. SDT – это таблица, содержащая адреса точек входа сервисов ядра NT. Описание функций и методик перехвата можно найти в книге Свена Шрайбера «Недокументированные возможности Windows 2000», там же приведена схема взаимодействия, послужившая прототипом для приведенной здесь схемы. Упрощенно можно сказать, что для перехвата функций необходимо написать драйвер, который произведет модификацию таблицы SDT. Перед модификацией драйверу необходимо сохранить адреса перехватываемых функций и записать в таблицу SDT адреса своих обработчиков. Данный метод чем-то напоминает перехват прерываний в MSDOS или описанную выше методику 2. Этот метод часто называют перехватом Native API и естественно он работает только в NT (и соответственно W2K, XP, W2003). Следует отметить, что перехват Native API осуществляют не только руткиты – существует масса полезных программ, перехватывающих функции при помощи правки SDT – в качестве примера могут служить популярная утилита RegMon от SysInternals или программа Process Guard. Следует отметить, что описанный метод является наиболее простым, но далеко не единственным. Существует еще ряд способов, в частности создание драйвера-фильтра. Драйвер-фильтр может применяться как для решения задач мониторинга (классический пример – утилита FileMon от SysInternals), так и для активного вмешательства в работу системы. В частности, драйвер-фильтр может применяться для маскировки файлов и папок на диске. Принцип работы такого драйвера основан на манипуляциях с пакетами запроса ввода-вывода (IRP).
Методики обнаружения RootKit в системе
     Рассмотрим базовые методики поиска RootKit: Сравнение двух «снимков» системы (например, списка файлов на диске). Первый снимок делается на проверяемой системе, второй – после загрузки с CD или подключения исследуемого HDD к заведомо чистому компьютеру. Подобная методика гарантированно позволит обнаружить любой RootKit, который маскирует на диске свои файлы. Сравнение данных, возвращаемых API функциями разного уровня и (или) получаемых низкоуровневыми методами (например, прямым чтением диска и анализом файлов реестра). Данная методика не требует перезагрузки исследуемого ПК и реализована в бесплатной утилите RootkitRevealer от SysInternals (http://www.sysinternals.com). Другим примером может случить утилита KLister (www.rootkit.com) для построения списка запущенных процессов, которая состоит из драйвера и консольной программы, использующей этот драйвер; Анализ в памяти функций основных библиотек на предмет наличия изменений их машинного кода. Данный метод наиболее эффективен для борьбы с RootKit в пользовательском режиме. Подобная методика позволяет не только обнаружить перехват функций, но и восстановить нормальную работу поврежденных функций. Кроме того, сравнение «снимков» системы, полученных до и после восстановления функций API во многих случаях позволяет обнаружить маскирующиеся процессы, сервисы и драйверы. Данная методика не требует перезагрузки и один из вариантов реализован в моей утилите AVZ; Анализ и восстановление ServiceDescriptorTable. Данная методика позволяет бороться с рядом перехватчиков, работающих в режиме ядра (собственно, с перехватчиками, основанными на правке SDT). Практическая реализация – утилита SDTRestore (http://www.security.org.sg/code/sdtrestore.html). Однако восстановление SDT окажет воздействие на работу всей системы и может привести к очень неприятным последствиям (в простейшем случае – полное зависание системы с выходом на BSoD, в худшем – непредсказуемое нарушение нормальной работы приложений, перехватывающих NativeAPI для реализации своих функций).
     Заключение Описанные выше базовые методики перехвата функций поясняют основные принципы работы RootKit. Однако следует помнить, что разработчики RootKit-технологий не стоят на месте, в результате постоянно появляются новые разработки, подходы и методы. Практика показывает, что разработчики вредоносных программ (вирусов, троянских программ, шпионского ПО) все чаще начинают использовать RootKit-технологии, что существенно затрудняет обнаружение и удаление созданных ими вредоносных программ. Чаще всего применяются методики перехвата функций в режиме пользователя, но в последнее время появились весьма эффективные реализации с применением драйверов. В этом плане по моей статистике наиболее «знаменит» Backdoor.Win32.Haxdoor, который устанавливает в систему несколько драйверов, что позволяет ему достаточно эффективно маскироваться от обнаружения пользователем.
Источник информации сайт z-oleg.com



Программы шпионы.

     Введение Данная статья посвящена достаточно актуальной в настоящей момент проблеме - проблеме вредоносного программного кода. Еще несколько лет назад ситуация была достаточно простой - существовали прикладные программы (включая операционную систему) и компьютерные вирусы, т.е. программы, способные заражать другие приложения путем внедрения в них своего машинного кода. Однако в последнее время появилось вредоносных множество программ, которые нельзя считать вирусами, т.к. они не обладают способностью к размножению. Для таких программ существует множество категорий: Trojan, Backdoor, Trojan-Downloader, MalWare, SpyWare, Adware, Dialer ... Классификация зачастую достаточно спорная - производители различного антивирусного ПО относят одну и туже программу к разным категориям. Данная статья является попыткой определить некоторую классификацию данных вредоносных программ и сформулировать критерии, по которым программу можно отнести к категории SpyWare и Adware.
     Программа скрытно устанавливается на компьютер пользователя. Смысл данного пункта состоит в том, что инсталлятор обычной программы должен уведомить пользователя о факте установки программы (с возможностью отказа от установки), предложить выбрать каталог для установки и конфигурацию. Кроме того, после установки инсталлятор должен создать пункт в списке "Установка и удаление программ", вызов которого выполнит процесс деинсталляции. Шпионское программное обеспечение обычно устанавливается экзотическим способом (часто с использованием троянских модулей категории) скрытно от пользователя, при это его деинсталляция в большинстве случаев невозможна. Второй путь инсталляции SpyWare - скрытная установка в комплекте с какой-либо популярной программой;
     Программа скрытно загружается в память в процессе загрузки компьютера. Стоит отметить, что разработчики современных SpyWare начали применять Rootkit технологии для маскировки процесса в памяти и файлов на диске. Кроме того, становится популярным создание «неубиваемых» процессов – т.е. запуск двух процессов, которых перезапускают друг друга в случае остановки. Такая технология в частности применяется в SpyWare.WinAd;
     Программа выполняет некоторые операции без указания пользователя - например, принимает или передает какую-либо информацию из Интернет;
     Программа загружает и устанавливает свои обновления, дополнения, модули расширения или иное ПО без ведома и согласия пользователя. Данное свойство присуще многим шпионским программам и чрезвычайно опасно, т.к. загрузка и установка обновлений и дополнительных модулей происходит скрытно и часто ведет к нестабильной работе системы. Более того, механизмы автоматического обновления могут быть использованы злоумышленниками для внедрения на ПК пользователя троянских модулей;
     Программа модифицирует системные настройки или вмешивается в функционирование других программ без ведома пользователя. Например, шпионский модуль может изменить уровень безопасности в настройках браузера или внести изменения в настройки сети;
     Программа модифицирует информацию или информационные потоки. Типовым примером являются разные расширения для программы Outlook Express, которые при отправке письма приписывают к нему свою информацию. Второй распространенный пример - модификация загружаемых из Интернет страниц (в страницы включается рекламная информация, некоторые слова или фразы превращаются в гиперссылки)
     В данной классификации следует особо отметить тот факт, что программа категории SpyWare не позволяет удаленно управлять компьютером и не передает пароли и аналогичную им информацию своим создателям - подобные действия специфичны другой категории программ - "Trojan" и "BackDoor". Однако по многим параметрам программы категории SpyWare являются родственниками троянских программ. Рассказав о программах категории SpyWare стоит акцентировать внимание на неявном слежении за пользователем. Предположим, что у пользователя установлена безобидная программа, загружающая рекламные баннеры один раз в час. Анализируя протоколы рекламного сервера можно выяснить, как часто и как долго пользователь работает в Интернет, в какое время, через какого провайдера. Эта информация будет доступна даже при условии, что программа будет только загружать данные, не передавая никакой информации. Более того, каждая версия программы может загружать рекламу по уникальному адресу, что позволит узнать, какая именно программа загружает рекламу.
SpyWare cookies
     Практически все программы для поиска Adware/Spyware программ детектируют и удаляют так называемые «SpyWare cookies» (в некоторых случаях их называют tracking cookies). В качестве теста я проверил свой компьютер при помощи известной программы Ad-Aware SE Personal и она обнаружила и предложила удалить 164 «tracking cookies», причем большинство найденных cookies были созданные известными сайтами, в частности: rambler.ru, list.ru, hotlog.ru, downloads.ru. В результате зачастую в различных конференциях можно читать сообщения примерно такого содержания «…я лечил компьютер и нашел несколько сотен шпионов, которые пропустил мой антивирус …» - а затем анализ показывает, то речь шла о cookies. По поводу cookies можно однозначно сказать – это обычные текстовые файлы, которые не являются программами и не могут выполнять никаких шпионских или троянских действий на компьютере пользователя. Единственная «шпионская» операция, осуществимая при помощи cookies состоит в возможности сайта сохранить на компьютере пользователя некоторые текстовые данные, которые будет переданы при последующем посещении сайта, сохранившего cookie. Рейтинги, счетчики и баннерные рулетки могут использовать cookie для своеобразной «пометки» пользователя. Схема работы этой методики показана на рисунке: SpyWare, Adware, борьба с вирусами Предположим, что пользователь посещает два сайта, содержащих на своих страницах счетчик одной и той же рейтинговой системы. При посещении сайта A произойдет минимум две операции – загрузка страницы с сайта A (шаг 1) и обращение к сайту рейтинговой системы (шаг 2). В заголовке HTTP ответа рейтинговой системы содержится поле, предписывающее браузеру сохранить cookie для сайта рейтинговой системы – в результате браузер сохраняет cookie в своей базе данных. Затем пользователь посещает сайт B (шаг 3) и происходит повторное обращение к сайту рейтинговой системы (шаг 4), в ходе которого передается cookie, сохраненный на шаге 2. Получив и проанализировав cookie рейтинговая система «узнает» пользователя. Для этого, как правило, в cookie хранится присвоенный пользователю уникальный номер. В результате рейтинговая система может не просто фиксировать факт посещения сайта, но и отслеживать «траекторию» переходов пользователя по сайтам (естественно только по сайтам, страницы которой содержат счетчики этой рейтинговой системы). Кроме того, рейтинговая система может решить ряд интересных статистических задач – например, определить количество уникальных посетителей за определенный период, количество постоянных пользователей, периодичность посещения. Помимо статистических исследований идентификация пользователя при помощи cookie позволяет бороться с «накруткой» посещений или баннерных показов. Важно отметить, что при помощи cookie любой сайт может регистрировать факт повторного посещения, но не может определить никаких персональных данных пользователя (за исключением того случая, когда пользователь сам передал какие-либо данные, заполняя формы регистрации на сайте – но даже в этом случае подобные данные очень редко хранятся непосредственно в cookie – обычно подобные данные заносятся в базу данных на стороне WEB сервера). Таким образом получается, что на мой взгляд опасность, которая приписывается «шпионским» cookies существенно завышена. Internet Explorer всех версий позволяет отключить прием cookie, в версии 6.0 имеется возможность более тонкой настройки – все cookie делятся на основные (сохраняемые просматриваемой страницей) и сторонние (сохраняемые ресурсами, загружаемыми с других сайтов) и пользователю дается возможность произвести тонкую настройку.
Adware программы и модули
     Adware (синонимы AdvWare, Ad-Ware и т.п.) - это приложение, предназначенное для загрузки на ПК пользователя информации рекламного характера для последующей демонстрации этой информации пользователю. Можно выделить две категории AdWare программ: · Программы, распространяемые по Adware-лицензии. Данные программы воспроизводят рекламу в качестве неявной оплаты за их использование, при этом реклама должна воспроизводится только во время использования программы в контексте ее окон; · Независимое приложение, предназначенное для воспроизведения рекламы. Такие программы, как правило, маскируются от обнаружения и удаления пользователем и могут существенно досаждать пользователю. Рекламная информация обычно выводится в виде всплывающих окон, хотя известны и широко применяются более экзотические методики демонстрации рекламы – например, внедрение рекламной информации в рабочий стол в виде обоев или с использованием возможностей размещения WEB элементов на рабочем столе; Можно сформулировать ряд правил, которых должна придерживаться корректная программа, распространяемая по Adware-лицензии: При инсталляции на ПК программа должна предупредить пользователя о том, что является Adware приложением с разъяснением того, что конкретно понимается под термином "Adware". При этом инсталлятор должен предусматривать возможность отказа от установки приложения (а еще лучше - предлагать варианты установки - бесплатный Adware вариант или платный ShareWare вариант). Типовым примером "правильной" инсталляции является менеджер закачек FlashGet, который честно предлагает два варианта установки - Adware или ShareWare (FlashGet приведен в качестве примера не случайно - ряд анти-SpyWare программ по неизвестной причине считают его шпионским ПО и удаляют); Adware модуль должен быть или библиотекой, загружаемой Adware программой во время работы, или неразрывной частью Adware-программы. При этом загрузка Adware-модуля должна естественно происходить при запуске приложения, выгрузка и прекращение работы - при выгрузке приложения из памяти. Недопустимо внедрение Adware-модулей в другие приложения или их установка на автозапуск; Adware-модуль должен воспроизводить рекламную информацию только в контексте вызывавшего его приложения. Недопустимо создание дополнительных окон, запуск сторонних приложений, открытие неких web страниц; Adware-модуль не должен выполнять действий, присущих программам категории SpyWare; Adware-модуль должен деинсталлироваться вместе с установившим его приложением; Как легко заметить, к Adware приложению в данной классификации предъявляются серьезные требования и практически ни один Adware-модуль не удовлетворяет всем перечисленным требованиям.
TrojanDownloader - программы для несанкционированной загрузки и установки программного обеспечения.
     Программы из категории Trojan-Downloader (понятие Trojan-Downloader введено лабораторией Касперского) неоднократно упоминались, поэтому следует дать определение для данной категории программ. Trojan-Downloader - это программа (модуль, ActiveX, библиотека …), основным назначением которой является скрытная несанкционированная загрузка программного обеспечения из Интернет. Наиболее известным источником Trojan-Downloader являются хакерские сайты. Сам по себе Trojan-Downloader как правило не несет прямой угрозы для компьютера - он опасен именно тем, что производит неконтролируемую загрузку программного обеспечения. Trojan-Downloader применяются в основном для загрузки вирусов, троянских и шпионских программ. Наиболее известными по моей статистике являются Trojan-Downloader.IstBar, Trojan-Downloader.Win32.Dyfuca, Trojan-Downloader.Win32.Agent и ряд других. Trojan-Downloader.Win32.IstBar и Trojan-Downloader.Win32.Agent поставили своеобразный рекорд по количеству различных модификаций и своей вредоносности - их появление на компьютере приводит к резкому росту трафика и появлению на ПК множества посторонних программ. Все программы категории TrojanDownloader можно условно подразделить на две категории: Универсальные Trojan-Downloader - могут загружать любой программный код с любого сервера. Настройки могут храниться локально (в отдельном файле, реестре) или загружаться с определенного сайта; Специализированные - предназначены для загрузки строго определенных типов троянских или шпионских программ. Адреса и имена файлов в таком случае жестко фиксированы и хранятся в теле программы.
Dialer
     Программы категории Dialer (он-же часто называется "порнозвонилка" от названия Porn-Dialer, присвоенного им в классификации лаборатории Касперского) достаточно широко распространены и предназначены для решения ряда задач, связанных с дозвонкой до заданного сервера и установления с ним модемной связи. Применяются данные программы в основном создателями порносайтов, но страдают от них все - многие программы категории Dialer используют весьма изощренные способы установки (с использованием ActiveX, Trojan-Downloader), причем установка может быть инициирована при посещении практически любого сайта. Организацию модемного соединения с сервером владельца Dialer может производить несколькими способами: Dialer может производить набор номера и установление соединения своими средствами; Dialer может создать новое соединение удаленного доступа; Dialer может изменить существующие соединения удаленного доступа; В первых двух случаях Dialer, как правило, всячески привлекает внимание пользователя к себе и созданным им соединением - копирует себя во все доступные места (в папку Program Files, Windows, Windows\System, папку "Пуск" и т.п.), создает ярлыки, регистрирует себя в автозапуске. Часто кроме решения основной задачи программы типа Dialer выполняют задачи, свойственные программам других категорий (Adware, SpyWare, Trojan-Downloader). Некоторые Dialer устанавливают себя на автозапуск, внедряются в другие приложения - например, мне известен Dialer, регистрирующий себя как расширение языка Basic и запускающийся при открытии любого приложения Microsoft Office, использующего скрипты. Некоторые программы типа Dialer можно смело относить к троянским программам (а многие производители антивирусов считают Dialer троянской программой - на сайте производителей Norton Antivirus про Dialer говорится "троянская программа, предназначенная для …"), в классификации лаборатории Касперского есть специальная категория Trojan.Dialer. Кроме утилит дозвонки к категории Dialer часто относят специализированные утилиты для просмотра порносайтов. Ведут они себя аналогично Dialer, только вместо модемного соединения соединяются с закрытими сайтами по Интернет.
BHO - Browser Helper Object
BHO (альтернативные названия - Browser Helper Object, Browser Plugin, Browser Bar, IE Bar, OE Bar и т.п., в классификации лаборатории Касперского есть категория подкатегория Toolbar, например AdWare.Toolbar.Azesearch) - это расширение браузера или программы электронной почты, как правило выполненное в виде дополнительной панели управления. У BHO есть ряд достаточно опасных особенностей: BHO не являются процессам системы - они работают в контексте браузера и не могут быть обнаружены в диспетчере задач; BHO запускаются вместе с браузером и могут контролировать события, связанные с работой пользователя в Интернет (по сути, BHO для этого и предназначены); BHO обмениваются с сетью, используя API интеграции с браузером. Поэтому, с точки зрения большинства персональных FireWall обмен с Интернет ведет браузер. Как следствие, обнаружить такой обмен и воспрепятствовать ему очень сложно. Ситуация отягощается тем, что многие BHO, входящие в категорию "SpyWare", передают информацию после запроса пользователя - это делает практически невозможным обнаружение постороннего обмена с Интернет, т.к. он идет на фоне полезного трафика; Ошибки в работе BHO могут дестабилизировать работу браузера и приводить к трудно диагностируемым сбоям в его работе;
Hijacker
Буквальный перевод этого термина звучит как "налетчик", "грабитель", "воздушный пират". Это программа, которая выполняет на компьютере пользователя нежелательные для него действия, преследуя цели своих разработчиков. Производитель многих антивирусных средств относят программы категории Hijacker к троянским программам. Задачей программ класса Hijacker является перенастройка параметров браузера, электронной почты или других приложений без разрешения и ведома пользователя. В зарубежных источниках мне встречалось определение Hijacker - "утилита, которая изменяет настройки браузера без ведома пользователя". Наиболее часто Hijacker применяется для изменения: Стартовой страницы браузера - стартовая страница заменяется на адреса сайта создателей Hijacker; Настройки системы поиска браузера (эти настройки хранятся в реестре). В результате при нажатии кнопки "Поиск" открывается адрес, установленный программой Hijacker; Префиксов протоколов; Уровней и настроек безопасности браузера; Реакции браузера на ошибки - мне встречался Hijacker, заменяющий стандартные странички IE, описывающие ошибки типа 404 на собственные; Модификации списка адресов ("Избранное") браузера В чистом виде Hijacker встречается сравнительно редко, т.к. чаще всего по выполняемым действиям программа может быть кроме категории "Hijacker" отнесена к категориям "Trojan","Dialer" или AdWare/SpyWare.
Trojan - троянская программа
Троянская программа - это программа, которая выполняет действия, направленные против пользователя - собирает и передает владельцам конфиденциальную информацию о пользователе (эту категорию еще называют Trojan-Spy), выполняет несанкционированные или деструктивные действия. Из определения легко заметить, что троянска программа является "родственником" программ из категории SpyWare - разница как правило в том, что SpyWare не имеют выраженного деструктивного действия и не передают конфиденциальную информацию о пользователе. Однако вопрос об отнесении программы к той или иной категории достаточно спорный (часто получается, что одна антивирусная компания считает некий модуль Adware, другая - троянской программой, третья - вообще игнорирует).
Backdoor - утилита скрытного удаленного управления и администрирования
Backdoor - это программа, основным назначением которой является скрытное управление компьютером. Backdoor можно условно подразделить на следующие категории: Backdoor, построенные по технологии Client - Server. Такой Backdoor состоит как минимум из двух программ - небольшой программы, скрытно устанавливаемой на поражаемый компьютер и программы управления, устанавливаемой на компьютер злоумышленника. Иногда в комплекте идет еще и программа настройки; Backdoor, использующие для удаленного управления встроенный telnet, web или IRC сервер. Для управления таким Backdoor не требуется специальное клиентское программное обеспечение. К примеру, известны Backdoor, которые подключался к заданному IRC серверу и используют его для обмена со злоумышленником. Основное назначение Backdoor - скрытное управление компьютером. Как правило, Backdoor позволяет копировать файлы с пораженного компьютера и наоборот, передавать на пораженный компьютер файлы и программы. Кроме того, обычно Backdoor позволяет получить удаленный доступ к реестру, производить системные операции (перезагрузку ПК, создание новых сетевых ресурсов, модификацию паролей и т.п.). Backdoor по сути открывает атакующему "черный ход" на компьютер пользователя. Опасность Backdoor увеличилась в последнее время в связи с тем, что многие современные сетевые и почтовые черви или содержат в себе Backdoor-компоненту, или устанавливают ее после заражения ПК.
     Заключение. В данной статье рассмотрены основные категории вредоносных программ, не являющихся компьютерными вирусами. По статистике в настоящее время SpyWare и AdWare программы причиняют пользователям все больше неприятностей, и для борьбы с ними приходится держать внушительный арсенал специализированных программ. В следующей статье речь пойдет методиках самостоятельного поиска и удаления постороннего программного обеспечения без применения антивирусных программ.
Источник информации сайт z-oleg.com



Клавиатурные шпионы.

     Клавиатурные шпионы образуют большую категорию вредоносных программ, представлющую большую угрозу для безопасности пользователя. Как и Rootkit, о которых шла речь в предыдущей статье, клавиатурные шпионы не являются вирусами, т.к. не обладают способностью к размножению. Клавиатурные шпионы - это программа для скрытной записи информации о нажимаемых пользователем клавишах. У термина «клавиатурный шпион» есть ряд синонимов: Keyboard Logger, KeyLogger, кейлоггер; реже встречается термины "снупер", "snoop", "snooper" (от англ. snoop - буквально "человек, вечно сующий нос в чужие дела") Как правило, современные клавиатурные шпионы не просто записывает коды вводимых клавиш - он "привязывает" клавиатурный ввод к текущему окну и элементу ввода. Кроме того, многие клавиатурные шпионы отслеживают список запущенных приложений, умеют делать "снимки" экрана по заданному расписанию или событию, шпионить за содержимым буфера обмена и решать ряд задач, нацеленных на скрытное слежение за пользователем. Записываемая информация сохраняется на диске и большинство современных клавиатурных шпионов могут формировать различные отчеты, могут передавать их по электронной почте или http/ftp протоколу. Кроме того, ряд современных клавиатурных шпионов пользуются RootKit технологиями для маскировки следов своего присутствия в системе. Для системы клавиатурный шпион, как правило, безопасен. Однако он чрезвычайно опасен для пользователя – е его помощью можно перехватить пароли и прочую конфиденциальную информацию, вводимую пользователем. К сожелению, в последнее время известны сотни разнообразных келоггеров, причем многие из них не детектируются антивирусами.
     Перед описанием основных принципов работы клавиатурного шпиона необходимо рассмотреть модель аппаратного ввода системы Windows. Достаточно подробное описание этой модели можно найти в книге Д.Рихтера «Windows для профессионалов».
SpyWare, Adware, борьба с вирусами
     При возникновении неких событии ввода (нажатии клавиш, перемещении мыши) события обрабатываются соответствующим драйвером и помещается в системную очередь аппаратного ввода. В системе имеется особый поток необработанного ввода, называемый RIT (Raw Input Thread), который извлекает события из системной очереди и преобразует их в сообщения. Полученные сообщения помещаются в конец очереди виртуального ввода одного из потоков (виртуальная очередь потока называется VIQ – Virtualized Input Queue). При этом RIT сам выясняет, в очередь какого конкретно потока необходимо поместить событие. Для событий мыши поток определяется поиском окна, над которым расположен курсор мыши. Клавиатурные события отправляются только одному потоку – так называемому активному потоку (т.е. потоку, которому принадлежит окно, с которым работает пользователь). На самом деле это не совсем так - в частности, на рисунке показан поток A, не имеющий очереди виртуального ввода. В данном случае получатся, что потоки A и B совместно используют одну очередь виртуального ввода. Это достигается при помощи вызова API функции AttachThreadInput, которая позволяет одному потоку подключиться к очереди виртуального ввода другого потока. Следует отметить, что поток необработанного ввода отвечает за обработку специальных сочетаний клавиш, в частности Alt+Tab и Ctrl+Alt+Del.
Слежение за клавиатурным вводом при помощи ловушек
     Данная методика является классической для клавиатурных шпионов. Суть метода состоит в применении механизма ловушек (hook) операционной системы. Ловушки позволяют наблюдать за сообщениями, которые обрабатываются окнами других программ. Установка и удаление ловушек производится при помощи хорошо документированных функций API библиотеки user32.dll (функция SetWindowsHookEx позволяет установить ловушку, UnhookWindowsHookEx - снять ее). При установке ловушки указывается тип сообщений, для которых должен вызываться обработчик ловушки. В частности, есть два специальных типа ловушки WH_KEYBOARD и WH_MOUSE - для регистрации событий клавиатуры и мыши соответственно. Ловушка может быть установлена для заданного потока и для всех потоков системы. Ловушка для всех потоков системы очень удобна для построения клавиатурного шпиона. Код обработчика событий ловушки должен быть расположен в DLL. Это требование связано с тем, что DLL с обработчиком ловушки проецируется системой в адресное пространство всех GUI процессов. Интересной особенностью является то, что проецирование DLL происходит не в момент установки ловушки, а при получении GUI процессом первого сообщения, удовлетворяющего параметрам ловушки. На прилагаемом компакт-диске имеется демонстрационный «клавиатурный шпион», построенный на основе ловушки. Он регистрирует клавиатурный ввод во всех GUI приложениях и дублирует вводимый текст на своем окне. Данный пример можно использовать для тестирования программ, противодействующих клавиатурных шпионам. Методика ловушек достаточно проста и эффективна, но у нее есть ряд недостатков. Первым недостатком можно считать то, что DLL с ловушкой проецируется в адресное пространство всех GUI процессов, что может применяться для обнаружения клавиатурного шпиона. Кроме того, регистрация событий клавиатуры возможна только для GUI приложений, это легко проверить при помощи демонстрационной программы.
Слежение за клавиатурным вводом при помощи опроса клавиатуры
     Данная методика основана на периодическом опросе состояния клавиатуры. Для опроса состояния клавиш в системе предусмотрена специальная функция GetKeyboardState, возвращающая массив из 255 байт, в котором каждый байт содержит состояние определенной клавиши на клавиатуре. Данный метод уже не требует внедрения DLL в GUI процессы и в результате шпион менее заметен. Однако изменение статуса клавиш происходит в момент считывания потоком клавиатурных сообщений из его очереди, и в результате подобная методика работает только для слежения за GUI приложениями. От этого недостатка свободна функция GetAsyncKeyState, возвращающая состояние клавиши на момент вызова функции. На прилагаемом компакт-диске имеется демонстрационный «клавиатурный шпион», построенный на основе циклического опроса клавиатуры – приложение KD2. Недостатком клавиатурных шпионов такого типа является необходимость периодического опроса состояния клавиатуры с достаточно высокой скоростью, не менее 10-20 опросов в секунду.
Слежение за клавиатурным вводом при помощи перехвата API функций
     Данная методика не получила широкого распространения, но тем не менее она может с успехом применяться для построения клавиатурных шпионов. Методики перехвата функций API подробно рассматривались в статье, посвященной RootKit. Разница между RootKit и клавиатурным шпионов в данном случае невелика – шпион будет перехватыватьфункции с целью мониторинга, а не с целью модификации принципов работы и результатов вызова. Простейшим способом может быть перехват функций GetMessage, PeekMessage и TranslateMessage библиотеки User32, что позволит вести мониторинг всех сообщений, получаемых GUI приложениями.
Клавиатурный шпион на базе драйвера
     Данный метод еще более эффективен, чем описанные выше методы. Возможны как минимум два варианта реализации этого метода – написание и установка в систему своего драйвера клавиатуры вместо штатного или установка драйвера - фильтра. Применение драйвера - фильтра на мой взгляд является наиболее корректной методикой, хороший вариант реализации описан на сайте www.wasm.ru, другой вариант можно найти в Windows DDK (пример называется kbfiltr).
Аппаратные клавиатурные шпионы
     В ходе решения задач по защите от утечки информации часто рассматривают только различные программные средства для шпионажа за работой пользователя. Однако кроме программных возможны и аппаратные средства: Установка устройства слежения в разрыв кабеля клавиатуры (например, устройство может быть выполнено в виде переходника PS/2); Встраивание устройства слежения в клавиатуру; Считывание данных путем регистрации ПЭМИН (побочных электромагнитных излучений и наводок); Визуальное наблюдение за клавиатурой Аппаратные клавиатурные шпионы встречаются намного реже, чем программные. Однако при проверке особо ответственных компьютеров (например, применяемых для совершения банковских операций) о возможности аппаратного слежения за клавиатурным вводом не следует забывать.
Пример клавиатурного шпиона
     В настоящее время сотни клавиатурных шпионов, рассмотрим в качестве примера достаточно распространенную коммерческую программу ActualSpy www.actualspy.ru. Данная программа может регистрировать клавиатурный ввод (с регистрацией заголовка окна и имени программы), снимать скриншоты экрана по расписанию, регистрировать запуск/останов программ, следить за буфером обмена, принтером, создаваемыми пользователем файлами. Кроме того, в программе реализовано слежение за Интернет-соединениями и посещаемыми сайтами. ActualSpy выбран в качестве примера
SpyWare, Adware, борьба с вирусами
     Программа имеет простейшую маскировку от обнаружения – она не видна в стандартном списке задач Windows. Для анализа собранной информации программа формирует протоколы в формате HTML. Принцип работы программы ActualSpy основан на ловушке, регистрирующей события клавиатуры. В качестве других примеров могут выступить SpyAgent www.spytech-web.com, ActMon www.actmon.com, SpyBuddy www.actmon.com, PC Activity Monitor www.keyloggers.com, KGB Spy www.refog.ru Этот список можно продолжать очень долго, однако в большинстве случаев современные клавиатурные шпионы имеют примерно одинаковую базовую функциональность и различаются сервисными функциями и качеством маскировки в системе.
Методики поиска клавиатурных шпионов
     Поиск по сигнатурам. Данный метод не отличается от типовых методик поиска вирусов. Сигнатурный поиск позволяет однозначно идентифицировать клавиатурные шпионы, при правильном выборе сигнатур вероятность ошибки практически равна нулю. Однако сигнатурный сканер сможет обнаруживать заранее известные и описанные в его базе данных объекты;
     Эвристически алгоритмы. Как очевидно из названия, это методики поиска клавиатурного шпиона по его характерным особенностям. Эвристический поиск носит вероятностный характер. Как показала практика, этот метод наиболее эффективен для поиска клавиатурных шпионов самого распространенного типа – основанных на ловушках. Однако подобные методики дают много ложных срабатываний. Мои исследования показали, что существуют сотни безопасных программ, не являющихся клавиатурными шпионами, но устанавливающих ловушки для слежения за клавиатурным вводом и мышью. Наиболее распространенный примеры - программы Punto Switcher, словарь Lingvo, программное обеспечение от мультимедийных клавиатур и мышей;
     Мониторинг API функций, используемых клавиатурными шпионами. Данная методика основана на перехвате ряда функций, применяемых клавиатурным шпионом – в частности, функций SetWindowsHookEx, UnhookWindowsHookEx, GetAsyncKeyState, GetKeyboardState. Вызов данных функций каким либо приложением позволяет вовремя поднять тревогу, однако проблемы многочисленных ложных срабатываний будут аналогичны методу 2;
     Отслеживание используемых системой драйверов, процессов и сервисов. Это универсальная методика, применимая не только против клавиатурных шпионов. В простейшем случае можно применять программы типа Kaspersky Inspector или Adinf, которые отслеживают появление в системе новых файлов.
Программы для поиска и удаления клавиатурных шпионов
     Любой антивирусный продукт. Все антивирусы в той или иной мере могут находить клавиатурные шпионы, однако клавиатурный шпион не является вирусом и в результате пользы от антивируса мало;
     Утилиты, реализующие механизм сигнатурного поиска и эвристические механизмы поиска. Примером может служить утилита AVZ, сочетающая сигнатурный сканер и систему обнаружения клавиатурных шпионов на базе ловушек;
     Специализированные утилиты и программы, предназначенные для обнаружения клавиатурных шпионов и блокирования их работы. Подобные программы наиболее эффективны для обнаружения и блокирования клавиатурных шпионов, поскольку как правило могут блокировать практически все разновидности клавиатурных шпионов.
     Из специализированных программ интерес могут представлять коммерческие продукты PrivacyKeyboard и Anti-keylogger (http://www.bezpeka.biz/). Интерфейс программы Anti-keylogger показан на рисунке
SpyWare, Adware, борьба с вирусами
     Программа Anti-keylogger работает в фоновом режиме и производит обнаружение программ, подозреваемых в слежении за клавиатурой. В случае необходимости можно вручную разблокировать работу любой из обнаруженных программ (например, на рисунке видно, что в список «шпионов» попали MSN Messanger и программа зачачки из Интернет FlashGet). Для обнаружение клавиатурных шпионов не применяются базы сигнатур, обнаружение ведется эвристическими методами. Тестирование программы показало, что она эффективно противодействует клавиатурным шпионам, основанным на применении ловушек, циклического опроса и клавиатурного драйвера-фильтра.