Содержание статьи
Каждый из нас сталкивался со всяческими СМС-блокерами, если не у себя на компьютере, то на машинах друзей. Такие штуки трудно назвать вирусами, но они тоже доставляют немало хлопот. Сегодня мы попробуем изучить приемчики кибер-мошенников, которыми они пользуются для отъема у населения честно заработанных денег.
Закрепление в системе
Представим, что злая малварь уже проникла в систему. Наивный пользователь скачал и запустил вредоносный exe’шник, который в первую очередь должен обеспечить себе «нормальную» работу. Для этого программа должна прописать себя в автозагрузку вместе с Windows. Многие прекрасно знают, что и где отвечает за запуск программ сразу после старта нашей любимой ОС, но я все-таки еще раз перечислю возможные варианты.
Существуют три основных места для авторана: системный реестр, системные файлы со списком загружаемых программ и специальные папки автозагрузки. Начнем в обратном порядке.
Папки автозагрузки известны любому пользователю. Все их содержимое можно увидеть в главном меню Windows, физически же они располагаются в профилях пользователей, например, C:Documents and SettingsadminГлавное меню ПрограммыАвтозагрузка. Разумеется, вместо admin, можно подставить «All Users или Default User».
В папки автозагрузки можно поместить как сам исполняемый файл, например, с помощью API-функции CopyFile, так и ярлык на него.
Всяческие вредоносные штуки редко используют это место для своего запуска, поскольку даже малоопытные юзеры могут обнаружить посторонние файлы в этих директориях. Тем не менее, как дополнительная гарантия своего успешного старта это место вполне сгодиться, так что не следует обходить его стороной при поиске малвари на зараженном компьютере.
Системные файлы со списком загружаемых программ достались в наследство современным ОС Windows еще от их 9х-родственниц — 98-й и 95-й винды. Первый такой файл — это win.ini, в котором есть секция [windows], которая, в свою очередь, может содержать запись «run=запускаемаяпрограмма». Также существует файлик system.ini, в секции [driver32] которого надо проверить наличие параметра вида «названиедрайвера.
уникальноеимя=путьк драйверу». Здесь зловреды уже любят следить гораздо больше, чем в папках автозагрузки. Но лидером среди самых популярных мест для авторана является реестр Windows.
Помимо всем известных ключей HKEY_CURRENT_USER SoftwareMicrosoftWindowsCurrentVersionRun и HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRun с их братьями для одноразового запуска RunOnce, существует еще множество всяких веток реестра, из которых может стартовать программа.
Например, если ты пользуешься IE, и он вдруг начал вести себя странно (показывает голых тетенек или открывает странные сайты), то стоит заглянуть сюда:
HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects.
Еще есть
HKEY_LOCAL_MACHINESoftware MicrosoftWindows NTCurrentVersionWinlogon Userinit,
HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionRunServices,
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersion WinlogonNotify.
Эти ветки реестра позволяют запустить разнообразные исполняемые файлы (обычные exe, программы, сервисы или dll).
Кстати, последний ключик подгружает пользовательскую dll к explorer.exe, а это значит, что код зловреда будет работать даже в Safe Mode.
Следует обратить внимание и на HKEY_LOCAL_MACHINE SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution OptionsИмяпрогаммы — при запуске Имяпрогаммы будет запускаться софт, указанный в строковом параметре Debugger. Иная хитрая малварь может использовать ассоциации файлов в реестре.
То есть, при запуске, например, txt-файла, будет стартовать сначала вредоносное ПО, которое уже потом будет запускать реальную программу, работающую с этим типом файлов. Также вирус может загрузиться в память компьютера с помощью групповых политик. За это отвечает ключ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionpoliciesExplorerRun, в котором содержатся параметры с путями запускаемых программ.
Вообще, мест, откуда может стартовать проникший на компьютер СМС-блокер или другая зараза, много, но проверить их достаточно просто (если не применяются специальные техники маскировки), особенно если использовать специализированные средства, например, утилиту HiJackThis.
Оборонительные редуты
После того, как малварь прописала себя в автозагрузку, ей следует позаботиться о своей сохранности: пользователь не должен завершить процесс зловреда, удалить программу из авторана и прочее. Для этого проще всего использовать все те же политики безопасности Windows.
Надо сказать, что фрауд-антивирусы, которые больше ориентированы на запад, практически не пользуются такими трюками. То есть, если наш отечественный СМС-блокер может напрочь парализовать работу компьютера, то англоязычная малварь такого не делает. Причина, скорее всего, в том, что в тех же Штатах законодательство к такого рода шалостям относится гораздо строже. Кроме того, местные жители не платят за электронные услуги эсэмэсками, для этого у них есть банковские карты, а, как известно, Visa и MasterCard очень ревностно следят за порядком среди своих клиентов. Одна гневная жалоба от доверчивого пользователя — и биллинг, проводящий процессинг платежей за Fraud Antivirus, может навсегда лишиться лицензии.
Однако, мы отклонились от темы. Итак, что же делает типичный СМС-блокер для того, чтобы защитить себя от удаления? Первым делом, это — блокировка редактора реестра и диспетчера задач. Для этого надо подправить всего два параметра в ветке реестра HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesSystem.
Первый из них — DisableRegistryTools. Если присвоить ему значение равное 1, то regedit.exe не захочет запускаться. Еще стоит обратить внимание на параметр DisableRegedit, который может находиться помимо HKCU-секции еще и тут — HKLMSoftwareMicrosoftWindowsCurrentVersionPolicies System. Для запрета запуска «Диспетчера задач» используется параметр DisableTaskMgr в HKCUSoftwareMicrosoftWindows CurrentVersionPoliciesSystem. Разумеется, малварь может запретить запуск определенных программ. Делается это опять-таки через политики безопасности. Если ключ HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPolicies Explorer будет иметь параметр RestrictRun со значением равным единице, а также подключен RestrictRun, который содержит в себе список exe-файлов, то пользователь сможет запустить только те программы, которые находятся в этом списке.
Для черного списка следует использовать параметр и ключ DisallowRun, благодаря которым запуск определенного ПО станет невозможен. Уже этот набор ограничений позволяет малвари достаточно хорошо защитить себя от посягательств на свою жизнь. Даже если пытаться пробовать запустить нестандартные средства для мониторинга процессов и редактирования реестра, то и они могут быть заблокированы с помощью DisallowRun или RestrictRun. И это отнюдь не единственный способ помешать запуску чего-либо в инфицированной системе! Например, зловред может переассоциировать запуск программ на себя, прописав собственное тельце в параметре по умолчанию для ключа HKEY_CLASSES_ROOTexefileshellopencommand.
Или же поиграться с подключами в HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NT CurrentVersionImage File Execution Options. Но, к сожалению, вышеперечисленными методами малварь не ограничивается. Создатели своего детища могут блокировать некоторые настройки рабочего стола, настройки отображения файлов в проводнике и прочее. Но это мы рассмотрим чуть ниже, вместе с нарушением работоспособности интернета, поскольку все эти трюки служат больше для запугивания пользователя, нежели для защиты зловреда.
Воздействие на пользователя
Самая главная задача мошеннического ПО — это выманить у пользователя определенную сумму денег. Задачу эту в какой-то степени можно назвать даже творческой — надо так испугать юзера, чтобы он, не сильно сожалея о своих кровных, отправил СМС и при этом не решил самостоятельно избавится от малвари. Поэтому разработчики зловредов включают свою фантазию на полную катушку. Самый банальный и распространенный прием для влияния на пользователя — это неубиваемое окно. Его нельзя закрыть, нельзя свернуть, оно висит поверх всех остальных окон на десктопе, а в некоторых случаях оно даже монопольно владеет фокусом ввода.
Достигнуть такого эффекта совсем несложно, причем используя стандартные средства Windows. API-функция CreateWindowEx, отвечающая за создание окон, имеет множество параметров, среди которых dwExStyle и dwStyle, позволяющие программистам-мошенникам добиться нужного эффекта. Например, передав функции в качестве первого аргумента значение WS_EX_TOPMOST, мы заставим окно отображаться всегда поверх всех остальных окон, не имеющих этого атрибута, а поиграв dwStyle можно получить отсутствие всяческих контролов в заголовке окна или даже вообще избавиться от этого заголовка.
Для того чтобы окно СМС-блокера нельзя было закрыть, обычно перехватывают сообщение WM_CLOSE, из обработчика которого убирается стандартный код закрытия окна. Вообще, с помощью этих сообщений можно сделать много интересных вещей. Например, малварь может обрабатывать WM_MOUSELEAVE и, в случае, если курсор мыши покидает клиентскую часть окна, возвращать его обратно. Чем сообразительней программист, тем больше всяких трюков он может придумать.
Но одним только вездесущим окном дело обычно не ограничивается. Встречаются, например, экземпляры, которые меняют обои на рабочем столе. Обычно таким трюком пользуются антивирусы-подделки. На десктопе появляется что-то типа значка химического оружия и грозная надпись, а при клике по пустому пространству экрана открывается интернет-страница с предложением купить «полезное» ПО. Делается это довольно просто, никаких велосипедов изобретать не надо — в Windows есть забытая всеми возможность выводить на рабочий стол определенную веб-страницу — со всеми вытекающими из этого последствиями.
Мошенники могут модифицировать ярлыки на рабочем столе или в главном меню ОС. Детская шалость, когда в стандартном ярлыке к Косынке указывается путь к Саперу, может успешно применяться для запугивания пользователя. Если доверчивый юзер запускает свой любимый браузер, а вместо него появляется сообщение о том, что надо бы отправить СМС на короткий номер, то этот самый юзер начнет сильно нервничать, и велика вероятность того, что СМС все-таки уйдет по адресу. Кстати, если подправить shortcuts в папках автозагрузки, то можно довольно эффективно скрыть авторан даже от продвинутых компьютерщиков.
Используются и более изысканные способы. Например, интерфейсы WMI позволяют приложениям получать извещения о запускаемых процессах (да и вообще много всякой другой инфы). Малварь может мониторить с помощью WMI список процессов, запущенных в системе, и при запуске нового приложения выполнять определенные действия, например, закрывать вновь созданный процесс и показывать сообщение с радостным призывом заплатить и спать спокойно. Очень часто можно столкнуться с тем, что интернет-браузер отказывается отображать некоторые части всемирной паутины, например, сайты антивирусных компаний или поисковики. Несложно догадаться, что это сделано для того, чтобы жертва как можно дольше испытывала на себе действие зловреда. Сделать подобную пакость можно кучей разных способов.
Самым распространенным приемом является модификация файла hosts, который находится тут %SystemRoot%system32 driversetc. Этот файл содержит базу данных доменных имен и используется при их трансляции в сетевые адреса узлов. Проще говоря, если написать там yandex.ru и через пробел ip-адрес гугла, то мы будем попадать на гугл, вводя адрес яндекса. Но фишка с hosts настолько избита, что о нем знают даже первоклассники, а у малвари может оказаться недостаточно прав для его редактирования. Поэтому следующий по популярности прием — это использование прокси. В настройках браузера прописывается ip сервера, на котором крутится какой-нибудь Squid, который, в свою очередь, заменяет неугодные страницы чем-нибудь более полезным для мошенников.
Достучаться до IE можно через его COM-интерфейсы, а к другим браузерам нужен индивидуальный подход. Поддельные DNS-сервера тоже неплохо справляются с задачей подмены сайтов. Правда, для этого нужны не только права админа в системе, но и рабочий DNS-сервер. Утилита netsh позволяет легко и просто изменить настройки подключения к Сети, но тру-кодеры воспользуются программными методами, например, все тем же WMI. Сделать недоступными некоторые серверы в интернете можно, создав специальную запись в route table. Люди могут сделать это с помощью команды route, а программы юзают специальную API — CreateIpForwardEntry. Но в этом случае надо точно знать все ip-адреса ресурса, который нужно сделать недоступным.
Зачастую это практически невозможно (в случае с крупными сайтами типа яндекса, гугла и прочих), поэтому путем модификации роутинга зло-кодеры очень часто просто отрубают интернет пользователю, не заморачиваясь с выборочной блокировкой. С помощью hosts и прокси можно даже организовать простенький фишинг, подменяя оригинальные страницы на очень похожие. Как вариант — просто выводить большими красными буквами сообщение «Отправьте СМС». Разумеется, подменять страницы можно не только на стороне сервера, но и локально, используя всеми любимые расширения к браузерам. Например, в IE — это широко известные BHO. Незаметно установив такое расширение, можно гибко управлять содержимым отображаемой веб-страницы. Например, фрауд-антивирусы могут заменять «плохие» для сеццбя ссылки в выдаче поисковиков, так как обычно, если ввести название подобного ПО в гугле, то первый линк будет на инструкцию о том, как от этого ПО избавиться.
Заключение
В этой статье мы привели далеко не полный список трюков и хитростей, которые используют современные зловредымошенники. Кодеры, перешедшие на темную сторону, постоянно придумывают новые уловки и методы воздействия на законопослушных пользователей Сети. Но имея хотя бы небольшое представление о том, что и как делает пресловутый СМСблокер, можно уже бороться с ним. А чтобы эта борьба была как можно менее болезненной, очень советую всем помимо крутых антивирусов использовать учетную запись с урезанными правами, так как в Линуксе и МакОси вирусов нет именно потому, что там не сидят под рутом.
Борьба с антивирусами
К счастью, СМС-блокерам противостоят доблестные антивирусные компании, которые неустанно трудятся над добавлением сигнатур зловредов в свои базы. Это очень раздражает вирусописателей, ведь из-за этого они теряют свои деньги.
Поэтому некоторые экземпляры малварь-индустрии пытаются отключить или затруднить работу аверов. Мы подробно писали об этом в наших краш-тестах, поэтому — смело поднимай подшивку «Хакеров» и наслаждайся.
Вячеслав Закоржевский, Senior Malware Analyst, Heuristic detection group, Kaspersky LAB. Постоянный автор журнала «Хакер».
Семейство винлокеров или, по-другому, блокеров, развивалось очень динамично на протяжении последних полутора-двух лет. Если изначально они представляли собой отдельные попытки легкого заработка денег, то сейчас все это превратилось в промышленно налаженный бизнес. Самые первые версии блокеров были написаны крайне примитивно, обычно, на языках Visual Basic или Delphi. Восстановить работу Windows можно было при помощи несложных манипуляций или использования специальных сочетаний клавиш.
Сейчас же индустрия блокеров настолько эволюционировала, что файлы крайне редко ходят в «чистом виде» — как правило, они защищаются с помощью специальных крипторов/протекоров, которые также используются для распространения вредоносных программ. Сама «начинка», естественно, не стояла на месте — в настоящее время применяются такие методы блокировки системы, что восстановить ее работоспособность можно только используя сторонние утилиты. Также я встречал блокер, который переписывал MBR жесткого диска и при загрузке выводил типичное сообщение об оплате своих «услуг» на черном экране загрузки. Вот до чего доходят разработчики, чтобы только заполучить прибыль.