Олег Бойцев - Защити свой компьютер на 100% от вирусов и хакеров
Возможен и другой вариант внедрения в середину файла – так называемый метод "cavity", при котором вирус записывает свое тело в неиспользуемые области файла. Такими неиспользуемыми, "пустыми" областями могут быть области заголовка EXE-файла, "пробелы" между секциями EXE-файлов либо область текстовых сообщений компилятора.
♦ В конец файлов (appending). Внедрение вируса в конец файла подразумевает, что вирусный код, оказавшись в конце файла, изменяет начало файла, так что первыми выполняются команды вируса. Это достигается путем коррекции стартового адреса программы (адрес точки входа) в заголовке файла.
EPO-вирусы – вирусы без точки входа. Особую группу вирусов представляют так называемые вирусы без «точки входа» (EPO-вирусы – Entry Point Obscuring viruses). Такие вирусы при заражении файла не изменяют адрес точки старта. Как же они работают, ведь в любом случае вирус должен получить управление? Все дело в том, что такие вирусы записывают команду перехода на свой код в середине файла. Стартуют такие вирусы не при запуске зараженного файла, а при вызове определенной процедуры, передающей управление на тело вируса. Запуск такой процедуры может произойти в редких случаях, в результате чего вирус может ждать внутри файла многие годы.
Вирусы-двойники. К данной категории относят вирусы, создающие для заражаемого файла файл-двойник. Алгоритм работы в данном случае обычно таков.
1. При заражении вирус переименовывает файл-жертву.
2. Записывает свой код на место зараженного файла под его именем.
3. Получив управление, вирус запускает оригинальный системный файл.
Скрипт-вирусы, как оно и следует из названия, написаны на различных языках сценариев, таких, например, как VBS, JS, BAT, PHP и т. д. Вирусы данного типа не являются исполняемыми файлами формата EXE, их код скорее похож на команды, выполняемые другими программами, виртуальной DOS-машиной и т. д.
Троянские кони
К данному типу относят программы, в основном специализирующиеся на воровстве паролей и другой конфиденциальной информации, удаленном управлении и т. д. Более подробно о троянских конях читайте в разд. 4.3.
Рис. 4.3. «Антивирус Касперского 7.0» распознал mac2006 (инструмент для подмены mac-адреса) как самый настоящий Hack-Tool!
Руткиты
Сам термин «rootkit» был заимствован из UNIX-среды. Понятие rootkit использовалось для описания инструментов, применяемых для взлома – получения прав root.
В контексте других операционных систем, и прежде всего Windows, rootkit следует рассматривать как программный код или технику, позволяющую скрыть самые разнообразные объекты (процессы, файлы и т. д.). В простейшем случае под rootkit можно понимать любое вредоносное ПО, использующее продвинутые техники для своего сокрытия в системе (более подробную информацию о руткитах вы можете получить в подразд. "Руткит-технологии" разд. 5.3 следующей главы).
Сетевые черви
Если средой распространения вирусов можно считать файловую систему операционной системы, то средой распространения червей является сеть. Сетевые черви для своего распространения могут использовать самые разнообразные из сетей/ сетевых технологий:
♦ Интернет и электронная почта;
♦ системы обмена мгновенными сообщениями;
♦ файлообменные сети типа P2P;
♦ IRC-сети;
♦ LAN-сети;
♦ сети мобильных устройств (телефоны, карманные компьютеры) и т. д.
Черви, так же как и вирусы, распространяются в виде исполняемых файлов, но некоторые из них ("пакетные" черви) существуют как набор пакетов.
Чтобы инфицировать удаленную систему, черви могут использовать самые разнообразные технологии, но самым популярным и по сей день остается проникновение посредством брешей в системе безопасности операционной системы и сетевых приложений.
Ярким примером червя является MS Blast, наделавший в свое время много шума.
ПРИМЕЧАНИЕ
Изначально червь писался, чтобы в n-ое время одновременно с зараженных компьютеров осуществить DoS-атаку на сервер Microsoft, однако из-за ошибки в его коде этого не произошло. Вместо скоординированной атаки на сервер зараженные машины пользователей начинали стихийно перезагружаться.
Кратко рассмотрим некоторые из разновидностей червей.
♦ E-mail-Worm – почтовые черви. Как оно и следует из названия, черви данного типа распространяются, используя возможности электронной почты. Запустившись на локальном компьютере (такое часто происходит, если пользователь безответственно относится к прикрепленным файлам, пришедшим невесть от кого и откуда), такие черви автоматически сканируют содержимое жесткого диска в поиске новых адресов электронных почтовых ящиков, чтобы отправить свои копии.
♦ IM-Worm – черви, использующие интернет-пейджеры. Данная категория червей для своего распространения активно использует список контактов интернет-пейджера.
♦ IRC-Worm – черви в IRC-каналах. Для своего распространения используют IRC-каналы.
♦ P2P-Worm – черви для файлообменных сетей. Черви данной категории распространяются по Р2Р-сети банальным копированием своих копий в общедоступные каталоги.
Некоторые другие виды вредоносного ПО
Эксплоит (Exploit), HackTool. К данной категории относят утилиты, предназначенные (особенно касается эксплоитов) для выполнения произвольного кода либо DoS (Denial of Service – отказ в обслуживании) на удаленной системе. Эксплоит, как правило, – программа на C++, PHP либо Perl-сценарий, использующий уязвимость операционной системы либо приложения, установленного на атакуемом компьютере. HackTool – более широкое понятие, подразумевающее какой-либо инструмент, используемый хакером для взлома (см. рис. 4.3).
Constructor – конструкторы вирусов и троянских коней. Программы подобного типа способны генерировать как исходные тексты вирусов, так и непосредственно сами исполняемые файлы. Как правило, инструменты подобного рода включают в себя модули самошифровки, противодействия отладчику и другие инструменты против обнаружения антивирусной программой.
FileCryptor, PolyCryptor – сокрытие от антивирусных программ. К данной категории относят утилиты, способные шифровать вирусный код, делая его неузнаваемым со стороны антивирусных программ (более подробно о сокрытии вирусного кода читайте в разд. 5.3).
Nuker – фатальные сетевые атаки. Утилиты данного типа способны организовать удаленный отказ в обслуживании системы (DoS) путем отправки на удаленный хост специальным образом сформированного запроса (серии запросов). Как пример – SmbDie, реализующий уязвимость службы NetBios.
Bad-Joke, Hoax – злые шутки, введение пользователя в заблуждение. К данной категории относят, по сути, безвредные программы, способные выводить различного рода неординарные сообщения (например, о форматировании диска, хотя никакого форматирования на самом деле не происходит).
4.2. Выбираем лучший антивирус
Совершенный антивирус – утопия или продукт ближайшего будущего?
Совершенного продукта быть не может в принципе. О каком бы антивирусном продукте ни шла речь, как бы его ни расхваливали создатели, все, что мы имеем на сегодняшний день, – это всего лишь попытка ответить на вызов вирусописателей, не упав лицом в грязь.
Ну что ж, чтобы разогреть читателя, в качестве живого примера уместно привести, пожалуй, следующий. Данный пример особенно интересен тем, что его реализация не требует знания языков программирования.
Итак, сейчас мы напишем простейший учебный вирус, который будет ни много ни мало – форматировать диск D: (рис. 4.4).
Рис. 4.4. Исходный код нашего учебного скрипт-вируса
Одна строка – и вирус готов. Удивлены? Ничего удивительного! Все гениальное просто.
ПРИМЕЧАНИЕ
Не пытайтесь запустить вирус под Windows XP: код актуален для систем, использующих autoexec.bat.
Пропускаем нашего «зверя» через сканер «Антивируса Касперского 7.0» (рис. 4.5).
Как видите, результат не заставил себя ждать. Но подождите, это не самое интересное. Сейчас мы подправим один символ (из быстрого форматирование превратится в медленное) (рис. 4.6).
Наш код преспокойно проходит проверку (рис. 4.7).
Итак, если после наших экспериментов у вас не отпало желание устанавливать какой-либо антивирус вообще, значит, вы на правильном пути. Ведь главное – понять: совершенного продукта нет, однако к этому можно приблизиться.
Рис. 4.5. Реакция «Антивируса Касперского7.0» на скрипт-вирус
Рис. 4.6. Слегка модифицируем нашего «зверя»
Рис. 4.7. Опасных объектов не обнаружено!
Так что же нам выбрать и какой антивирус все-таки лучший? Не в силах больше сопротивляться первому вопросу, попытаемся объективно ответить, определив круг наиболее достойных и выбрав из них одного лучшего.
Основанием нашей оценки послужат результаты: