Компьютерные вирусы и их классификация по основной вредоносной функциональности
Компьютерный вирус — разновидность компьютерных программ или вредоносный код, отличительной особенностью которых является способность к размножению (саморепликация). В дополнение к этому вирусы могут без ведома пользователя выполнять прочие произвольные действия, в том числе наносящие вред пользователю и/или компьютеру. Создание и распространение вредоносных программ (в том числе вирусов) преследуется в России согласно Уголовному кодексу РФ (глава 28, статья 273). Согласно доктрине информационной безопасности РФ, в России должен проводиться правовой ликбез в школах и вузах при обучении информатике и компьютерной грамотности по вопросам защиты информации в ЭВМ, борьбы с компьютерными вирусами, детскими порносайтами и обеспечению информационной безопасности в сетях ЭВМ. В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы: а) по поражаемым объектам: · файловые вирусы, · загрузочные вирусы, · скриптовые вирусы, · макровирусы, · вирусы, поражающие исходный код; б) по поражаемым операционным системам и платформам: · DOS, · Microsoft Windows, · Unix, · Linux; в) по технологиям, используемым вирусом: · полиморфные вирусы, · стелс-вирусы, · руткиты; г) по языку, на котором написан вирус: · ассемблер, · высокоуровневый язык программирования, · скриптовый язык и др.; д) по дополнительной вредоносной функциональности: · бэкдоры, · кейлоггеры, · шпионы, · ботнеты и др.. Файловый вирус (англ. Fileinfector) — компьютерный вирус, распространяющийся путем внедрения своего кода в тело исполняемых файлов (двоичные файлы (EXE, COM), файлы динамических библиотек (DLL), драйверы (SYS), командные файлы (BAT, CMD) и другие). Наиболее распространенным способом является внедрение в конец файла. При этом основной код дописывается в конец файла, а в его начало записывается команда перехода к телу вируса. При каждом запуске такого заражённого файла сначала выполняется код вируса, и только потом — код самой программы. После того как вирус получил управление, он выполняет следующие действия: 1. Восстанавливает в оперативной памяти компьютера исходную программу для последующего её выполнения. 2. Осуществляет дальнейшее заражение, инфицируя другие файлы или оперативную память компьютера. 3. Выполняет иные деструктивные действия. Различают резидентные и нерезидентные файловые вирусы. Первые загружают в оперативную память резидентную часть, которая впоследствии может отслеживать открываемые пользователем файлы, заражая их. Нерезидентные вирусы, после того как получили управление, производят поиск файлов для заражения в текущем и (или) корневом каталогах, либо в каталогах, указанных в системной переменной среды PATH. Макровирус — это разновидность компьютерных вирусов разработанных на макроязыках, встроенных в такие прикладные пакеты ПО, как Microsoft Office. Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносятся из одного зараженного файла в другие. Большая часть таких вирусов написана для MS Word. Полиморфизм заключается в формировании программного кода вредоносной программы «на лету» — уже во время исполнения, при этом сама процедура, формирующая код, также не должна быть постоянной и видоизменяется при каждом новом заражении. Зачастую, изменение кода достигается путем добавления операторов, не изменяющих алгоритм работы программного кода (например, оператор NOP).Постоянное видоизменение программного кода полиморфных вирусов не позволяет создать универсальную сигнатуру для данного образца вредоносной программы. На сегодняшний день, для противодействия данному методу в антивирусном программном обеспечении применяются такие технологии, как эвристический анализ и эмуляция. Стелс-вирус (англ. stealthvirus — вирус-невидимка) — вирус, полностью или частично скрывающий свое присутствие в системе, путем перехвата обращений к операционной системе, осуществляющих чтение, запись, чтение дополнительной информации о зараженных объектах (загрузочных секторах, элементах файловой системы, памяти и т. д.). Название данного типа вирусов происходит от названия малозаметных истребителей «Стелс». Оно подчеркивает, что такие вирусы могут оставаться незамеченными для антивирусных программ. Виды Stealth-вирусов: 1. Загрузочный вирус перехватывает функцию ОС, предназначенную для посекторного доступа к дискам, с целью «показать» пользователю или программе-антивирусу оригинальное содержимое сектора до заражения. 2. Файловый вирус перехватывает функции чтения/установки позиции в файле, чтения/записи в файл, чтения каталога и т. д., чтобы скрыть увеличение размера зараженных программ; перехватывает функции чтения/записи/отображения файла в память, чтобы скрыть факт изменения файла. 3. Макровирусы. Реализовать стелс-алгоритм в макровирусах достаточно просто, нужно запретить вызов меню File/Templase или Tools/Macro, достичь этого можно удалением пунктов меню из списка либо их подменой на макросы FileTemplase и ToolsMacro. Также стелс-вирусами можно назвать макровирусы, которые свой основной код хранят не в самом макросе, а в других областях документа. Руткит (англ. rootkit, т.е. «набор root'а») — программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе. Этот набор, как правило, включает в себя разнообразные утилиты для «заметания следов» вторжения в систему, делает незаметными снифферы, сканеры, кейлоггеры, троянские программы, замещающие основные утилиты UNIX (в случае неядерного руткита). Rootkit позволяет взломщику закрепиться во взломанной системе и скрыть следы своей деятельности путём сокрытия файлов, процессов, а также самого присутствия руткита в системе. Основные методы реализации руткитов: 1. В Microsoft Windows. Из-за Windows FileProtection переписывание системных файлов затруднено, поэтому основные способы внедрения в систему: · модификация памяти:перехват системных функций Windows API на уровне пользователя;то же на уровне ядра;изменение системных структур данных; · загрузка до ядра операционной системы — буткиты. 2. В UNIX: · реализуемые подменой основных системных утилит; · реализованные в виде модуля ядра; · основанные на модификации физической памяти ядра.
|