Введение
Данная статья посвящена достаточно актуальной в настоящей момент проблеме - проблеме вредоносного программного кода. Если раньше ситуация была достаточно простой - существовали прикладные программы (включая операционную систему) и вирусы, т.е. вредоносные программы, устанавливающиеся на ПК пользователя без его желания.
Однако в последнее время появилось множество программ, которые нельзя считать вирусами (т.к. они не обладают способностью к размножению), но и нельзя отнести к категории "полезных" программ, т.к. они устанавливаются на компьютер скрытным образом и выполняют некоторые задачи без ведома пользователей). В Интернет для таких программ сформировалось множество названий SpyWare, Adware, Dialer и т.п. Классификация эта достаточно спорная - производители различного антивирусного ПО относят одну и ту-же программу к разным категориям, внося некоторую путаницу. Поэтому в своей статье я хочу сделать попытку определить некоторую классификацию программ и сформулировать критерии, по которым программу можно отнести к категории SpyWare и Adware.
Spy - программы-шпионы
Программой-шпионом (альтернативные названия - Spy, SpyWare, Spy-Ware, Spy Trojan и т.п.) принято называть программное обеспечение, собирающее и передающее кому-либо информацию о пользователе без его согласия. Информация о пользователе может включать его персональные данные, конфигурацию его компьютера и операционной системы, статистику работы в сети Интернет. Шпионское ПО применяется для ряда целей, из которых основным являются маркетинговые исследования и целевая реклама. В этом случае информация о конфигурации компьютера пользователя, используемом им программном обеспечении, посещаемых сайтах, статистика запросов к поисковым машинам и статистика вводимых с клавиатуры слов позволяет очень точно определить род деятельности и круг интересов пользователей. Поэтому чаще всего можно наблюдать связку Spy - Adware, т.е. "Шпион" - "Модуль показа рекламы". Шпионская часть собирает информацию о пользователе и передает ее на сервер рекламной фирмы. Там информация анализируется и в ответ высылается рекламная информация, наиболее подходящая для данного пользователя. В лучшем случае реклама показывается в отдельных всплывающих окнах, в худшем - внедряется в загружаемые страницы и присылается по электронной почте. Однако собранная информация может использоваться не только для рекламных целей - например, получение информации о ПК пользователя может существенно упростить хакерскую атаку и взлом компьютера пользователя. А если программа периодически обновляет себя через Интернет, то это делает компьютер очень уязвимым - элементарная атака на DNS может подменить адрес источника обновления на адрес сервера хакера - такое "обновление" приведет к внедрению на ПК пользователя любого постороннего программного обеспечения.
Шпионское программное обеспечение может попасть на компьютер пользователя двумя основными путями:
В ходе посещения сайтов Интернет. Наиболее часто проникновение шпионского ПО происходит про посещении пользователем хакерских и warez сайтов, сайтов с бесплатной музыкой и порносайтов. Как правило, для установки шпионского ПО применяются ActiveX компоненты или троянские программы категории TrojanDownloader по классификации лаборатории Касперского. Многие хакерские сайты могут выдать "крек", содержащий шпионскую программу или TrojanDownloader для ее загрузки;
В результате установки бесплатных или условно-бесплатных программ. Самое неприятное состоит в том, что подобных программ существует великое множество, они распространяются через Интернет или на пиратских компакт-дисках. Классический пример - кодек DivX, содержащий утилиту для скрытной загрузки и установки Spy.Gator. Большинство программ, содержащих Spy-компоненты, не уведомляют об этом пользователя. Еще один пример - один мой знакомый нашел в Интернет бесплатную экранную заставку "Матрица", скачал ее с достаточно солидного сайта и установил - кроме заставки у меня на компьютере появилась утилита для вывода прогноз погоды, которая прописала себя в автозагрузку и при запуске полезла в Интернет. Компьютер пришлось чистить от этой программы, но мораль проста - заставка нигде при установке не сообщала о том, что установит это постороннее ПО;
Точных критериев для занесения программы в категорию "Spy" не существует, и очень часто создатели антивирусных пакетов относят программы категорий "Adware", "Hijacker" и "BHO" к категории "Spy" и наоборот.
Для определенности я ввел для себя ряд правил и условий, при соблюдении которых программу можно классифицировать как Spy (замечу, это моя классификация, но в ее основу я положил собранный мной материал и результаты анализа более 2000 вредоносных программ):
Программа скрытно устанавливается на компьютер пользователя. Смысл данного пункта состоит в том, что инсталлятор обычной программы должен уведомить пользователя о факте установки программы (с возможностью отказа от установки), предложить выбрать каталог для установки и конфигурацию. Кроме того, после установки инсталлятор должен создать пункт в списке "Установка и удаление программ", вызов которого выполнит процесс деинсталляции. Шпионское программное обеспечение обычно устанавливается экзотическим способом (часто с использованием троянских модулей категории TrojanDownloader или ActiveX компонентов в HTML страницах) скрытно от пользователя, при это его деинсталляция в большинстве случаев невозможна. Второй путь инсталляции - скрытная установка в комплекте с какой-либо популярной программой;
Программа скрытно загружается в память в процессе загрузки компьютера;
Программа выполняет некоторые операции без указания пользователя - например, принимает или передает какую-либо информацию из Интернет;
Программа загружает и устанавливает свои обновления, дополнения, модули расширения или иное ПО без ведома и согласия пользователя. Данное свойство присуще многим шпионским программам и чрезвычайно опасно, т.к. загрузка и установка происходит скрытно и часто ведет к нестабильной работе системы. Более того, механизмы автоматического обновления могут быть использованы злоумышленниками для передачи на ПК пользователя троянских модулей;
Программа модифицирует системные настройки или вмешивается в функционирование других программ без ведома пользователя. Например, шпионский модуль может изменить уровень безопасности в настройках браузера или внести изменения в настройки сети. Классическим примером является Spy.New.Net, который устанавливает на ПК пользователя модуль newdotnet2_92.dll и регистрирует его в реестре как сервис разрешения имен сети TCP/IP. Все эти операции, естественно, производятся без ведома и согласия пользователя;
Программа модифицирует информацию или информационные потоки. Типовым примером являются разные расширения для программы OutlookExpress, которые при отправке письма приписывают к нему свою информацию. Второй распространенный пример - модификация загружаемых из Интернет страниц (в страницы включается рекламная информация, некоторые слова или фразы превращаются в гиперссылки и т.п.)
В данной классификации следует особо отметить тот факт, что программа категории Spy не позволяет удаленно управлять компьютером и не передает логины / пароли и аналогичную им информацию своим создателям - подобные действия специфичны другой категории программ - "Trojan" и "BackDoor". Однако по многим параметрам программы категории Spy являются родственниками троянских программ.
Рассказав о программах категории Spy я хочу акцентировать внимание на неявном слежении за пользователем. Предположим, что у пользователя установлена безобидная программа, загружающая рекламные баннеры один раз в час. Анализируя протоколы рекламного сервера можно выяснить, как часто и как долго пользователь работает в Интернет, в какое время, через какого провайдера. Эта информация будет доступна даже при условии, что программа будет только загружать данные, не передавая никакой информации. Более того, каждая версия программы может загружать рекламу по уникальному адресу - можно узнать, какая именно версия программы у него установлена.
Adware - модули
Adware (синонимы AdvWare, Ad-Ware и т.п.) - это приложение, предназначенное для загрузки на ПК пользователя информации рекламного характера для последующей демонстрации этой информации пользователю. Соответственно термином "Adware-программа" называют программное обеспечение, которое в качестве оплаты за свое использование показывает пользователю рекламу. Соответственно "Adware-модуль" - это некая программная единица, реализующее Adware-механизмы (разрабатывается она, как правило, программистами компании, занимающейся рекламой, а не разработчиком приложения). Базовое назначение Adware - это неявная форма оплаты за использование программного обеспечения, осуществляющаяся за счет показа пользователю Adware-программы рекламной информации (соответственно рекламодатели платят за показ их рекламы рекламному агентству, рекламное агентство - разработчику Adware программы). Adware механизм приложения может быть реализован в трех основных разновидностях:
Независимое приложение. Это приложение, которое может работать независимо от установившего его программного обеспечения. Типовой пример - Spy.Gator. Как очевидно из префикса в названии приведенного в качестве примера Gator, большинство таких "приложений" по моей классификации попадает именно в категорию "Spy";
Модуль расширения для браузера. Аналогично п.п. 1, отличается только тем, что расширение браузера сложнее обнаружить (подробнее с.м. раздел BHO);
Библиотека или ActiveX компонент, загружаемый установившим его приложением и работающий в рамках его контекста и окон (или некий программный код, являющийся частью приложения). Именно эту разновидность можно отнести к категории "Adware" при соблюдении описанных ниже условий.
Для отнесения к категории "Adware" (замечу - по моей классификации) программа должна соблюдать ряд правил:
При инсталляции на ПК программа должна предупредить пользователя о том, что является Adware приложением с разъяснением того, что понимается под "Adware". При этом инсталлятор должен предусматривать возможность отказа от установки приложения (а еще лучше - предлагать варианты установки - бесплатный Adware вариант или платный ShareWare вариант). Типовым примером "правильной" программы является менеджер закачек FlashGet, который честно предлагает два варианта установки - Adware или ShareWare;
Adware модуль должен быть или библиотекой, загружаемой Adware программой, или неразрывной частью Adware-программы. При этом загрузка Adware-модуля должна естественно происходить при запуске приложения, выгрузка и прекращение работы - при выгрузке приложения из памяти;
Adware-модуль должен воспроизводить рекламную информацию только в контексте вызывавшего его приложения. Недопустимо создание дополнительных окон, запуск сторонних приложений, открытие неких web страниц;
Adware-модуль не должен выполнять действий, присущих программам категории Spy;
Adware-модуль должен деинсталлироваться вместе с установившим его приложением;
Как легко заметить, как Adware приложению в моей классификации предъявляются серьезные требования и практически ни один Adware-модуль не удовлетворяет всем перечисленным требованиям и автоматически попадает или в категорию "Spy", или в категорию "Trojan".
TrojanDownloader- программы для несанкционированной загрузки и установки программного обеспечения
Программы из категории TrojanDownloader (понятие TrojanDownloader введено лабораторией Касперского) неоднократно упоминались, поэтому следует дать определение для данной категории программ. TrojanDownloader - это программа (модуль, ActiveX, библиотека …), основным назначением которой является скрытная несанкционированная загрузка программного обеспечения из Интернет. Наиболее известным источником TrojanDownloader являются хакерские сайты. Сам по себе TrojanDownloader не несет прямой угрозы для компьютера - он опасен именно тем, что производит неконтролируемую загрузку программного обеспечения. TrojanDownloader применяются в основном для загрузки вирусов, троянских и шпионских программ. Наиболее известными (по моей статистике) являются TrojanDownloader.IstBar, TrojanDownloader.Win32.Dyfuca, TrojanDownloader.Win32.Swizzor и ряд других. TrojanDownloader.IstBar поставил своеобразный рекорд по количеству различных модификаций и своей вредоносности - его появление на компьютере приводит к резкому росту трафика и появлению на ПК множества посторонних программ. Все программы категории TrojanDownloader можно условно подразделить на две категории:
Универсальные TrojanDownloader - могут загружать любой программный код с любого сервера;
Специализированные - предназначены для загрузки строго определенных типов троянских или шпионских программ. Примером может служить знаменитый Gain_tricler, загружающий программы пакета Gator.
Dialer
Программы категории Dialer (он-же на жаргоне системщиков называется "порнозвонилка", я в шутку окрестил эту категорию "порноскоп") достаточно широко распространены и предназначены для решения ряда задач, связанных с дозвонкой до заданного сервера и установления с ним модемной связи. Применяются данные программы в основном создателями порносайтов, но страдают от них все - многие программы категории Dialer используют весьма изощренные способы установки (с использованием ActiveX, TrojanDownloader и т.п.), причем установка может быть инициирована при посещении практически любого сайта.
Организацию модемного соединения с сервером владельца Dialer может производить несколькими способами:
Dialer может производить набор номера и установление соединения своими средствами;
Dialer может создать новое соединение удаленного доступа;
Dialer может изменить существующие соединения удаленного доступа;
В первых двух случаях Dialer, как правило, всячески привлекает внимание пользователя к себе и созданным им соединением - копирует себя во все доступные места (в папку Program Files, Windows, Windows\System, папку "Пуск" и т.п.), создает ярлыки, регистрирует себя в автозапуске.
Часто кроме решения основной задачи программы типа Dialer выполняют задачи, свойственные программам других категорий (adware, Spy, TrojanDownloader). Некоторые 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) - это расширение браузера или программы электронной почты, как правило выполненное в виде дополнительной панели управления. У BHO есть ряд достаточно опасных особенностей:
BHO не являются процессам системы - они работают в контексте браузера и не могут быть обнаружены в диспетчере задач;
BHO запускаются вместе с браузером и могут контролировать события, связанные с работой пользователя в Интернет (по сути, BHO для этого и предназначены);
BHO обмениваются с сетью, используя API интеграции с браузером. Поэтому, с точки зрения персональных FireWall обмен с Интернет ведет браузер. Как следствие, обнаружить такой обмен и воспрепятствовать ему очень сложно. Ситуация отягощается тем, что многие BHO, входящие в категорию "Spy", передают информацию после запроса пользователя - это делает практически невозможным обнаружение постороннего обмена с Интернет, т.к. он идет на фоне полезного трафика;
Ошибки в работе BHO могут дестабилизировать работу браузера и приводить к трудно диагностируемым сбоям в его работе;
Hijacker
Буквальный перевод этого термина звучит как "налетчик", "грабитель", "воздушный пират". Это программа, которая выполняет на компьютере пользователя нежелательные для него действия, преследуя цели своих разработчиков. Производитель многих антивирусных средств относят программы категории Hijacker к троянским программам, по моей классификации они вписываются в категорию Spy. Задачей программ класса Hijacker является перенастройка параметров браузера, электронной почты или других приложений без разрешения и ведома пользователя. В зарубежных источниках мне встречалось определение Hijacker - "утилита, которая изменяет настройки браузера без ведома пользователя".
Наиболее часто Hijacker применяется для изменения:
Стартовой страницы браузера - стартовая страница заменяется на адреса сайта создателей Hijacker;
Настройки системы поиска браузера (эти настройки хранятся в реестре). В результате при нажатии кнопки "Поиск" открывается адрес, установленный программой Hijacker;
Уровней и настроек безопасности браузера;
Реакции браузера на ошибки - мне встречался Hijacker, заменяющий стандартные странички IE, описывающие ошибки типа 404 на собственные;
Модификации списка адресов ("Избранное") браузера
В чистом виде Hijacker встречается сравнительно редко, т.к. чаще всего по выполняемым действиям программа может быть кроме категории "Hijacker" отнесена к категориям "Trojan","Dialer" или "Spy".
Trojan - троянская программа
Троянская программа - это программа, которая выполняет действия, направленные против пользователя - собирает и передает владельцам конфиденциальную информацию о пользователе (эту категорию еще называют TrojanSpy), выполняет несанкционированные или деструктивные действия. Из определения легко заметить, что троянска программа является "родственником" программ из категории Spy (SpyWare) - разница как правило в том, что Spy не имеют выраженного деструктивного действия и не передают конфиденциальную информацию о пользователе. Однако вопрос об отнесении программы к той или иной категории достаточно спорный (часто получается, что одна антивирусная компания считает некий модуль Adware, другая - троянской программой, третья - вообще игнорирует). Я в своей классификации ввел понятие "Spy" именно потому, что в последнее время появилось множество программ, которые недотягивают по вредоносности до отнесения к категории Trojan.
Троянская программа может быть выполнена в виде отдельной самостоятельной программы, части (модуля) другой программы (или компьютерного вируса) или программной закладки. Backdoor - утилита скрытного удаленного управления и администрирования
Backdoor - это программа, основным назначением которой является скрытное управление компьютером. Backdoor можно условно подразделить на следующие категории:
Backdoor, построенные по технологии Client - Server. Такой Backdoor состоит как минимум из двух программ - небольшой программы, скрытно устанавливаемой на поражаемый компьютер и программы управления, устанавливаемой на компьютер злоумышленника. Иногда в комплекте идет еще и программа настройки
Backdoor, использующие для удаленного управления встроенный telnet, web или IRC сервер. Для управления таким Backdoor не требуется специальное клиентское программное обеспечение. К примеру, я как-то исследовал Backdoor, который подключался к заданному IRC серверу и использовал его для обмена со злоумышленником
Основное назначение Backdoor - скрытное управление компьютером. Как правило, Backdoor позволяет копировать файлы с пораженного компьютера и наоборот, передавать на пораженный компьютер файлы и программы. Кроме того, обычно Backdoor позволяет получить удаленный доступ к реестру, производить системные операции (перезагрузку ПК, создание новых сететвых ресурсов, модификацию паролей и т.п.). Backdoor по сути открывает атакующему "черный ход" на компьютер пользователя. Опасность Backdoor увеличилась в последнее время в связи с тем, что многие современные сетевые черви или содержат в себе Backdoor-компоненту, или устанавливают ее после заражения ПК. Второй особенностью многих Backdoor программ является то, что они позволяют использовать компьютер пользователя для сканирования сети, проведения сетевых атак взлома сетей - при этом попытки взлома ведутся с ничего не подозревающего компьютера пользователя.
В моей практике был случай, когда пограничный Firewall обнаружил попытку атаки на сеть ОАО Смоленскэнерго (сканирование портов, попытка передачи exploit по открытым портам). Анализ показал, что атака идет с компьютера соседней фирмы (подключенной к Интернет через того же провайдера, что и Смоленскэнерго). Проверка компьютера "хакера" показала, что на самом деле никаких атак с него пользователем не проводилось, но на компьютере была обнаружена достаточно мощная и известная Backdoor программа - именно через нее и было организовано сканирование портов. Этот пример достаточно показателен и говорит о том, что наличие на компьютере установленных злоумышленником (или вирусом) Backdoor - программ может привести к большим неприятностям, если Backdoor будет использован для атаки на другие сети или компьютеры - источником атаки естественно будет зараженный компьютер и именно с его пользователем будет в первую очередь "воевать" служба безопасности провайдера или соответвующие подразделения ФСБ.