Сегодня общие годовые потери всех коммерческих организаций от действий вирусов могут сравниться с бюджетом небольшой страны, и эта сумма каждый год удваивается. Заявления некоторых специалистов по безопасности свидетельствуют о серьезности проблемы. По сведениям главы технологического департамента компании MessgeLabs (http://www.messagelabs.com/ (http://www.messagelabs.com/)) Алекса Шипа, в 1999 году фиксировалось в среднем по одному новому вирусу в час, в 2000 году эта цифра составляла уже по одной программе каждые три минуты, а в 2004 году это время сократилось до нескольких секунд. По данным СанктПетербургской антивирусной лаборатории И. Данилова (ООО «СалД»), только за март 2007 года в антивирусную базу добавлено более 7 тыс. записей.
Игра Darwin продолжается…
1.2. Что такое вирус
Как бы странно это ни звучало, компьютерный вирус – программа и, как правило, небольшая по размеру. Все дело в назначении и способе распространения. Обычная программа выполняет полезную работу, стараясь не нарушить функционирование операционной системы. Чаще всего пользователь устанавливает ее самостоятельно. В случае с вирусом все наоборот. Задача, которую ставит его создатель, состоит в том, чтобы нарушить работоспособность компьютера, удалить, повредить, а иногда и зашифровать важную информацию с целью получения выкупа. Вирусы распространяются между компьютерами по сети, замедляя их работу, перегружая каналы и блокируя работу сервисов.
Внимание!
Главная особенность любого вируса – умение самопроизвольно размножаться и распространяться без участия пользователя.
Размножение вируса происходит за счет того, что он «дописывает» собственный код к другим файлам либо по сети передает свое тело другому компьютеру.
Главная задача вируса – заразить максимальное количество компьютеров. Сегодня написать вирус может любой, было бы желание и наличие специальных конструкторов, не требующих особых знаний, в том числе и по программированию. Однако долго такой вирус не протянет (хотя бывают и исключения: вспомним AnnaKournikova). Реализациям алгоритмов выживания и заражения посвящены целые журналы, причем некоторые подходы вызывают восхищение.
Для маскировки вирус может заражать другие программы и наносить вред компьютеру не всегда, а только при определенных условиях. Он сканирует диск в поисках исполняемых файлов (обычно такая чрезмерная активность выдает присутствие вируса) либо, находясь в оперативной памяти, отслеживает обращения к таким файлам. Выполнив нужные действия, вирус передает управление программе, в теле которой находится, и она начинает работать как обычно.
Вирус старается заразить максимальное количество файлов, отдавая предпочтение сменным носителям и сетевым ресурсам. Почему? А все потому, что ему нужно выжить: ведь всегда есть вероятность, что в сетевую папку зайдет пользователь с другого компьютера. Именно поэтому, попав на компьютер, многие вирусы не сразу занимались разрушением (зачем же уничтожать себя, любимого?), а прежде всего устанавливали счетчик успешно зараженных файлов. Пока в компьютере было заражено относительно мало программ, наличие вируса могло оставаться незамеченным. Система работала быстро, на экране не появлялось никаких сообщений, и пользователь редко замечал что-то необычное. Однако когда показатель на счетчике вируса достигал нужного значения, вредитель начинал действовать.
В начальный период существования вредоносных программ были популярны вирусы-шутки, которые мешали работе пользователей. Деструктивные особи практически не встречались. Например, такие программы просили дополнительной памяти («пирожка» и т. п.), и экран блокировался, пока пользователь не вводил с клавиатуры нужное слово (иногда его нужно было угадать). Лично я сталкивался с вирусом, который при обнулении счетчика не давал запустить приложение Microsoft Word с 18:00 до 09:00, мотивируя это тем, что работать нужно в рабочее время. Были и курьезы. Например, вирус, который выводил на экран сообщение вроде: «Нажмите одновременно L + A + M + E + R + F1 + Alt». Пользователь нажимал, после чего появлялось сообщение о том, что таблица разделов стерта с жесткого диска и загружена в оперативную память и если пользователь отпустит хотя бы одну клавишу, то со своей информацией он может проститься, а если просидит так ровно час, то все будет в порядке. Через час оказывалось, что это была шутка. Ничего себе шуточки…
Массовое распространение персональных компьютеров привело к появлению людей, которых интересовал не сам процесс создания вируса, а результат, наносимый вредоносной программой. Изменились и шутки: вирусы начали реально форматировать диски, стирать или кодировать важную информацию. Некоторые приложения использовали недостатки оборудования и портили его, например выстраивали лучи монитора в одну точку, прожигая его (надежность устройств в то время оставляла желать лучшего), или ломали жесткие диски, гоняя считывающую головку по определенному алгоритму.
На сегодня в мире вирусов наметилась явная коммерциализация: данные в большинстве случаев не уничтожают, а пытаются украсть. Например, популярность онлайн-игр привела к появлению вирусов, специализирующихся на краже паролей к учетным записям игроков, так как виртуальные ценности, заработанные в игре, можно продать за реальные деньги.
1.3. Разновидности компьютерных вирусов
Пришло время ознакомиться c особенностями работы некоторых вирусов – хотя бы для того, чтобы, узнав о начале очередной эпидемии, не спешить отключать кабель, ведущий к модему.
Точную классификацию вирусов и других вредоносных программ до сих пор никто не придумал. Вирус часто нельзя отнести ни к одной из категорий. Кроме этого, антивирусные компании вводят свою терминологию, по-разному обозначая новый вирус. Однако по некоторым общим признакам вредоносные программы можно разделить на группы.
По среде обитания. Первая классификация относится к среде, в которой «живет» вирус.
• Первые вирусы, которые были популярны до массового распространения Интернета, – файловые. Их еще называют традиционными. Сегодня известны программы, заражающие все типы исполняемых файлов в любой операционной системе. Например, в Windows опасности подвергаются в первую очередь исполняемые файлы с расширениями EXE, COM и MSI, драйверы (SYS), командные файлы (BAT) и динамические библиотеки (DLL). C механизмом заражения такими вирусами и их распространением вы познакомились в предыдущем разделе.
• Загрузочные вирусы также появились одними из первых. Как видно из названия, такие вирусы заражают не файлы, а загрузочные секторы дискет и жестких дисков.
• С массовым развитием Интернета появились сетевые вирусы. По данным антивирусных компаний, именно различные виды сетевых червей представляют сегодня основную угрозу. Главная их особенность – работа с различными сетевыми протоколами и использование возможностей глобальных и локальных сетей, позволяющих им передавать свой код на удаленные системы.
Классическим примером сетевого вируса является червь Морриса, рассмотренный в разделе 1.1.
Наибольшую распространенность получили сетевые черви, использующие электронную почту, интернет-пейджеры, локальные и файлообменные (P2P) сети, IRC-сети и сети обмена данными между мобильными устройствами. Некоторые сетевые черви, например W32.Slammer или Sapphire, использующий уязвимость Microsoft SQL Server 2000, могут не оставлять на жестком диске никаких следов, хранясь только в оперативной памяти. Благодаря способности активно распространяться и работать на зараженных компьютерах без использования файлов подобные вирусы наиболее опасны. Они существуют исключительно в системной памяти, а на другие компьютеры передаются в виде пакетов данных. Первое время антивирусное программное обеспечение не было способно бороться с такими бестелесными вредителями.
Внимание!
Сетевые и почтовые вирусы наиболее опасны, так как способны за короткое время заразить большое количество систем.
• Сегодня наиболее популярны сетевые вирусы, распространяющиеся посредством электронной почты, поэтому их часто выделяют в отдельную категорию – почтовые черви. Так, три из четырех крупнейших эпидемий 2005 года были вызваны именно почтовыми червями. Такие вирусы чаще всего распространяются через электронную почту: они рассылают по адресам, имеющимся в адресной книге, письма с прикреплениями в виде самих себя. Для передачи могут использоваться средства операционной системы или небольшой встроенный почтовый сервер (функция такого сервера – отправка писем).
Например, червь Melissa отсылал себя сразу после активизации только по первым 50 адресам, а I Love You использовал все записанные в адресной книге почтовые адреса, что обеспечило ему высокую скорость распространения. Другой тип червя – сценарий KakWorm, который после прочтения зараженного письма не рассылался, а прикреплялся к каждому посланию, отправляемому пользователем. При этом на новом компьютере вредоносное приложение либо выполнялось автоматически, используя уязвимости в почтовой программе, либо различными способами подталкивало пользователя к своему запуску. Зараженное письмо может прийти со знакомого адреса, и пользователь, скорее всего, откроет его. Могут применяться различные ухищрения. Например, вирус AnnaKournikova приглашал посмотреть фотографии известной теннисистки Анны Курниковой: любопытство чаще всего брало верх над осторожностью, и пользователи запускали прикрепленный к письму исполняемый файл.
Совет
Будьте осторожны с письмами, полученными от неизвестных людей. Открывайте файлы, прикрепленные к таким письмам, только после проверки антивирусом.
• Очень часто встречаются вирусы смешанного типа – почтово-сетевые. В таком случае их обычно называют просто сетевыми. Яркий пример – сетевой червь Mytob.c, который в марте 2005 года пересылался в виде вложений в электронные письма и использовал для своего распространения уязвимость в сервисе LSASS Microsoft Windows.
Черви – наиболее опасный тип вирусов. Они распространяются очень быстро и способны поражать файлы, диски и оперативную память. Правильно написанный червь может парализовать работу Интернета либо перегрузив каналы, либо заразив серверы. Например, Slammer сумел поразить почти четверть Интернета. В этом случае поражает беспечность фирмы-разработчика, так как об уязвимости, которая была использована автором Slammer, было известно еще за полгода до атаки. Интересно, что не один год до этого почтовые черви с успехом использовали уязвимость Microsoft Internet Explorer, позволяющую запускать любой исполняемый файл, пришедший вместе с электронным письмом, без согласия пользователя.
• Макровирусы являются программами, написанными на макросах – последовательностях команд, используемых в некоторых системах обработки данных, например текстовых редакторах и электронных таблицах. Возможности макроязыков в таких системах позволяют вирусу переносить свой код в другие файлы, заражая их. Наибольшее распространение получили макровирусы для Microsoft Word и Excel. Такой вирус активизируется при открытии зараженного документа и переносится на компьютер, как правило, внедряясь в шаблон Обычный (файл Normal.dot). После этого каждый сохраняемый документ заражается вирусом, а когда другие пользователи открывают его, их компьютеры также инфицируются. Существуют также макровирусы, заражающие базы данных Microsoft Access.
Традиционные и макровирусы сегодня практически вымерли, так как скорость их распространения значительно ниже, чем скорость распространения сетевых вирусов, и у антивирусных компаний достаточно времени, чтобы создавать вакцину против таких вредителей. Однако это совсем не значит, что угроза миновала и такие вирусы не стоит брать в расчет.
По алгоритму работы. Например, существуют резидентные и нерезидентные вирусы.
• Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, чтобы перехватывать все обращения операционной системы к объектам, пригодным для заражения. Это наиболее распространенный тип вирусов: они активны не только во время работы зараженной программы, но и – что наиболее важно – когда приложение закрыто. Резидентные вирусы постоянно находятся в памяти компьютера и остаются активными вплоть до его выключения или перезагрузки.
• Нерезидентные вирусы не заражают память компьютера и сохраняют активность лишь ограниченное время, хотя возможны варианты. Однако нерезидентные вирусы сегодня практически не встречаются, они не способны к быстрому размножению. Можно сказать, что они не выдержали конкуренции своих более активных собратьев.
Примечание
Хочется еще раз обратить внимание на понятия «резидентность» и «файловый вирус». Несколько раз мне приходилось наблюдать настоящую панику, вызванную тем, что файл, который кто-то принес на дискете, заражен вирусом. Несмотря на то что некоторые вирусы могут спокойно размножаться без участия пользователя, файловые, загрузочные и макровирусы (резидентные и нерезидентные) не способны распространяться без помощи человека. Чтобы такой вирус начал разрушительную работу, его необходимо активизировать. Находясь на дискете или жестком диске, он разве что будет вызывать раздражение антивирусной программы, и, если пользователь сам не запустит его, нерезидентный вирус не принесет вреда.
Десятки вирусов этого типа хранятся у меня в отдельной папке для тестирования и изучения антивирусных программ, и за несколько лет ни одному из них не пришло в голову активизироваться самостоятельно, поэтому дискета с зараженным файлом не должна вызывать панику, следует оценить ситуацию и принять правильное решение – удалить потенциально опасный файл или попробовать вылечить его с помощью антивируса.
• Первые антивирусные программы очень быстро находили вирус по его уникальной сигнатуре. Чтобы затруднить подобный поиск, создатели вредоносных программ стали шифровать тела вирусов. В результате появились вирусы, названные полиморфными.
• В литературе часто упоминаются стелс-вирусы (stealth – невидимка), которые были распространены во времена MS-DOS. Они применяют множество средств, чтобы скрыть свое присутствие в системе. Определить наличие таких вирусов без соответствующего инструментария практически невозможно.
Сегодня для маскировки своего присутствия в системе вирусы используют руткит-технологии (о них будет рассказано позже). Вирусы можно подразделить также по следующим критериям:
• по методу заражения (вирусы-паразиты, компаньоны и др.);
• типу операционной системы (Windows, Unix, Linux, MS-DOS, Java);
• деструктивной возможности (от безвредных, просто мешающих работе, до крайне опасных);
• языку, на котором написан вирус (ассемблер, язык сценариев и др.).
Вирусы могут использовать различные упаковщики, позволяющие превратить известный код в практически неузнаваемый.
Каждый вирус имеет собственное имя. Вы слышите его, когда узнаете об очередной эпидемии. Откуда берется имя? Обнаружив новый вирус, антивирусные компании дают ему имена в соответствии с классификациями, принятыми в каждой конкретной компании, причем классификация у каждой фирмы своя. Посмотрите сами: например, Worm.Win32.Nuf – это то же самое, что Net-Worm.Win32.Mytob.c. Часто название дается по некоторым внешним признакам:
• по месту обнаружения вируса (Jerusalem);
• содержащимся в теле вируса текстовым строкам (I Love You);
• методу подачи пользователю (AnnaKournikova);