Полиморфные вирусы стелс-вирусы руткиты
Давным-давно, когда компьютерные вирусы могли только портить файлы и выводить веселые сообщения на принтер, никто даже не задумывался о том, что за каких-нибудь пятнадцати лет своего развития, вирусы станут чумой электронной коммерции и всерьез поставят под удар конфиденциальность пользовательской информации.
Благодаря хакерам, ступившим на тернистый путь, компьютерные вирусы постоянно совершенствовались: наращивался их функционал, создавались зловреды под разнообразные операционные системы и устройства, а обнаруживать заражение системы становилось все сложнее и сложнее.
Для лучшей классификации компьютерных вирусов, они были разделены на виды:
- По поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код).
- По поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux).
- По технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты).
- По языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.).
- По дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).
Что же дает нам такая классификация? В первую очередь - информацию о степени опасности компьютерного вируса и о возможном ущербе, причиненным им.
Давайте посмотрим, какие разновидности компьютерных вирусов наиболее распространены, и какие опасности они несут.
Трояны
Таким же образом происходит заражение компьютера одноименным вирусом. Троянский конь маскируется под полезные и нужные программы, а иногда просто склеивается с ними с помощью утилиты под названием SUPER GLUE, или аналогичной. Сам троян размножаться не умеет, и в этом состоит его отличие от обычного вируса, заражающего исполняемые файлы. В основном, в задачи троянского коня входит кража паролей с последующей передачей их злоумышленнику, хотя некоторые троянцы имеют возможность скачивания и установки других компьютерных вирусов, например бэкдоров или шпионского ПО.
Бэкдоры
Представляют собой программы для скрытого и несанкционированного удаленного управления пользовательским компьютером. Опасность заражения бэкдором состоит в том, что злоумышленнику доступен полный контроль над компьютером, в том числе и наблюдение за действиями пользователя.
Spyware
Шпионское программное обеспечение, не предоставляющее злоумышленнику полного доступа к системе, в задачи которого входит сбор и отправка злоумышленнику самой разнообразной информации - от персональных данных и конфигурации компьютера до введенного с клавиатуры текста и паролей к аккаунтам платежных систем, а также информации о посещенных сайтах.
Руткиты
Предназначены для скрытия деятельности злоумышленника или вредоносного ПО посредством перехвата и подмены результата программных и системных запросов. Основная задача - сделать невозможным обнаружение действий другого вируса (например, бэкдора) для пользователя и антивирусных программ.
Сетевой червь
Разновидность вируса, самостоятельно распространяющейся через локальные и глобальные компьютерные сети с помощью уязвимостей и ошибок администрирования в программном обеспечении, установленном на компьютере. Есть виды сетевых червей, которые провоцируют пользователя запустить вирус вручную, например всем известный червь ILOVEYOU рассылал себя в письме с темой "Я люблю тебя". Внутри письма содержался скрипт, заражающий компьютер. Многие открывали письмо с такой откровенной и волнующей темой, самостоятельно заражая свой компьютер.
Стелс-вирус
Вирус-невидимка, полностью или частично скрывающий свое присутствие в системе, путем перехвата обращений к операционной системе, осуществляющих чтение, запись, чтение дополнительной информации о зараженных объектах. Напоминает сочетание руткита и другого компьютерного вируса, объединенных в один исполняемый файл. Может выполнять самые разнообразные вредоносные функции.
Боты
Вирусы, превращающие зараженные компьютеры в зомби. Такой компьютер позволяет хакерам удаленно администрировать систему, и с помощью этого совершать различные нужные действия. Группа таких компьютеров называется ботнет. Ботнет обычно используется для нелегальной или неодобряемой деятельности - рассылки спама, перебора паролей на удалённой системе с целью взлома, а также атак на сайты и серверы в интернете
Всю опасность компьютерных вирусов можно оценить, зная несколько примечательных фактов.
Так, например, 26 апреля 1999 года весь компьютерный мир взорвала новость о начале эпидемии червя Melissa. Червь распространялся по электронной почте, отправляя себя по 50 контрактам из адресной книги пользователя, чем вызвал не только массовое заражение компьютеров, но и перегрузку почтовых серверов.
А в 2000 году другой компьютерный червь, вышеупомянутый ILOVEYOU, частично или полностью поразил компьютерные сети ЦРУ, NASA, Министерства энергетики, конгресса США, Пентагона, британской палаты общин и еще множества других организаций. Ущерб, нанесенный червем в первые дни своей активности, был оценен в девять миллиардов долларов.
А всего два года назад, используя практически повсеместную уязвимость MS08-067 операционной системы Windows, вирус Conficker (известный также как Kido) за несколько дней смог заразить миллионы компьютеров, а собранный им ботнет функционирует до сих пор.
В июне 2010 года был обнаружен еще один червь под названием Stuxnet, заразивший огромное количество компьютеров по всему миру, причем не только обычные персоналки, но и компьютеры в промышленных системах, управляющих автоматизированными производственными процессами.
Поговорим о компьютерных вирусах? Нет, не о том, что вчера поймал ваш антивирус. Не о том, что вы скачали под видом инсталлятора очередного Photoshop. Не о rootkit-e, который стоит на вашем сервере, маскируясь под системный процесс. Не о поисковых барах, downloader-ах и другой малвари. Не о коде, который делает плохие вещи от вашего имени и хочет ваши деньги. Нет, всё это коммерция, никакой романтики…
В общем, для статьи вполне достаточно лирики, перейдем к делу. Я хочу рассказать о классическом вирусе, его структуре, основных понятиях, методах детектирования и алгоритмах, которые используются обеими сторонами для победы.
Мы будем говорить о вирусах, живущих в исполняемых файлах форматов PE и ELF, то есть о вирусах, тело которых представляет собой исполняемый код для платформы x86. Кроме того, пусть наш вирус не будет уничтожать исходный файл, полностью сохраняя его работоспособность и корректно инфицируя любой подходящий исполняемый файл. Да, ломать гораздо проще, но мы же договорились говорить о правильных вирусах, да? Чтобы материал был актуальным, я не буду тратить время на рассмотрение инфекторов старого формата COM, хотя именно на нем были обкатаны первые продвинутые техники работы с исполняемым кодом.
Начнём со свойств кода вируса. Чтобы код удобней было внедрять, разделять код и данные не хочется, поэтому обычно используется интеграция данных прямо в исполняемый код. Ну, например, так:
Все эти варианты кода при определенных условиях можно просто скопировать в память и сделать JMP на первую инструкцию. Правильно написав такой код, позаботившись о правильных смещениях, системных вызовах, чистоте стека до и после исполнения, и т.д., его можно внедрять внутрь буфера с чужим кодом.
Исполняемый файл (PE или ELF) состоит из заголовка и набора секций. Секции – это выровненные (см. ниже) буферы с кодом или данными. При запуске файла секции копируются в память и под них выделяется память, причем совсем необязательно того объёма, который они занимали на диске. Заголовок содержит разметку секций, и сообщает загрузчику, как расположены секции в файле, когда он лежит на диске, и каким образом необходимо расположить их в памяти перед тем, как передать управление коду внутри файла. Для нас интересны три ключевых параметра для каждой секции, это psize, vsize, и flags. Psize (physical size) представляет собой размер секции на диске. Vsize (virtual size) – размер секции в памяти после загрузки файла. Flags – атрибуты секции (rwx). Psize и Vsize могут существенно различаться, например, если программист объявил в программе массив в миллион элементов, но собирается заполнять его в процессе исполнения, компилятор не увеличит psize (на диске содержимое массива хранить до запуска не нужно), а вот vsize увеличит на миллион чего-то там (в runtime для массива должно быть выделено достаточно памяти).
Флаги (атрибуты доступа) будут присвоены страницам памяти, в которые секция будет отображена. Например, секция с исполняемым кодом будет иметь атрибуты r_x (read, execute), а секция данных атрибуты rw_ (read,write). Процессор, попытавшись исполнить код на странице без флага исполнения, сгенерирует исключение, то же касается попытки записи на страницу без атрибута w, поэтому, размещая код вируса, вирмейкер должен учитывать атрибуты страниц памяти, в которых будет располагаться код вируса. Стандартные секции неинициализированных данных (например, область стека программы) до недавнего времени имели атрибуты rwx (read, write, execute), что позволяло копировать код прямо в стек и исполнять его там. Сейчас это считается немодным и небезопасным, и в последних операционных системах область стека предназначена только для данных. Разумеется, программа может и сама изменить атрибуты страницы памяти в runtime, но это усложняет реализацию.
Также, в заголовке лежит Entry Point — адрес первой инструкции, с которой начинается исполнение файла.
Необходимо упомянуть и о таком важном для вирмейкеров свойстве исполняемых файлов, как выравнивание. Для того чтобы файл оптимально читался с диска и отображался в память, секции в исполняемых файлах выровнены по границам, кратным степеням двойки, а свободное место, оставшееся от выравнивания (padding) заполнено чем-нибудь на усмотрение компилятора. Например, логично выравнивать секции по размеру страницы памяти – тогда ее удобно целиком копировать в память и назначать атрибуты. Даже вспоминать не буду про все эти выравнивания, везде, где лежит мало-мальски стандартный кусок данных или кода, его выравнивают (любой программист знает, что в километре ровно 1024 метра). Ну а описание стандартов Portable Executable (PE) и Executable Linux Format (ELF) для работающего с методами защиты исполняемого кода – это настольные книжки.
Если мы внедрим свой код в позицию точно между инструкциями, то сможем сохранить контекст (стек, флаги) и, выполнив код вируса, восстановить все обратно, вернув управление программе-хосту. Конечно, с этим тоже могут быть проблемы, если используются средства контроля целостности кода, антиотладка и т.п., но об этом тоже во второй статье. Для поиска такой позиции нам необходимо вот что:
- поставить указатель точно на начало какой-нибудь инструкции (просто так взять рандомное место в исполняемой секции и начать дизассемблирование с него нельзя, один и тот же байт может быть и опкодом инструкции, и данными)
- определить длину инструкции (для архитектуры x86 инструкции имеют разные длины)
- переместить указатель вперед на эту длину. Мы окажемся на начале следующей инструкции.
- повторять, пока не решим остановиться
Это минимальный функционал, необходимый для того, чтобы не попасть в середину инструкции, а функция, которая принимает указатель на байтовую строку, а в ответ отдает длину инструкции, называется дизассемблером длин. Например, алгоритм заражения может быть таким:
- Выбираем вкусный исполняемый файл (достаточно толстый, чтобы в него поместилось тело вируса, с нужным распределением секций и т.п.).
- Читаем свой код (код тела вируса).
- Берем несколько первых инструкций из файла-жертвы.
- Дописываем их к коду вируса (сохраняем информацию, необходимую для восстановления работоспособности).
- Дописываем к коду вируса переход на инструкцию, продолжающую исполнение кода-жертвы. Таким образом, после исполнения собственного кода вирус корректно исполнит пролог кода-жертвы.
- Создаем новую секцию, записываем туда код вируса и правим заголовок.
- На место этих первых инструкций кладем переход на код вируса.
Это вариант вполне себе корректного вируса, который может внедриться в исполняемый файл, ничего не сломать, скрыто выполнить свой код и вернуть исполнение программе-хосту. Теперь, давайте его ловить.
Думаю, не надо описывать вам компоненты современного антивируса, все они крутятся вокруг одного функционала – антивирусного детектора. Монитор, проверяющий файлы на лету, сканирование дисков, проверка почтовых вложений, карантин и запоминание уже проверенных файлов – все это обвязка основного детектирующего ядра. Второй ключевой компонент антивируса – пополняемые базы признаков, без которых поддержание антивируса в актуальном состоянии невозможно. Третий, достаточно важный, но заслуживающий отдельного цикла статей компонент – мониторинг системы на предмет подозрительной деятельности.
Итак (рассматриваем классические вирусы), на входе имеем исполняемый файл и один из сотни тысяч потенциальных вирусов в нем. Давайте детектировать. Пусть это кусок исполняемого кода вируса:
Как мы увидели, для быстрого и точного сравнения детектору необходимы сами байты сигнатуры и ее смещение. Или, другим языком, содержимое кода и адрес его расположения в файле-хосте. Поэтому понятно, как развивались идеи сокрытия исполняемого кода вирусов – по двум направлениям:
- сокрытие кода самого вируса;
- сокрытие его точки входа.
Сокрытие кода вируса в результате вылилось в появление полиморфных движков. То есть движков, позволяющих вирусу изменять свой код в каждом новом поколении. В каждом новом зараженном файле тело вируса мутирует, стараясь затруднить обнаружение. Таким образом, затрудняется создание содержимого сигнатуры.
Сокрытие точки входа (Entry Point Obscuring) в результате послужило толчком для появления в вирусных движках автоматических дизассемблеров для определения, как минимум, инструкций перехода. Вирус старается скрыть место, с которого происходит переход на его код, используя из файла то, что в итоге приводит к переходу: JMP, CALL, RET всякие, таблицы адресов и т.п. Таким образом, вирус затрудняет указание смещения сигнатуры.
Гораздо более подробно некоторые алгоритмы таких движков и детектора мы посмотрим во второй статье, которую я планирую написать в ближайшее время.
Рассмотренный в статье детектор легко детектирует неполиморфные (мономорфными их назвать, что ли) вирусы. Ну а переход к полиморфным вирусам является отличным поводом, наконец, завершить эту статью, пообещав вернуться к более интересным методам сокрытия исполняемого кода во второй части.
Компьютерный вирус -- разновидность компьютерных программ, отличительной особенностью которых является способность к размножению (саморепликация).
Компьютерный вирус был назван по аналогии с биологическими вирусами за сходный механизм распространения. Вирусы распространяются, копируя свое тело, внедряют себя в исполняемый код других программ, заменяют собой другие программы, прописываясь в автозапуск и другое.
Каналы распространения вирусов:
Скрипт (сценарий) - это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.
Элементы управления ActiveX - это небольшие программы, которые вставляются в эти страницы. К сожалению, так как они являются программами, то могут быть атакованы вирусами. Данная технология, используемая среди прочих, повышает функциональность веб-страниц (добавление анимации, видео, трехмерный просмотр и т.п.).
5. Локальные сети.
Принято разделять вирусы:
1. по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, сетевые черви);
Файловые вирусы. Они поражают исполняемые файлы: EXE, COM, SYS, BAT. Эти вирусы заражают компьютер, если была запущена программа, которая уже содержит вирус.
Загрузочные вирусы заражают загрузочный (boot) сектор съемного диска и boot-сектор винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска ОС при включении или перезагрузке компьютера. После необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление.
Скрипт-вирусы (Script virus) - вирусы, написанные на языках Visual Basic, Basic Script, Java Script. На компьютер пользователя такие вирусы, чаще всего, проникают в виде почтовых сообщений, содержащих во вложениях файлы-сценарии.
Макрокомандные вирусы (макровирусы) (Macroviruses) - вирусы, заражающие файлы документов, используемые приложениями Microsoft Office. Microsoft Office могут содержать встроенные программы (макросы) на полнофункциональном языке программирования, а в Microsoft Word эти макросы автоматически запускаются при открытии любого документа, его закрытии, сохранении и т.д.
по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
Полиморфный вирус -- это такой шифрующийся вирус, который при заражении новых файлов и системных областей диска шифрует собственный код. При этом для шифрования вирус пользуется случайными паролями (ключами), а также различными методами шифрования, что исключает возможность опознания вируса по сигнатурам вирусов.
Сигнатура вируса - характерный фрагмент двоичного кода, позволяющий опознать большинство вирусов. Новые вирусы определяются по новым сигнатурам.
Стелс-вирус -- это вирус, оставляющий в памяти компьютера модули, перехватывающие обращение программ к дискам. Когда программа читает зараженный файл или загрузочную запись, стелс-вирус подменяет данные, чтобы ввести в заблуждение антивирусные программы
Rootkit (руткит) - это программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе.
по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).
Бэкдор, backdoor (от англ. back door, чёрный ход) -- программа или набор программ, которые устанавливает взломщик на взломанном им компьютере после получения первоначального доступа с целью повторного получения доступа к системе. Бэкдор -- особо важная составляющая руткита. Основное назначение Backdoor - скрытное управление компьютером. Как правило, Backdoor позволяет копировать файлы с пораженного компьютера и наоборот, передавать на пораженный компьютер файлы и программы.
Кейлоггер - (англ. key -- клавиша и logger -- регистрирующее устройство) -- это программное обеспечение или аппаратное устройство, регистрирующее каждое нажатие клавиши на клавиатуре компьютера. Программные кейлоггеры принадлежат к той группе программных продуктов, которые осуществляют контроль над деятельностью пользователя персонального компьютера.
Троянские кони (логические бомбы или временные бомбы)
К троянским коням относятся программы, наносящие какие-либо разрушительные действия, т.е. в зависимости от каких-либо условий или при каждом запуске уничтожающая информацию на дисках, "завешивающая" систему, и т.п. В качестве примера можно привести и такой случай - когда такая программа во время сеанса работы в Интернете пересылала своему автору идентификаторы и пароли с компьютеров, где она обитала.
Большинство известных троянских коней являются программами, которые "подделываются" под какие-либо полезные программы, новые версии популярных утилит или дополнения к ним.
Компьютерный вирус — разновидность компьютерных программ или вредоносный код, отличительной особенностью которых является способность к размножению (саморепликация). В дополнение к этому вирусы могут без ведома пользователя выполнять прочие произвольные действия, в том числе наносящие вред пользователю и/или компьютеру.
Создание и распространение вредоносных программ (в том числе вирусов) преследуется в России согласно Уголовному кодексу РФ (глава 28, статья 273). Согласно доктрине информационной безопасности РФ, в России должен проводиться правовой ликбез в школах и вузах при обучении информатике и компьютерной грамотности по вопросам защиты информации в ЭВМ, борьбы с компьютерными вирусами, детскими порносайтами и обеспечению информационной безопасности в сетях ЭВМ.
В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы:
а) по поражаемым объектам:
· вирусы, поражающие исходный код;
б) по поражаемым операционным системам и платформам:
в) по технологиям, используемым вирусом:
г) по языку, на котором написан вирус:
· высокоуровневый язык программирования,
· скриптовый язык и др.;
д) по дополнительной вредоносной функциональности:
Файловый вирус (англ. Fileinfector) — компьютерный вирус, распространяющийся путем внедрения своего кода в тело исполняемых файлов (двоичные файлы (EXE, COM), файлы динамических библиотек (DLL), драйверы (SYS), командные файлы (BAT, CMD) и другие). Наиболее распространенным способом является внедрение в конец файла. При этом основной код дописывается в конец файла, а в его начало записывается команда перехода к телу вируса. При каждом запуске такого заражённого файла сначала выполняется код вируса, и только потом — код самой программы.
После того как вирус получил управление, он выполняет следующие действия:
1. Восстанавливает в оперативной памяти компьютера исходную программу для последующего её выполнения.
2. Осуществляет дальнейшее заражение, инфицируя другие файлы или оперативную память компьютера.
3. Выполняет иные деструктивные действия.
Различают резидентные и нерезидентные файловые вирусы. Первые загружают в оперативную память резидентную часть, которая впоследствии может отслеживать открываемые пользователем файлы, заражая их. Нерезидентные вирусы, после того как получили управление, производят поиск файлов для заражения в текущем и (или) корневом каталогах, либо в каталогах, указанных в системной переменной среды PATH.
Макровирус — это разновидность компьютерных вирусов разработанных на макроязыках, встроенных в такие прикладные пакеты ПО, как Microsoft Office. Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносятся из одного зараженного файла в другие. Большая часть таких вирусов написана для MS Word.
Виды Stealth-вирусов:
2. Файловый вирус перехватывает функции чтения/установки позиции в файле, чтения/записи в файл, чтения каталога и т. д., чтобы скрыть увеличение размера зараженных программ; перехватывает функции чтения/записи/отображения файла в память, чтобы скрыть факт изменения файла.
3. Макровирусы. Реализовать стелс-алгоритм в макровирусах достаточно просто, нужно запретить вызов меню File/Templase или Tools/Macro, достичь этого можно удалением пунктов меню из списка либо их подменой на макросы FileTemplase и ToolsMacro. Также стелс-вирусами можно назвать макровирусы, которые свой основной код хранят не в самом макросе, а в других областях документа.
Основные методы реализации руткитов:
1. В Microsoft Windows. Из-за Windows FileProtection переписывание системных файлов затруднено, поэтому основные способы внедрения в систему:
· модификация памяти:перехват системных функций Windows API на уровне пользователя;то же на уровне ядра;изменение системных структур данных;
· загрузка до ядра операционной системы — буткиты.
· реализуемые подменой основных системных утилит;
· реализованные в виде модуля ядра;
· основанные на модификации физической памяти ядра.
В нашу уже почти кибернетическую эпоху, при столь обширном и массовом распространении компьютерной техники, и общей автоматизации, Мы наблюдаем удручающую картину: несмотря на то, что Антивирусные программы, и программы защиты постоянно обновляются, уже даже ежедневно, наши с Вами компьютеры продолжают атаковать и пытаться заразить вредоносные программы из интернета. Особенно учитывая увеличение геометрических степенях скорости доступа в интернет.
Так же руткиты заражают смартфоны и гаджеты на операционной системе Android, к примеру новый, якобы не удаляемый вирус.
Первый признак, на который стоит обращать внимание: компьютер ведет себя как-то не так. В автозагрузке чисто, процессы в порядке, антивирус ничего не находит, однако вас у Вас есть подозрение, что система не в порядке. В лучшем случае, Вы видите присутствие вирусов воочию, в худшем – визуально ничего не заметите, кроме странного поведения либо подтормаживания, при всем этом подозрительном спокойствии, Вы и не заметите, как с вашего ПК рассылается спам, крадутся пароли от сайтов или почты, происходят атаки на сайты или делают другие, не особо приятные другим пользователям сети интернет пакости.
Итак, руткит (rootkit) – это программа (набор программ) для скрытия следов присутствия злоумышленника или вредоносного кода в операционной системе. Установив руткит на ваш компьютер, хакер получает над ним полный контроль, может удаленно управлять компьютером и загружать на него другие вредоносные программы. Естественно, все это он делает не вручную под покровом ночи, а пользуясь различными командами, утилитами и т.п.
Более того, основная задача руткита – не допустить обнаружения действий вирусов хозяином компьютера, скрыть от пользователя присутствие хакера и изменений в системе. Руткит прячет от ваших глаз вредоносные процессы, системные службы, драйвера, сетевые соединения, ключи реестра и записи автозагрузки, модули, папки, файлы и, конечно же, прячет сам себя. В общем, ситуация не из приятных, и ваш компьютер при этом могут использовать в любых не добрых целях…
Сравнительно недавно, в конце прошлого века, появились руткиты и под операционную систему Windows. Поскольку на момент их адаптации к среде WINDOWS ни один антивирус их не опознавал, перед руткитами открывалось много перспектив… Однако в скором времени они были обнаружены и потихонечку крупные антивирусные компании и производители систем защиты начали добавлять функционал по обнаружению кодов руткитов в свои продукты.
На сегодняшний день существует множество антивирусов и специализированных программ, позволяющих обнаружить и нейтрализовать руткиты. Информацию о том, умеет ли ваш антивирус отлавливать и обезвреживать руткиты, вы всегда можете найти на официальном сайте его разработчиков.
В зависимости от того, с какой областью памяти работают руткиты, их можно подразделить на следующие виды:
• системы, работающие на уровне ядра (Kernel Level, или KLT);
• системы, функционирующие на пользовательском уровне (User Level).
Первый известный руткит для системы Windows, NT Rootkit, был написан в 1999 году экспертом в области безопасности Грегом Хоглундом в виде драйвера уровня ядра. Он скрывал все файлы и процессы, в имени которых встречалось сочетание _root, перехватывал информацию, набираемую на клавиатуре, и использовал другие способы маскировки.
Самым известным на сегодня руткитом является Hacker Defender. Эта программа работает в режиме пользователя и маскируется за счет перехвата некоторых API. Hacker Defender может обрабатывать сетевой трафик до того, как он будет передан приложению, то есть любая программа, работающая в сети, может быть использована для взаимодействия со взломщиком. Руткит умеет скрывать файлы и процессы, записи в реестре и открытые порты и может неправильно показывать количество свободного места на диске. Он прописывается в автозагрузку, оставляя для себя черный вход, и прослушивает все открытые и разрешенные брандмауэром порты на предмет 256-битного ключа, который укажет, какой порт использовать для управления. Hacker Defender перехватывает функции запуска новых процессов, что позволяет ему заражать все программы, запускаемые пользователем. Он полиморфен: для шифрования исполняемых файлов руткита обычно используется утилита Morphine.
Все современные версии руткитов могут прятать от пользователя файлы, папки и параметры реестра, скрывать программы, системные службы, драйверы и сетевые соединения. И простым включением «отображение скрытых фалов и папок ndows их не увидеть.
Популярен способ блокировки доступа к файлу: файл открывается в режиме монопольного доступа или блокируется с помощью специальной функции; удалить такой файл стандартными способами невозможно. Если попытаться воспользоваться отложенным удалением (во время следующей загрузки), например с помощью программы типа MoveOnBoot, то, скорее всего, запись об этой операции будет через некоторое время удалена либо файл будет переименован.
К сожалению, существующие на сегодняшний день антивирусные программы, предназначенные для обнаружения всевозможных вирусов и руткитов, не дают стопроцентной гарантии безопасности. Обладая исходным кодом этих программ, можно создать любые модификации руткитов или включить часть кода в любую шпионскую программу. Главное отличие руткитов это способность не прочно закрепиться в системе, а проникнуть в нее, поэтому основным правилом для вас должны стать максимальная защита и осторожность поведения в интернете.
Далее рассмотрим наиболее популярные и эффективные утилиты для поиска и деактивации данного типа вирусов.
Небольшая утилита, умеющая бороться с руткитами, которая работает, в операционных системах Windows XP, м Vista. Sophos Anti-Rootkit сканирует реестр и критические каталоги системы и выявляет скрытые объекты, то есть следы творчества руткитов.
Программа обычным образом устанавливается на компьютер и обладает интуитивно понятным интерфейсом. Прежде всего, вам необходимо задать объекты, которые должна искать и обнаружить утилита..
Кроме того, Sophos Anti-Rootkit в описании каждого объекта покажет полный путь к нему и дополнительную информацию. Но утилита может этого и не сделать. Самое разумное в этом случае – открыть папку с файлом или ветвь реестра и внимательно изучить найденный Sophos Anti-Rootkit объект со всех сторон: посмотреть его свойства, поискать информацию о нем в интернете и т.п.
Следующая программа на рассмотрении это:
Далее:
AVZ
Для того чтобы начать сканирование компьютера на предмет руткитов и другой заразы выберите нужный диск или папку (папки) в Области поиска.
Читайте также: