СИСТЕМА И СПОСОБ СРАВНЕНИЯ ФАЙЛОВ НА ОСНОВЕ ШАБЛОНОВ ФУНКЦИОНАЛЬНОСТИ

1. Способ определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, содержащий этапы, на которых:
(а) формируют шаблоны функциональности на основе информации об исполняемом файле;
(б) выделяют шумовую информацию из шаблонов функциональности исполняемого файла;
(в) приводят блоки шаблонов функциональности исполняемого файла к нормализованному виду для последующего сравнения;
(г) сравнивают нормализованные блоки шаблонов функциональности исполняемого файла с блоками шаблонов функциональности известных файлов и по результатам сравнения принимают решение о принадлежности нормализованного блока шаблонов функциональности к одному из шаблонов функциональности известных файлов.
2. Способ по п.1, в котором информация об исполняемом файле может быть собрана посредством таких инструментов сбора информации, как
модуль, эмулирующий исполнение программы;
модуль виртуализации программ;
модуль контроля приложений;
модуль, который дизассемблирует программу и позволяет облегчить дальнейшее выстраивание между определенными функциями связей.
4. Способ по п.1, в котором формирование шаблонов функциональности исполняемого файла осуществляется в два этапа: динамический и статический.
5. Способ по п.4, в котором динамический этап подразумевает сбор информации об исполняемом файле при помощи инструментов сбора информации; и
результатом работы динамического этапа при формировании шаблонов функциональности исполняемого файла являются дамп памяти и журнал событий.
6. Способ по п.4, в котором статический этап подразумевает непосредственную трассировку дампа памяти и формирование шаблонов функциональности исполняемого файла.
7. Способ по п.1, в котором шаблоны функциональности исполняемого файла бывают двух типов:
шаблон функциональности, который основан на последовательности блоков; и
шаблон функциональности, который основан на последовательности ребер.
8. Способ по п.7, в котором блоками называются совокупности элементов, такие как API-функции, ссылки на строки кода и ссылки на другие логические блоки.
9. Способ по п.7, в котором ребрами называются участки между вызовами одного блока другим.
10. Способ по п.1, в котором выделяемая шумовая информация включает в себя базовые библиотеки компилятора и статически слинкованные функции стандартных библиотек.
11. Способ по п.1, в котором сравнение шаблонов функциональности исполняемого файла с шаблонами из коллекций известных файлов осуществляется по различным для каждого типа шаблонов функциональности математическим алгоритмам, таким как
расстояние Хемминга;
расстояние Левенштейна;
алгоритм вычисления весов;
алгоритм выделения характеристической информации.
12. Система определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, содержащая:
средство эмуляции, которое осуществляет сбор информации об исполняемом файле;
средство создания шаблонов функциональности исполняемого файла, которое на основе информации, собранной средством эмуляции, формирует блоки и составляет из них шаблоны функциональности исполняемого файла;
средство обработки шаблонов функциональности исполняемых файлов, которое выделяет из шаблонов функциональности шумовую информацию и приводит блоки шаблонов функциональности к нормализованному виду;
средство хранения коллекций шаблонов функциональности известных файлов;
средство сравнения шаблонов функциональности исполняемых файлов, которое осуществляет сравнение нормализованных блоков шаблонов функциональности, полученных от средства обработки шаблонов функциональности, с шаблонами функциональности известных файлов из упомянутого средства хранения коллекции в соответствии с классификацией шаблонов функциональности исполняемых файлов.
13. Система по п.12, в которой средство эмуляции включает в себя такие инструменты сбора информации, как
модуль, эмулирующий исполнение программы;
модуль виртуализации программ;
модуль контроля приложений;
модуль, который дизассемблирует программу и позволяет облегчить дальнейшее выстраивание между определенными функциями связей.
14. Машиночитаемый носитель определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, на котором сохранена компьютерная программа, при исполнении которой на компьютере выполняются следующие этапы:
(а) формируют шаблоны функциональности на основе информации об исполняемом файле;
(б) выделяют шумовую информацию из шаблонов функциональности исполняемого файла;
(в) приводят блоки шаблонов функциональности исполняемого файла к нормализованному виду для последующего сравнения;
(г) сравнивают нормализованные блоки шаблонов функциональности исполняемого файла с блоками шаблонов функциональности известных файлов и по результатам сравнения принимают решение о принадлежности нормализованного блока шаблонов функциональности к одному из шаблонов функциональности известных файлов.