Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Опенсорсовый антивирус (общие мысли вслух)

2.4K
24 сентября 2008 года
Николай Коровин
58 / / 13.03.2004
Ни к чему, просто так, подумалось, мож кому интересно, но вряд ли. Кину в пространство. Сам я вряд ли чего буду писать/основывать/руководить.
Опенсорсовые антивирусы есть, но я не сказал бы, что они хорошо держат оборону... в гонке брони и снаряда самодельная броня пока отстает страшным образом. Мне кажется, проблема тут в том, что к опенсорсовому антивирусу нужен совсем другой подход, нежели к коммерческому.
Побрежу тут, если не возражаете. Кому-нибудь интересно послушать?
Страницы:
1
01 октября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: misha_turist
У меня антивирусник и система (хотя там не ввё так чисто, как хотелось бы) лицензионная.
И не потому что я такой "правильный", а потому, что гарантированно не ломаная и отбновления, дополнения без проблем.
А на предприятии уже всё на лицензию перевели, не говоря уже о серверах и т.п. которые по жизни такими были.


все за вас рады шо писец :)
не понятно просто - зачем включаться в тему в которой собственно не обсуждается лицензионное или нет стоит у кого ПО и почему? Тема вообще другому посвящена и лицензии затронуты здесь только краем, в том смысле что конечные пользователи совершенно зря надеются на то, что мифические "рыночные отношения" каким то образом влияют на функциональность ПО, в глобальных масштабах конечно. Это я говорю как конечный пользователь - который провел множество времени в переписке с центром поддержки крупной антивирусной компании по поводу боков в их продукте (и угадайте с трех раз исправлена ли эта проблема до сих пор - а она обсуждается очень активно?) - кроме того как ИТ-руководитель двух крупнейших предприятий мне очень часто приходилось принимать решения и общаться с разработчиками ПО, принимать решения по лицензионнное/не лицензионное и т.д. По этому если я говорю что рыночные механизмы тут никакой роли не играют - то я знаю о чем я говорю. Возможно конечно, я живу на луне и у вас все по другому - тогда я вас поздравляю и у вас одна из крупнейших корпораций - производителей ПО не диктует вашему правительству
что и как оно должно делать - а правительство вовсе не продажно и максимально заботится о свободах граждан. Вам вероятно просто повезло - или вы не все знаете. :)

87
02 октября 2008 года
Kogrom
2.7K / / 02.02.2008
А вообще, мне нравится то, что говорит hardcase. Однако, в такой среде хорошо бы предусмотреть возможность установки нескольких виртуальных машин, которые бы работали не на управляемом коде.

С другой стороны, у меня есть подозрения, что в если работать в режиме пользователя в неиспахабленной Висте без антивируса и прислушиваться к ее сообщениям, то риск занести вирус будет совсем маленьким. Правда, программисту нормально поработать в таком режиме трудновато :)
2.4K
02 октября 2008 года
Николай Коровин
58 / / 13.03.2004
Цитата: Kogrom
С другой стороны, у меня есть подозрения, что в если работать в режиме пользователя в неиспахабленной Висте без антивируса и прислушиваться к ее сообщениям, то риск занести вирус будет совсем маленьким.



У меня, в свою очередь, есть подозрения второго порядка, что M$овские маркетологи как раз и получают свой хлеб за то, чтобы вызывать такие подозрения. Программистам подтверждать их уже не обязательно -- объем продаж равен объему надежд, а не проценту сбывшихся из них.

5
02 октября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
С другой стороны, у меня есть подозрения, что в если работать в режиме пользователя в неиспахабленной Висте без антивируса и прислушиваться к ее сообщениям, то риск занести вирус будет совсем маленьким.

Нуда. Для того и нужен UAC. Система настраивается один раз (и ругаешься на его бесконечные попапы) - дальше по обстановке.

2.4K
02 октября 2008 года
Николай Коровин
58 / / 13.03.2004
Кстати, из свеженького... Новейший НОД32 в упор не желал ничего видеть в системе, которая точно была заражена. Но стоило запустить его же из-под чистой загрузки и обследовать те же диски в статике -- целый зоопрак наловил.
Это настолько не в первый раз, что у меня стойкое ощущение, что производители уже реально опустили руки в плане соответствующего пункта из начала темы, только признаться не хотят.
1
02 октября 2008 года
kot_
7.3K / / 20.01.2000
Кстати, из свеженького... Новейший НОД32 в упор не желал ничего видеть в системе, которая точно была заражена. Но стоило запустить его же из-под чистой загрузки и обследовать те же диски в статике -- целый зоопрак наловил.
Это настолько не в первый раз, что у меня стойкое ощущение, что производители уже реально опустили руки в плане соответствующего пункта из начала темы, только признаться не хотят.


вирусы бывают разные - и используют различные механизмы сокрытия себя в системе. Да и антивирусы бывают разные - тот же BitDefender - на порядок помощнее НОДа, в первую очередь за счет того, что хорошо работает на уровне ядра - но опять же - идеальный антивирус - сродни философскому камню. По этому (возвращаясь собственно к теме :)) опенсоурс антивирь возможен - но при условии что команда хотябы попытается решить те проблемы которые в основном обрисованы в сообщеении Green'а - зачем это делать?
Подобный продукт будет востребован, даже если его поддержка будет не столь масштабной как у коммерческих аналогов, за счет того что хорошие вирусы детектят наиболее распространеные антивирусы. Опенсоурс-проект в этом случае на этапе становления уже будет иметь преимущество некоторое время. Плюс, антивирус может быть полиморфным. Кроме того, им будут пользоваться и развивать те, кому интересно то что происходит под капотом системы. Ну есть еще куча ЗА, есть куча КОНТРА - лень все перечислять - пошел ужинать :)

2.4K
28 октября 2008 года
Николай Коровин
58 / / 13.03.2004
Да, вот подытожить "за и против", судя по возрасту темы, было бы неплохо.

ЗЫ: а подпись совершенно правильная, она отражает "законы форумной физики", как бы они с виду ни выглядели.
1
29 октября 2008 года
kot_
7.3K / / 20.01.2000
дык. вроде ж все уже сказали. Вопрос не в том что бы создать антивирь - вопрос в организации адекватной поддержки. Без этого идея мертворожденная.
Ну допустим по тому же ноду я для своих клиентов обеспечиваю обновления. Могу предоставить свой ресурс для обсуждения, разработки и организации службы поддержки. Готов поучаствовать в разработке. Но прежде чем это начинать необходимо определить всетаки какие преимущества получит человек юзающий опенсоурс антивирь и что ему за это прийдется заплатить. Может и желающих будет не особо :)
241
29 октября 2008 года
Sanila_san
1.6K / / 07.06.2005
Зачем изобретать, если уже выпускается ClamAV? Да, меня он, положим, не удовлетворил, но никто же не мешает открыть новую ветку "удовлетворительного ClamAV". Правда, он несколько для других целей предназначался, но вообще я это к тому, что вместо обсуждения непонятно чего всегда есть возможность начать что-то делать. Если Николай Коровин так нуждается в опенсорсном антивирусе и готов его развивать, то ClamAV по любому хороший задел - тут тебе и разработчики есть, и продукт известный уже, и, что приятно, за базой обновлений тоже кто-то следит.

Просто мне иногда кажется, что за началом таких обсуждений чаще стоит не реальная потребность пользователей в продукте, а скрытое желание догнать и переплюнуть Торвальдса. На деле же оказывается полезным исходить не из идеи создать опенсорсный антивирус, а из намерения выложить клёвый продукт, который реально оказывается нужен многим людям. Мало кто на этапе начального проектирования задумывается о том, кто купит продукт. Не обязательно за деньги купит, может и за время - не в этом дело. Главный вопрос: кому всё это нужно?
341
29 октября 2008 года
Der Meister
874 / / 21.12.2007
[QUOTE=Sanila_san]На деле же оказывается полезным исходить не из идеи создать опенсорсный антивирус, а из намерения выложить клёвый продукт, который реально оказывается нужен многим людям.[/QUOTE]Тогда проще интенсивно писать полезные программы под Singularity (коих не существует ещё ой как много), дабы выявить проблемные её места и помочь перевести проект из разряда исследовательских в промышленные, и искоренить словосочетание "компьютерный вирус" из лексикона наших потомков в светлом будущем: Singularity сейчас тоже оупенсо:рс :)
255
30 октября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Эммм.. Вставлю свои 5 копеек.. )
Смысла в опенсорсности антивируса практически нет. Кому надо уже давно дизасемблировали движки существующих не-опенсорс проектов.
Да и вообще движок антивиря даже самому с нуля написать не так уж и сложно. На wasm.ru есть просто туева хуча статей по этому поводу(для базового функционала хватает по большому счету модуля эмуляции кода + поддержка пары-тройки стандартных упаковщиков).
Самое интересное - алгоритмы эвристик, которые во многом базируются на статистике и команда психов, которая постоянно добавляет новые сигнатуры.
3
30 октября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr

Да и вообще движок антивиря даже самому с нуля написать не так уж и сложно. На wasm.ru есть просто туева хуча статей по этому поводу(для базового функционала хватает по большому счету модуля эмуляции кода + поддержка пары-тройки стандартных упаковщиков).


ну-ну... не так уж и сложно... :)
Под "эмуляцией кода" ты подразумеваешь виртуальную машину?
Ну так вот эта задача ОЧЕНЬ непростая.

255
31 октября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: Green
ну-ну... не так уж и сложно... :)
Под "эмуляцией кода" ты подразумеваешь виртуальную машину?
Ну так вот эта задача ОЧЕНЬ непростая.


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

3
31 октября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr

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


То, что описано в статье,- это детский лепет по сравнению с реальными технологиями.
Все равно, что сравнивать петарду с космической ракетой.
"Если уж я не имея познаний в химии и физике сделал петарду на кухне за пару часов, то, думаю, запустить человека в космос не так уж и сложно." :)

На самом деле, для того, чтобы детектировать современный вирус, надо писать самую настоящую виртуальную машину с соотв. реализацией WinAPI и т.п.
Иначе, такой АВ можно обмануть, как дитё малое.

255
02 ноября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Позволю себе не согласиться.
Описаный в статье движок эмулирует простейшие инструкции языка ассемблер, которых ограниченое количество. Каждая из них может выдать вполне определенный (причем однозначно определенный) результат. Поэтому, как мне кажется, "обмануть" эмулятор на этом этапе практически невозможно. Другое дело, что метаморф, к прмиеру, можно проэмулировать, но не определить по сигнатуре после расшифровки, но это уже и есть проблема эвристики.

Если я ошибаюсь, хотелось бы увидеть ссылочку где можно прочитать о том:
- как можно обмануть такой простейший эмулятор
- как дополняют современные антивирусы свои алгоритмы эмуляции для того чтобы их не обманули.
3
02 ноября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr

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

Если я ошибаюсь, хотелось бы увидеть ссылочку где можно прочитать о том:
- как можно обмануть такой простейший эмулятор
- как дополняют современные антивирусы свои алгоритмы эмуляции для того чтобы их не обманули.


Ссылочку давать не буду, т.к. надо искать, либо писать статью самому, а пока времени на это нет.
А обмануть такой эмулятор можно сотней разных способов. Самые простые - это не доводить дело до эмулятора. :)
Делается это элементарно, например, вызовом какой-нибудь ф-ции API и по необходимости проверкой результата, а уж какой ф-ции выбирай сам.

Современные антивирусы используют не такие "эмуляторы", а полноценные виртуальные машины с реализацией WinAPI и т.п.
Но и их можно обмануть. Самый действенный способ - это задержка по времени. Антивирус не имеет возможности ждать несколько секунд, а тем более минут, пока вирус начнет разворачиваться. Но осуществить такую задержку - это весьма нетривиальная задача.

255
05 ноября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Хмм.. Ну, если не доволить дело до эмулятора, то возникает вопрос, а много ли нормальных программ так делают? Не проще ли, при обнаружении таких заморочек обьявить программу вредоносной?
3
05 ноября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr
Хмм.. Ну, если не доволить дело до эмулятора, то возникает вопрос, а много ли нормальных программ так делают? Не проще ли, при обнаружении таких заморочек обьявить программу вредоносной?


Каких таких заморочек?
Например, если в программе есть Sleep, ты объявишь её вредоносной?

255
08 ноября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Sleep не помеха даже для простейшего емулятора :)
Насколько я понял тебя, то что-бы действительно заморочить емулятор нужно что-то вроди навороченого алгоритма генерации "мусорного" кода(содержащего вызовы винапи функций) разной длины в рантайме.
Разве такой алгоритм не выдаст себя с головой? А если даже и не выдаст, то кто мешает просканировать файл 2 раза подряд, и обнаружить что один и тот же код по-разному себя ведет. Как мне кажется, это уже повод - запихнуть такой файл в карантин.
3
08 ноября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr

Sleep не помеха даже для простейшего емулятора :)


Да ну... :)
Как же в "простейшем эмуляторе" ты собираешься это обходить?
Это помеха, причем, Sleep - это цветочки.

Цитата: Dart Bobr

Насколько я понял тебя, то что-бы действительно заморочить емулятор нужно что-то вроди навороченого алгоритма генерации "мусорного" кода(содержащего вызовы винапи функций) разной длины в рантайме.
Разве такой алгоритм не выдаст себя с головой?


Нет, ты не правиьно меня понял.
Нет ничего навороченного, не надо никакого мусора.
Все решается меньше, чем десятком, строк кода.

Цитата: Dart Bobr

А если даже и не выдаст, то кто мешает просканировать файл 2 раза подряд, и обнаружить что один и тот же код по-разному себя ведет. Как мне кажется, это уже повод - запихнуть такой файл в карантин.


Что значит "просканировать дважды" и как ты собираешься обнаружить, что "один и тот же код по-разному себя ведет" ?

P.S. Ты строишь предположения, да ещё и в рамках какого-то "простейшего эмулятора", а я "обманывал" реальные довольно мощные виртуальные машины серьезных антивирусов, которые запускают исследуемый файл, создают для него виртуальную оболочку операционной системы (эмулируют Win32 API, Native API и т.п.) и анализируют его работу.

255
13 ноября 2008 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: Green
Да ну... :)
Как же в "простейшем эмуляторе" ты собираешься это обходить?
Это помеха, причем, Sleep - это цветочки.


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

Цитата: Green

Что значит "просканировать дважды" и как ты собираешься обнаружить, что "один и тот же код по-разному себя ведет" ?


Ну разве это такая большая проблема? Эмулятор - не что иное, как конечный автомат. Если один и тот же код приводит этот автомат в разные состояния - значит все совсем плохо.

[имхо]
Я, конечно, могу и ошибаться, но я совсем не понимаю, зачем эмулировать WinAPI, если можно проанализировать передаваемые параметры в функцию и пропустить её выполнение, причем количество функций, для каких стоит анализировать входные данные - довольно маленькое - в основном функции предоставляющие доступ к устройствам(например DeviceIoControl). А писать полноценную VM для такой задачи конечно можно, но вот только использовать её в реальном антивирусе, вряд ли возможно, из-за низкой скорости работы.
[/имхо]

3
13 ноября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Dart Bobr

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


Вот и отлично, теперь вирус "знает", что выполняется он твоим эмулятором и соотв-но не запустит основное свое тело.

Цитата: Dart Bobr

Ну разве это такая большая проблема? Эмулятор - не что иное, как конечный автомат. Если один и тот же код приводит этот автомат в разные состояния - значит все совсем плохо.


Еще раз, как ты собираешься обнаружить, что "один и тот же код по-разному себя ведет" ?
Он ведет себя по разному: одним путем в системе, а другим - в твоем эмуляторе. Как он определяет где он запущен? Смотри выше.

Цитата: Dart Bobr

[имхо]
Я, конечно, могу и ошибаться, но я совсем не понимаю, зачем эмулировать WinAPI, если можно проанализировать передаваемые параметры в функцию и пропустить её выполнение, причем количество функций, для каких стоит анализировать входные данные - довольно маленькое - в основном функции предоставляющие доступ к устройствам(например DeviceIoControl). А писать полноценную VM для такой задачи конечно можно, но вот только использовать её в реальном антивирусе, вряд ли возможно, из-за низкой скорости работы.
[/имхо]


1. Пропускать нельзя, нужно эмулировать корректную работу!
2. Число этих ф-ций большое и они взаимосвязаны. К примеру, можно сделать Sleep или Beep, а потом проверить системный таймер. Можно создать объект синхронизации, а потом проверить его состояние. Можно создать окно, передать ему сообщение, а потом проверить его состояние.
3. Про антивирусы уже сказал: ты предполагаешь, что "вряд ли возможно", а я утверждаю, что они так и делают.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог