HARDCORE
Главная
Вход
Регистрация
Суббота, 23.11.2024, 08:26Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Заразология [6]
Все о программах-вирусах

Наш опрос
Какая область деятельности вам ближе?
Всего ответов: 239

Главная » Статьи » Hardcore » Заразология

Антивирусы как разумная защита
Антивирус - это программный комплекс, обеспечивающий защиту компьютера от вредоносных программ.

Практически все современные антивирусы этого класса не ограничиваются защитой только от вирусов, а детектируют так же троянские программы, Adware, Spyware и некоторые другие.

Конструктивная особенность антивируса:
1. Ядро
2. Сканер
3. Монитор активности
4. Модуль обновления
5. Модуль контроля скриптов и модули контроля трафика

Хотя наличие 5 пункта не всегда соблюдается. И так начнем по порядку… Весь потенциал антивирусов заложено в ядро, которое и отвечает за проверку файлов, это сердце программы, которое и отвечает за работу всей программы в общем. Именно ядро отвечает за проверку хранящейся на компьютере информации, а так же определением вредностных программ. От того, какие методы были реализованы для поиска и определения вирусов, зависит функциональность антивируса, в общем. Основным методом обнаружения вредоносного кода у большинства антивирусов, является сигнатурный анализ (выявление вирусов по их цифровому «отпечатку» или сигнатуре).
Важнейшие характеристики такого анализа – это скорость и количество системных ресурсов, затраченных на его проведение, а так же количество ложных обнаружений вирусов. Немалую роль в этом играет размер и полнота сигнатур, а так же технологии их создания и использования. Чем больше сигнатура, тем обычно меньше вероятность ложного обнаружения и выше достоверность определения вирусов. Вместе с тем увеличивается также потребность в вычислительных ресурсах, необходимых ядру для проверки. Минусом этого метода является низкая эффективность при обнаружении новых вирусов, а также модификаций известных уже вирусов, и, как следствие, снижение эффективности защиты в целом. Так же большим недостатком сигнатурного метода обнаружения вирусов является большой разрыв по времени между появлением первых случаев заражения и появления метода их лечения. Но по исследованиям крупных антивирусных компаний стало ясно, что это самый надежный способ, т.к. он составляет около 30% эффективности от всех методов антивируса. Так что не стоит им пренебрегать, как обычно это делают наши отечественные антивирусные компании.

Для решения и обхода этих проблем компании-разработчики применяют различные технологии распаковки и восстановления исходного вида файла. От того, насколько хорошо разработана технология, во многом зависит эффективность антивируса. Вот примеры тестов упаковщиков:

N/A UPX 1.90w FSG 2.0 CEXE 1.0b EZIP 1.0 MEW11 SE 1.2 YODA CRYPTOR 1.2 PECOMPACT 2.40
KAV + + + + + + +
DrWeb + + - + - + +
Vba32 + + - - + + +
NOD32 - + - - + + -

Для преодоления недостатков сигнатурного метода, создали эвристический метод поиска. Под эвристическим поиском обычно понимают анализ кода программ на наличие алгоритмов, свойственных вирусам. Именно это и позволяет определить еще неизвестные вирусы, а также модификации уже существующих и внесенных в базу вирусов. Проблема и трудности, которые возникают с таким методом определения таковы, что существует слишком много языков программирования. Наибольшую эффективность эвристический метод обычно имеет при обнаружении несложных вирусов написанных на ассемблере.
Существует также поведенческий метод обнаружения. Он похож на эвристический метод, но анализируется не структура и алгоритм исполнения файлов. Он анализирует поведение работы программ. Так как большинство вирусов пытаются заразить файлы во время загрузки операционной системы.
Этот метод крайне эффективен при борьбе с различными видами троянскими программ, однако он накладывает ограничения на квалификацию пользователя. В большинстве случаев этот метод не эффективен из-за низкой квалификации пользователей. Описанные методы реализованы в большинстве антивирусных программ. Но эффективность антивируса зависит не только от этих методов, но и от реализации этих методов на практике. Многие технологии разнятся по реализации вследствие чего, и варьируется эффективность антивируса.
В частности функции постоянной защиты компьютера возлагаются на антивирусный монитор, который считается самым критичным после ядра модулем. И именно монитор наблюдает за поведением программ в памяти компьютера, при необходимости передавая их на анализ ядру. Поскольку этот модуль постоянно находится в памяти, он должен крайне экономично относится к ресурсам системы. А еще больше хочется уделить внимание следующему методу:
Мониторинг функций Windows API, используемых клавиатурными шпионами. Данная методика основана на перехвате ряда функций, применяемых клавиатурным шпионом, — в частности функций SetWindowsHookEx, UnhookWindowsHookEx, GetAsyncKeyState, GetKeyboardState. Вызов данных функций каким-либо приложением позволяет вовремя поднять тревогу, однако проблемы многочисленных ложных срабатываний будут теми же, что и при применении эвристического метода. Многие компании отказываются от таких методов и упускают возможность отловить большинство хорошо реализованных троянов.

Внимание! Клавиатурный шпион не является вирусом, но тем не менее представляет большую угрозу для пользователей, поскольку позволяет злоумышленнику следить за работой пользователя и может применяться для похищения конфиденциальной информации, в том числе паролей пользователя. Опасность клавиатурного шпиона может существенно, возрасти при его сочетании с RootKit-технологией, которая позволяет замаскировать присутствие клавиатурного шпиона. Еще более опасной является троянская или backdoor-программа, содержащая клавиатурный шпион, — его наличие существенно расширяет функции троянской программы и ее опасность для пользователя.


Статистический анализ

Также используется для детектирования полиморфных вирусов. Во время своей работы сканер анализирует частоту использования команд процессора, строит таблицу встречающихся команд процессора (опкодов), и на основе этой информации делает вывод о заражении файла вирусом. Данный метод эффективен для поиска некоторых полиморфных вирусов, так как эти вирусы используют ограниченный набор команд в декрипторе, тогда как "чистые" файлы используют совершенно другие команды с другой частотой. Например, все программы для MS-DOS часто используют прерывание 21h (опкод CDh 21h), однако в декрипторе полиморфных DOS-вирусов эта команда практически не встречается. Основной недостаток этого метода в том, что есть ряд сложных полиморфных вирусов, которые используют почти все команды процессора и от копии к копии набор используемых команд сильно изменяется, то есть по построенной таблице частот не представляется возможным обнаружить вирус.

Эмуляция (технологии будущего!)

Технология эмуляции кода программ (или Sandboxing) явилась ответом на появление большого числа полиморфных вирусов. Идея этого метода состоит в том, чтобы эмулировать исполнение программы (как зараженной вирусом, так и "чистой") в специальном "окружении", называемым также буфером эмуляции или "песочницей". Если в эмулятор попадает зараженный полиморфным вирусом файл, то после эмуляции в буфере оказывается расшифрованное тело вируса, готовое к детектированию стандартными методами (сигнатурный или CRC поиск).
Современные эмуляторы эмулируют не только команды процессора, но и вызовы операционной системы. Задача написания полноценного эмулятора является довольно трудоемкой, не говоря уже о том, что при использовании эмулятора приходится постоянно контролировать действия каждой команды. Это необходимо для того, чтобы случайно не выполнить деструктивные компоненты алгоритма вируса.
Следует особо отметить, что приходится именно эмулировать работу инструкций вируса, а не трассировать их, поскольку при трассировке вируса слишком велика вероятность вызова деструктивных инструкций или кодов, отвечающих за распространение вируса.

Антивирусы поддерживают работу с огромным числом форматов упаковки и архивирования. Разработчики достаточно редко публикуют полный (или хотя бы достаточно подробный) перечень поддерживаемых форматов. Далее представлена официально опубликованная информация о поддержке "сложных" форматов в Антивирусе Касперского. В других антивирусных продуктах список поддерживаемых форматов должен быть примерно таким же.
"Движок" Антивируса Касперского поддерживает работу с более чем 400 различными утилитами упаковки исполняемых файлов, инсталляторов и архиваторов (всего более 900 модификаций, и это только те о которых я знаю список которых нет смысла приводить).

Среди них:

Упаковщики исполняемых файлов и системы шифрования. Самые популярные из них: Diet, AVPACK, COMPACK, Epack, ExeLock, ExePack, Expert, HackStop, Jam, LzExe, LzCom, PaquetBuilder, PGMPAK, PkLite, PackWin, Pksmart, Protect, ProtEXE, RelPack, Rerp, Rjcrush, Rucc, Scramb, SCRNCH, Shrink, Six-2-Four, Syspack, Trap, UCEXE, Univac, UPD, UPX (несколько версий), WWPACK, ASPack (несколько версий), ASProtect (несколько версий), Astrum, BitArts, BJFnt, Cexe, Cheaters, Dialect, DXPack, Gleam, CodeSafe, ELFCrypt, JDPack, JDProtect, INFTool, Krypton, Neolite, ExeLock, NFO, NoodleCrypt, OptLink, PCPEC, PEBundle, PECompact (несколько версий), PCShrink, PE-Crypt, PE-Diminisher, PELock, PEncrypt, PE-Pack (несколько версий), PE-Protect, PE-Shield, Petite, Pex, PKLite32, SuperCede, TeLock, VBox, WWPack32, XLok, Yoda.
Поддержка стольких упаковщиков и архиваторов позволяет сократить время анализа новых вирусов, что приводит к увеличению скорости реакции на появление нового вируса, и добиться высокого уровня обнаружения уже известных вирусов.

Архиваторы и инсталляторы (всего более 60). Самые популярные из них: CAB, ARJ, ZIP, GZIP, Tar, AIN, HA, LHA, RAR, ACE, BZIP2, WiseSFX (несколько версий), CreateInstall, Inno Installer, StarDust Installer, MS Expand, GKWare Setup, SetupFactory, SetupSpecialist, NSIS, Astrum, PCInstall, Effect Office.
Поддержка большого числа разновидностей архиваторов особенно важно для проверки почтовых систем, так как подавляющая часть вирусов пересылается по почте в архивированном виде. Распаковка объектов происходит вне зависимости от уровня вложенности архивов. Например, если зараженный файл упакован утилитой UPX, а затем файл упакован в архив ZIP, который упакован в архив CAB и т.д., то антивирусный "движок" все равно должен быть в состоянии достать исходный файл и обнаружить вирус.
Следует отметить, что подобные рассуждения носят отнюдь не теоретический характер. Так, широко известна троянская программа Backdoor.Rbot, которая распространялась упакованной множеством различных программ (Ezip, Exe32Pack, ExeStealth, PecBundle, PECompact, FSG, UPX, Morphine, ASPack, Petite, PE-Pack, PE-Diminisher, PELock, PESpin, TeLock, Molebox, Yoda, Ezip, Krypton и др.).
Алгоритм распаковки архивов обычно обладает достаточным интеллектом, чтобы не распаковывать всевозможные "архивные бомбы" - архивы небольшого размера, в которые упакованы огромные файлы (с очень высокой степенью сжатия) или несколько одинаковых файлов. Обычно для проверки такого архива требуется много времени, но современные антивирусные "движки" часто распознают подобные "бомбы".

И еще единственное, о чем я хотел упомянуть это о Полиморфных расшифровщиках.
Простейшим примером частично полиморфного расшифровщика является следующий набор команд, в результате применения которого ни один байт кода самого вируса и его расшифровщика не является постоянным при заражении различных файлов:

MOV reg_1, count ; reg_1, reg_2, reg_3 выбираются из
MOV reg_2, key ; AX,BX,CX,DX,SI,DI,BP
MOV reg_3, _offset ; count, key, _offset также могут меняться
_loop:
xxx byte ptr [reg_3], reg_2 ; xor, add или sub
DEC reg_1
Jxx _loop ; ja или jnc
; дальше следуют зашифрованные код и данные вируса

Сложные полиморфные вирусы используют значительно более сложные алгоритмы для генерации кода своих расшифровщиков: приведенные выше инструкции (или их эквиваленты) переставляются местами от заражения к заражению, разбавляются ничего не меняющими командами типа NOP, STI, CLI, STC, CLC и т.д.
Полноценные же полиморфные вирусы используют еще более сложные алгоритмы, в результате работы которых в расшифровщике вируса могут встретиться операции SUB, ADD, XOR, ROR, ROL и другие в произвольном количестве и порядке. Загрузка и изменение ключей и других параметров шифровки производится также произвольным набором операций, в котором могут встретиться практически все инструкции процессора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP ...) со всеми возможными режимами адресации. Появляются также полиморфные вирусы, расшифровщик которых использует инструкции вплоть до Intel386, а летом 1997 года обнаружен 32-битный полиморфный вирус, заражающий EXE-файлы Windows 95.
В результате, в начале файла, зараженного подобным вирусом, идет набор бессмысленных, на первый взгляд, инструкций. Интересно, что некоторые комбинации, которые вполне работоспособны, не берутся фирменными дизассемблерами (например, сочетание CS:CS: или CS:NOP). И среди этой "каши" из команд и данных изредка проскальзывают MOV, XOR, LOOP, JMP - инструкции, которые действительно являются "рабочими".
Думаю, нет смысла упоминать об уровнях полиморфизма, которых более 7.

Выводы:

Будь ты вирусописатель или обычный пользователь имей ввиду что есть куча уязвимостей, которые еще не закрыты. И эти пробелы не устранят, даже, самые навороченные антивири типа: Касперский и Nod32…
Надеюсь, количество паковщиков и протекторов позволит обеспечить тебе надежную защиту твоему вирусу, Тро яну и т.п. Ну а если ты обычный юзер забудь, про Касперского он не эталон безопасности. Есть кучи сторонних антивирусов использующих на порядок больше анпакеров и методов определения. А еще в припаску обзаведись хорошем антитроем и антишпионом обновляй вовремя свой софт и спи спокойно.

Желаю удачи в написании вирусов, а также их защите. Желаю удачи по защите своей информации.



Источник -  www.hackzone.ru
Категория: Заразология | Добавил: hardcore1 (03.09.2007) | Автор: JackMX www.Attack-On-Web.com
Просмотров: 658 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

Статистика


Copyright MyCorp © 2024