Коллектив авторов - Защита от хакеров корпоративных сетей
«Вирусом называется кусок кода, который для дальнейшего распространения внедряется в различные приложения, в том числе и в операционные системы. Он не может запускаться независимо и активируется только при запуске соответствующего приложения-жертвы».
Вирусы были особенно популярны в то время, когда обмен программным обеспечением и данными производился с помощью дискет. Многие из них ожидали момента появления дискеты в дисководе. В момент обнаружения дискеты на нее копировался вирус, причем таким способом, чтобы устройство приема данных вызывало выполнение кода вируса и, как следствие, дальнейшее инфицирование. Несмотря на то что в наши дни дискеты уже не являются основным средством передачи информации, угроза заражения компьютера вирусами до сих пор не устранена. Вирусы могут присутствовать в файлах, загружаемых из Интернета, кроме того, может оказаться, что приобретенный вами компакт-диск с программным обеспечением содержит зараженные файлы.
К счастью, методика борьбы с вирусами довольно проста. Не запускайте незнакомые программы, не проверив их на наличие вируса. Средства обнаружения вирусов входят в стандартный набор программного обеспечения новых компьютеров, а пользователи повсеместно информируются об опасности заражения. Остается только своевременно обновленять антивирусные программы, без чего невозможно обнаружение новейших вирусов.
Существует мнение, что распространение вирусов ограничено платформой Windows/DOS; однако существуют также вирусы, поражающие операционную систему UNIX – просто эффективность заражения ими локальной системы ниже благодаря тому, что полномочия пользователей в системе ограничены их учетной записью. Большинство вирусов для UNIX пытаются заразить общесистемные исполняемые файлы, которые впоследствии может запустить на выполнение пользователь с более высоким уровнем доступа. Затем заражение файлов происходит на более высоком уровне, и цепочка продолжается, пока один из этих файлов не будет запущен привилегированным пользователем, что даст вирусу полный доступ к системе.
Черви
Черви в отличие от вирусов не занимаются собственным воспроизводством внутри отдельных приложений; вместо этого они распространяются между системами и обычно располагаются в памяти. В документе RFC 1135 червь описывается следующим образом:
...«Червем называется программа, которая выполняется независимо, расходует системные ресурсы на поддержание себя в рабочем состоянии и распространяет полную рабочую версию самой себя на другие компьютеры».
Это определение использовалось при описании вошедшего в историю червя Морриса, распространявшегося через слабые места в системе защиты почтовой системы Sendmail и демона finger. В настоящее время производители антивирусных программ обычно придерживаются следующей терминологии: червем считается код, распространяющийся между компьютерами, а вирусом – код, распространяющийся внутри отдельной машины. Существуют также программы, обладающие обоими указанными признаками. Часто их называют вирусы / черви.
Следует упомянуть также такое интересное свойство червей, как возможность проникать в систему через уязвимые места в защите программного обеспечения. Например, червь Code Red заражал Web-серверы Microsoft IIS, вызывая переполнение буфера в системе обработки индексов. Иногда червей такого типа называют «автоматическими взломщиками», так как они проникают в систему, обосновываются там и ищут новые системы, подходящие для проникновения.
Макровирусы
Макровирусы, иногда также называемые червями, представляют собой вредоносный код, для выполнения которого требуется запуск определенного приложения-жертвы. Стоит отметить, что классический макровирус возник только благодаря существованию всех тех замечательных функций, которыми производитель снабдил автоматические приложения.
Концепция макровируса очень проста. Чтобы автоматизировать процесс выполнения повторяющихся действий, пользователи встраивают в документ макросы, представляющие собой сценарии выполнения определенных команд. Например, макрос пригодится для печати символов "@[email protected]", которые затем заменяются одинаковыми кусками текста, содержащего заключительную информацию. По мере развития приложений увеличиваются и функциональные возможности макроязыка. Теперь с его помощью можно открывать и сохранять файлы, запускать сторонние программы, редактировать настройки документов и самого приложения и т. п.
При этом ничто не мешает написать, например, сценарий, заменяющий каждое пятое слово документа случайным словом. А как вам понравится сценарий, умножающий все цифры, рядом с которыми находится знак доллара, на десять? Или вычитающий из этих цифр небольшое число? Несомненно, результат работы такого сценария раздражает. А в руках творческой личности макрос может стать просто разрушительным. К счастью, существует внутреннее ограничение на распространение макровирусов. Они читаются и запускаются строго определенным приложением-жертвой. Одни макровирусы функционируют в Word, другим требуется Excel и т. п. Впрочем, если вы решите, что это ограничивает частоту их появления, могу вас разочаровать.
Компания Microsoft решила использовать при написании пакета Office версию языка Visual Basic, известную под названием Visual Basicfor Application (VBA). Пакет Office включает в себя программы Word, Access, Excel, PowerPoint и Outlook. Любой документ, открытый внутри одного из перечисленных приложений, может быть использован для запуска сценария макровируса. Если учесть, насколько сложные действия позволяет осуществлять язык VBA (например, чтение и запись файлов или запуск других программ), можно смело утверждать, что остановить распространение макровирусов может только бог.
Простейшим примером макровируса является Melissa, поразившая множество почтовых ящиков по всему миру. В основном Melissa распространяется путем передачи по электронной почте кода макроса на языке VBA, выполнение которого осуществляется в почтовой программе Microsoft Outlook. После запуска вирус сначала проверяет, не заражен ли им этот компьютер. В случае отрицательного результата он рассылает себя по первым 50 адресам электронной почты, найденным в адресной книге. Настоящая эпидемия макровируса Melissa возниклаблагодаря его рассылке по спискам, которые в Outlook обычно располагаются в начале адресной книги. В итоге письма с вирусом рассылались десятками тысяч, и некоторые почтовые серверы просто не справлялись с такой перегрузкой.
Троянские программы
Троянские программы представляют собой код, замаскированный под полезную программу, но действующий неожиданным, обычно вредоносным образом. Этот термин напоминает об описанной в «Илиаде» военной хитрости, примененной при осаде Трои. Когда греки не смогли взять город штурмом, они построили огромного деревянного коня и оставили его у городских ворот, предлагая заключить мир. Троянцы приняли дар и внесли коня в город. Ночью из этого коня вышли скрывавшиеся внутри греческие солдаты и открыли ворота, что позволило грекам взять неприступную Трою.
Возможности Троянских коней ограничены тем, что пользователь должен по доброй воле запустить программу, так же как троянцы по доброй воле приняли в подарок коня. Именно поэтому Троянские кони обычно скрываются под другим названием, маскируются под полезное приложение, чтобы одурачить пользователя и заставить его запустить вредоносную программу. Уловки могут быть как очень простыми, например фальшивое имя (это заставляет пользователя думать, что он запускает другую, законно распространяемую программу), так и достаточно сложными, например имитация полезной программы. Одним из таких Троянских коней является червь Pokemon, который показывает на экране анимированные изображения прыгающего Пикачу, в то время как вирус рассылает себя по адресам, найденным в адресной книге почтовой программы, и удаляет все файлы в папке Windows. На рисунке 15.1 показана картинка, которую видит пользователь в процессе выполнения файла pokemon.exe, классифицированного как червь W32.Pokemon.Worm. При этом процесс рассылки червя по электронной почте и удаления системных файлов пользователю совершенно незаметен.
Рис. 15.1. Червь W32.Pokemon.Worm
Для защиты от Троянских коней достаточно соблюдать элементарные меры предосторожности, а именно не запускать неизвестные программы. Этот несложный совет передается в Интернете из поколения в поколение. Большинство пользователей ему следует, но создается впечатление, что все рано или поздно не выдерживают и запускают какую-нибудь неизвестную программу. Однажды этот проклятый танцующий человечек начал свое шествие по Интернету, и я готов биться об заклад, что значительная часть пользователей запустила это приложение сразу же после его получения. Но только представьте, что пока этот человечек танцует на экране, он также удаляет нужные вам файлы, рассылает свои копии по всем адресам из адресной книги или меняет все пароли. Надеюсь, после этого вы перестанете считать его привлекательным.
У многих фирм в свое время возникла идея производства небольших исполняемых электронных поздравительных открыток, которые можно посылать друзьям и знакомым. Эти открытки окончательно размыли границу между вредоносным и безопасным. Если человек привык получать забавные файлы по электронной почте, например от своего друга Боба, он не заподозрит ничего дурного, если Боб (или Троянская программа, разославшая свои копии всем, чьи адреса находились в адресной книге Боба) пришлет таким же способом вредоносный код.