Spyware – это термин, определяющий приложения, которые записывают информацию о поведении пользователя в сети Интернет и сообщают об этом своим создателям. Результатом их действия может стать как всплывающая реклама, так и более серьёзные нарушения в безопасности системы, включая кражу информации, запись нажатых клавиш, изменение параметров соединения с глобальной сетью, а также установку «черного хода».
автор Sachin Shetty
Обзор шпионского ПО
Spyware – это термин, определяющий приложения, которые записывают информацию о поведении пользователя в сети Интернет и сообщают об этом своим создателям. Результатом их действия может стать как всплывающая реклама, так и более серьёзные нарушения в безопасности системы, включая кражу информации, запись нажатых клавиш, изменение параметров соединения с глобальной сетью, а также установку «черного хода».
Spyware-приложения обычно попадают в систему посредством условно бесплатного ПО, основанного на показе баннеров и рекламы. Другие источники включают в себя программы для обмена сообщениями, различные Peer-to-Peer приложения, популярные download-менеджеры, online-игры, множественные порно- и хакерские сайты, и многое другое. Следует отметить, что в основном spyware-приложения направлены против браузера Microsoft Internet Explorer. Пользователи современных альтернативных web-браузеров, типа Mozilla Firefox или Apple Safari, в основном вообще не подвержены воздействию spyware.
Последние методы внедрения, используемые spyware-приложениями, не требуют никакого взаимодействия с пользователем. Известные как “drive-by downloads” (скачиваемые налету), spyware-приложения доставляются на компьютер пользователя без его ведома, либо при посещении определенной web-страницы, либо при открытии заархивированных файлов, либо при нажатии на всплывающее окошко, содержащее активный элемент типа ActiveX, Java Applet и т.п. Spyware-модули могут также содержатся в графических файлах, а иногда даже в драйверах для нового оборудования.
Методы шпионажа
В зависимости от собираемой информации, spyware-приложения могут функционировать по-разному. Одни собирают информацию о привычках пользователя в сети Интернет для маркетинговых целей, в то время как другие более коварные. В любом случае spyware-приложение старается идентифицировать пересылаемую по сети информацию, используя уникальный идентификатор, например файл cookie, расположенный на компьютере пользователя, или глобальный уникальный идентификатор (GUID) (http://www.auditmypc.com/acronym/GUID.asp). Затем шпион посылает логи удаленному пользователю или на сервер, собирающий информацию. Эта информация обычно включает в себя имя хоста, ip-адрес и GUID, а также логины, пароли и другие важные данные.
Типы клавиатурных шпионов
Как уже упоминалось, клавиатурные шпионы – это приложения, следящие за нажатиями на клавиши клавиатуры и отсылающие эту информацию злонамеренному пользователю. Это может осуществляться по почте или отправкой прямо на сервер, расположенный где-либо в глобальной сети. Эта информация может быть затем использована для сбора почтовых или других реквизитов у ничего не подозревающих пользователей, а может даже и для получения исходных текстов программ у производителей ПО.
В то время как клавиатурные шпионы существует довольно длительное время, рост их количества в последнее время требует нового внимания. В частности это связано с легкостью, с которой компьютер может быть заражен – пользователю нужно просто посетить определенную web-страницу.
Клавиатурные шпионы разделяют на три типа:
Это миниатюрные встроенные устройства, расположенные между клавиатурой и компьютером. Из-за их маленьких размеров они часто остаются незамеченными длительное время, однако они требуют физического доступа к оборудованию. Эти устройства могут записывать сотни символов, введенных с клавиатуры, включая почтовые и банковские реквизиты.
Этот тип использует функцию Windows API SetWindowsHookEx(), которая следит за сообщениями о нажатиях клавиш клавиатуры. Обычно spyware-приложение состоит из exe-файла, инициирующего функцию перехвата, и dll-файла, управляющего функциями записи информации. Приложение, вызывающее SetWindowsHookEx(), может перехватить даже самозаполняющиеся пароли.
Этот тип клавиатурного шпиона расположен на уровне ядра и получает информацию прямо от вводного устройства (обычно клавиатуры). Он заменяет основное программное обеспечение, обрабатывающее нажатия клавиш. Его можно запрограммировать быть невидимым, используя преимущество выполнения при загрузке системы, до начала выполнения приложений уровня пользователя. Так как программа запускается на уровне ядра, она не может перехватить самозаполняющиеся пароли, потому что эта информация передается на уровне приложений.
Анализ клавиатурного шпиона
Существует большое количество клавиатурных шпионов, включая The Blazing Tools Perfect Keylogger (http://www.blazingtools.com/bpk.html), Spector (http://www.spector.com), Invisible Keylogger Stealth (http://www.amecisco.com/iks2000.htm) и Keysnatch (http://www.fileheaven.com/Keysnatch/download/2975.htm). Большинство из них схожи по своей функциональности и возможностям. Поэтому в наших примерах мы будем рассматривать клавиатурный шпион от Blazing Tools.
Мы решили анализировать The Blazing Tools Perfect Keylogger, т.к. его находят в множестве троянских коней. Это хороший пример клавиатурного шпиона с перехватывающим механизмом. Хотя продукция Blazing Tools направлена на IT-администраторов и родителей, присутствие их продукта во многих троянских конях показывает возможность использования легального ПО в злонамеренных целях. Вот основные возможности Perfect Keylogger’a, привлекающие злонамеренных пользователей:
Скрытый режим.
В этом режиме в панели задач не присутствует иконка Perfect Keylogger’a и фактически клавиатурный шпион спрятан.
Удаленная установка.
У шпиона есть возможность объединения с другими программами и отправки по почте для установки на удаленном компьютере в скрытом режиме. Он затем будет посылать введенные с клавиатуры символы, снимки экрана и список посещенных сайтов на почту удаленного пользователя или по FTP.
Разумное переименование.
Эта возможность позволяет переименовать все исполняемые файлы и записи реестра клавиатурного шпиона.
Мы установили версию этого клавиатурного шпиона на тестовом компьютере. С помощью программы типа SNAPPER (http://www.users.globalnet.co.uk/~ashwobla/snapper/) можно увидеть изменения в файловой системе после установки Perfect Keylogger’a, как показано на Рис. 1:
Рис. 1 Изменения файловой системы после установки Perfect Keylogger.
С помощью бесплатной anti-spyware утилиты вроде Microsoft Antispyware (http://www.microsoft.com/athome/security/spyware/software/default.mspx), можно просмотреть все реестровые ключи, а также EXE и DLL-файлы, используемые клавиатурным шпионом (Рис. 2):
Рис. 2 Ключи реестра, exe и dll-файлы клавиатурного шпиона.
Клавиатурный шпион выполняется как фоновый процесс, который можно увидеть с помощью инструмента типа SysInternals’ Process Explorer (http://www.sysinternals.com/ntw2k/freeware/procexp.shtml), как показано на Рис. 3:
Рис. 3 Шпионский фоновый процесс.
Этот же клавиатурный шпион мы установили на другом тестовом компьютере, объединив его с другой программой, и настроили его отсылать введенные с клавиатуры символы по почте на тестовый почтовый ящик. Иронично, но шпион был объединен с бесплатной и эффективной программой Spybot Search & Destroy (http://security.kolla.de/), предназначенной для отлова шпионского ПО. Это в лишний раз доказывает возможность использования легального ПО для распространения spyware-приложений.
Информация, посланная по почте, была затем перехвачена анализатором сетевого трафика. Для простоты примера мы использовали Ethereal (Рис. 4 и Рис. 5):
Рис. 4 Ethereal перехватывает исходящую почту от клавиатурного шпиона.
Рис. 5 Перехваченный TCP-поток.
Так как содержимое почты закодировано с помощью base64, конечный результат получается после расшифровки сообщения base64-декодером. После расшифровки выделяем важную информацию:
<H1> Tuesday, 28 December</H1> <H2>Iexplore.exe, 12:11 AM</H2> <H3>Paladion Networks: The Internet Security Architects - Microsoft Internet Explorer</H3> <P>sachin.shetty<BR>sachin123<BR> [PASSWORD CAPTURED: sachin123]</P> </BODY> </HTML>
Отчетливо видно, что имя пользователя (sachin.shetty) и пароль (sachin123) были перехвачены и записаны. Подобным образом клавиатурный шпион способен перехватить любые виды паролей, включая пароли для прокси-серверов, электронной почты и денежных систем. Он также может перехватить исходный код программы, набранный разработчиком ПО, текст почтового сообщения и названия сайтов, введенных пользователем в браузер.
Обнаружение и удаление
Spyware-приложение существенно отличается от вируса или червя своим поведением и работой, поэтому многие антивирусы расценивают его как обычную программу. Факт, что вирусные подписи отличаются от spyware-подписей. Брандмауэры также бессильны перед spyware-приложениями, т.к. они либо связаны с другими программами, либо спрятаны в графическом файле, либо осуществляют обычный web-трафик на 80 порту.
Поэтому, первым делом следует убедиться в том, что операционная система имеет все необходимые обновления. Лучшим способом предотвратить заражение, помимо смены операционной системы на более безопасную (например, Mac OS X), будет обучение пользователей не нажимать на все, что им попадется в сети, и устанавливать только самое необходимое ПО. Научить их избегать бесплатные приложения и всплывающие окна. Также следует убедиться в правильной, безопасной настройке браузера и иметь хотя бы один инструмент обнаружения и удаления spyware. Microsoft Antispyware, Ad-Aware (http://www.lavasoftusa.com/software/), Pest Patrol (http://www.pestpatrol.com/Products/PestPatrolHE/) и Spy Sweeper (http://www.webroot.com/) – вот примеры инструментов, которые помогут вам обнаружить и удалить spyware-приложения.
Нужно отметить, что в основном проблема spyware связана с браузером Microsoft Internet Explorer. Использование более современных и функциональных браузеров, таких как Mozilla Firefox, фактически может избавить вас от этой проблемы. Однако остается факт того, что некоторые web-сайты были написаны для использования браузером Internet Explorer, и смена браузера может не удовлетворить потребности пользователя.
Предотвращение записи нажатых клавиш
Так как эта статья о клавиатурных шпионах, было бы неплохо уделить внимание предотвращению перехвата введенной с клавиатуры информации. Клавиатурные шпионы, как аппаратные, так и программные, созданы для перехвата символов, которые пользователь вводит с клавиатуры. На уровне web-приложений хорошим способом предотвращения перехвата является использование виртуальной клавиатуры для ввода имени пользователя и пароля. Виртуальная клавиатура представляет собой графическое изображение клавиатуры, информацию с которой пользователь вводит, щелкая мышью по нужным символам. По понятным причинам такое решение не удовлетворит всех пользователей. Однако, этот метод все равно можно использовать при вводе важной информации или при работе с определенными приложениями. Отметим, что даже используя виртуальную клавиатуру, вам не гарантируется полная безопасность, т.к. некоторые клавиатурные шпионы делают снимки с экрана при каждом нажатии на кнопку мыши. Чтобы избежать этого, некоторые виртуальные клавиатуры способны вводить символ при наведении на него курсора мыши и задержании на определенное время. Таким образом пользователь может ввести информацию, не нажимая кнопку мыши. Пример виртуальной клавиатуры показан Рис. 6:
Рис. 6 Виртуальная клавиатура.
Еще одним способом избежать перехвата является запрос программы ввести символы пароля случайным образом. Например, программа может попросить пользователя ввести 1й, 3й и 5й символы, а затем четные символы. Однако последовательность ввода должна меняться каждый раз, иначе тот, кто постоянно следит за вводимой информацией, может воссоздать исходный пароль, к тому же не все приложения поддерживают этот метод. Недостаток этого метода в том, что клавиатурный шпион записывает все символы, и злонамеренный пользователь может получить пароль, подбирая комбинации символов.
Противодействие клавиатурным шпионам
Существуют два типа приложений, противодействующих клавиатурным шпионам:
Это приложения, определяющие клавиатурный шпион по файлам, которые он устанавливает, и записям, которые он вносит в реестр. В то время как они хорошо борются против известных шпионов, они бессильны против программ, не внесенных в их базы данных.
Процесс перехвата (фильтрации) сообщений в Windows использует функцию SetWindowsHookEx(), ту же самую, что используют клавиатурные шпионы. Этот процесс используется для наблюдения за определенными событиями, но приложения противодействующие перехвату запрещают передачу управления от одной функции другой. Результатом становится отсутствие информации в логах клавиатурного шпиона. Хотя этот метод противодействия эффективнее первого, отметим, что он не способен бороться против ядерных/драйверных клавиатурных шпионов.
Заключение
В связи с возросшим в последние годы числом spyware-приложений, наблюдался рост количества web-сайтов и злонамеренных пользователей, извлекающих выгоду установкой клавиатурных шпионов и кражей личной информации.
Нужно знать о подобной опасности и уметь определять её. Первым шагом в борьбе с spyware-приложениями будет использование альтернативного браузера, например FireFox, Safari, Opera и др. Если это по каким-либо причинам нельзя осуществить, то следует предпринять меры по постоянной профилактике вашей системы, по обнаружению и удалению клавиатурных шпионов.
Храним важное в надежном месте