Классификация вирусов
Поскольку теоретическая задача обнаружения вирусов неразрешима, на практике приходится решать частные задачи по борьбе с частными случаями вредоносных программ.
В зависимости от характерных свойств вирусов для их обнаружения и нейтрализации могут применяться различные методы. В связи с этим возникает вопрос о классификации вредоносных программ, чему и посвящена эта глава.
Необходимо отметить, что на практике классификации, принятые различными производителями антивирусных продуктов, отличаются, хотя и построены на близких принципах. Поэтому в ходе изложения будут формулироваться в первую очередь принципы и уже потом примеры из классификации, используемой в Лаборатории Касперского.
Определение компьютерного вируса – исторически проблемный вопрос, поскольку достаточно сложно дать чёткое определение вируса, очертив при этом свойства, присущие только вирусам и не касающиеся других программных систем. Наоборот, давая жёсткое определение вируса как программы, обладающей определёнными свойствами, практически сразу же можно найти пример вируса, таковыми свойствами не обладающего.
Обязательным (необходимым) свойством компьютерного вируса является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и(или) файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Вирус (по ГОСТ Р 51188–98)– программа, способная создавать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера, компьютерных сетей, а также осуществлять иные деструктивные действия. При этом копии сохраняют способность дальнейшего распространения. Компьютерный вирус относится к вредоносным программам.
Легко заметить, что определение в ГОСТ практически полностью повторяет определение Е. Касперского.
Эти два определения в большой степени повторяют определение Ф. Коэна или уточнение, предложенное Д. Чессом и С. Вайтом, что позволяет распространить на них (определения) вывод о невозможности создать алгоритм, обнаруживающий все такие программы или даже все «инкарнации» одного из вирусов. Тем не менее, на практике оказывается, что все известные вирусы могут быть обнаружены антивирусными программами. Результат достигается, в частности, ещё и за счёт того, что повреждённые или неудачные экземпляры вирусов, неспособные к созданию и внедрению своих копий, обнаруживаются и классифицируются наравне со всеми остальными «полноценными» вирусами. Следовательно, с практической точки зрения, т.е. с точки зрения алгоритмов поиска, способность к размножению вовсе не является обязательной для причисления программы к вирусам.
Другая проблема, связанная с определением компьютерного вируса, кроется в том, что сегодня под вирусом чаще всего понимается не «традиционный» вирус, а практически любая вредоносная программа. Это приводит к путанице в терминологии, осложнённой ещё и тем, что практически все современные антивирусы способны выявлять указанные типы вредоносных программ, таким образом, ассоциация «вредоносная программа – вирус» становится всё более устойчивой.
Исходя из этого, а также из назначения антивирусных средств, в дальнейшем, если это не будет оговорено отдельно, под вирусами будут подразумеваться именно вредоносные программы.
Вредоносная программа – компьютерная программа или переносной код, предназначенный для реализации угроз информации, хранящейся в КС, либо для скрытого нецелевого использования ресурсов КС, либо иного воздействия, препятствующего нормальному функционированию КС. К вредоносным программам относятся компьютерные вирусы, трояны, сетевые черви и др.
Компьютерные вирусы, трояны и черви являются основными типами вредоносных программ.
5.1.1. Вирусы
Поскольку отличительной особенностью вирусов в традиционном смысле является способность к размножению в рамках одного компьютера, деление вирусов на типы происходит в соответствии со способами размножения.
Сам процесс размножения может быть условно разделён на несколько стадий:
1. Проникновение на компьютер.
2. Активация вируса.
3. Поиск объектов для заражения.
4. Подготовка вирусных копий.
5. Внедрение вирусных копий.
Особенности реализации каждой стадии порождают атрибуты, набор которых фактически и определяет класс вируса.
Вирусы проникают на компьютер вместе с заражёнными файлами или другими объектами (загрузочными секторами дискет), никак, в отличие от червей, не влияя на процесс проникновения. Следовательно, возможности проникновения полностью определяются возможностями заражения, и классифицировать вирусы по этим стадиям жизненного цикла отдельно смысла нет.
Для активации вируса необходимо, чтобы заражённый объект получил управление. На данной стадии деление вирусов происходит по типам объектов, которые могут быть заражены:
1. Загрузочные вирусы – вирусы, заражающие загрузочные сектора постоянных и сменных носителей.
Примеры. Вредоносная программа Virus.Boot.Snow.a записывает свой код в MBR жёсткого диска или в загрузочные сектора дискет. При этом оригинальные загрузочные сектора шифруются вирусом. После получения управления вирус остаётся в памяти компьютера (резидентность) и перехватывает прерывания INT 10h, 1Ch и 13h. Иногда вирус проявляет себя визуальным эффектом – на экране компьютера начинает падать снег.
Другой загрузочный вирус Virus.Boot.DiskFiller также заражает MBR винчестеры или загрузочные сектора дискет, остаётся в памяти и перехватывает прерывания – INT 13h, 1Ch и 21h. При этом, заражая дискеты, вирус форматирует дополнительную дорожку с номером 40 или 80 (в зависимости от объёма дискеты он может иметь 40 либо 80 дорожек с номерами 0–39 или 0–79 соответственно). Именно на эту нестандартную дорожку вне поля обычной видимости вирус записывает свой код, добавляя в загрузочный сектор лишь небольшой фрагмент – головную часть вируса.
При заражении винчестера Virus.Boot.DiskFiller располагает свой код непосредственно за MBR, а в самом MBR меняет ссылку на активный загрузочный сектор, указывая адрес сектора, где он расположен.
2. Файловые вирусы – вирусы, заражающие файлы. Эта группа дополнительно делится на три в зависимости от среды, в которой выполняется код.
Собственно файловые вирусы – те, которые непосредственно работают с ресурсами операционной системы.
Примеры. Самый известный файловый вирус этой группы – Virus.Win9x.CIH, известный также как «Чернобыль». Имея небольшой размер – около 1 Кб, – вирус заражает PE-файлы (Portable Executable) на компьютерах под управлением операционных систем Windows 95/98 таким образом, что размер заражённых файлов не меняется. Для достижения этого эффекта вирус ищет в файлах «пустые» участки, возникающие из-за выравнивания начала каждой секции файла под кратные значения байт. После получения управления вирус перехватывает IFS API, отслеживая вызовы функции обращения к файлам и заражая исполняемые файлы. 26 апреля срабатывает деструктивная функция вируса, которая заключается в стирании Flash BIOS и начальных секторов жёстких дисков. Результатом является неспособность компьютера загружаться вообще (в случае успешной попытки стереть Flash BIOS) либо потеря данных на всех жёстких дисках компьютера.
Из последних вредоносных программ, обладающих вирусной функциональностью, можно отметить Email-Worm.Win32.Bagle.p (а также его модификации .q и .r). Являясь в первую очередь червем с основным каналом распространения через электронную почту, Bagle.p содержит также функцию заражения EXE-файлов путём дописывания в их конец полиморфного кода вируса.
Макровирусы – вирусы, написанные на языке макрокоманд и исполняемые в среде какого-либо приложения. В подавляющем большинстве случаев речь идёт о макросах в документах Microsoft Office.
Примеры. Одними из наиболее разрушительных макровирусов являются представители семейства Macro.Word97.Thus. Эти вирусы содержат три процедуры Document_Open, Document_Close и Document_New, которыми подменяет стандартные макросы, выполняющиеся при открытии, закрытии и создании документа, тем самым обеспечивая заражение других документов. 13 декабря срабатывает деструктивная функция вируса – он удаляет все файлы на диске C:, включая каталоги и подкаталоги.
Модификация Macro.Word97.Thus.aa, кроме указанных действий, при открытии каждого заражённого документа выбирает на локальном диске случайный файл и шифрует первые 32 байта этого файла, постепенно приводя систему в неработоспособное состояние.
Макровирусы способны заражать не только документы Microsoft Word и Excel. Существуют вредоносные программы, ориентированные и на другие типы документов: Macro.Visio.Radiant заражает файлы известной программы для построения диаграмм – Visio, Virus.Acad.Pobresito – документы AutoCAD, Macro.AmiPro.Green – документы популярного раньше текстового процессора Ami Pro.
Скрипт-вирусы – вирусы, исполняемые в среде определённой командной оболочки: раньше – bat-файлы в командной оболочке DOS, сейчас чаще VBS и JS-скрипты в командной оболочке Windows Scripting Host (WSH).
Примеры. Virus.VBS.Sling написан на языке VBScript (Visual Basic Script). При запуске он ищет файлы с расширениями .VBS или .VBE и заражает их. При наступлении 16 июня или июля вирус при запуске удаляет все файлы с расширениями .VBS и .VBE, включая самого себя.
Virus.WinHLP.Pluma.a – вирус, заражающий файлы помощи Windows. При открытии заражённого файла помощи выполняется вирусный скрипт, который, используя нетривиальный метод (по сути, уязвимость в обработке скриптов), запускает на выполнение уже как обычный файл Windows определённую строку кода, содержащегося в скрипте. Запущенный код производит поиск файлов справки на диске и внедряет в их область System скрипт автозапуска.
В эпоху вирусов для DOS часто встречались гибридные файлово-загрузочные вирусы. После массового перехода на операционные системы семейства Windows практически исчезли как сами загрузочные вирусы, так и упомянутые гибриды.
Отдельно стоит отметить тот факт, что вирусы, рассчитанные для работы в среде определённой ОС или приложения, оказываются неработоспособными в среде других ОС и приложений. Поэтому как отдельный атрибут вируса выделяется среда, в которой он способен выполняться. Для файловых вирусов это DOS, Windows, Linux, MacOS, OS/2. Для макровирусов – Word, Excel, PowerPoint, Office. Иногда вирусу требуется для корректной работы какая-то определённая версия ОС или приложения, тогда атрибут указывается более узко: Win9x, Excel97.
На стадии поиска объектов для заражения встречается два способа поведения вирусов.
1. Получив управление, вирус производит разовый поиск жертв, после чего передаёт управление ассоциированному с ним объекту (заражённому объекту).
Пример. Обычно при освоении новой платформы сначала появляются вирусы именно этого типа. Так было при появлении вирусов под DOS, под Windows 9x, под Windows NT, под Linux.
Например, таким вирусом является Virus.Multi.Pelf.2132 – один из немногих представителей мультиплатформенных вирусов. Этот вирус способен заражать как PE-файлы, так и файлы в формате ELF (формат исполняемых файлов под Linux). При запуске вирус производит в текущем (под обеими операционными системами) и вышестоящих каталогах (под Windows) файлов заражаемых форматов (PE и ELF), определяя действительный формат файла по его структуре. После заражения найденных файлов вирус завершает работу и возвращает управление запущенному файлу.
2. Получив управление, вирус так или иначе остаётся в памяти и производит поиск жертв непрерывно, до завершения работы среды, в которой он выполняется.
Пример. Virus.DOS.Anarchy.6093 также является мультиплатформенным в том смысле, что он способен заражать DOS COM- и EXE-файлы, а также документы Microsoft Word 6/7. При этом вирус может активироваться при запуске как в среде DOS, так и в среде Windows 95. После запуска вирус перехватывает прерывание INT 21h, а в среде Windows дополнительно вносит изменения в драйвер VMM32.VXD (Virtual Memory Manager) с целью перехвата обращений к файлам. При запуске или открытии COM-, EXE и DOC-файла вирус заражает его. Помимо этого, в файловом варианте вирус является полиморфным (см. ниже), и в любом варианте обладает stealth-функциональностью (см. ниже).
Вирусы второго типа во времена однозадачной DOS было принято называть резидентными. С переходом на Windows проблема остаться в памяти перестала быть актуальной: практически все вирусы, исполняемые в среде Windows, равно как и в среде приложений MS Office, являются вирусами второго типа. И напротив, скрипт-вирусы являются вирусами первого типа. Соответственно, атрибут резидентный применим только к файловым DOS вирусам. Существование нерезидентных Windows вирусов возможно, но на практике они являются редким исключением.
Отдельно имеет смысл рассмотреть так называемые stealth-вирусы – вирусы, которые, находясь постоянно в памяти, перехватывают обращения к заражённому файлу и на ходу удаляют из него вирусный код, передавая в ответ на запрос неизменённую версию файла. Таким образом, эти вирусы маскируют своё присутствие в системе. Для их обнаружения антивирусным средствам требуется возможность прямого обращения к диску в обход средств операционной системы. Набольшее распространение stealth-виру-сы получили во времена DOS.
Сигнатура вируса – в широком смысле, информация, позволяющая однозначно определить наличие данного вируса в файле или ином коде. Примерами сигнатур являются: уникальная последовательность байт, присутствующая в данном вирусе и не встречающаяся в других программах; контрольная сумма такой последовательности.
Процесс подготовки копий для распространения может существенно отличаться от простого копирования. Авторы наиболее сложных в технологическом плане вирусов стараются сделать разные копии максимально непохожими для усложнения их обнаружения антивирусными средствами. Как следствие, составление сигнатуры для такого вируса крайне затруднено либо вовсе невозможно.
При создании копий для маскировки могут применяться следующие технологии:
- шифрование – вирус состоит из двух функциональных кусков: собственно вирус и шифратор. Каждая копия вируса состоит из шифратора, случайного ключа и собственно вируса, зашифрованного этим ключом;
- метаморфизм – создание различных копий вируса путём замены блоков команд на эквивалентные, перестановки местами кусков кода, вставки между значащими кусками кода «мусорных» команд, которые практически ничего не делают.
Сочетание этих двух технологий приводит к появлению следующих типов вирусов.
- шифрованный вирус– вирус, использующий простое шифрование со случайным ключом и неизменный шифратор. Такие вирусы легко обнаруживаются по сигнатуре шифратора;
- метаморфный вирус– вирус, применяющий метаморфизм ко всему своему телу для создания новых копий;
- полиморфный вирус– вирус, использующий метаморфный шифратор для шифрования основного тела вируса со случайным ключом. При этом часть информации, используемой для получения новых копий шифратора, также может быть зашифрована. Например, вирус может реализовывать несколько алгоритмов шифрования и при создании новой копии менять не только команды шифратора, но и сам алгоритм.
Полиморфные вирусы можно делить на классы по уровню полиморфизма.
Пик популярности полиморфных вирусов пришёлся на времена DOS, тем не менее, и позднее полиморфизм использовался во множестве вирусов, продолжает использоваться полиморфизм и сегодня.
Примеры. Упомянутый выше Email-Worm.Win32.Bagle.p является полиморфным вирусом.
Одним из наиболее сложных и относительно поздних полиморфных вирусов является Virus.Win32.Etap. При заражении файла вирус перестраивает и шифрует собственный код, записывает его в одну из секций заражаемого файла, после чего ищет в коде файла вызов функции ExitProcess и заменяет его на вызов вирусного кода. Таким образом, вирус получает управление не перед выполнением исходного кода заражённого файла, а после него.
Внедрение вирусных копий может осуществляться двумя принципиально разными методами:
- внедрение вирусного кода непосредственно в заражаемый объект;
- замена объекта на вирусную копию. Замещаемый объект, как правило, переименовывается.
Для вирусов характерным является преимущественно первый метод. Второй метод намного чаще используется червями и троянами, а точнее троянскими компонентами червей, поскольку трояны сами по себе не распространяются.
Пример. Один из немногих почтовых червей, распространяющихся по почтовой книге The Bat! – Email-Worm.Win32.Stator.a, помимо всего прочего заражает некоторые файлы Windows по принципу вируса-компаньона. В частности, к заражаемым файлам относятся: mplayer.exe, winhlp32.exe, notepad.exe, control.exe, scanregw.exe. При заражении файлы переименовываются в расширение .VXD, а вирус создаёт свои копии под оригинальными именами заражаемых файлов. После получения управления вирус запускает соответствующий переименованный оригинальный файл.
В качестве варианта второго метода во времена DOS применялся следующий приём. При наборе имени исполняемого файла без указания расширения, DOS ищет по порядку сперва BAT, затем COM и в конце концов EXE-файл. Соответственно, вирусная копия создавалась в одном каталоге с EXE-файлом, дублируя его имя и принимая расширение COM. Таким образом, при попытке запустить данный EXE-файл без явного указания расширения сначала запускался вирус.
Аналогичный приём может использоваться и в Windows-системах, но поскольку основная масса пользователей Windows редко пользуется запуском файлов из командной строки, эффективность этого метода будет низкой.
5.1.2. Черви
К сожалению, определение червя отсутствует в государственных стандартах и распорядительных документах, поэтому здесь приведено лишь интуитивное определение, дающее представление о принципах работы и выполняемых функциях этого типа вредоносных программ.
Червь (сетевой червь) – тип вредоносных программ, распространяющихся по сетевым каналам, способных к автономному преодолению систем защиты автоматизированных и компьютерных сетей, а также к созданию и дальнейшему распространению своих копий, не всегда совпадающих с оригиналом, и осуществлению иного вредоносного воздействия.
Так же как для вирусов, жизненный цикл червей можно разделить на определённые стадии:
1) проникновение в систему;
2) активация;
3) поиск «жертв»;
4) подготовка копий;
5) распространение копий.
Стадии 1 и 5, вообще говоря, симметричны и характеризуются в первую очередь используемыми протоколами и приложениями.
Стадия 4 – Подготовка копий – практически ничем не отличается от аналогичной стадии в процессе размножения вирусов. Сказанное о подготовке копий вирусов без изменений применимо и к червям.
На этапе проникновения в систему черви делятся преимущественно по типам используемых протоколов:
- сетевые черви– черви, использующие для распространения протоколы Интернета и локальных сетей. Обычно этот тип червей распространяется с использованием неправильной обработки некоторыми приложениями базовых пакетов стека протоколов tcp/ip;
- почтовые черви– черви, распространяющиеся в формате сообщений электронной почты;
- IRC-черви– черви, распространяющиеся по каналам IRC (Internet Relay Chat);
- P2P-черви– черви, распространяющиеся при помощи пиринговых (peer-to-peer) файлообменных сетей;
- IM-черви– черви, использующие для распространения системы мгновенного обмена сообщениями (IM, Instant Messenger – ICQ, MSN Messenger, AIM и др.).
Примеры. Классическими сетевыми червями являются представители семейства Net-Worm.Win32.Sasser. Эти черви используют уязвимость в службе LSASS Microsoft Windows. При размножении червь запускает FTP-службу на TCP-порту 5554, после чего выбирает IP-адрес для атаки и отсылает запрос на порт 445 по этому адресу, проверяя, запущена ли служба LSASS. Если атакуемый компьютер отвечает на запрос, червь посылает на этот же порт эксплойт уязвимости в службе LSASS, в результате успешного выполнения которого на удалённом компьютере запускается командная оболочка на TCP-порту 9996. Через эту оболочку червь удалённо выполняет загрузку копии червя по протоколу FTP с запущенного ранее сервера и удалённо же запускает себя, завершая процесс проникновения и активации.
В качестве примера почтового червя можно рассмотреть Email-Worm.Win32.Zafi.d. Заражённое сообщение включает в себя выбираемые из некоторого списка тему и текст, содержанием которых является поздравление с праздником (большая часть – с Рождеством) и предложение ознакомиться с поздравительной открыткой во вложении. Поздравления могут быть на разных языках. Имя находящегося во вложении файла червя состоит из слова postcard на языке, соответствующем поздравлению, и произвольного набора символов. Расширение файла червя случайным образом выбирается из списка .BAT, .COM, .EXE, .PIF, .ZIP. Для рассылки червь использует адреса электронной почты, найденные на заражённом компьютере. Чтобы получить управление, червь должен быть запущен пользователем.
IRC-Worm.Win32.Golember.a является, как следует из названия, IRC-червем. При запуске он сохраняет себя в каталоге Windows под именем trlmsn.exe и добавляет в раздел автозапуска реестра Windows параметр со строкой запуска этого файла. Кроме этого, червь сохраняет на диск свою копию в виде архива Janey2002.zip и файл-изображение Janey.jpg. Затем червь подключается к произвольным IRC-каналам под различными именами и начинает слать определённые текстовые строки, имитируя активность обычного пользователя. Параллельно всем пользователям этих каналов отсылается заархивированная копия червя.
Функциональностью распространения через P2P-каналы обладают многие сетевые и почтовые черви. Например, Email-Worm.Win32.Netsky.q для размножения через файлообменные сети ищет на локальном диске каталоги, содержащие названия наиболее популярных сетей или же слово «shared», после чего кладёт в эти каталоги свои копии под различными названиями.
IM-черви редко пересылают зараженные файлы непосредственно между клиентами. Вместо этого они рассылают ссылки на заражённые веб-страницы. Так, червь IM-Worm.Win32.Kelvir.k посылает через MSN Messenger сообщения, содержащие текст «its you» и ссылку «http://www. malignancy.us/[removed]/pictures.php?email=[email]», по указанному в которой адресу расположен файл червя.
Сегодня наиболее многочисленную группу составляют почтовые черви. Сетевые черви также являются заметным явлением, но не столько из-за количества, сколько из-за качества: эпидемии, вызванные сетевыми червями, зачастую отличаются высокой скоростью распространения и большими масштабами. IRC-, P2P- и IM-черви встречаются достаточно редко, чаще IRC, P2P и IM служат альтернативными каналами распространения для почтовых и сетевых червей.
На этапе активации черви делятся на две большие группы, отличающиеся как по технологиям, так и по срокам жизни:
1. Для активации необходимо активное участие пользователя.
2. Для активации участие пользователя не требуется вовсе либо достаточно лишь пассивного участия.
Под пассивным участием пользователя во второй группе понимается, например, просмотр писем в почтовом клиенте, при котором пользователь не открывает вложенные файлы, но его компьютер, тем не менее, оказывается заражённым.
Отличие в этих подходах глубже, чем может показаться на первый взгляд. Активация сетевого червя без участия пользователя всегда означает, что червь использует бреши в безопасности программного обеспечения компьютера. Это приводит к очень быстрому распространению червя внутри корпоративной сети с большим числом станций, существенно увеличивает загрузку каналов связи и может полностью парализовать сеть. Именно этот метод активации использовали черви Lovesan и Sasser. В результате вызванной таким сетевым червем эпидемии используемая брешь закрывается администраторами либо пользователями, и по мере уменьшения компьютеров с открытой брешью эпидемия завершается. Для повторения эпидемии разработчикам вирусов приходится эксплуатировать другую брешь. В итоге эпидемии, вызванные активными червями, существеннее влияют на работу сети в целом, однако случаются значительно реже, чем эпидемии пассивных сетевых червей. Обязательной мерой защиты от таких эпидемий является своевременная установка заплат безопасности. Отметим также, что особенно уязвимыми для этого типа червей являются операционные системы с заложенными возможностями удалённого управления или запуска программ – это семейство Microsoft Windows NT/2000/XP/2003.
Пример. Уязвимость в службе LSASS, впервые использованная в черве MyDoom в начале 2004 г., продолжала успешно применяться и спустя полтора года. Так, Net-Worm.Win32.Mytob.be, обнаруженный в июне 2005 г., всё ещё использовал эту уязвимость как один из способов распространения в дополнение к распространению через электронную почту.
С другой стороны, активное участие пользователя в активации червя означает, что пользователь был введён в заблуждение методами социальной инженерии. В большинстве случаев основным фактором служит форма подачи инфицированного сообщения: оно может имитировать письмо от знакомого человека (включая электронный адрес, если знакомый уже заражён), служебное сообщение от почтовой системы или же что-либо подобное, столь же часто встречающееся в потоке обычной корреспонденции. Пользователь в суматохе просто не отличает обычное письмо от заражённого и производит запуск автоматически.
Защититься заплатами от такого рода червей невозможно. Даже внесение сигнатуры сетевого червя в вирусную базу данных не решает проблему до конца. Разработчикам вируса достаточно изменить исполняемый файл так, чтобы антивирус его не обнаруживал, и незначительно поменять текст сообщения, в том числе используя и технологии спам-рассылок, применяемые для обхода фильтров.
В результате эпидемии, вызванные пассивными сетевыми червями, могут быть гораздо продолжительнее и порождать целые семейства однотипных сетевых червей.
В последнее время наметилась тенденция к совмещению в червях обоих способов распространения. Многие представители семейства Mytob обладают функциями распространения через электронную почту и через уязвимость в службе LSASS.
Способ поиска компьютера-жертвы полностью базируется на используемых протоколах и приложениях. В частности, если речь идёт о почтовом черве, производится сканирование файлов компьютера на предмет наличия в них адресов электронной почты, по которым в результате и производится рассылка копий червя.
Точно так же интернет-черви сканируют диапазон IP-адресов в поисках уязвимых компьютеров, а P2P черви кладут свои копии в общедоступные каталоги клиентов пиринговых сетей. Некоторые черви способны эксплуатировать списки контактов интернет-пейджеров, таких как ICQ, AIM, MSN Messenger, Yahoo! Messenger и др.
Сказанное ранее о подготовке копий для распространения вирусов применимо и для червей.
Наиболее часто среди червей встречаются упрощённые реализации метаморфизма. Некоторые черви способны рассылать свои копии в письмах как с внедрением скрипта, приводящего к автоматической активации червя, так и без внедрения. Такое поведение червя обусловлено двумя факторами: скрипт автоматической активации повышает вероятность запуска червя на компьютере пользователя, но при этом уменьшает вероятность проскочить антивирусные фильтры на почтовых серверах.
Аналогично, черви могут менять тему и текст инфицированного сообщения, имя, расширение и даже формат вложенного файла – исполняемый модуль может быть приложен как есть или в заархивированном виде. Всё это нельзя считать мета- или полиморфизмом, но определённой долей изменчивости черви, безусловно, обладают.
5.1.3. Трояны
Приведём интуитивное определение троянской программы, или трояна.
Троян (троянский конь) – тип вредоносных программ, основной целью которых является вредоносное воздействие по отношению к компьютерной системе. Трояны отличаются отсутствием механизма создания собственных копий. Некоторые трояны способны к автономному преодолению систем защиты КС с целью проникновения и заражения системы. В общем случае троян попадает в систему вместе с вирусом либо червем в результате неосмотрительных действий пользователя или же активных действий злоумышленника.
В силу отсутствия у троянов функций размножения и распространения их жизненный цикл крайне короток – всего три стадии:
- проникновение на компьютер;
- активация;
- выполнение заложенных функций.
Это, само собой, не означает малого времени жизни троянов. Напротив, троян может длительное время незаметно находиться в памяти компьютера, никак не выдавая своего присутствия, до тех пор пока не будет обнаружен антивирусными средствами.
Задачу проникновения на компьютер пользователя трояны решают обычно одним из двух следующих методов.
1. Маскировка– троян выдаёт себя за полезное приложение, которое пользователь самостоятельно загружает из Интернет и запускает. Иногда пользователь исключается из этого процесса за счёт размещения на web-странице специального скрипта, который, используя дыры в браузере, автоматически инициирует загрузку и запуск трояна.
Пример. Trojan.SymbOS.Hobble.a является архивом для операционной системы Symbian (SIS-архивом). При этом он маскируется под антивирус Symantec и носит имя symantec.sis. После запуска на смартфоне троян подменяет оригинальный файл оболочки FExplorer.app на повреждённый. В результате при следующей загрузке операционной системы большинство функций смартфона оказываются недоступными.
Одним из вариантов маскировки может быть также внедрение злоумышленником троянского кода в код другого приложения. В этом случае распознать троян ещё сложнее, так как заражённое приложение может открыто выполнять какие-либо полезные действия, но при этом тайком наносить ущерб за счёт троянских функций.
Распространён также способ внедрения троянов на компьютеры пользователей через веб-сайты. При этом используется либо вредоносный скрипт, загружающий и запускающий троянскую программу на компьютере пользователя, используя уязвимость в веб-браузере, либо методы социальной инженерии – наполнение и оформление веб-сайта провоцирует пользователя к самостоятельной загрузке трояна. При таком методе внедрения может использоваться не одна копия трояна, а полиморфный генератор, создающий новую копию при каждой загрузке. Применяемые в таких генераторах технологии полиморфизма обычно не отличаются от вирусных полиморфных технологий.
2. Кооперация с вирусами и червями– троян путешествует вместе с червями или, реже, с вирусами. В принципе, такие пары «червь-троян» можно рассматривать целиком как составного червя, но в сложившейся практике принято троянскую составляющую червей, если она реализована отдельным файлом, считать независимым трояном с собственным именем. Кроме того, троянская составляющая может попадать на компьютер позже, чем файл червя.
Пример. Используя backdoor-функционал червей семейства Bagle, автор червя проводил скрытую инсталляцию трояна SpamTool.Win32. Small.b, который собирал и отсылал на определённый адрес электронной почты, имевшийся в файлах на заражённом компьютере.
Нередко наблюдается кооперация червей с вирусами, когда червь обеспечивает транспортировку вируса между компьютерами, а вирус распространяется по компьютеру, заражая файлы.
Пример. Известный в прошлом червь Email-Worm.Win32.Klez.h при заражении компьютера также запускал на нём вирус Virus.Win32.Elkern.c. Зачем это было сделано, сказать тяжело, поскольку вирус сам по себе, кроме заражения и связанных с ошибками в коде вредоносных проявлений (явно выраженных вредоносных процедур в нём нет), никаких действий не выполняет, т.е. не является «усилением» червя в каком бы то ни было смысле.
Здесь приёмы те же, что и у червей: ожидание запуска файла пользователем либо использование уязвимостей для автоматического запуска.
В отличие от вирусов и червей, деление которых на типы производится по способам размножения/распространения, трояны делятся на типы по характеру выполняемых ими вредоносных действий. Наиболее распространены следующие виды троянов.
- Клавиатурные шпионы– трояны, постоянно находящиеся в памяти и сохраняющие все данные, поступающие от клавиатуры с целью последующей передачи этих данных злоумышленнику. Обычно таким образом злоумышленник пытается узнать пароли или другую конфиденциальную информацию.
Пример. В прошлом, буквально пару лет назад ещё встречались клавиатурные шпионы, которые фиксировали все нажатия клавиш и записывали их в отдельный файл. Trojan-Spy.Win32.Small.b, например, в бесконечном цикле считывал коды нажимаемых клавиш и сохранял их в файле C:\SYS.
Современные программы-шпионы оптимизированы для сбора информации, передаваемой пользователем в Интернет, поскольку среди этих данных могут встречаться логины и пароли к банковским счетам, PIN-коды кредитных карт и прочая конфиденциальная информация, относящаяся к финансовой деятельности пользователя. Trojan-Spy.Win32.Agent.fa отслеживает открытые окна Internet Explorer и сохраняет информацию с посещаемых пользователем сайтов, ввод клавиатуры в специально созданный файл servms.dll в системном каталоге Windows.
- Похитители паролей– трояны, также предназначенные для получения паролей, но не использующие слежение за клавиатурой. В таких троянах реализованы способы извлечения паролей из файлов, в которых эти пароли хранятся различными приложениями.
Пример. Trojan-PSW.Win32.LdPinch.kw собирает сведения о системе, а также логины и пароли для различных сервисов и прикладных программ – мессенджеров, почтовых клиентов, программ дозвона. Часто эти данные оказываются слабо защищены, что позволяет трояну их получить и отправить злоумышленнику по электронной почте.
- Утилиты удалённого управления– трояны, обеспечивающие полный удалённый контроль над компьютером пользователя. Существуют легальные утилиты такого же свойства, но они отличаются тем, что сообщают о своём назначении при установке или же снабжены документацией, в которой описаны их функции. Троянские утилиты удалённого управления, напротив, никак не выдают своего реального назначения, так что пользователь и не подозревает о том, что его компьютер подконтролен злоумышленнику. Наиболее популярная утилита удалённого управления – Back Orifice.
Пример. Backdoor.Win32.Netbus.170 предоставляет полный контроль над компьютером пользователя, включая выполнение любых файловых операций, загрузку и запуск других программ, получение снимков экрана и т.д.
- Люки (backdoor)– трояны, предоставляющие злоумышленнику ограниченный контроль над компьютером пользователя. От утилит удалённого управления отличаются более простым устройством и, как следствие, небольшим количеством доступных действий. Тем не менее, обычно одними из действий являются возможность загрузки и запуска любых файлов по команде злоумышленника, что позволяет при необходимости превратить ограниченный контроль в полный.
Пример. В последнее время backdoor-функционал стал характерной чертой червей. Например, Email-Worm.Win32.Bagle.at использует порт 81 для получения удалённых команд или загрузки троянов, расширяющих функционал червя.
Есть и отдельные трояны типа backdoor. Троян Backdoor.win32. Wootbot.gen использует IRC-канал для получения команд от «хозяина». По команде троян может загружать и запускать на выполнение другие программы, сканировать другие компьютеры на наличие уязвимостей и устанавливать себя на компьютеры через обнаруженные уязвимости.
- Анонимные smtp-сервера и прокси– трояны, выполняющие функции почтовых серверов или прокси и использующиеся в первом случае для спам-рассылок, а во втором – для заметания следов хакерами.
Пример. Трояны из семейства Trojan-Proxy.Win32.Mitglieder распространяются с различными версиями червей Bagle. Троян запускается червем, открывает на компьютере порт и отправляет автору вируса информацию об IP-адресе заражённого компьютера. После этого компьютер может использоваться для рассылки спама.
- утилиты дозвона– сравнительно новый тип троянов, представляющий собой утилиты dial-up доступа в Интернет через дорогие почтовые службы. Такие трояны прописываются в системе как утилиты дозвона по умолчанию и влекут за собой огромные счета за пользование Интернетом.
Пример. Trojan.Win32.Dialer.a при запуске осуществляет дозвон в Интернет через платные почтовые службы. Никаких других действий не производит, в том числе не создаёт ключей в реестре, т.е. даже не регистрируется в качестве стандартной программы дозвона и не обеспечивает автозапуск.
- Модификаторы настроек браузера– трояны, которые меняют стартовую страницу в браузере, страницу поиска или ещё какие-либо настройки, открывают дополнительные окна браузера, имитируют нажатия на баннеры и т.п.
Пример. Trojan-Clicker.JS.Pretty обычно содержится в html-стра-ницах. Он открывает дополнительные окна с определёнными веб-стра-ницами и обновляет их с заданным интервалом.
- Логические бомбы– чаще не столько трояны, сколько троянские составляющие червей и вирусов, суть работы которых состоит в том, чтобы при определённых условиях (дата, время суток, действия пользователя, команда извне) произвести определённое действие, например уничтожение данных.
Пример. Virus.Win9x.CIH, Macro.Word97.Thus.
Черви и вирусы могут осуществлять все те же действия, что и трояны (см. предыд. п.). На уровне реализации это могут быть как отдельные троянские компоненты, так и встроенные функции. Кроме этого, за счёт массовости для вирусов и червей характерны также другие формы вредоносных действий:
- Перегрузка каналов связи– свойственный червям вид ущерба, связанный с тем, что во время масштабных эпидемий по интернет-каналам передаются огромные количества запросов, заражённых писем или непосредственно копий червя. В ряде случаев пользование услугами Интернета во время эпидемии становится затруднительным. Пример: Net-Worm.Win32.Slammer.
- DDoS атаки– благодаря массовости, черви могут эффективно использоваться для реализации распределённых атак на отказ в обслуживании (DDoS атак). В разгар эпидемии, когда заражёнными являются миллионы и даже десятки миллионов компьютеров, обращение всех инфицированных систем к определённому интернет-ресурсу приводит к полному блокированию этого ресурса. Так, во время атаки червя MyDoom сайт компании SCO был недоступен в течение месяца. Примеры: Net-Worm.Win32.CodeRed.a – не совсем удачная атака на www.whitehouse.gov, Email-Worm.Win32.Mydoom.a – удачная атака на www.sco.com.
- Потеря данных– более характерное для вирусов, чем для троянов и червей, поведение, связанное с намеренным уничтожением определённых данных на компьютере пользователя. Примеры: Virus.Win9x.CIH – удаление стартовых секторов дисков и содержимого Flash BIOS; Macro.Word97.Thus – удаление всех файлов на диске C:; Email-Worm.Win32.Mydoom.e – удаление файлов с определёнными расширениями в зависимости от показателя счётчика случайных чисел.
- Нарушение работы ПО– также более свойственная вирусам черта. Из-за ошибок в коде вируса заражённые приложения могут работать с ошибками или не работать вовсе. Пример: Net-Worm.Win32.Sasser.a – перезагрузка заражённого компьютера.
- Загрузка ресурсов компьютера– интенсивное использование ресурсов компьютера вредоносными программами ведёт к снижению производительности как системы в целом, так и отдельных приложений. Пример: в разной степени – любые вредоносные программы.
Наличие деструктивных действий вовсе не является обязательным критерием для классификации программного кода как вирусного. Следует также отметить, что одним только процессом саморазмножения вирус способен причинить колоссальный ущерб. Наиболее яркий пример – Net-Worm.Win32.Slammer.
5.1.4. Угрозы безопасности информации
Рассмотрим угрозы безопасности информации с точки зрения вирусов. Учитывая тот факт, что общее число вирусов по состоянию на сегодня превосходит 100 000, проанализировать угрозы со стороны каждого из них является слишком трудоёмкой и бесполезной задачей, поскольку ежедневно возрастает количество вирусов, а значит, необходимо ежедневно модифицировать полученный список. В этой работе мы будем считать, что вирус способен реализовать любую из угроз безопасности информации.
Существует множество способов классификации угроз безопасности информации, которая обрабатывается в автоматизированной системе. Наиболее часто используется классификация угроз по результату их влияния на информацию, а именно – нарушение конфиденциальности, целостности и доступности.
Для каждой угрозы существует несколько способов её реализации со стороны вирусов.
Угроза нарушения конфиденциальности:
- кража информации и её распространение с помощью штатных средств связи либо скрытых каналов передачи: Email-Worm.Win32.Sircam – рассылал вместе с вирусными копиями произвольные документы, найденные на заражённом компьютере;
- кража паролей доступа, ключей шифрования и пр.: любые трояны, крадущие пароли, Trojan-PSW.Win32.LdPinch.gen;
- удалённое управление: Backdoor.Win32.NetBus, Email-Worm.Win32. Bagle (backdoor-функциональность).
Угроза нарушения целостности:
- модификация без уничтожения (изменение информации): любой паразитирующий вирус;
- модификация посредством уничтожения либо шифрации (удаление некоторых типов документов): Virus.DOS.OneHalf – шифрование содержимого диска, Virus.Win32.Gpcode.f – шифрует файлы с определёнными расширениями, после чего самоуничтожается, оставляя рядом с зашифрованными файлами координаты для связи по вопросам расшифровки файлов;
- модификация путём низкоуровневого уничтожения носителя (форматирование носителя, уничтожение таблиц распределения файлов): Virus.MSWord.Melissa.w – 25 декабря форматирует диск C:.
Угроза нарушения доступности:
- загрузка каналов передачи данных большим числом пакетов: Net-Worm.Win32.Slammer – непрерывная рассылка инфицированных пакетов в бесконечном цикле;
- любая деятельность, результатом которой является невозможность доступа к информации; различные звуковые и визуальные эффекты: Email-Worm.Win32.Bagle.p – блокирование доступа к сайтам антивирусных компаний;
- вывод компьютера из строя путём уничтожения либо порчи критических составляющих (уничтожение Flash BIOS): Virus.Win9x.CIH – порча Flash BIOS.
Как несложно было убедиться, для каждого из приведённых выше способов реализации угроз можно привести конкретный пример вируса, реализующего один или одновременно несколько способов.
Вредоносные программы отличаются условиями существования, применяемыми технологиями на различных этапах жизненного цикла, собственно вредоносным воздействием – все эти факторы и являются основой для классификации. В результате по основному (с исторической точки зрения) признаку – размножению – вредоносные программы делятся на три типа: собственно вирусы, черви и трояны.
Независимо от типа вредоносные программы способны наносить значительный ущерб, реализуя любые угрозы информации – угрозы нарушения целостности, конфиденциальности, доступности. В связи с этим при проектировании комплексных систем антивирусной защиты и даже в более общем случае – комплексных систем защиты информации необходимо проводить градацию и классифицировать объекты сети по важности обрабатываемой на них информации и по вероятности заражения этих узлов вирусами.
Дата добавления: 2015-08-26; просмотров: 5097;