Mag3d

Интересно ваше мнение:разработка интеллектуального алгоритма

В этой теме 13 сообщений

Очень интересно услышать ваше мнение:

я пытаюсь разработать алгоритм обнаружения вирусов, при этом:

1) на вход подается исполняемый файл;

2) распаковывается (если чем-то упакован) - частично решена задача;

3) дизассемблирую виртуальный образ - решена задача;

4) строю диаграмму потоков управления (смысл в диаграмме - перечисление всех возможных путей выполнения программы (трасс)) - частично решена задача;

5) на этой диаграмме выделяю языковые конструкции, характерные для вирусов (по-большому счету всеравно: хоть программных закладок) - только начал классификацию признаков делать;

Для программных закладок - последовательности вызовов (но их я не рассматриваю), для вирусов - конструкции языка.

6) далее подается либо на нейросетевой анализатор (подобно AVZ), либо распознование с помощью структурного метода (формальные грамматики).

Как вы считаете насколько такой антивирус будет эффективен для новых, модифицированых, упакованных вирусов?

Если есть уже такая реализации (максимально близкая), то какой антивирус?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Mag3d

очень похоже на анансированное творение майкрософта.

только начал классификацию признаков делать;

в этом как раз и вся проблема.

Как вы считаете насколько такой антивирус будет эффективен для новых, модифицированых, упакованных вирусов?

если полностью решите задачу 2 - то эффективен для упакованных

если качественно решите задачу 5 - то эффективен для модифицированных

обнаружение новых реализаций старых конструкций зависит от задачи 3.

А вот обнаружение абсолютно новых вирусов - это дело вашей опытности и изобретательности и касается п 5.

короче вы пишите ещё один эвристик?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
...насколько такой антивирус будет эффективен для новых... вирусов?

Любой алгоритм является замкнутой системой (по моему).Новых вирусов вне рамок он детектить как таковых не будет,даже если и констатировать факт новой деятельности/файла сможет,что само по себе,я думаю,очень сложно.Узнать,что есть новая деятельность,которая вне рамок,можно задавая вопросы и отдавая в руки другого сказать.Теоретически такая связка гарантирует 100%-ую защиту.Можно раздвигать рамки,но не до бесконечности.Таким образом безвопросная прога имеет всегда дыру - что вне рамок.Есть,конечно,отдельный случай,где безвопросная (но констатирующая новую деятельность/файл) прога гарантирует 100%-ую защиту - правило "запрещено всё,что не разрешено" (только логи нужны,чтобы потом разобраться,что разрешить).Но это оказывается хуже при углублении.Наверно,этого не избежать.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для упаковщиков я сделал эмулятор IA32 и некоторых мех-мов ОС: SEH, TEB, PEB.

Правда не могу с эмулировать обработку многокаскадных seh, как в Yoda например, что-то не могу сообразить в чем проблема - где-то ошибся.

А простенькие упаковщики типа UPX, PeCompact, AsPack, NsPack, WinUpack, PeTite хорошо распаковывает.

C дизассемблером известная проблема:

регистровые (и подобные) переходы при условии, что вычисление значения выполняется по ходу программы. А так я реализовал принцип как в ide по прологам распознование начал функций.

> очень похоже на анансированное творение майкрософта.

А где это можно по-подробнее прочитать?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Mag3d, интересный алгоритм, на мой взгляд, по сути это получается эвристик, качество которого будет зависить от успешности разработки в п. 5. (выделение языковых конструкций, характерных для вирусов).

Изюминка аглоритма, конечно, - п. 6, о чем-то похожем я лично не слышал.

Как вы считаете насколько такой антивирус будет эффективен для новых, модифицированых, упакованных вирусов?

Если есть уже такая реализации (максимально близкая), то какой антивирус?

Для новых модификаций, такой алгоритм обещает быть эффективным (мое мнение), а вот так быть с так называемыми угрозами zero-day, которые наиболее опасны? Когда вдруг появляется вредоносная программа с новыми свойствами, эксплотирующая неизвестную до этого уязвимость.

Добавлено спустя 44 секунды:

А где это можно по-подробнее прочитать?

Вот тут обсуждение этой новости идет

http://www.anti-malware.ru/phpbb/viewtopic.php?t=756

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Mag3d

очень похоже на анансированное творение майкрософта.

Ничего подобного. Подозреваю, что у Microsoft исследуемая программа просто запускается в песочнице.

только начал классификацию признаков делать;

в этом как раз и вся проблема.

Экспертно это не делается. В Microsoft прогоняют все по коллекции различных файлов. Елси у вас такой коллекции нет, то никто вам советом не поможет, что считать критерием, а что нет.

Как вы считаете насколько такой антивирус будет эффективен для новых, модифицированых, упакованных вирусов?

Конечно будет.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ничего подобного. Подозреваю, что у Microsoft исследуемая программа просто запускается в песочнице.

запуск в песочнице может не выявить всех угроз.

Например отложенный запуск.

Но как метод выявления основных признаков, конечно самый быстрый и интересный.

Изюминка аглоритма, конечно, - п. 6,

это всего на всего решающее правило.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

1. Создается единый алгоритм анализа

2. Он прогоняется по огромной базе вредоносного кода и легитимных файлов.

3. С каждыой ошибкой проводится разберательство и

- либо меняется алогритм.

- либо только некоторые веса (это может быть сделано автоматически, тогда речь идет об обучении нееросети или линейной регрессии).

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

4. Полученный алгоритм регулярно обкатывается на новой партии вредоносного кода и определяется, что в нем нужно подкрутить.

5. "подкручивание" выпускается в виде обновления для пользователей.

6. "эффективность" --- это сколько ловит всякого нового алгоритм между обновлениями.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1. Создается единый алгоритм анализа

и всего то. :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1. Создается единый алгоритм анализа

и всего то. :)

Я пециально взял "просто" в кавычки. Я это все к тому, что нельзя экспертно указать, какой алгоритм будет эффективен, так как пока он будет разработан, многое изменится.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но при использовании указанных выше решающих правил, может решится проблема с ростом баз обновлений.

Но не надо забывать, что нейросеть это прежде всего действия над матрицами, а это в свою очередь процессорное время.. Короче при некоторой размерности тормозить будет жутко.

Добавлено спустя 1 минуту 5 секунд:

какой алгоритм будет эффективен, так как пока он будет разработан, многое изменится.

да да!!!

0

Поделиться сообщением


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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всё таки, решающее правило тут не самое главное..

хотя смотря какие задачи решать :)

Если нейросеть или что-то другое использовать именно для классификации и при этом полность полагаться на классификации, то это уже нечто другое :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

Anti-Malware.ru Вконтакте   Anti-Malware.ru в Facebook   Anti-Malware.ru в Twitter   Anti-Malware.ru в LinkedIn   RSS