В этой статье освещаются различные способы идентификации вредоносного кода, функциональные и, отчасти, хронологические связи между ними, их технологические и прикладные особенности. С одной стороны, многие из описанных здесь технологий и принципов актуальны не только в антивирусах, но и в более широком контексте систем компьютерной безопасности. С другой, за пределами статьи остались многие важные, но более частные технологии антивирусной индустрии, такие как распаковка упакованных программ или потоковое сигнатурное детектирование.
Введение
Самая первая технология поиска вредоносных программ была основана на использовании сигнатур — участков кода, однозначно идентифицирующих ту или иную вредоносную программу. По мере того, как эволюционировали вирусы, усложнялись и развивались технологии их детектирования. Все эти продвинутые технологии — разные виды «эвристик» и «поведенческих анализаторов» — можно обобщенно назвать «несигнатурными».
Несмотря на то что название данной статьи апеллирует ко всему спектру технологий детектирования вредоносного кода, речь в ней пойдет преимущественно о несигнатурных технологиях — о сигнатурных сказать уже практически нечего ввиду их примитивности и однозначности. В то же время пользователи плохо ориентируются в несигнатурных технологиях. Что скрывается под названиями «эвристика», «проактивное детектирование», «поведенческое детектирование», «HIPS», как перечисленные технологии соотносятся друг с другом, каковы преимущества и недостатки каждой из них? Разобраться в этом — задача нашей статьи. Помимо прочего, данная статья, так же как и предыдущая — «Эволюция самозащиты вредоносных программ», имеет целью систематизировать и максимально объективно рассмотреть некоторые частные проблемы из области вредоносных программ и защиты от них. Статьи этого цикла рассчитаны на читателей, имеющих общее представление об антивирусных технологиях, но не являющихся специалистами в области защиты от вредоносных программ.
Модель системы защиты от вредоносных программ
Для начала рассмотрим, как работают технологии поиска вредоносного кода. Для этого я предлагаю использовать следующую модель.
В любой защитной технологии можно выделить два компонента: технический и аналитический. Эти компоненты не обязаны быть четко разграничены на уровне модулей или алгоритмов, но на функциональном уровне они различимы.
Технический компонент — это совокупность программных функций и алгоритмов, обеспечивающих аналитический компонент данными для анализа. В качестве таковых могут выступать, к примеру, байтовый код файла, текстовые строчки внутри файла, единичное действие программы в рамках операционной системы или целая цепочка таких действий.
Аналитический компонент — это система принятия решения. Это алгоритм, который анализирует имеющиеся в его распоряжении данные и выносит о них некое суждение. В соответствии с этим суждением антивирус (либо другое защитное ПО) предпринимает установленные его политикой безопасности действия: оповещает пользователя, запрашивает у него дальнейшие указания, помещает файл в карантин, блокирует несанкционированное действие программы и т.д.
Для примера рассмотрим классическую защиту от вредоносных программ, основанную на сигнатурном детектировании. В ней в качестве технического компонента выступает система получения информации о файловой системе, файлах и их цифровом содержимом, а в качестве аналитического — простая операция сравнения байтовых последовательностей. То есть, если говорить упрощенно, на входе у аналитического компонента — код файла, а на выходе — решение, является ли данный файл вредоносным.
В рамках описанной модели любая система защиты может быть представлена как «комплексное число» — как связка двух независимых объектов: технического и аналитического компонентов определенного типа. Анализируя технологии таким образом, легко увидеть их соотношение, их принципиальные плюсы и минусы. И, в частности, с помощью этой модели удобно разрешить путаницу в определениях технологий. Например, ниже будет показано, что «эвристика» как способ принятия решений — лишь разновидность аналитического компонента, а не самостоятельная технология. А HIPS (Host Intrusion Prevention System) — лишь разновидность технического компонента, способ сбора данных. Как следствие, данные термины, во-первых, формально не противоречат друг другу, а во-вторых, не полностью характеризуют технологию, в описании которой встречаются: говоря об эвристике, мы не уточняем, по каким именно данным производится эвристический анализ, а говоря о HIPS-системе — ничего не знаем о том, по какому принципу в ней выносится вердикт.
Более подробно эти технологии будут обсуждаться в соответствующих разделах, а пока рассмотрим сами принципы, на которых основана любая технология поиска вредоносного кода: технические — как способы сбора информации, и аналитические — как способы ее обработки.
Диаграмма. Суммарная схема технологий обнаружения
вредоносного кода
Технический компонент
Техническая составляющая системы обнаружения вредоносных программ обеспечивает сбор данных, которые будут использоваться для анализа ситуации.
Вредоносная программа — это, с одной стороны, файл с определенным содержимым, с другой — совокупность действий, производимых в операционной системе, с третьей — совокупность конечных эффектов в операционной системе. Поэтому и идентификация программы может быть произведена на разных уровнях: по цепочкам байт, по действиям, по влиянию на операционную систему и т.д.
Обобщая, можно выделить следующие способы сбора данных для выявления вредоносных программ:
- Работа с файлом как с массивом байтов.
- Эмуляция1 кода программы.
- Запуск программы в «песочнице» (sandbox2) (а также использование близких по смыслу технологий виртуализации).
- Мониторинг системных событий.
- Поиск системных аномалий.
Способы перечислены в соответствии с повышением уровня абстракции при работе с кодом. Под уровнем абстракции в данном случае подразумевается то, под каким углом зрения рассматривается исполняемая программа: как первичный цифровой объект (набор байт), как поведение (более абстрактное следствие из набора байт) или как совокупность эффектов в операционной системе (более абстрактное следствие из поведения). Примерно по этому же вектору шло и развитие антивирусных технологий: работа с файлами, работа с событиями через файл, работа с файлом через события, работа с самой средой, — поэтому приведенный список естественным образом оказался выстроен и по хронологии.
Подчеркнем, что приведенные способы — не столько обособленные технологии, сколько условные этапы непрерывного процесса развития технологий сбора данных для обнаружения вредоносных программ. Технологии развиваются и переходят друг в друга более или менее постепенно; например, эмуляция может оказаться ближе к простой работе с файлом, если данная ее реализация лишь частично преобразует файл как набор байт, или же к «песочнице», если речь идет о полной виртуализации системных функций.
Рассмотрим эти способы подробно.
1. Считывание файлов
Самые первые из появившихся антивирусов основывались на анализе кода файлов как наборов байт. Впрочем, анализом это назвать сложно — речь идет о простом сравнении байтовой последовательности с известной сигнатурой. Но нас сейчас интересует техническая сторона описанной технологии, а именно: в процессе поиска вредоносных программ данные, передаваемые в компонент принятия решений, извлекаются из файлов и представляют собой определенным образом упорядоченные массивы байт.
Характерная особенность этого способа в том, что антивирус работает только с исходным байтовым кодом программы, не затрагивая ее поведение. Несмотря на то, что способ «архаический», он совершенно не устарел и так или иначе используется во всех современных антивирусах — но уже не как единственный и даже не как основной, а лишь как один из нескольких.
2. Эмуляция
Технология эмуляции является промежуточной ступенью между обработкой программы как набора байт и обработкой программы как определенной последовательности действий.
Эмулятор разбирает байтовый код программы на команды и каждую команду запускает в виртуальной копии компьютера. Это позволяет средству защиты наблюдать за поведением программы, не ставя под угрозу операционную систему и данные пользователя, что неизбежно произошло бы при исполнении программы в реальной среде.
Эмулятор является промежуточной ступенью абстрагирования при работе с программой. Поэтому характерную особенность эмулятора можно грубо сформулировать примерно так: эмулятор все еще работает с файлом, но анализируются уже, фактически, события. Эмуляторы используются во многих (возможно, во всех) крупных антивирусах, главным образом как дополнение к основному, более низкоуровневому файловому движку, либо как «страховка» для более высокоуровневых движков (таких как «песочница», системный мониторинг).
3. Виртуализация: «песочница»
Виртуализация в том ее виде, в котором она используется в «песочницах», представляет собой логическое продолжение эмуляции. А именно: «песочница» уже работает с исполняющейся в реальной среде программой, но все еще ее контролирует.
Суть такой виртуализации хорошо отражена в названии технологии — «песочница». В обычной жизни песочница — это некое огороженное пространство, в пределах которого ребенок может спокойно играть. Если провести аналогию и под реальным миром понимать операционную систему, а под шаловливым ребенком — вредоносную программу, то в роли ограждения будет выступать некий набор правил взаимодействия с операционной системой. Такими правилами может быть запрет на модификацию реестра ОС, ограничение работы с файловой системой посредством ее частичной эмуляции. Например, программе, запущенной в «песочнице», может быть «подсунута» виртуальная копия системного реестра — для того, чтобы изменения, вносимые программой в реестр, не могли повлиять на работу операционной системы. Таким образом могут виртуализироваться любые точки соприкосновения программы со средой: файловая система, реестр.
Грань между эмуляцией и виртуализацией тонка, но ощутима. Первая технология предоставляет среду для исполнения программы (и, таким образом, в процессе работы «содержит» программу и полностью управляет ею). Во втором случае в качестве среды уже выступает сама операционная система, а технология лишь контролирует взаимодействие между операционной системой и программой, в отличие от предыдущего случая находясь с последней на равных.
Таким образом, средство защиты, основанное на виртуализации описанного типа, работает уже не с файлом, но с поведением программы — однако все еще не с системой.
Механизм типа «песочница», так же как и эмулятор, не особенно активно используется в антивирусах — главным образом потому, что в программной реализации он требует значительного объема ресурсов. Антивирусы, имеющие в своем составе «песочницу», легко идентифицируются по существенной временной задержке между запуском программы и началом ее исполнения (либо — в случае успешной идентификации вредоносной программы — между ее запуском и уведомлением, полученным от антивируса, об ее успешном детектировании). Учитывая, что в настоящий момент проводятся активные исследования в области аппаратной виртуализации, ситуация вскоре может поменяться.
Пока что движок типа «песочница» используется лишь в нескольких антивирусах.
4. Мониторинг системных событий
Мониторинг системных событий является более «абстрактным» способом сбора информации для выявления вредоносных программ. Если эмулятор или «песочница» наблюдают за каждой программой в отдельности, то монитор наблюдает за всеми программами сразу посредством регистрации всех событий, происходящих в операционной системе и порожденных работающими программами.
Технически такой способ сбора информации реализуется посредством перехватов функций операционной системы. Таким образом, перехватив вызов некой системной функции, механизм-перехватчик получает информацию о том, что определенная программа совершает определенное действие в системе. На протяжении своей работы монитор собирает статистику таких действий и передает ее в аналитический компонент для обработки.
Этот технологический принцип наиболее активно развивается в настоящее время. Он используется в качестве одного из компонентов в нескольких крупных антивирусах, и в качестве основы — в отдельных утилитах, специализирующихся на мониторинге системы (их называют «HIPS-утилитами», «HIPS’ами» — это Prevx, CyberHawk и ряд других). Однако в свете того, что любую защиту можно обойти, данный способ поиска вредоносных программ представляется не самым перспективным, поскольку при запуске программы в реальной среде риск существенно снижает эффективность защиты.
5. Поиск системных аномалий
Это наиболее абстрактный способ сбора информации о предположительно зараженной системе. Я упоминаю его здесь в первую очередь как логическое продолжение и предел абстракции в приведенном списке технологий.
Данный метод основан на следующих положениях:
- операционная среда вместе со всеми выполняющимися в ней программами — это интегральная система;
- ей присуще некое «системное состояние»;
- если в среде исполняется вредоносный код, то состояние системы является «нездоровым» и отличается от состояния «здоровой» системы, в которой вредоносного кода нет.
Исходя из этих положений мы можем судить о состоянии системы (и, следовательно, о возможном присутствии в ней вредоносных программ), сравнивая его с эталоном (за эталон принимается «здоровое» состояние системы) или анализируя совокупность отдельных ее параметров.
Для эффективного обнаружения вредоносного кода методом анализа аномалий необходима достаточно сложная аналитическая система — наподобие экспертной системы или нейронной сети. Возникает много вопросов: как определить «здоровое состояние», чем оно отличается от «нездорового», какие дискретные параметры можно отслеживать и как их анализировать? По причине такой сложности в настоящее время этот способ разработан мало. Зачатки его можно обнаружить в некоторых антируткит-утилитах, где он реализован на уровне сравнения с определенным срезом системы, взятым за эталон (устаревшие утилиты PatchFinder, Kaspersky Inspector), либо отдельных ее параметров (GMER, Rootkit Unhooker).
Забавная метафора
Аналогию с ребенком, приведенную в разделе «Песочница», можно продолжить таким образом: эмулятор похож на няньку, которая непрерывно следит за ребенком, чтобы он не натворил лишнего, мониторинг системных событий — на воспитателя, надзирающего за целой группой детишек, поиск системных аномалий — на предоставление детям полной свободы, ограниченной лишь проверкой оценок в их дневнике. В таком случае байтовый анализ файла — это только планирование ребенка, точнее, поиск признаков шаловливости в характере предполагаемого родителя.
Технологии растут и развиваются.
Аналитический компонент
Сложность алгоритма принятия решений может быть совершенно любой. Очень условно можно разделить аналитические системы антивирусов на три категории, между которыми может быть множество промежуточных вариантов.
1. Простое сравнение
Вердикт выносится по результатам сравнения единственного объекта с имеющимся образцом. Результат сравнения бинарный («да» или «нет»). Пример: идентификация вредоносного кода по строго определенной последовательности байт. Другой пример, более высокоуровневый: идентификация подозрительного поведения программы по единственному совершенному ею действию (такому как запись в критичный раздел реестра или в папку автозагрузки).
2. Сложное сравнение
Вердикт выносится по результатам сравнения одного или нескольких объектов с соответствующими образцами. Шаблоны для сравнения могут быть гибкими, а результат сравнения — вероятностным. Пример: идентификация вредоносного кода по одной из нескольких байтовых сигнатур, каждая из которых задана нежестко (например, так, что отдельные байты не определены). Другой пример, более высокоуровневый: идентификация вредоносного кода по нескольким используемым им и вызываемым непоследовательно API-функциям с определенными параметрами.
3. Экспертная система
Вердикт выносится в результате тонкого анализа данных. Это может быть система, содержащая в себе зачатки искусственного интеллекта. Пример: идентификация вредоносного кода не по жестко заданному набору параметров, но по результатам многосторонней оценки всей совокупности параметров в целом, с присвоением каждому из событий веса «потенциальной вредоносности» и расчетом общего результата.
Реальные названия технологий — что к чему
Рассмотрим теперь, какие именно алгоритмы лежат в основе конкретных технологий поиска вредоносных программ.
Обычно производитель, разработав новую технологию, дает ей совершенно новое, уникальное имя (примеры: «Проактивная защита» в Kaspersky Antivirus, TruPrevent от Panda, DeepGuard от F-Secure). Это очень правильный подход, поскольку он позволяет избежать автоматического восприятия технологии в узких рамках некого термина-штампа. Тем не менее, использование штампов — таких как «эвристика», «эмуляция», «песочница», «поведенческий блокиратор» — неизбежно при любых попытках доступно и не вдаваясь в технические подробности охарактеризовать технологию.
Тут-то и начинается терминологическая путаница. За терминами жестко не закреплены значения (а в идеале термин должен быть однозначен, на тот он и термин). Один человек так понимает этот термин, другой — иначе. Вдобавок, значения, которые вкладывают в термины авторы так называемых «доступных описаний», часто очень существенно отличаются от значений, принятых в среде профессионалов. Иначе чем объяснить тот факт, что описание технологии на сайте производителя может изобиловать терминами, но при этом ничего не сообщать о сути технологии или сообщать нечто, не соответствующее ей.
Например, некоторые производители антивирусных систем характеризуют свои продукты как оснащенные HIPS, «проактивной технологией» или «несигнатурной технологией». Пользователь, который понимает термин HIPS как мониторинг системных событий и их анализ на наличие вредоносного кода, может оказаться обманутым. В действительности под этими характеристиками может скрываться все что угодно — например, движок типа «эмулятор», оснащенный аналитической системой типа «эвристика» (определение см. ниже). Еще чаще встречается ситуация, когда защита характеризуется как «эвристическая» без каких-либо уточнений.
Подчеркнем, что речь не идет об умышленном обмане пользователя производителем — вероятнее всего, составитель описания просто сам запутался в терминах. Речь идет лишь о том, что описание технологии, составленное для конечного пользователя, может не отражать ее суть, и что опираться на него при ответственном подходе к выбору защиты следует с осторожностью.
Рассмотрим наиболее распространенные термины в области антивирусных технологий (см. диаграмму).
Меньше всего разночтений у термина «сигнатурное детектирование»: так или иначе, с технической стороны оно подразумевает работу с байтовым кодом файлов, а с аналитической — примитивный способ обработки данных, обычно — простое сравнение. Это самая старая технология, но она же и наиболее надежная — поэтому, несмотря на большие производственные издержки, связанные с пополнением базы, активно используется по сей день во всех антивирусах.
Если в характеристике используется название технического компонента из приведенного выше списка — «эмулятор» или «песочница» — это также вызывает минимум толкований. При этом аналитический компонент такой технологии может быть представлен алгоритмом любой степени сложности, от простого сравнения до экспертной системы.
Термин «эвристика» уже немного туманен. По определению словаря Ожегова-Шведовой, «эвристика — совокупность исследовательских методов, способствующих обнаружению ранее неизвестного». Эвристика — это в первую очередь тип аналитического компонента защиты, а не определенная технология. Вне конкретной темы, в контексте решения задач, он приблизительно соответствует «нечеткому» способу решения нечетко поставленной задачи.
На заре антивирусных технологий, когда и был впервые задействован термин «эвристика», он подразумевал вполне определенную технологию — идентификацию вируса по нескольким гибко заданным байтовым шаблонам, т.е. систему из технического компонента типа «работа с файлами» и аналитического — «сложное сравнение». Сейчас термин «эвристика» обычно используется в более общем значении «технологии поиска неизвестных вредоносных программ». Иными словами, говоря об «эвристическом детектировании», производитель подразумевает некую систему защиты, аналитический компонент которой работает по принципу нечеткого поиска решения (что может соответствовать типу аналитического компонента «сложный анализ» или «экспертная система», см. диаграмму). При этом технологическая основа защиты, способ сбора информации для последующего анализа, может быть какой угодно — от работы с файлами до работы с событиями или состоянием операционной системы.
Еще меньше определенности с такими названиями, как «поведенческое детектирование», «проактивное детектирование». Они могут подразумевать широкий спектр технологий — от эвристики до мониторинга системных событий.
Термин HIPS используется в описаниях антивирусных технологий очень часто, и не всегда оправданно. Несмотря на то что расшифровка аббревиатуры (Host Intrusion Prevention System) никак не отражает суть технологии, применительно к антивирусной защите технология четко определена: HIPS — это защита, технически основанная на мониторинге системных событий. При этом аналитический компонент защиты может быть каким угодно — от пресечения единичных подозрительных событий до сложного анализа цепочек программных действий. Таким образом, под определением «HIPS» в описании антивируса может скрываться, например, примитивная защита нескольких ключей реестра, либо система уведомлений о попытках доступа к определенным директориям, либо более сложная система анализа поведения программ, либо какая-то другая технология, в основе которой лежит мониторинг системных событий.
Плюсы и минусы способов обнаружения вредоносного кода
Если рассматривать технологии защиты от вредоносных программ не по отдельности, а обобщенно, с точки зрения представленной модели, то вырисовывается следующая картина.
Технический компонент технологии отвечает в основном за такие ее характеристики, как нагрузка на систему (и как следствие — ее быстродействие), безопасность и защищенность.
Нагрузка на систему — это доля процессорного времени и оперативной памяти, непрерывно или периодически задействованных в обеспечении защиты и ограничивающих быстродействие системы. Эмуляция выполняется медленно, вне зависимости от реализации: на каждую проэмулированную инструкцию приходится несколько инструкций искусственной среды. То же можно сказать и про виртуализацию. Мониторинг системных событий также безусловно равномерно тормозит всю систему, но степень этой нагрузки зависит от реализации. В случае с файловым детектированием и поиском системных аномалий степень нагрузки всецело зависит от реализации.
Под «безопасностью» подразумевается степень риска, которому подвергается операционная система и данные пользователя в процессе идентификации потенциально вредоносного кода. Такой риск существует всегда, когда вредоносный код исполняется реально, в операционной системе. Для систем мониторинга событий такое реальное исполнение кода архитектурно обусловлено, в то время как эмуляция и файловое сканирование могут обнаружить вредоносный код еще до того, как он начал исполняться.
Защищенность. Этот параметр отражает уязвимость технологии, то, насколько вредоносный код может затруднить процесс идентификации себя. Противостоять файловому детектированию очень легко: достаточно хорошо упаковать файл, либо сделать его полиморфным, либо воспользоваться руткит-технологией для сокрытия файла. Противостоять эмуляции немного сложнее, но также возможно — для этого используются многочисленные трюки3, встроенные в код вредоносной программы. Но скрыться от системного мониторинга программе уже сложно — по той причине, что практически невозможно скрыть поведение.
Подводя итог: в среднем, чем менее абстрактна защита, тем она безопаснее, но и тем проще ее обойти.
Аналитический аспект технологии отвечает за такие характеристики, как проактивность (и зависящую от нее необходимую частоту обновления антивируса), процент ложных срабатываний и нагрузка на пользователя.
Под проактивностью подразумевается способность технологии обнаруживать новые, еще не попадавшие в руки специалистов вредоносные программы. К примеру, простейший тип анализа («простое сравнение») соответствует наиболее далеким от проактивности технологиям, таким как сигнатурное детектирование: при помощи таких технологий могут быть обнаружены лишь известные вредоносные программы. По мере возрастания сложности аналитической системы, возрастает и ее проактивность. С проактивностью непосредственно связана и такая характеристика защитной системы, как необходимая частота обновлений. Например, базы сигнатур нужно часто обновлять, в то время как более сложные эвристические системы остаются адекватными текущей ситуации более длительный срок, а экспертные аналитические системы могут успешно функционировать без обновлений месяцами.
Процент ложных срабатываний так же непосредственно связан со сложностью технологии анализа. Если вредоносный код идентифицируется жестко заданной сигнатурой или последовательностью действий — при условии достаточной длины сигнатуры (байтовой, поведенческой или какой-то еще), такая идентификация однозначна: сигнатура идентифицирует только определенную вредоносную программу и не подходит для других. Но чем больше «жертв» старается захватить идентификационный алгоритм, тем более нечетким он становится, вследствие чего способен захватить больше безвредных программ.
Под нагрузкой на пользователя подразумевается степень его участия в формировании политики защиты — правил, исключений, списков разрешенных и запрещенных — и участия в процессе вынесения вердикта — подтверждение или опровержение «подозрений» аналитической системы. Нагрузка на пользователя зависит от реализации, но общее правило таково, что чем дальше анализ от примитивного сравнения, тем больше случается ложных срабатываний — которые нужно как-то корректировать. Для этого и необходимо участие пользователя.
Подводя итог: чем сложнее аналитическая система, тем она могущественнее, но и тем выше процент ложных срабатываний. Последние компенсируются взаимодействием с пользователем.
Теперь, если рассмотреть какую-либо технологию через призму этой модели, легко теоретически оценить ее преимущества и недостатки. Возьмем, например, эмулятор со сложным аналитическим компонентом. Это защита очень безопасная (поскольку не требуется запуск проверяемого файла), но «пропускающая» некоторый процент вредоносных программ вследствие использования в них антиэмуляционных трюков, либо вследствие неизбежных недоработок в реализации самого эмулятора. Такая защита обладает высоким потенциалом и будет при грамотной реализации качественно идентифицировать большой процент неизвестных вредоносных программ, но неизбежно медленно.
Как выбрать систему несигнатурной защиты?
В настоящий момент большинство решений в области компьютерной безопасности реализуются как комплекс нескольких технологий. В классических антивирусах сигнатурное детектирование обычно используется в связке с той или иной реализацией мониторинга системных событий, эмулятора, песочницы. Как сориентироваться в спецификациях и выбрать систему защиты от вредоносного кода, оптимально отвечающую потребностям конкретного пользователя?
Прежде всего, следует помнить, что не существует ни универсального, ни «самого лучшего» решения. У каждой технологии есть свои плюсы и минусы. Например, мониторинг событий в системе постоянно занимает процессорное время, но его труднее всего обмануть; процессу эмуляции можно помешать использованием в коде определенных команд, зато при ее использовании обнаружение вредоносного кода выполняется в упреждающем режиме, система остается незатронута. Другой пример: простые правила принятия решений требуют от пользователя слишком активного участия в процессе, порождая много вопросов к пользователю, а сложные и «тихие» чреваты ложными срабатываниями. Выбор технологии — это выбор золотой середины с учетом конкретных потребностей и обстоятельств.
Например, тому, кто работает в уязвимых условиях («непропатченная» система, отсутствие запретов на использование расширений браузера, скриптов и т.п.), сильно беспокоится за свою безопасность и имеет достаточно ресурсов, больше всего подойдет система типа «песочница», с качественным аналитическим компонентом. Такая система обеспечивает максимум безопасности, но в сегодняшней реализации задействует много оперативной памяти и процессорного времени — что может проявляться в «торможении» ОС. Специалисту, желающему контролировать критичные системные события, и заодно оградить себя от неизвестных вредоносных программ, подойдет система мониторинга реального времени. Такая система равномерно, но не существенно загружает операционную систему и требует специального участия в создании правил и исключений. А пользователю, который ограничен в ресурсах либо не хочет загружать свою машину постоянным мониторингом, а разум — созданием правил, подойдет более простая эвристика. В конце концов, за качество детектирования неизвестных вредоносных программ отвечает не какая-то одна составляющая защитной системы, а вся система в целом; более простой технологический способ можно компенсировать более умелым принятием решений.
Системы несигнатурного обнаружения ранее неизвестного кода распадаются на две категории. Первая — это самостоятельные HIPS-системы, такие как уже приведенные в качестве примера Prevx или Cyberhawk. Вторая — крупные антивирусы, эволюционировавшие в поиске большей эффективности до несигнатурных технологий. Преимущества той или иной категории очевидны: узкая специализация, в рамках которой можно неограниченно совершенствовать качество, — в первом случае, и значительный опыт разносторонней борьбы с вредоносными программами — во втором.
В выборе того или иного продукта рекомендуется руководствоваться в первую очередь результатами независимых тестов, а также отзывами пользователей, которым вы доверяете.
Ссылки
Независимые тесты антивирусов:
- AV-Comparatives
- West Coast Labs (Checkmark Certification)
- AV-Test
- ICSA Labs
- Virus Bulletin
- Anti-Malware
Независимые тесты HIPS-систем:
- Tech Support Alert
- Lycos
- AV-Comparatives: http://www.av-comparatives.org/seiten/ergebnisse/HIPS-BB-SB.pdf
1 Эмуляция — имитация работы одной системы средствами другой без потери функциональных возможностей и искажений результатов. Эмуляция выполняется программными и/или аппаратными средствами.
2 «Песочница» (англ. «sandbox») — среда для безопасного исполнения программ, построенная на частичном или полном ограничении или эмуляции ресурсов операционной системы (также см. статью в «Википедии»).
3 Приемы против эмуляции основаны на том, что на некоторые команды эмулятор реагирует иначе, чем процессор. Это позволяет вредоносной программе детектировать эмуляцию и совершать определенные действия — например, завершиться или выполняться по альтернативному алгоритму.
Технологии обнаружения вредоносного кода. Эволюция