Pro Вирусы - Валентин Холмогоров
Шрифт:
Интервал:
Закладка:
Второй метод носит наименование code injection и заключается в том, что злоумышленник непосредственно в памяти процесса заменяет первые байты кода самой функции, вставляя туда инструкцию безусловного перехода на собственную, вредоносную функцию, после выполнения которой управление (в случае необходимости) возвращается обратно оригинальной функции. Этот метод чуть более сложен в реализации и потому встречается на практике реже.
Так, некоторые банковские троянцы при запуске снимают хуки с ряда функций системных библиотек с целью обхода различных инструментальных средств, позволяющих исследовать вредоносную программу — таким образом реализуется механизм антиотладки. Установка перехватов вызовов функций широко используется и в целях непосредственного выполнения приложением деструктивных действий.
Например, встроившись в процесс Проводника, некоторые троянцы могут перехватывать вызов функции ZwQueryDirectoryFile с целью сокрытия собственных файлов на диске инфицированного компьютера — при обращении к такому файлу будет автоматически установлен код ошибки STATUS_NO_SUCH_FILE. Нередко установка хуков на определенные функции применяется троянцами-шпионами для «просеивания» сетевого трафика (сниффинга) в поисках логинов и паролей.
Существует огромное количество практических задач, которые могут быть реализованы с использованием установки тех или иных хуков. Фактически перехват вызовов функций открывает перед злоумышленниками почти полный контроль над приложением. С помощью хуков, например, можно отслеживать действия пользователя (движения курсора и нажатия кнопок мыши), предотвращать создание или закрытие окон, выгрузку компонентов приложения, перехватывать сообщения от других процессов, контролировать работу приложения с файловыми объектами и т. д.
Например, если злоумышленник хочет, чтобы другая программа не завершила используемый им инфицированный процесс, он может установить хуки на функции открытия и завершения процессов (OpenProcess, TerminateProcess), и в момент вызова этих функций другими процессами осуществлять проверку, не пытаются ли они завершить процесс его вредоносного приложения.
С этой точки зрения горизонты применения технологии перехвата вызовов функций ограничены, по большому счету, только набором самих функций, естественными рамками архитектуры операционной системы и фантазией злоумышленника.
Глава 7. Кто пишет и распространяет вирусы?
Современный мир компьютерной преступности представляет собой огромное число различных представителей пестрого племени злоумышленников. Времена энтузиастов-одиночек давным-давно канули в прошлое: в наши дни разработкой и распространением вредоносных программ занимаются целые группы сетевых злодеев, хорошо структурированные и напоминающие по своей иерархии настоящие мафиозные кланы, в которых каждому участнику отведена строго определенная роль.
По долгу службы мне приходится проводить довольно много времени на различных полуподпольных интернет-форумах, в том числе в «глубоком Интернете», где собираются многочисленные представители компьютерного андеграунда: вирусописатели, хакеры, кардеры, спамеры и прочая творческая интеллигенция эпохи высоких технологий. Коллектив там подбирается, как правило, весьма разношерстный, но достаточно интересный. Да и деньги в этом криминальном бизнесе крутятся немаленькие, по крайней мере, тема из разряда «куда вложить лишние 100 000 долларов» не является на подобных сайтах чем-то особенным. Чем же отличаются друг от друга различные представители «темной стороны» IT-технологий? Каковы источники дохода современных киберкриминальных деятелей? Давайте попробуем обобщить эти сведения в рамках настоящей главы.
Кто такие хакеры?
Всякий раз, когда в Интернете или традиционных СМИ я вижу новостные заголовки из разряда «Хакеры организовали очередную вирусную атаку» или «База данных интернет-магазина была похищена хакерами», мне нестерпимо хочется отыскать написавшего это журналиста и стукнуть его по голове чем-нибудь тяжелым. Когда-то, работая редактором компьютерного журнала, я безжалостно вымарывал подобные строки из поступавших в издательство материалов. «Почему ты с таким упорством защищаешь хакеров?» — недоумевали коллеги. «Потому что они ни в чем не виноваты», — всякий раз отвечал я.
Истинное происхождение термина «хакер» сейчас, наверное, установить уже невозможно: предполагается, что оно зародилось в кампусах и аудиториях Массачусетского Технологического университета еще в 60-х годах прошлого столетия. Бытует мнение, что словечко попало в обиход компьютерщиков из жаргона хиппи, где глагол «to hack» означал отнюдь не «взламывать», как это считается сейчас, а «соображать», «врубаться». Собственно, в 70-х «хакерами» как раз и называли тех, кто «врубается» в принципы работы компьютеров, глубоко понимает происходящие в них процессы — то есть высококвалифицированных IT-специалистов, программистов, разработчиков. Хакеры — это прежде всего исследователи, настоящие ученые из мира высоких технологий, те самые косматые парни в очках, сквозь толстые стекла которых можно поджигать муравьев. Настоящие хакеры никогда не взламывали чужие приложения или серверы ради наживы, и уж тем более не совершали преступлений — разве что порой использовали свои знания для организации безобидных розыгрышей. Говорят, один предприимчивый парень, сконструировав «bluebox» — устройство, позволявшее «обманывать» аппаратуру телефонных сетей — однажды сумел дозвониться самому Папе Римскому. Порой хакеры использовали свои умения в личных целях, но все равно старались не наносить компьютерным системам и их пользователям серьезного вреда. По большому счету, хакерами можно назвать Стива Возняка и Билла Гейтса, Линуса Торвальдса и Ричарда Столлмана. Даже создатель первой в истории человечества электронно-вычислительной машины Конрад Цузе был своего рода хакером, хотя в его времена такого понятия не существовало вовсе.
В мире существует множество IT-специалистов, которых можно назвать настоящими профессионалами своего дела. Это системные администраторы, поддерживающие целые кластеры серверов, это программисты, пишущие сложный код, это эксперты по информационной безопасности, архитекторы операционных систем, и, конечно, вирусные аналитики, исследующие опасные угрозы. И все они — немножко хакеры. Вот почему я отношусь к людям, которые заслужили право именоваться именно так, с большим и искренним уважением, ведь хакер — это звучит гордо.
Категории компьютерных злоумышленников
Для парней, взламывающих программы или удаленные серверы с целью заработка, а также разрабатывающих различные средства обхода систем лицензионной защиты, всегда существовало отдельное название — крэкеры, происходящее от английского глагола to crack, «взламывать» (как печенье, только сетевые крэкеры совершенно невкусные). Специалистов по взлому телефонных сетей принято называть фрикерами. Тех, кто использует в незаконных целях банковские карты и системы электронных платежей — кардерами. Отдельную категорию компьютерного андеграунда составляют вирусописатели, создающие и распространяющие вредоносное ПО. В эту разношерстную компанию также входят многочисленные кланы, имеющие довольно-таки узкую специализацию: тех, кто пишет код, нередко называют вирмейкерами, так называемые крипторы упаковывают и шифруют вредоносные приложения, отдельные «специалисты» занимаются раздачей вирусов и троянцев населению, а ботоводы реализуют на «черном рынке» различные «услуги» с помощью принадлежащих им ботнетов, например рассылку спама или DDoS-атаки.
Существуют интернет-мошенники, выманивающие у доверчивых жертв деньги при помощи специально созданных сайтов или с использованием методов социальной инженерии. Такую деятельность нередко называют фродом от английского термина fraud — «мошенничество», а самих мошенников зовут фродерами (нет, знаменитый хоббит из «Властелина Колец» тут совершенно ни при чем). Жуликов, использующих личную информацию потенциальной жертвы в целях обмана или вымогательства именуют скамерами — нередко они паразитируют на сайтах знакомств и промышляют в социальных сетях. Кто такие спамеры, знает, наверное, каждый. Нередко злоумышленники используют незаконные методы для несанкционированного доступа к компьютерным системам. Но таких людей все-таки правильнее именовать «киберпреступниками», считать их хакерами в классическом понимании этого слова — все равно что называть системный блок ПК «процессором».
Ну, а расхожее слово «хакер», некогда обозначавшее просто высококлассного компьютерного специалиста, оказалось затерто до дыр не разбирающимися в вопросе журналистами, которые низвели IT-профессионалов до уровня компьютерных преступников и киберзлодеев. Масла в огонь подлили многочисленные онлайновые издания, благодаря стараниям которых ныне хакером себя мнит любой школьник, купивший на «Горбушке» диск из серии «1000 программ для взлома Интернета».