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

1. Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины, в которой все операнды выполняемых функций размещаются лишь в одной структуре данных, в качестве которой выступает стек виртуальной машины, в котором
а) выделяют данные по меньшей мере из одного файла, исполняемого с помощью стековой виртуальной машины;
б) осуществляют поиск по меньшей мере одного кластера в базе кластеров безопасных файлов по данным, выделенным на этапе а);
в) выделяют данные по меньшей мере из одного найденного на этапе б) кластера;
г) создают по меньшей мере один кластер из выделенных на этапах а) и в) данных при помощи правил кластеризации;
д) вычисляют контрольную сумму по меньшей мере одного созданного кластера;
е) осуществляют поиск вычисленной контрольной суммы в базе контрольных сумм кластеров вредоносных файлов;
ж) выносят вердикт об обнаружении по меньшей мере одного вредоносного файла в случае обнаружения в результате поиска, осуществленного на этапе е), в базе контрольных сумм кластеров вредоносных файлов вычисленной контрольной суммы.
2. Способ по п. 1, в котором в качестве данных, выделяемых из файла, исполняемого с помощью стековой виртуальной машины, выступают по меньшей мере:
параметры секции файла, такие как
код секции,
название секции,
тип заголовка секции,
смещение на данные в секции,
размер данных секции;
параметры функции, выполняемой с помощью стековой виртуальной машины, такие как
индекс тела функции,
позиция и длина кода функции в секции,
индекс описателя функции,
максимальная глубина стека при исполнении функции,
количество используемых функцией локальных переменных,
название функции,
количество операндов,
возвращаемый тип данных.
3. Способ по п. 1, в котором в качестве данных, выделяемых из кластера, найденного в базе кластеров безопасных файлов, выступают по меньшей мере
параметры секции файла, такие как:
код секции,
название секции,
тип заголовка секции,
смещение на данные в секции, размер данных секции;
параметры функции, выполняемой с помощью стековой виртуальной машины, такие как:
индекс тела функции,
позиция и длина кода функции в секции,
индекс описателя функции,
максимальная глубина стека при исполнении функции,
количество используемых функцией локальных переменных,
название функции,
количество операндов,
возвращаемый тип данных.
4. Способ по п. 1, в котором осуществляется поиск в базе кластеров безопасных файлов по данным, выделенным из файла, исполняемого с помощью стековой виртуальной машины, кластера, содержащего по меньшей мере
значение одного из параметров секций файла, превышающего заданный порог;
значение одного из параметра функций, выполняемых с помощью стековой виртуальной машины, превышающего заданный порог.
5. Способ по п. 1, в котором в качестве правил кластеризации, при помощи которых создают кластер из данных, собранных из файла, исполняемого с помощью стековой виртуальной машины, выступает по меньшей мере правило, по которому
собранные данные размещаются в кластере последовательно в порядке их выделения из файла;
параметры секции файла не участвуют в формировании кластера в случае, когда размер данных секции файла равен нулю;
параметры функции, выполняемой с помощью стековой виртуальной машины, не участвуют в формировании кластера в случае, когда количество используемых функцией локальных переменных равно нулю;
данные, выделенные из кластера, найденного в базе кластеров безопасных файлов, не участвуют в формировании кластера.
6. Способ по п. 1, в котором в качестве контрольной суммы, вычисленной по созданному кластеру, выступает нечеткая контрольная сумма от созданного кластера.