Pro Вирусы — страница 19 из 27

Взломанные сайты

В последние годы значительно увеличилось количество успешных взломов различных веб-сайтов, работающих с использованием популярных систем управления контентом (CMS, Content Management Systems) с открытым исходным кодом, таких как, например, Wordpress или Joomla. CMS позволяют администраторам сайтов менять опубликованный на собственном интернет-ресурсе контент с использованием удобной административной панели, не прибегая к необходимости вручную править структуру веб-страниц или код разметки гипертекста. Во встроенном в CMS редакторе можно добавлять на страницы сайта текст, иллюстрации, таблицы, менять оформление ресурса, добавлять или удалять разделы, выполнять другие редакторские операции.

Поскольку такие системы управления контентом, как Wordpress и Joomla, установлены на сотнях тысяч сайтов в Интернете, а их исходный код общедоступен и открыт для изучения, злоумышленники зачастую отыскивают в нем уязвимости, которые впоследствии используют для незаконного взлома таких сайтов. Вот лишь некоторые пути, используемые злоумышленниками для достижения этих целей:

• использование уязвимостей в системе авторизации административного интерфейса CMS или подсистеме обработки сессий;

• SQL-инъекции (внедрение в запросы к используемой «движком» реляционной базе данных некорректно обрабатываемых данных);

• создание и распространение бесплатных плагинов и компонентов для CMS, включающих бэкдоры или намеренно оставленные уязвимости;

• создание и распространение бесплатных шаблонов дизайнерского оформления для CMS, включающих намеренно оставленные уязвимости;

• хищение логинов и паролей для доступа к сайтам по протоколу FTP с использованием троянцев-шпионов и других вредоносных программ;

• фишинг — рассылка администраторам сайтов на адреса электронной почты, полученные с помощью общедоступной системы Whois, писем якобы от имени службы техподдержки хостинг-провайдера с просьбой сменить пароль и ссылкой на поддельную страницу авторизации;

• взлом методом грубой силы (брутфорс).

Существуют и троянцы, специально разработанные для целенаправленного взлома веб-сайтов. Например, вредоносная программа Trojan.WPCracker была ориентирована на взлом систем управления конкретных сайтов путем последовательного перебора паролей, при этом список целевых ресурсов передавали ей злоумышленники с управляющего сервера.

Взломав сайт, киберпреступники обычно загружают на него шелл-скрипт, открывающий доступ к файловой системе атакованного интернет-ресурса, либо размещают в различных файлах, являющихся компонентами CMS, сценарии для перенаправления посетителей сайта на вредоносные ресурсы (элементы TDS) или для непосредственной загрузки троянцев. Отыскать такие «закладки» порой не под силу даже самим администраторам атакованного интернет-ресурса, поскольку вредоносный код обычно оказывается обфусцирован и спрятан глубоко в недрах служебных файлов CMS. Нередко преступники продают доступ к взломанным сайтам третьим лицам (как правило, другим злоумышленникам) с целью получения непосредственного дохода.

Атаки типа MITM

Атаки типа MITM (Man in the middle — «человек посередине») — это способ атак, при которых злоумышленник внедряется в канал связи между отправителем и получателем информации и может видоизменять эту информацию «на лету» непосредственно в процессе ее передачи.

Примером успешной реализации такой атаки в целях распространения вредоносного ПО можно назвать инцидент с использованием троянца OnionDuke, заражавшего выходные узлы сети TOR, в результате чего весь трафик, транслировавшийся через эти узлы, оказывался инфицированным. При попытке пользователя скачать какую-либо программу из сети TOR через скомпрометированный узел она автоматически оказывалась зараженной вирусом.

Случаи практического применения технологии MITM конкретно в целях распространения угроз достаточно редки, однако злоумышленники часто используют ее в целях сниффинга — анализа сетевого трафика для извлечения оттуда различной полезной информации, например логинов и паролей для доступа к тем или иным интернет-ресурсам.

Глава 6. Технологии заражения

О том, какие именно деструктивные функции выполняют на инфицированном компьютере различные вредоносные программы, а также о том, какой транспорт они используют для проникновения в атакуемую систему, мы побеседовали в предыдущих главах. Настало время кратко обсудить методики, используемые вирусами и троянцами для заражения ПК.

Эта глава содержит определенный объем сугубо технической информации, поэтому читатель, не желающий вникать в различные наукообразные сложности, может пропустить данный раздел.

Дроппер

Несмотря на довольно скромные размеры (средний размер вредоносной программы составляет 60–100 килобайт) ряд современных вредоносных приложений, как правило, включает в себя несколько модулей, реализующих различные функции. Один из таких модулей принято называть дроппером, он может быть реализован как в виде отдельного файла, так и в качестве составного компонента сложной угрозы.

Например, широко распространенные троянцы семейства MulDrop представляют собой троянцев-дропперов: основное (и единственное) назначение этих вредоносных программ — установка на атакуемый компьютер другого троянца, который хранится внутри контейнера Trojan.MulDrop, как одна матрешка в другой (как правило — в упакованном и зашифрованном виде). В отличие от троянцев-загрузчиков (Trojan.Download), Trojan.MulDrop не скачивает «полезную нагрузку» из Интернета, а извлекает ее «из себя».

Иными словами, дроппер — это объект, осуществляющий извлечение содержащихся в нем основных модулей вируса или троянца, их распаковку и установку в операционной системе. Основные компоненты вредоносной программы при этом могут помещаться дроппером, например, в одну из папок на диске или загружаться непосредственно в оперативную память. Основная функция дроппера — сохранить в атакуемой системе все компоненты вредоносного приложения, при необходимости зарегистрировать их в автозагрузке и передать им управление.

Инфектор

Еще один компонент вредоносных приложений называют инфектором. Инфектор — это модуль, осуществляющий заражение файловых объектов (например исполняемых файлов или динамических библиотек) либо загрузочной записи компьютера путем изменения их внутренней структуры.

Инжектор

Инжектором принято называть функциональный модуль вредоносной программы, реализующий встраивание вредоносных компонент в запущенный процесс другого приложения (инжект). После успешного осуществления инжекта вредоносный компонент вируса или троянца выполняется в контексте инфицированного процесса.

Объект для инжекта во многом определяется целью злоумышленников и функциональным назначением самой вредоносной программы. Наиболее распространенным объектом для инжектов в Windows являются запущенные в системе процессы браузеров или различные системные процессы, такие как svchost.exe или explorer.exe (проводник).

Лоадер

Лоадером называют компонент вредоносной программы, осуществляющий загрузку других модулей (например, динамических библиотек) в оперативную память компьютера и (в ряде случаев) настройку этих компонентов в памяти. Для загрузки компонент лоадер может использовать как функции API, так и различные собственные механизмы.

Процесс заражения

Соответственно, различные компоненты вредоносной программы в целях инфицирования операционной системы могут действовать совместно. В качестве примера такой функциональной интеграции можно рассмотреть механизм заражения Microsoft Windows одной из ранних версий вредоносной программы, принадлежащей к семейству Ramnit (Rmnet).

Первым на атакуемом компьютере запускается дроппер, который извлекает из своего тела, расшифровывает, а потом помещает во временную папку инфектор загрузочной записи и несколько модулей, реализованных в виде динамических библиотек. Затем дроппер запускает инфектор с помощью одной из системных функций, после чего файл инфектора удаляется.

После успешного запуска инфектор модифицирует основную загрузочную запись компьютера (MBR, Master Boot Record) с целью обеспечения запуска модулей Rmnet до старта средств антивирусной защиты, если таковые установлены на инфицированной машине. Оригинальная MBR вместе с частью вирусной загрузочной записи перемещается в конец диска.

При запуске операционной системы вредоносная программа получает управление, имеющийся в ее архитектуре инжектор встраивает модули Rmnet в один из запущенных процессов, в контексте которого они начинают выполняться. Один из модулей предназначен для саморепликации вредоносной программы, второй выполняет функции бэкдора, третий осуществляет мониторинг сетевого трафика, и, наконец, последний реализует функцию кражи паролей от различных приложений, в частности FTP-клиентов. Описанная здесь схема заражения представлена на рис. 11.

Рис. 11. Одна из реализаций схемы заражения ОС Windows


В зависимости от модификации и типа вредоносного приложения механизм заражения может значительно меняться: представленный выше весьма упрощенный алгоритм является лишь одним из множества возможных вариантов и достаточно схематичен. Современные вредоносные приложения могут использовать различные руткит-технологии, позволяющим им эффективно скрывать свое присутствие в операционной системе, а также применять всевозможные методы антиотладки.

Инфицирование файловых объектов

Современные файловые вирусы реализуют различные методы заражения файлов, иногда достаточно изощренные. В общем случае механизм заражения файловых объектов можно упрощенно представить следующим образом. Определив по тем или иным заданным вирусописателем критериям подходящий для заражения файл, вирус модифицирует его, дописывая в его структуру собственное тело (иногда — в зашифрованном виде, в этом случае при выполнении вредоносного кода задействуется специальный механизм его расшифровки). В частности, вирус может поместить свою копию в начало файла, а оригинальное содержимое перенести в его конец. Затем вирус изменяет код приложения таким образом, чтобы при его запуске первым управление получил встроенный в него вредоносный компонент (например, размещая в соответствующей секции файла команду перехода на начало вируса). После выполнения основного тела вируса управление передается обратно инфицированному приложению, и оно выполняет свои функции так, как и было изначально задумано его разработчиками. Пользователь в большинстве случаев не замечает того, что в момент старта программы произошло что-то необычное. Такой метод заражения можно условно представить в виде схемы (рис. 12).