Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Доброго времени суток! Появилась необходимость рассмотреть методы сигнатурного поиска вирусов и компьютерных атак (в основном поиск атак). Просмотрел достаточное количество книг и статей, но в основном, методы поиска описываются кратко и теоретически. Где можно найти подобную информацию с примерами? Конкретно нужны: -сами алгоритмы (интерпретация аппаратом дискретной математики); -подходы к представлению сигнатур, их формат; -описание процесса обнаружения (можно на примере).
Circiter
Re: Алгоритмы поиска сигнатур
22.05.2011, 12:39
Последний раз редактировалось Circiter 22.05.2011, 13:51, всего редактировалось 4 раз(а).
Я не спец. в вопросах безопасности. Но подозреваю, что какой-то отдельной теории сигнатурного анализа не существует и каждый производитель антивирусного ПО решает свои проблемы по-своему. Можно предположить, что в простейшем случае сигнатуры представляются регулярными выражениями, а работа антивируса сводится к задаче поиска подстроки по regex-шаблону. В более же общем случае, сигнатурами могут быть простые алгоритмы (ну это я погарячился; лучше сказать не алгоритмы, а списки признаков и правил), за кратчайшее время классифицирующие предъявляемый файл.
Правда, на деле, учитывая критичность сигнатурного анализа к скорости работы, сигнатуры обычно являются просто наборами уникальных для данного вируса участков его исполняемого кода (при поиске может применяться хеширование); в частности, каждая сигнатура может быть просто строкой, которая ищется во всем файле. Для отнесения файла к вирусам достаточно срабатывания одной сигнатуры.
При этом процесс создания сигнатурной базы тоже может сильно варьироваться, начиная от трудоемкого ручного заполнения экспертом и заканчивая автоматическим составлением по результатам, например, статистического анализа обучающей выборки.
Попробуйте поискать в интернете исходники каких-нибудь open-source антивирусов (они существуют).