Антивирусная защита: Учебное пособие для защиты информационных ресурсов (С) Александр Вячеславович Фролов, 2004 Урок 1. Классификация компьютерных вирусов Общее определение компьютерного вируса Известные и неизвестные вирусы
Урок 1. Классификация компьютерных вирусовДля успешной борьбы с компьютерными вирусами и другими вредоносными программными объектами необходимо четко представлять себе особенности связанных с ними угроз. В настоящее время создано огромное количество вредоносных программ, с трудом поддающихся классификации. Различные специалисты и компании, занимающиеся антивирусной защитой, используют различные подходы к классификации вредоносных программ, что создает дополнительные трудности при изучении проблемы. В нашей книге мы будем придерживаться следующих способов классификации: · по типам вредоносных программ; · по степени распространенности: · по вредоносному воздействию; · по уровню опасности Типы вредоносных программВ литературе и документации на антивирусные программы можно встретить следующие типы вредоносных программ: · компьютерные вирусы; · черви; · логические бомбы; · троянские объекты; · программы Backdoor; · программные средства для получения несанкционированного доступа к компьютерным системам Важно отметить, что существует множество комбинированных вредоносных программ, сочетающих в себе различные свойства. Например, программа может проникнуть в компьютер как вирус, а затем установить там модуль Backdoor, открывающий злоумышленнику доступ к ресурсам компьютера. Троянская программа после запуска пользователем может «выпустить» компьютерный вирус, установить модуль Backdoor или логическую бомбу. Общее определение компьютерного вирусаАвтор этой книги часто сталкивался с ситуацией, когда высококвалифицированные системные администраторы и опытные пользователи компьютера не могли дать четкого и правильного определения компьютерного вируса. В данном курсе мы придерживаемся следующего определения: Вирусом называется специально созданный программный код, способный самостоятельно распространяться в компьютерной среде Положения этого определения требуют дополнительных разъяснений. Прежде всего, в определении делается акцент на том, что вирусом может называться только такой код, который создан специально для дальнейшего самостоятельного распространения, а не для достижения каких либо других целей. Таким образом, под определение компьютерного вируса не попадают «обычные» коммерческие и некоммерческие компьютерные программы, основным назначением которых является выполнение других функций, не связанных с самостоятельным распространением. Далее, в определении сделан акцент именно на самостоятельное распространение. Дело в том, что многие программы содержат в себе средства распространения, например, по узлам локальной интрасети. В качестве примера можно привести программные агенты систем резервного копирования данных, агенты мониторинга сетевой активности и пр. Но, несмотря на специально созданные для упомянутых агентов средства распространения, эти программы нельзя считать вирусными, т.к. они распространяются не самостоятельно, а по инициативе и под руководством системного администратора. В определении компьютерного вируса намеренно не делается акцент на вредоносных действиях. Дело в том, что существуют компьютерные вирусы, не обладающие таким действием. Единственной функцией этих вирусов является распространение. Некоторые вирусы могут даже делать что-то «полезное», например, уничтожать другие вирусы, оптимизировать использование дискового пространства и т.п. Тем не менее, отсутствие указания на вредоносный характер программного кода в определении компьютерного вируса не означает, что могут быть «безвредные» вирусы. Все компьютерные вирусы следует рассматривать как вредоносные, потому что уже сам факт их распространения может нанести ущерб информационной системе. Различные типы вирусовДалее на этом уроке мы изучим вирусы следующих типов: · файловые вирусы; · загрузочные вирусы; · файлово-загрузочные вирусы; · стелс-вирусы; · шифрующиеся вирусы; · полиморфные вирусы; · макрокомандные вирусы; · почтовые вирусы; · вирусы в пакетных файлах ОС; · вирусы в драйверах ОС; · бестелесные вирусы; · вирусы для пиринговых (файлообменных) сетей; · комбинированные вирусы; · известные и неизвестные вирусы; · коллекционные вирусы Как видите, список различных типов вирусов достаточно большой. Знание особенностей вирусов различных типов важно не только для разработки антивирусных программ, но и для их грамотного использования. К тому же следует учесть, что помимо вирусов существуют и другие вредоносные программы, о которых мы будем говорить на втором уроке. Файловые вирусыС первых дней существования персональных компьютеров и по настоящее время для хранения информации любого типа используются файлы. Именно файлы стали объектом атаки самых первых компьютерных вирусов. Современные вирусы также атакуют файлы, внедряя в них свой вредоносный программный код. Определение файлового вируса содержит описание механизма прикрепления вируса к телу файла: Файловый вирус — это вирус, записывающий свой код в тело программного файла или офисного документа (документа, содержащего макрокоманды и созданного такой программой, как Microsoft Office или аналогичной). При этом во время запуска программы (или загрузке офисного документа для редактирования) вирус получает управление Получив управление, файловый вирус может записать свое тело во все другие файлы, хранящиеся на диске компьютера. Заражая файл, вирус записывает свой код внутрь выполняемого файла и изменяет его таким образом, чтобы после запуска файла управление получил код вируса (рис. 1‑1).
Рис. 1-1. Внедрение вируса в файл Вирус может записать свой код в конец, начало или середину файла. Вирус также может поместить несколько фрагментов своего кода в разных местах зараженной программы. После внедрения в файл вирус выполняет другие вредоносные действия: заражает другие файлы, устанавливает в памяти собственные резидентные модули и пр. Затем вирус, как правило, передает управление зараженной программе и далее она исполняется как обычно. В качестве примера на рис. 1-2 мы показали исходное содержимое программного файла mouse.com, а на рис. 1-2 — содержимое того же файла, но зараженного очень известного в прошлом опасным вирусом OneHalf. Рис. 1-2. Содержимое программного файла mouse.com Рис. 1-3. Вирус OneHalf в файле mouse.com К файловым вирусам можно отнести и так называемые вирусы-спутники. Как известно, в ОС MS-DOS и Microsoft Windows существуют три типа файлов, которые пользователь может запустить на выполнение. Это командные или пакетные файлы, имеющие расширение имени файла BAT, а также исполнимые файлы с расширениями COM и EXE. В одном каталоге могут одновременно находиться несколько выполнимых файлов, имеющих одинаковое имя, но разное расширение имени. Например, в каталоге ОС MS-DOS записаны файлы MSD.COM и MSD.EXE. Вы можете создать в этом же каталоге командный файл MSD.BAT. Когда пользователь желает выполнить программу и вводит ее имя в системном приглашении операционной системы, то он обычно не указывает расширение файла. Какой же файл будет выполнен? Оказывается, в этом случае операционная система будет выполнять файл, имеющий расширение COM. Если в текущем каталоге или в каталогах, указанных в переменной среды PATH, существуют только файлы с расширением EXE и BAT, то выполняться будет файл с расширением EXE. Когда вирус-спутник заражает файл, имеющий расширение EXE или BAT, он создает в этом же каталоге еще один файл с таким же именем и расширением COM. Вирус записывает себя в этот COM-файл Загрузочные вирусыПроцесс загрузки операционной системы (ОС) с диска или дискеты производится в несколько шагов. На первом шаге программа загрузки считывает содержимое специальных областей диска, называемых загрузочными записями. Загрузочные записи обычно расположены в самом начале диска (или дискеты), и содержат программный код, необходимый для выполнения следующих шагов загрузки ОС. Главная загрузочная запись, находящаяся на жестком диске, называется Master Boot Record (MBR). Аналогичная запись на дискете носит название Boot Record (BR). Этим обстоятельством воспользовались создатели компьютерных вирусов, создавшие так называемый загрузочный вирус: Загрузочный вирус — такой вирус, который записывает свой код в главную загрузочную запись Master Boot Record диска или загрузочную запись Boot Record диска и дискет. Загрузочный вирус активизируется после загрузки компьютера Загрузочный вирус получает управление до программы загрузки ОС, в результате чего процедура управления выполняется под контролем вируса. При заражении дискеты или жесткого диска компьютера загрузочный вирус заменяет загрузочную запись или главную загрузочную запись. Настоящая загрузочная запись или главная загрузочная при этом запись обычно не пропадает (хотя так бывает не всегда). Вирус копирует их в один из свободных секторов (см. рис. 1-4). Рис. 1-4. Загрузочный вирус сохраняет исходное содержимое загрузочного сектора Загрузочные вирусы распространяются через загрузочные записи дискет. Обычно это происходит, если пользователь предпринимает попытку загрузить ОС с зараженной дискеты. Чаще всего это происходит, когда пользователь забывает вынуть дискету из компьютера после окончания работы. На рис. 1-5 мы показали исходное содержимое загрузочного сектора. Рис. 1-5. Исходное содержимое загрузочного сектора На рис. 1-6 представлен тот же сектор, что и на рис. 1-5, но зараженный вирусом Form. Рис. 1-6. Фрагмент вируса Form в загрузочном секторе Файлово-загрузочные вирусыЗагрузочные вирусы могут распространяться только через загрузочные записи дискет, а файловые вирусы — через файлы. Это в некоторой степени ограничивает их распространение. Однако существуют комбинированные файлово-загрузочные вирусы, которые сочетают в себе свойства и файловых, и загрузочных вирусов: Файлово-загрузочный вирус — комбинация файлового и загрузочного вируса. Он прикрепляется к загрузочной записи диска или дискет, а также к программным файлам. Активизируется после загрузки компьютера с зараженного диска (дискеты) или при запуске зараженного файла Файлово-загрузочный вирус прикрепляется к загрузочной записи диска или дискет, а также к программным файлам. Вирус этого типа активизируется после загрузки компьютера с зараженного диска (дискеты) или при запуске зараженного файла. Файлово-загрузочные вирусы могут распространяться как файловые, прикрепляясь затем к загрузочным записям дисков и дискет. Они также способны распространяться через загрузочные записи дискет, заражая затем файлы. Этот факт двойственного поведения и отражен в названии данного типа вирусов. Стелс-вирусыСразу после появления первых компьютерных вирусов стали создаваться и первые антивирусные программы. Такие программы сканировали содержимое оперативной памяти и дисков компьютера, обнаруживая и нейтрализуя вредоносный код. В качестве ответной меры разработчики вирусов научились создавать такие вирусы, которые умеют «прятаться» от антивирусных программ. С этой целью вирусы перехватывают вызовы некоторых функций ОС. Благодаря такому перехвату антивирус, читая зараженный файл или загрузочную запись, фактически получает незараженные данные. Тем самым антивирус вводится в заблуждение. Вот определение стелс-вируса, работающего по описанной выше схеме: Стелс-вирус — это вирус, оставляющий в памяти компьютера модули, перехватывающие обращение программ к дискам. Когда программа читает зараженный файл или загрузочную запись, стелс-вирус подменяет данные, чтобы ввести в заблуждение антивирусные программы Следует отметить, что были разработаны и ответные меры. Используя специальные методики и программное обеспечение, можно организовать защиту и от стелс-вирусов. Шифрующиеся вирусыПервые антивирусные программы искали вирусы, сравнивая содержимое файлов и секторов диска с характерными фрагментами вирусов (с сигнатурами вирусов). Именно эти фрагменты хранились в вирусных базах данных антивирусных программ. Чтобы исключить обнаружение свих изделий, разработчики компьютерных вирусов стали применять шифрование вирусного кода. Так появились шифрующиеся вирусы: Шифрующийся вирус — это вирус, который при заражении новых файлов и системных областей диска шифрует собственный код, пользуясь для этого случайными паролями (ключами). Когда вирус получает управление, он расшифровывает свой собственный код и передает ему управление. Современные антивирусы умеют расшифровывать код вируса, поэтому шифрующиеся вирусы могут быть эффективно обнаружены и уничтожены. Полиморфные вирусыДальнейшее совершенствование шифрующихся вирусов было направлено на затруднение их обнаружения. С этой целью были разработаны так называемые полиморфные вирусы: Полиморфный вирус — это такой шифрующийся вирус, который при заражении новых файлов и системных областей диска шифрует собственный код. При этом для шифрования вирус пользуется случайными паролями (ключами), а также различными методами шифрования, что исключает возможность опознания вируса по сигнатурам вирусов. Полиморфные вирусы намного труднее обнаружить, чем обычные, так как экземпляры таких вирусов отличаются друг от друга. Однако для их поиска и нейтрализации были разработаны новые методики. Современные антивирусные программы справляются с полиморфными вирусами, несмотря на все ухищрения, предпринятые их разработчиками. Макрокомандные вирусыВ середине 90-х годов впервые появились компьютерные вирусы, атакующие не программные файлы, а файлы документов пакета программ Microsoft Office. В отличие от ранее известных вирусов, вирусы, заражающие файлы документов, состоят не из команд центрального процессора компьютера, а из макрокоманд языка WordBasic. Эти вирусы получили название макрокомандных вирусов: Макрокомандный вирус прикрепляется к файлам офисных документов и распространяется вместе с ними. Макрокомандные вирусы написаны с использованием интерпретируемого языка программирования, встроенного в офисные приложения для автоматизации обработки офисных документов Первый главный секрет первого вируса WinWord.Concept и практически всех остальных известных нам сегодня вирусов для текстового процессора Microsoft Word, заключается в том, что он использовал возможность сохранения файла документа в формате файла стилей. Файл, зараженный макрокомандным вирусом, можно открыть как обычный файл документа. Его можно редактировать и сохранить изменения на диске. Единственное, что нельзя с ним сделать, так это сохранить файл в другом формате, например в формате документа или в формате RTF. Если выбрать из меню File строку Save As, то в открывшемся диалоговом окне Save As список Save File as Type, будет показан серым цветом и не доступен для выбора. Такой «дефект» трудно заметить, потому что операция сохранения файла в другом формате выполняется достаточно редко. Рис. 1-7. Диалоговаое окно Save As Макрокомандный вирус размножается, изменяя код стандартных макрокоманд, предназначенных, например, для открытия и сохранения файла. Вместе с выполнением полезных функций измененные макрокоманды будут сохранять тело вируса в других документах Microsoft Office. Макрокомандные вирусы получили широкое хождение после возникновения и широкого распространения пакета программ Microsoft Office. Хотя первые макрокомандные вирусы поражали только документы Microsoft Word, вскоре появились макрокомандные вирусы и для других приложений Microsoft Office. Фактически макрокомандные вирусы можно создать для документов, создаваемых любыми приложениями, если помимо данных внутри документов хранятся макрокоманды, а язык макрокоманд допускает не только чтение, но и запись файлов. Современные антивирусы обнаруживают макрокомандные вирусы, сканируя содержимое документов. Почтовые вирусыВместе с ростом популярности Интернета повсеместно распространилась электронная почта, представляющая собой один из наиболее важных сервисов этой всемирной сети. По каналам электронной почты передается огромное количество деловой и личной почты, а от работоспособности этого сервиса зависит успешность деятельности огромного количества компаний. Популярностью электронной почты воспользовались разработчики вирусов, создав новый тип вирусов — почтовые вирусы: Почтовый вирус использует для своего распространения каналы электронной почты. Заражение почтовым вирусом происходит в результате действий пользователей, просматривающих почту, а также из-за ошибок в почтовых программах и операционных системах Известно, что вместе с электронным сообщением можно предать любые файлы (рис. 1-8). Такие файлы называются присоединенными или файлами вложений (attachment file). Рис. 1-8. Файл вложения внутри сообщения электронной почты Файлы вложений таят в себе угрозу для компьютера — через них на компьютер может проникнуть вирус, червь, троянская или другая вредоносная программа. Кроме того, сообщение электронной почты может передаваться в виде документа HTML, которые обычно служат основой для создания Web-сайтов Интернета. Привлекательность такого формата для сообщений электронной почты заключается в том, что он допускает произвольное форматирование текста сообщения, а также добавление в сообщение ссылок на ресурсы Интернета, изображений и активных компонентов, таких как аплеты Java и элементы управления ActiveX. Если сообщение электронной почты передается в формате HTML, то оно представляет потенциальную угрозу для получателя. Сообщение может содержать ссылку на вредоносный компонент, размещенный где-либо в Интернете, а также вредоносный программный код, активизирующийся при просмотре сообщения. Попав на компьютер пользователя, почтовый вирус может разослать свой код по адресам, извлеченным из книги электронных адресов почтовой программы, установленной на компьютере. Это позволяет почтовому вирусу быстро распространяться по Интернету. Обычные антивирусные программы, рассчитанные на проверку файлов и дисков, не всегда способны обнаружить вирусы в сообщениях электронной почты. Это происходит потому, что такие сообщения хранятся в базах данных почтовых программ, имеющих различный формат. Современные антивирусы умеют не только сканировать базы данных сообщений распространенных почтовых программ, но и нейтрализуют почтовые вирусы непосредственно на почтовых серверах, а также на рабочих станциях (персональных компьютерах) до того, как сообщения попадут в почтовую программу. С этой целью почтовые программы сканируют «на лету» потоки данных протоколов SMTP, POP3 и IMAP, предназначенных для передачи сообщений электронной почты. В настоящее время почтовые вирусы представляют собой наибольшую опасность, так как они встречаются намного чаще вирусов других типов. Вирусы в пакетных файлах ОСПочти в любой операционной системе (ОС) имеется такое средство автоматизации выполнения процедур, как пакетные файлы. Пакетные файлы содержат программы на специальном командном языке, который зависит от ОС. С помощью этого языка можно запускать произвольные программы, выдавать команды ОС, создавать файлы и каталоги, словом, делать практически все что угодно с ОС и содержимым диска. Возможности пакетных файлов используют специально созданные вирусы, называемые вирусами пакетных файлов: Пакетный вирус, вирус пакетных файлов — это вирус, который записывает свое тело внутрь пакетного файла операционной системы (ОС), маскируя исполнимый код под строки комментариев. Следует отметить, что вирусы этого типа встречаются крайне редко. Тем не менее, они могут быть созданы для любой распространенной ОС. Вирусы в драйверах ОСТеоретически компьютерные вирусы могут внедряться не только в обычные программы, но и в файлы драйверов операционных систем. Вирус для драйвера ОС — это файловый вирус, внедряющийся в файлы драйверов операционных систем (ОС) Драйверы представляют собой системные программы, с помощью которых ОС взаимодействует с периферийными устройствами компьютера, такими как диск, клавиатура, принтер и т.д. Так как драйверы расположены в программных файлах, то вирусы, заражающие драйверы, можно отнести к файловым вирусам. Заметим, что на практике такие вирусы, хотя и существуют, но не получили широкого распространения. Бестелесные вирусыСуществуют вирусы, заражающие не файлы или загрузочные области дисков, а оперативную память компьютера. Эти вирусы называются бестелесными: Бестелесный вирус заражает только оперативную память компьютера, не попадая в файлы или служебные области дисков Такие вирусы не могут быть обнаружены антивирусными программами, которые ограничивают проверки сканированием файлов, расположенных на дисках компьютера. Хотя бестелесные вирусы существует только до тех пор, пока работает операционная система, время их существования может быть достаточно велико. Это произойдет, например, если они попали в память сервера, работающего круглосуточно. Вирусы для пиринговых сетейВ современном Интернете имеется большое количество сетей, предназначенных для обмена файлами без применения централизованного сервера. Эти сети позволяют пользователям Интернета свободно обмениваться музыкальными файлами, программами и другой информацией. Эти сети часто называются файлообменными или пиринговыми. Последнее из этих названий происходит от названия применяемого в таких сетях способа обмена данными узел-узел (Peer-To-Peer). Для пиринговых сетей разработчиками вредоносных программ были созданы специальные вирусы, называемые вирусами для пиринговых сетей: Вирус пиринговых сетей — это вредоносная программа, специально предназначенная для систем обмена файлами между компьютерами пользователей Интернета, такими как Kazaa, Windows Messenger, ICQ и т.д. Чтобы такой вирус попал на компьютер пользователя пиринговой сети, пользователю требуется выполнить какое либо действие, например, загрузить и запустить на выполнение файл. Комбинированные вирусыМногие вирусы нельзя однозначно отнести к тому или другому типу, так как они обладают свойствами вирусов сразу нескольких типов. Вирусы или вредоносные программы одного типа могут нести в себе вирусы или вредоносные других типов. Так, например, троянское почтовое сообщение может нести в своем теле компьютерный вирус или программу Backdoor, а также логическую бомбу. Компьютерный вирус, распространяющийся через файлы, может установить на компьютер загрузочный вирус или вирус любого другого типа, а также комбинацию вредоносных программ. Комбинированный вирус — вирус, в котором реализована комбинация нескольких существенно различных методов или алгоритмов заражения, а также распространения Известные и неизвестные вирусыВ нашей книге мы будем часто упоминать такие понятия, как известные и неизвестные вирусы. С этими понятиями тоже возникает путаница из-за их неоднозначного толкования. Все основные компании, специализирующиеся на создании антивирусных программ и средств, собирают по всему миру информацию о существующих и новых вредоносных программах и обмениваются этой информацией. Собранная таким образом информация добавляется антивирусными компаниями в так называемые вирусные базы данных. Вирусные базы данных являются важнейшим компонентом всех антивирусных программ, так как они содержат сведения об обнаруженных вредоносных программных объектах. Вот правильное определение известного компьютерного вируса: Известный вирус — ранее обнаруженный и изученный компьютерный вирус, добавленный в базу данных антивирусной программы Как видите, основным критерием принадлежности вирусов к категории известных является факт добавления его в вирусную базу данных антивирусной программы. Если тот или иной вирус содержится в базе данных антивирусной программы, то такой вирус будет для этой программы известным, а если нет — неизвестным. Неизвестный вирус — компьютерный вирус, описание которого отсутствует в базе данных антивирусной программы Что же касается распространенности сведений о вирусе среди компьютерной общественности, то в рамках нашего определения этот аспект не имеет никакого значения. Все антивирусные программы в состоянии обнаружить и нейтрализовать известные вирусы. Поэтому для успешной антивирусной защиты необходимо заботиться о постоянном обновлении вирусной базы данных. Коллекционные вирусыВ среде специалистов по антивирусной защите используется такой термин, как коллекционный вирус: Коллекционным называется компьютерный вирус, который существует только в коллекциях вирусов специалистов и компаний, занимающихся профессиональной разработкой антивирусных программ. Коллекционные вирусы не распространяются и не встречаются в обычных компьютерных системах. Эти вирусы могут создаваться разработчиками антивирусных программ с целью изучения механизмов распространения вирусов или для выполнения работ по созданию новых антивирусов. ИтогиНа первом уроке мы перечислили различные типы вредоносных программ, встречающихся на практике: · компьютерные вирусы; · черви; · логические бомбы; · троянские объекты; · программы Backdoor; · программные средства для получения несанкционированного доступа к компьютерным системам Был подробно разобран первый из перечисленных типов вредоносных программ, а именно компьютерные вирусы. Мы дали общее определение компьютерного вируса, а также перечислили и рассмотрели особенности компьютерных вирусов известных на сегодня типов. Это вирусы следующих типов: · файловые вирусы; · загрузочные вирусы; · файлово-загрузочные вирусы; · стелс-вирусы; · шифрующиеся вирусы; · полиморфные вирусы; · макрокомандные вирусы; · почтовые вирусы; · вирусы в пакетных файлах ОС; · вирусы в драйверах ОС; · бестелесные вирусы; · вирусы для пиринговых (файлообменных) сетей; · комбинированные вирусы; · известные и неизвестные вирусы; · коллекционные вирусы Предметом следующего урока станет изучение вредоносных программ других типов. Это черви, логические бомбы, троянские программы, программы Backdoor, а также программные средства для получения несанкционированного доступа к компьютерным системам. |