Information Security
Comments 43
+2
а что понимается под «список вирусов, которым мы доверяем (также не наносят вреда системе)»?
0
Есть Whitelist, а есть TrsutedBlackList. Это имелось ввиду. Первый белый список пользователя, а второй список доверительных инфекций, которые также false-positive, но задаются компанией разработчиком.
0
то есть всякие тесты вроде EICAR или сюда входит и всякое разное ПО вроде кейгенов, трейнеров, кряков и прочего?
0
Вы не правильно понимаете назначение EICAR. На файлы EICAR любой антивирус должен ругаться, но при этом файл не содержит зловредного функционала! Это просто пустышка.
Пользователю часто надо понять как ругается на антивирус в целях настройки антивирусного решения.
+1
Говоря о листах nrcpp говорит о способе благодаря которому пользователь может сказать, что файл чистый! К примеру вы скачали кейген и хотите воспользоваться, но антивирус удаляет. Вопрос: как быть? Ответ: Перенести ответственность за действия файла на самого пользователя!
0
может быть я неправильно выразился, но мне лично был интересен вопрос как в этот список попадают те или иные программы. вопрос не к вам, а автору топика, но…
к примеру, есть некая программа которая ведёт себя вирусоподобно — ставится втихаря не всегда очевидно для пользователя, добавляет панельку в IE, прописывается в куче мест, висит в памяти несколькими процессами, которые мониторят друг друга на наличие, меняет обратно настройки изменённые пользователем и т.д. Антивирус видя такое непотребство выносит вердикт — казнить, но поскольку программа идёт именитого разработчика, и в общем то вирусом по сути не является, то её заранее вносят в белый список, давя тем самым справедливое возмущение антивируса по этому поводу на корю. проще говоря — есть ли у антивирусов «предоплаченые» места в белом листе?
0
> мне лично был интересен вопрос как в этот список попадают те или иные программы.
Касательно белого списка — он определяется пользователем. Так реализовано у нас. Например вы знаете, что кейгены и кряки — это точно не вирусы у вас. Выделяете их в окне обнаружений, и добавляете самостоятельно.
Если это доверительный черный список — в нем хранятся сигнатуры файлов, которые не являются вирусами, но случайны образом выявляемые как зловреды. Такой список поставляется из каробки, и задается производителем. Наиболее вероятно, что сигнатура в базе и в черном списке совпадает. Или если это обнаружение по шаблону, то частично совпадает. Это может быть системный файл, или любая другая программа, случайным образом попавшая в базу сигнатур…
По поводу «предоплаченных» мест в белом листе, то тут скорее антивирусная компания должна мониторить, какие из известных программ не наказывать. False positive к тому же mail.ru или yandex.bar, может стоит места в рейтинге vb100. Поэтому эти продукты, не рассматриваются как зловреды.
0
>>«предоплаченные»
Такого в антивирусной индустрии не приветствуется и смысла в этом нет никакого. Если файл ведет себя как вирус, то возможны ситуации по детектированию и следовательно удалению:
1) Спросить пользователя, если выбран «интерактивный» режим
2) Файл уже детектед и пришло письмо от производителя этого файла. к примеру этот файл в составе какого-либо продукта какой-нить компании. В этом письме компания четко обосновывает что и для чего делает этот файл и почему его не следует детектить. Если аверы принимают решение, что обоснование корректное, то файл заносят в white-list или же дают «щадящее» название.
-2
Ну, объяснил так объяснил! Список вирусов, которым мы доверяем — это список доверительных инфекций. Спасибо! Стало яснее :)
+20
Статья капитанская. Говоришь — сканер изнутри, на самом же деле написал обзор основных функций среднестатистической авирской поделки.
+3
Код ни к чему, но желательно больше технических сведений. Особенно интересна работа эмулятора. Я так понимаю, эмулятор умеет лишь небольшое подмножество API, так что ничего не стоит написать код, с которым эмулятор не справится. Как оно поведёт себя в таком случае? Или вирь начнёт обнаруживаться только когда авиры подрпавят эмулятор?
0
Спасибо за дельные замечания. Учту. Статья вводная, опыта у меня всего год, как доберусь до внутренностей эмулятора — отпишу).
0
Вы точно пишете сами антивирус? По-моему всем известно что многие форумы не показывают свои темы не зарегистрированным на их ресурсе личностям. Другими словами вам надо зарегистрироваться и после этого войти на этот форум.
+2
Все что Вы изложили уже давно известно и давным давно описано. К примеру статика в статье от 2003 года, про эмуляторы статья от 2004 года и даже статья об уязвимостях в эмулях. Более того то что Вы пытались описать обзор, который уже был написан в статьи от 2004. Да там некоторых деталей не указано. Но Вам можно было упростить себе задачу сославшись на известное и дописать то чего нету в других источниках.

Ваши ошибки, на мой взгляд, может и ошибаюсь:
1) Говорить термином «exe-шник» не стоит. Это может натолкнуть новичка на мысль что анализируется только файл с расширением "*.exe", а это не так!
2) Вы забыли указать о доп. действиях с анализируемым файлом. К примеру современные антивирусы после распаковки и вынесения вердикта по файлу, также выдирают все возможные строки среди которых ищут url-ссылки, а по ссылкам скачать и снова проанализить, как вывод если файл чист а по ссылке зловред, значит это вирус и шлем файл экспертам почему мы его не детектим. Также в файле ищутся другие возможные исполнимые файлы, к примеру в ресурса или оверлее.
+3
С долей копипаста в виде внезапных переносов строк после знаков препинания
+1
Согласен, статья бесполезная, куча воды ни о чем. Весь текст о том, что трава зеленая.
+7
1) Сигнатуры бывают основаны не только на хешах. Часто за сигнатуру берутся определенные байты (или маски) с определёнными смещениями. Например: B8DCFB5E00???B8*B201
Кроме статических, есть поведенческие сигнатуры — обычно, наборы вызовов определенных API с определёнными параметрами.

2) Упакованные файлы распаковываются эмулятором. Без него антивирус практически бессилен.

Изложено очень поверхностно. Я ожидал увидеть хотя бы фрагменты исходного кода.
+1
Эмулятор. Защита юзермодных процессов из ядра. Поиск нетривиальных руткитов и механизмы, позволяющие нормально устанавливать ваш продукт на заражённую машину и т.д.
0
>>2) Упакованные файлы распаковываются эмулятором. Без него антивирус практически бессилен.
Не только. Статические распаковщики тоже весьма популярны. Эмулятор может слишком долго анпачить, выход из этого только один: бенчмарки и только потом решение как нужно распаковывать.
0
> зашифрованные exe-пакером
Помоему пакеры ниразу не шифруют, а кодируют информацию. Это разные вещи
+1
&gt Также слабым местом хэш-скана является скорость проверки.

В каком же простите месте? Самым слабым местом всегда является скорость считывания с диска, а посчитать мд5 хеш (хотя что-то слабо верится что именно по хешу сравнение, а не по шаблонам) и найти в списке сигнатур (пусть даже среди нескольких миллионов) хеш-поиском (да хоть бинарным) — вопрос нескольких долей миллисекунды.
0
В сравнении с эвристическим поиском. Это и подразумевалось, считывание + сравнение.
0
Прощу прощения за дотошность, но в ряде случаев: сканирующий движок != сканер.
Например, в продуктах Dr.Web сканер (как GUI, так и консольная версия) используют при сканировании антивирусный движок, также как его используют другие компоненты Dr.Web — файловый монитор, веб-монитор и др.
0
> Для локализации выявления вредоноса, хэш может вычисляться только для exe-файлов на основе PE-заголовка.

Это далеко не так.
Интеграция зловредного когда возможна и без модификации заголовка.
+1
Таким образом, файл считается зараженным, если его хэш найден в базе сигнатур.

Не понял. Считаем хэш файла и ищем егов базе? А смысл?

Или для каждого файла делаем «окно» совпадающее по длине с сигнатурами и проходим этим окном по файлу? Грубо говоря окно 1 Кбайт, файл 1 Мегабайт — вычисляем ~1 млн. хэшей и ищем в базе среди вирусов с сигнатурой в 1 Кбайт, потом также для сигнатур всех остальных длин. То есть каждый (почти) байт мегабайтного файла хэшируется порядка миллиард раз если считать что разных по длине сигнатур порядка тысячи?
+1
Да, да, мне тоже очень интересно! Каким образом хеш поможет найти вирус? При условии что вирусы разной длины и могут находиться в различных секциях файла? Или от каждого файла все же считается 5 млн хешей для каждого вируса в отдельности для соответствующей этому уникальному вирусу области?
+1
На практике это реализовано так: определяем что файл exe-шник. Первые два байта — 'MZ'. Далее считываем его PE-секции, и из последней вычисляется MD5-хэш, который уникален. А в базе сигнатур уже хранятся хэши этих самих вирусов. Если файл не зашифрован, вирус не полиморфен итд., то хэши совпадают с высокой долей вероятности.
0
То есть вирусы просто дописывают свое тело к концу файла, если в подробности не вдаваться? Как-то недальновидно по-моему.
0
К концу PE-секции исполняемого файла. У разных авиров по разному вычисляется хэш. Другое дело, что сейчас более популярно заражение через хак плагинов браузера, таких как Flash, Java, QuickTime. Только если они не выполняются в песочнице, и та может тоже содержать уязвимости.
0
Ну суть в том, что именно дописываются, а не вырезают кусок и не вставляют себя на его место (возможно дописывая кусок в конец, чтоб раньше времени себя не демаскировать неработающей программой).
0
Да, послебний вопрос интересен (алгоритм выбора куска для хэша). Так, в принципе, о многом догадывался, а то чего не понимал так и не написано. По сути тема требует подробного раскрытия, можно и без кода но описание алгоритма требует большей детализации.
+1
>>Да, послебний вопрос интересен (алгоритм выбора куска для хэша).
Поищите: «AVPBase_parser.rar», по оригинальнойссылке от автора, файл уже недоступен. Более того не прошло и года как выкладывали сорцы Каспера! ;)
0
Такой вид сканирования позволяет определить вид атаки с высокой долей вероятности, без ложных срабатываний

Достаточно погуглить fasm virus false positive чтобы обнаружить множество примеров «отсутствия» ложных срабатываний сигнатурного сканирования. У моего друга, так вообще все скомпилированные fasm'ом программы определяются как вирусы. А уж случаев когда сигнатуру просто ставят на распространенный пакер не перечесть.
0
«Обычно сигнатурой антивируса является MD5-хэш (16 байт) сгенерированный на основе тела известного вируса.» — позапрошлый век.
Only those users with full accounts are able to leave comments., please.