Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
SYSTEM AND METHOD OF DETECTING MALICIOUS FILES ACCOMPANIED WITH USING THE STATIC ANALYSIS ELEMENTS

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения вредоносных файлов.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-серфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак таких, как отказ в обслуживании (англ. DDoS - Distributed Denial of Service) или для перебора паролей методом грубой силы (англ. bruteforce) на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.
Для борьбы с вредоносными программами, включающей в себя обнаружение вредоносных программ, предотвращение заражения и восстановление компьютерных систем, зараженных вредоносными программами, применяются специализированные программы - антивирусы. Для обнаружения всего многообразия вредоносных программ антивирусные программы используют разнообразные технологии, такие как:
статический анализ - анализ программы на вредоносность, исключающей запуск или эмуляцию работы анализируемой программы, на основании данных содержащихся в файлах, составляющих анализируемую программу, при этом при статистическом анализе могут использоваться:
сигнатурный анализ - поиск соответствий какого-либо участка кода анализируемой программы известному коду (сигнатуре) из базы данных сигнатур вредоносных программ;
белые и черные списки - поиск вычисленной контрольной суммы от анализируемой программы (или ее частей) в базе данных контрольных сумм вредоносных программ (черные списки) или базе данных контрольных сумм безопасных программ (белые списки);
динамический анализ - анализ программы на вредоносность на основании данных, полученных в ходе исполнения или эмуляции работы анализируемой программы, при этом при динамическом анализе могут использоваться:
эвристический анализ - эмуляция работы анализируемой программы, создание журналов эмуляции (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных эмуляционных сигнатур вредоносных программ;
проактивная защита - перехват вызовов API-функций запущенной анализируемой программы, создания журналов работы анализируемой программы (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных вызовов вредоносных программ.
И статический, и динамический анализ обладают своими плюсами и минусами. Статический анализ менее требователен к ресурсам компьютерной системы, на которой выполняется анализ, а поскольку он не требует исполнения или эмуляции анализируемой программы, статистический анализ более быстрый, но при этом менее эффективен, т.е. имеет более низкий процент обнаружения вредоносных программ и более высокий процент ложных срабатываний (т.е. вынесения решения о вредоносности файла, анализируемого средствами программы-антивируса, при том, что анализируемый файл является безопасным). Динамический анализ из-за того, что использует данные, получаемые при исполнении или эмуляции работы анализируемой программы, более медленный и предъявляет более высокие требования к ресурсам компьютерной системы на которой выполняется анализ, но при этом и более эффективен. Современные антивирусные программы используют комплексный анализ, включающий в себя как элементы статического, так и динамического анализа.
В патентной публикации US 9003314 описана технология обнаружения вредоносных файлов на основании статического анализа упомянутого файла с использованием иконок, содержащихся в анализируемом файле. С этой целью из анализируемого файла, без его исполнения или эмуляции его работы, извлекают иконки и сравнивают их с иконками из заранее подготовленного списка известных иконок, тем самым выполняя сигнатурный анализ. Анализируемый файл признается вредоносным, когда анализируемый файл содержит лишь одну иконку, упомянутая иконка содержится в упомянутом списке известных иконок и отмечена как иконка для вредоносных файлов. Основное преимущество описанной выше технологии заключается в скорости анализа файлов (достаточно лишь извлечь иконку из анализируемого файла и провести поиск иконок по списку известных иконок), однако качество такого способа обнаружения вредоносных файлов довольно низкое, а при использовании технологий обфускации иконок (когда в иконки при каждой сборке вредоносного приложения добавляется шум) описанная выше технология обнаружения вредоносных файлов становится полностью неэффективной.
Хотя описанная выше технология обнаружения хорошо справляется с обнаружением вредоносных файлов, а также файлов, представляющих потенциальную угрозу в случаях, когда упомянутые файлы содержат данные, схожие с данными, используемых в ранее уже обнаруженных вредоносных файлах, они зачастую имеют низкую эффективность при обнаружении новых вредоносных файлов, использующих данные, которые ранее не использовались в других вредоносных файлах или были модифицированы.
Настоящее изобретение позволяет решать задачу обнаружения вредоносных файлов с использованием элементов статистического анализа.
Раскрытие изобретения
Изобретение предназначено для антивирусной проверки приложений.
Технический результат настоящего изобретения заключается в обнаружении вредоносных файлов на основании анализа функциональных зависимостей между ресурсами анализируемых файлов.
Данные результаты достигаются с помощью использования системы признания файла вредоносным, которая содержит: средство извлечения ресурсов, предназначенное для: извлечения ресурсов из анализируемого файла; передачи извлеченных ресурсов средству формирования правил и средству поиска правил; средство формирования правил, предназначенное для: формирования по меньшей мере одного правила, устанавливающего функциональную зависимость между полученными ресурсами (далее - правило), при этом правило формируется путем создания из полученных ресурсов искусственной нейронной сети, где узлами искусственной нейронной сети являются средства анализа полученных ресурсов, а связи между узлами, сформированные во время создания нейронной сети, указывают на функциональную зависимость между полученными ресурсами; передачи каждого сформированного правила средству сравнения правил; средство поиска правил, предназначенное для: осуществления поиска по меньшей мере одного правила в базе ресурсов вредоносных файлов на основании полученных ресурсов; передачи каждого найденного правила средству сравнения правил; средство сравнения правил, предназначенное для: вычисления степени схожести между полученными от средства формирования правил и средства поиска правилами; передачи вычисленной степени схожести средству вынесения решения; средство вынесения решения, предназначенное для: признания анализируемого файла вредоносным, в случае, когда полученная степень схожести превышает заранее заданное пороговое значение.
В другом частном случае реализации системы в качестве анализируемого файла выступает по меньшей мере: исполняемый файл; файл, содержащий сценарии.
Еще в одном частном случае реализации системы в качестве файлов, содержащих сценарии, выступают по меньшей мере файлы: соответствующие приложению Microsoft Office; соответствующие приложению Adobe Acrobat Reader; содержащие сценарии на языке PowerShell.
В другом частном случае реализации системы в качестве ресурсов анализируемого файла выступают по меньшей мере: ресурсы, содержащиеся в секции ресурсов анализируемого файла; данные, содержащиеся в анализируемом файле и описывающие среду разработки, которая была использована для создания упомянутого файла; данные, содержащиеся в анализируемом файле и описывающие программные средства упаковки упомянутого файла.
Еще в одном частном случае реализации системы связи между ресурсами, содержащиеся в искусственной нейронной сети, формируются на основании алгоритмов машинного обучения.
В другом частном случае реализации системы база ресурсов вредоносных файлов представляет собой базу данных, содержащую по меньшей мере два правила, каждое из которых устанавливает функциональную зависимость между ресурсами по меньшей мере одного и того же вредоносного файла.
Еще в одном частном случае реализации системы дополнительно средство формирования правил передает средству поиска правил информацию о ресурсах, между которыми была установлена функциональная зависимость, а средство поиска правил производит поиск правил в базе ресурсов вредоносных файлов только для тех ресурсов, о которых было получена указанная информация.
В другом частном случае реализации системы средство поиска правил во время поиска правил в базе ресурсов вредоносных файлов находит правила на основании определения степени схожести полученных ресурсов с ресурсами, на основании которых были сформированы содержащиеся в базе ресурсов вредоносных файлов правила.
Данные результаты достигаются с помощью использования способа признания файла вредоносным, при этом способ содержит этапы, которые реализуются с помощью средств из системы и на которых: извлекают ресурсы из анализируемого файла; формируют по меньшей мере одно правило, устанавливающее функциональную зависимость между извлеченными ресурсами (далее - правило) путем создания из извлеченных ресурсов искусственной нейронной сети, где узлами искусственной нейронной сети являются средства анализа извлеченных ресурсов, а связи между упомянутыми узлами, сформированные при создании упомянутой нейронной сети, указывают на функциональную зависимость между извлеченными ресурсами; осуществляют поиск во время которого находят по меньшей мере одно правило в базе ресурсов вредоносных файлов на основании извлеченных на первом этапе ресурсов; вычисляют степень схожести между сформированным и найденным правилами; признают анализируемый файл вредоносным, в случае, когда вычисленная степень схожести превышает заранее заданное пороговое значение.
В другом частном случае реализации способа в качестве анализируемого файла выступает по меньшей мере: исполняемый файл; файл, содержащий сценарии.
Еще в одном частном случае реализации способа в качестве файлов, содержащих сценарии, выступают по меньшей мере файлы: соответствующие приложению Microsoft Office; соответствующие приложению Adobe Acrobat Reader; содержащие сценарии на языке PowerShell.
В другом частном случае реализации способа в качестве ресурсов анализируемого файла выступают по меньшей мере: ресурсы, содержащиеся в секции ресурсов анализируемого файла; данные, содержащиеся в анализируемом файле и описывающие среду разработки, которая была использована для создания упомянутого файла; данные, содержащиеся в анализируемом файле и описывающие программные средства упаковки упомянутого файла.
Еще в одном частном случае реализации способа связи между ресурсами, содержащиеся в искусственной нейронной сети, формируются на основании алгоритмов машинного обучения.
В другом частном случае реализации способа база ресурсов вредоносных файлов представляет собой базу данных, содержащую по меньшей мере два правила, каждое из которых устанавливает функциональную зависимость между ресурсами по меньшей мере одного и того же вредоносного файла.
Еще в одном частном случае реализации способа производят поиск правил в базе ресурсов вредоносных файлов только для тех ресурсов, между которыми на этапе б) была установлена функциональная зависимость.
В другом частном случае реализации способа средство поиска правил во время поиска правил в базе ресурсов вредоносных файлов находит правила на основании определения степени схожести полученных ресурсов с ресурсами, на основании которых были сформированы содержащиеся в базе ресурсов вредоносных файлов правила.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обнаружения вредоносных файлов с использованием элементов статического анализа.
Фиг. 2 представляет структурную схему способа обнаружения вредоносных файлов с использованием элементов статического анализа.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Функциональная зависимость (англ. functional dependency) - отношение между двумя множествами атрибутов, при котором атрибуты одного множества могут быть получены из атрибутов второго множества с помощью общего для всех атрибутов преобразования.
Схожесть данных - характеристика взаимосвязи данных друг с другом, описываемая численным параметром «степень схожести», вычисляемым путем использования известных метрик (например, расстояние Левенштейна) для определения, насколько данные похожи друг на друга (значение которого лежит как правило в диапазоне от 0 до 1, где 0 означается что данные полностью идентичны, а 1 - данные полностью различны).
Фиг. 1 представляет пример структурную схему системы обнаружения вредоносных файлов с использованием элементов статического анализа.
Структурная схема системы обнаружения вредоносных файлов с использованием элементов статического анализа состоит из средства извлечения ресурсов 110, средства формирования правил 120, средства поиска правил 130, средства сравнения правил 140, средства вынесения решения 150 и базы ресурсов вредоносных файлов 160.
Средство извлечения ресурсов 110 предназначено для:
извлечения ресурсов из анализируемого файла;
передачи извлеченных ресурсов средству формирования правил 120 и средству поиска правил 130.
В одном из вариантов реализации системы в качестве анализируемого файла выступает по меньшей мере:
исполняемый файл;
файл, содержащий сценарии.
Например, в качестве исполняемых файлов могут выступать файлы .ехе (explorer.exe), .dll (OCHelper.dll), sys (mountmgr.sys).
Еще в одном примере в качестве файлов, содержащих сценарии, могут выступать любые файлы, данные из которых исполняют сторонние исполняемые файлы (сценарии на языке ActionScript, исполняемые стековой виртуальной машиной Adobe Flash, вызываемой Internet Explorer, макросы Microsoft Excel и исполняемые при выполнении сценария на языке Visual Basic for Applications и т.д.).
Еще в одном из вариантов реализации системы в качестве файлов, содержащих сценарии, выступают по меньшей мере файлы:
Microsoft Office (.doc, .docx, ppt, pptx, .xls, .xlsx и т.д.);
Adobe Acrobat Reader (.pdf);
Adobe Flash Player (.swf);
содержащие сценарии, написанные на языке PowerShell.
Еще в одном из вариантов реализации системы в качестве ресурсов анализируемого файла выступают по меньшей мере:
ресурсы, содержащиеся в секции ресурсов анализируемого файла;
данные, содержащиеся в анализируемом файле и описывающие среду разработки, которая была использована для создания (компиляции) упомянутого файла;
данные, содержащиеся в анализируемом файле и описывающие программные средства упаковки упомянутого файла;
данные, соответствующие цифровой подписи анализируемого файла.
Например, в качестве ресурсов, содержащихся в секции ресурсов анализируемого исполняемого файла с расширением «.ехе», могут выступать курсоры (RT_CURSOR), иконки (RT_ICON), диалоговые окна (RT_DIALOG), меню (RT_MENU), строки (RT_STRING), битовые матрицы (RT_BITMAP) и т.д., структурированные в виде дерева и хранящиеся в секции «.rsrc» анализируемого файла. При этом вся информация о ресурсе, представляющая собой метаданные ресурса (например, для иконок это размеры иконки, количество бит на цвет в иконке, тип иконки, указатель на битовую матрицу, для диалогов - размер диалога, параметры основного шрифта диалога, количество элементов, размещенных в диалоге и т.д.) может содержаться непосредственно в самом ресурсе.
Еще в одном примере в качестве данных, описывающих среду разработки, которая была использована для создания анализируемого файла (например, для компиляции исходного кода в исполняемый файл), может выступать:
название среды разработки,
версия среды разработки,
дата создания (или компиляции) анализируемого файла;
(например, Microsoft Visual Studio 2015). При этом упомянутые данные, описывающие среду разработки, могут не содержаться в явном виде в анализируемом файла, а быть получены путем анализа структуры анализируемого файла с использованием сигнатур, свойственных той или иной среде разработки, при этом в качестве сигнатур могут выступать:
вызовы функций,
коды выполнения.
Еще в одном примере в качестве данных, описывающих программные средства упаковки анализируемого файла, может выступать:
название программы-упаковщика,
версия программы-упаковщика,
дата упаковки анализируемого файла;
(например, UPX 3.94). При этом упомянутые данные, описывающие программные средства упаковки, могут не содержаться в явном виде в анализируемом файла, а быть получены путем анализа исполняемого кода расположенного в точке входа анализируемого исполняемого файла (например, поскольку каждое программное средство упаковки создает в упаковываемом файле уникальный код распаковки, то зная характеристики которого, т.е. используемые API функции, порядок вызова операторов и т.п., возможно определить и само программное средство упаковки, при этом упомянутые характеристики кода распаковки могут быть заданы с помощью сигнатур и битовых масок).
Еще в одном примере в качестве данных, соответствующих цифровой подписи анализируемого файла, может выступать:
название организации, выдавшей цифровую подпись,
действительность (валидность) упомянутой цифровой подписи.
Еще в одном из вариантов реализации системы средство извлечения ресурсов 110 извлекает ресурсы на основании по меньшей мере:
данных о структуре ресурсов, содержащихся в анализируемом файле;
сигнатур, содержащих метаданные извлекаемых ресурсов.
Например, в исполняемом файле с расширением «.ехе» данные о структуре ресурсов содержатся в заголовке упомянутого файла и в заголовке секции ресурсов «.rsrc», представляя собой дерево, в узлах которого находятся или непосредственно сами ресурсы, или данные о ресурсах.
Еще в одном из вариантов реализации системы дополнительно средство извлечения ресурсов 110 вычисляет на основании каждого извлеченного ресурса хэш-сумму упомянутого ресурса и передает вычисленные хэш-суммы средству поиска правил 130.
Например, в качестве хэш-суммы могут выступать:
MD5-cyMMa (или просто MD5) для изображений, медиа-данных или неструктурированных ресурсов;
свертки на основании лексем для диалогов, строк, меню и других ресурсов, содержащих лексические данные.
Еще в одном примере в качестве хэш-суммы может выступать перцептивная хэш-сумма (англ. perceptual hashing), идентичная для схожих данных.
Средство формирования правил 120 предназначено для:
формирования по меньшей мере одного правила, устанавливающего функциональную зависимость между полученными ресурсами (далее - правило), при этом правило формируется путем создания из полученных ресурсов искусственной нейронной сети, где узлами искусственной нейронной сети являются средства анализа полученных ресурсов, а связи между узлами, сформированные во время создания нейронной сети, указывают на функциональную зависимость между полученными ресурсами;
передачи каждого сформированного правила средству сравнения правил 140.
В одном из вариантов реализации системы дополнительно средство формирования правил 120 формирует правила из совокупности заранее установленных третьей стороной (например, вирусными аналитиками или автоматическими антивирусными средствами антивирусных компаний) функциональных зависимостей между ресурсами файлов, обработанных упомянутой третьей стороной, при этом ресурсы, извлеченные средством извлечения ресурсов 110, схожи с ресурсами, использованными для формирования упомянутых заранее установленных функциональных зависимостей.
Например, вирусными аналитиками или автоматическими средствами анализа (используются в рамках облачных сервисов, таких как Kaspersky Security Network) заранее на основании анализа большого количества вредоносных файлов были установлены типичные связи между ресурсами вредоносных файлов:
основная иконка приложения (RC_ICON), похожа, но не совпадает (т.е. степень схожести стремится к 0, но не равна 0) с иконками безопасных приложений (например, Internet Explorer или Windows Media Player);
диалог (RC_DIALOG) только один и является диалогом главного окна;
и т.д.
Средство формирования правил 120 использует эти связи для установления функциональных зависимостей между ресурсами, извлеченными из анализируемого файла средством извлечения ресурсов 110.
Еще в одном из вариантов реализации системы средство анализа ресурсов, являющееся узлом созданной искусственной нейронной сети, предназначено для создания с использованием заранее заданных алгоритмов на основании полученных ресурсов данных, описывающих функциональную связь между упомянутыми ресурсами.
Еще в одном из вариантов реализации системы результат работы средства анализа ресурсов на основании полученных ресурсов представляет собой свертку ресурса.
Еще в одном из вариантов реализации системы в качестве средства анализа ресурсов выступают данные, описывающие алгоритм обработки ресурсов, а непосредственно выполнение упомянутого алгоритма осуществляется средством формирования правил 120.
Например, в качестве средства анализа ресурсов могут выступать данные, описывающие обратные аффинные преобразования (англ. affine transformation), преобразовывающие изображение в набор аффиноров.
Еще в одном примере, в качестве средства анализа ресурсов могут выступать данные, описывающие алгоритм выделения из текста лексем и составление из выделенных лексем текстовых сверток.
Еще в одном из вариантов реализации системы в качестве средств анализа ресурсов выступают средства, осуществляющие
кластерный анализ (англ. cluster analysis), при этом в качестве кластера выступает совокупность ресурсов, объединенных по меньшей мере по:
применению упомянутых ресурсов в анализируемым файлов;
заранее заданному диапазону параметров, описывающим упомянутые ресурсы;
заранее заданному диапазону частотных характеристикам распределения лексем, содержащихся в упомянутых ресурсах;
распознавание образов (англ. pattern recognition).
Например, в качестве средства анализа ресурсов может выступать средство, выполняющее сравнение изображения (выступающего в качестве полученного ресурса) с заранее заданными изображения (содержащимися в упомянутом средстве) и вычисляющее степень схожести между упомянутыми изображениями (к примеру, устанавливающему функциональную связь «похож-не похож»).
Еще в одном из вариантов реализации системы искусственная нейронная сеть выбирается на основании ресурсов, полученных от средства извлечения ресурсов 110, из базы элементов искусственной нейронной сети 170, при этом узлы и связи полученной искусственной нейронной сети будут заранее заданы (например, вирусными аналитиками или автоматическими антивирусными средствами антивирусных компаний). При этом после выборки упомянутой искусственной нейронной сети средство формирования правил 120 выполняет ее обучение на основании ресурсов, полученных от средства извлечения ресурсов 110.
Еще в одном из вариантов реализации системы средство формирования правил 120 создает искусственную нейронную сеть с использованием по меньшей мере методов:
перцептрона (англ. perceptron), при этом в качестве S-, элементов выступают ресурсы, А- и R- - средства анализа ресурсов, а связи между упомянутыми элементами выстраиваются на основании метаданных упомянутых ресурсов;
сверточной нейронной сети (англ. CNN, convolutional neural network), при этом в качестве узлов нейронной сети выступают ресурсы и свертки от ресурсов, а в качестве связей - средства анализа ресурсов, выполняющие свертки упомянутых ресурсов;
Еще в одном из вариантов реализации системы средство формирования правил 120 формирует связи между узлами созданной искусственной нейронной сети на основании алгоритмов машинного обучения.
Еще в одном из вариантов реализации системы в качестве способа машинного обучения, используемого средством формирования правил 120 для формирования связей между узлами созданной искусственной нейронной сети, средство формирования правил 120 использует машинное обучение с учителем (англ. supervised learning), где в роли учителя выступает третья сторона (например, вирусные аналитики или автоматические антивирусные средства антивирусных компаний), а коррекция ошибок производится упомянутой третьей стороной предварительно на основании файлов, проанализированных при формировании упомянутой третьей стороной базы ресурсов вредоносных файлов 160.
Еще в одном из вариантов реализации системы в качестве способа машинного обучения, используемого средством формирования правил 120 для формирования связей между узлами созданной искусственной нейронной сети, средство формирования правил 120 использует машинное обучение без учителя (англ. unsupervised learning), при этом для обучения искусственной нейронной сети используются метод обратного распространения ошибки (англ. backward propagation of errors).
Еще в одном из вариантов реализации системы дополнительно средство формирования правил 120 передает средству поиска правил 130 информацию о ресурсах, между которыми была установлена функциональная зависимость, а средство поиска правил 130 производит поиск правил в базе ресурсов вредоносных файлов 160 только для тех ресурсов, о которых было получена указанная информация.
Средство поиска правил предназначено 130 для:
осуществления поиска по меньшей мере одного правила в базе ресурсов вредоносных файлов 160 на основании ресурсов, полученных от средства извлечения ресурсов 110;
передачи каждого найденного правила средству сравнения правил 140.
В одном из вариантов реализации системы дополнительно средство поиска правил 130 осуществляет поиск по меньшей мере одного правила в базе ресурсов вредоносных файлов 160 на основании полученных хэш-сумм ресурсов.
Например, каждому ресурсу в базе ресурсов вредоносных файлов 160 соответствует MD5 упомянутого ресурса. В этом случае, предварительно по ресурсам, по которым должен быть выполнен поиск, средство поиска правил 130 вычисляет MD5, после чего осуществляет поиск правил по вычисленной MD5 в базе ресурсов вредоносных файлов 160 (например, методом бинарного поиска).
Еще в одном из вариантов реализации системы средство поиска правил 130 во время поиска правил в базе ресурсов вредоносных файлов 160 находит правила на основании определения степени схожести ресурсов, полученных от средства извлечения ресурсов 110, с ресурсами, на основании которых были сформированы содержащиеся в базе ресурсов вредоносных файлов 160 правила.
Например, в случае, когда по изображению (являющемуся одним из извлеченных ресурсов) осуществляется поиск изображений в базе ресурсов вредоносных файлов, средство поиска правил 130 выполняет следующие действия:
из изображения, полученного из анализируемого файла, формируются YUV компоненты (YUV компоненты представляют собой данные, описывающие упомянутое изображение в цветовой модели, выражающей цвет точек, составляющих упомянутое изображение, через яркость Y и две цветоразности U и V);
для каждой сформированной компоненты вычисляется частотное распределение оттенков цвета от самого темного (0), до самого светлого (255), таким образом формируется 256-мерный вектор, представляющий собой массив данных (англ. row data);
сформированные вектора сравниваются с другими 256-мерными векторами из базы ресурсов вредоносных файлов 160, также представляющими собой массивы данных, используемые в качестве потенциальных ключей (англ. candidate key) (далее -ключи) (т.е. данных, с помощью которых осуществляется поиск других данных, записанных в базу ресурсов вредоносных файлов 160), с этой целью вычисляется скалярное произведение сформированного вектора и ключа (вычисляется угол между векторами);
в случае, если значение вычисленного скалярного произведения меньше заранее заданного значения, изображения на основании которых были сформированы упомянутые вектора, считаются схожими.
Еще в одном из вариантов реализации системы средство поиска правил 130 вычисляет степень схожести ресурсов, полученных от средства извлечения ресурсов 110, с ресурсами, на основании которых были сформированы содержащиеся в базе ресурсов вредоносных файлов 160 правила, с использованием методов распознавания образов с использованием дискриминантного анализа (англ. discriminant function analysis).
Еще одном из вариантов реализации системы средство поиска правил 130 осуществляет поиск правил в базе ресурсов вредоносных файлов 160 по ресурсам, на основании которых были сформированы содержащиеся в базе ресурсов вредоносных файлов 160 правила, только того же типа, что и ресурсы, полученные от средства извлечения ресурсов 110.
Например, по иконкам в базе ресурсов вредоносных файлов 160, средство поиска правил 130 находит правила при формировании которых использовались иконки. К примеру, по иконке Internet Explorer в базе ресурсов вредоносных файлов 160 находится правило, связывающее MD5 иконки Internet Explorer с манифестом (RT_MANIFECT), создаваемым Microsoft.
Еще в одном из вариантов реализации системы дополнительно средство поиска правил 130 осуществляет поиск правил в базе ресурсов вредоносных файлов 160 на основании только тех ресурсов, полученных от средства извлечения ресурсов 110, между которыми средством формирования правил 120 была установлена функциональная зависимость.
Например, из файла «explorer.exe» средством извлечения ресурсов 110 были извлечены иконки «icon1.ico», «icon2.ico», манифест «manifest.txt» и диалог основного окна «DIALOG_1». Средством формирования правил 120 была установлена функциональная зависимость между иконкой «icon1.ico» и диалогом «DIALOG_1» (иконка «icon1.ico» отображается на кнопке из диалога «DIALOG_1»). Для поиска правил в базе ресурсов вредоносных файлов 160 средство поиска правил 130 в качестве ключей использует только иконку «icon1.ico» и диалог «DIALOG_1», а иконку «icon2.ico» и манифест «manifect» игнорирует.
Средство сравнения правил 140 предназначено для:
вычисления степени схожести между полученными от средства формирования правил 120 и средства поиска 130 правилами;
передачи вычисленной степени схожести средству вынесения решения 150.
В одном из вариантов реализации системы степень схожести представляет собой численное значение от 0 (правила идентичны) до 1 (правила различны).
Например, два правила содержащих по 5 компонент, 4 из которых в одном правиле идентичны 4 во втором правиле, а 2 оставшихся компонента различны, обладают степенью схожести 0.2.
Еще одном из вариантов реализации системы средство сравнения правил 140 вычисляет степень схожести между правилами с использованием методов распознавания образов с использованием дискриминантного анализа.
Еще в одном из вариантов реализации системы, в случае, когда от средства формирования правил 120 или средства поиска правил 130 было получено по меньшей мере два правила, средство сравнения правил 140:
вычисляет степени схожести для по меньшей мере двух пар правил, каждая из которых включает одно правило, полученное от средства формирования правил 120, и одно правило, полученное от средства поиска 130, при этом по меньшей мере две пары правил включают разные правила из средства формирования правил 120 или средства поиска правил 130;
вычисляет итоговую степень схожести как:
меру центральной тенденции (англ. central tendency) от вычисленных ранее степеней схожести;
нечеткий хэш (англ. fuzzy hash) по вычисленным ранее степеней схожести.
1
2
1
Например, средством формирования правил 120 на основании ресурсов resource#1, resource#2, resource#3 были сформированы правила r, r, а средством поиска правил 130 было найдено правило m. Средство сравнения правил 140 вычисляет степени схожести:
1
1
r→m=0,251
2
1
r→m=0,374
, а итоговую степень схожести как среднее арифметическое от вычисленных ранее степеней схожести:
i
1
{r}→m=0,3125
Средство вынесения решения 150 предназначено для:
признания анализируемого файла вредоносным, в случае, когда полученная степень схожести превышает заранее заданное пороговое значение.
В одном из вариантов реализации системы пороговое значение степени схожести устанавливается предварительно третьей стороной (например, вирусными аналитиками или автоматическими антивирусными средствами антивирусных компаний) на основании статистического анализа правил, содержащихся в базе ресурсов вредоносных файлов 160, таким образом, чтобы решение о вредоносности, выносимое средством вынесения решения 150, проанализированных третьей стороной безопасных файлов было бы отрицательным, а вредоносных файлов - положительным.
Например, при создании базы ресурсов вредоносных файлов 160 вирусным аналитиком с помощью автоматических средств было проанализировано 1000 файлов, среди которых 659 оказались вредоносными, а оставшиеся 341 - безопасными. По ресурсам проанализированных вредоносных файлов были сформированы правила, записанные затем в базу ресурсов вредоносных файлов 160. Затем для каждого из 1000 проанализированных файлов была вычислена степень схожести правил, сформированных на основании ресурсов анализируемых файлов, и правил, содержащихся в созданной базе ресурсов вредоносных файлов 160. На основании вычисленных степеней схожести было установлено пороговое значение степени схожести согласно формуле
limit
clean
malvare
s=ave(min({s}), max({s}))
где:
s<sub>limit</sub>
- пороговое значение степени схожести,
s<sub>clean</sub>
- степень схожести для безопасного файла,
s<sub>malvare</sub>
- степени схожести для вредоносного файла,
Еще в одном из вариантов реализации системы дополнительно средство вынесения решения 150 записывает по меньшей мере одно правило в базу ресурсов вредоносных файлов 160, сформированное средством формирования правил 120, в случае, когда средство вынесения решения 150 признает анализируемый файл вредоносным.
i
i
i
i
Например, на основании ресурсов {d}, извлеченных средством извлечения ресурсов 110 из анализируемого файла «video.avi.exe», средством формирования правил 120 были сформированы правила {r}, на основании которых средством вынесения решения 150 анализируемый файл был признан вредоносным. Средство вынесения решения 150 записывает в базу ресурсов вредоносных файлов 160 правила {r}, используя в качестве ключей ресурсы {d}.
База ресурсов вредоносных файлов 160 представляет собой базу данных, содержащую по меньшей мере два правила, каждое из которых устанавливает функциональную зависимость между ресурсами по меньшей мере одного и того же вредоносного файла.
В одном из вариантов реализации системы база ресурсов вредоносных файлов 160 предоставляется на вычислительное устройство (клиент), на котором производится анализ файлов, со стороны антивирусной компании (сервер).
Еще одном из вариантов реализации системы каждому правилу, хранящемуся в базе ресурсов вредоносных файлов 160, соответствует по меньшей мере один ключ, по которому средство поиска правил 130 осуществляет поиск правил, при этом в качестве ключа выступает по меньшей мере:
ресурс, используемый для формирования упомянутого правила;
хэш-сумма ресурса, используемого для формирования упомянутого правила.
Еще в одном из вариантов реализации системы правила, устанавливающие функциональную связь между ресурсами одного и того же вредоносного файла, формируются и записываются в базу ресурсов вредоносных файлов 160 предварительно третьей стороной (например, вирусными аналитиками или автоматическими антивирусными средствами антивирусных компании) и лишь затем база ресурсов вредоносных файлов 160, содержащая упомянутые правила, предоставляется системе обнаружения вредоносных файлов с использованием элементов статического анализа.
Еще в одном из вариантов реализации системы дополнительно база ресурсов вредоносных файлов 160 предназначена для записи средством вынесения решения 150 правил, сформированных средством формирования правил 120.
База элементов искусственной нейронной сети 170 представляет собой базу данных, содержащую по меньшей мере одну заранее созданную (например, вирусными аналитиками или автоматическими антивирусными средствами антивирусных компаний на основании проанализированных вредоносных файлов), при этом упомянутая искусственная нейронная сеть представляет собой совокупность средств анализа ресурсов, являющихся узами искусственной нейронной сети, и весовых коэффициентов, характеризующих связи между узлами искусственной нейронной сети.
В одном из вариантов реализации системы база элементов искусственной нейронной сети 170 предоставляется на вычислительное устройство (клиент), на котором производится анализ файлов, со стороны антивирусной компании (сервер).
i
i
i
i
Еще в одном из вариантов реализации системы искусственная нейронная сеть представляет собой данные, описывающие алгоритмы анализа {A} ресурсов {d} и весовые коэффициенты {w}, характеризующие связи между {А}, т.е.
где
n - количество ресурсов, извлеченных средством извлечения ресурсов 110,
i
m - количество алгоритмов анализа {A} ресурсов,
i
i
j
ij
r - i-ая функциональная зависимость между совокупностью всех ресурсов формируемая алгоритмами анализа {А}, при этом для каждого отдельного ресурса d используется индивидуальный весовой коэффициент w, модификация которого выполняется во время обучения искусственной компьютерной сети.
Рассмотрим работу системы обнаружения вредоносных файлов с использованием элементов статического анализа на примере определения вредоносности файла «movie.avi.exe», представляющего собой приложение с графическим интерфейсом, имитирующим графический интерфейс приложения «Internet Explorer».
Средство извлечения ресурсов 110 из анализируемого файла «movie.avi.exe» извлекает следующие ресурсы:
из секции ресурсов «.rsrc» ресурсы Windows:
основную иконку приложения «main.ico» (RC_ICON),
манифест «manifest.txt» (RC_MANIFEST),
диалог главного окна «DIALOG_Main» (RC_DIALOG),
меню главного окна «MENU_Main» (RC_MENU); из секции кода «.text» данные о среде разработки, используемой для создания файла «movie.avi.exe»:
название и версия среды разработки «Embarcadero Delphi 10.2»;
из секции данных «.data» данные о программных средствах упаковки файла «movie.avi.exe»:
название и версия программного средства упаковки «ASProtect 32 (SKE) 2.70».
Средство формирования правил 120 используя ресурсы, полученные от средства извлечения ресурсов 110, обучает искусственную нейронную сеть, выбранную из базы элементов искусственной нейронной сети 170. С этой целью средство формирования правил 120 с помощью кластерного анализа выбирает ресурсы, обладающие схожими свойствами или схожими взаимосвязями (например, одни иконки сходи с другими иконками и формирует тем самым один кластер, некоторые иконки используются в диалогах и формируют другой кластер), а выбранные ресурсы использует как входные параметры для искусственной нейронной сети для формирования связей, для чего использует машинное обучение с учителем, на основании связей, сформированных заранее вирусными аналитиками на файлах, схожих по поведению с файлом «movie.avi.exe». После того, как созданная искусственная нейронная сеть «обучена», т.е. сформированы связи между узлами упомянутой искусственной нейронной сети (вычислены весовые коэффициенты между элементами нейронной сети), средство формирования правил 120 на основании сформированных связей формирует правила, устанавливающие функциональные зависимости между ресурсами, извлеченными средством извлечения ресурсов 110:
Другими словами, иконка «main.ico» принадлежит приложению с именем «lnternet Explorer», написанному на языке «Delphi» и упакованному с помощью приложения «ASProtect». Кроме того, диалог главного окна «DIALOG_Main» связан с меню главного окна «MENU_Main».
Связь  считается тривиальной (поскольку согласно правилам создания приложений всегда, вне зависимости от того, является ли файл безопасным или вредоносным, какие содержит ресурсы и т.д., диалог главного окна связан с меню главного окна), поэтому по упомянутым ресурсам в базе ресурсов вредоносных файлов 160 поиск осуществляться не будет.
Средство поиска правил 130 вычисляет перцептивные хэш-суммы по ресурсам:
main.ico,
manifest.txt,
«Embarcadero Delphi»,
«ASProtect 32 (SKE) 2.70»;
извлеченным из файла «movie.avi.exe» средством извлечения ресурсов 110, за исключением ресурсов:
DIALOG_Main,
MENU_Main;
и осуществляет поиск по вычисленным перцептивным хэш-суммам правил в базе ресурсов вредоносных файлов 160. Поскольку для поиска правил средство поиска правил 130 использует перцептивные хэш-суммы от извлеченных ресурсов файла «movie.avi.exe», будут найдены правила, устанавливающие функциональную зависимость между ресурсами вредоносного файла, схожими (но не обязательно идентичными) извлеченным из файла «movie.avi.exe» ресурсам.
В результате осуществленного поиска средство поиска правил 130 выбирает из базы ресурсов вредоносных файлов 160 правило устанавливающего функциональную зависимость:
и передает средству сравнения правил 140.
i
1
Средство сравнения правил 140 вычисляет степень схожести между правилами {r}, сформированными средством формирования правил 120, и правилом m, полученным от средства поиска правил 130:
4
1
при этом вычисление степени схожести r→m не производится, поскольку ресурсы, между которыми средством формирования правил 120 была определена функциональная зависимость (DIALOG_Main, MENU_Main), не использовались средством поиска ресурсов 130 для поиска правил в базе ресурсов вредоносных файлов 160. Затем средство сравнения правил 140 вычисляет итоговую степень схожести, как среднее геометрическое от вычисленных ранее степеней схожести:
и передает полученное значение степени схожести средству вынесения решения 150.
Средство вынесения решения 150 сравнивает полученное значение степени схожести 0,073 с заранее заданным пороговым значением 0,203. Поскольку полученная степень схожести не превышает заранее заданное пороговое значение, то средство вынесения решения 150 выносит решение о вредоносности анализируемого файла «movie.avi.exe». Таким образом файл «movie.avi.exe» признается вредоносным, после чего антивирусная программа, в состав которой входит система обнаружения вредоносных файлов с использованием элементов статического анализа по меньшей мере:
информирует пользователя о том, что на компьютерной системе обнаружен вредоносный файл,
блокирует выполнение файла «movie.avi.exe»,
изолирует или удаляет из компьютерной системы файла «movie.avi.ехе».
Фиг. 2 представляет пример структурной схемы способа обнаружения вредоносных файлов с использованием элементов статического анализа.
Структурная схема способа обнаружения вредоносных файлов с использованием элементов статического анализа содержит этап, на котором извлекают ресурсы из анализируемого файла 210, этап, на котором формируют правила 220, этап, на котором осуществляют поиск правил 230, этап, на котором вычисляют степень схожести между правилами 240 и этап, на котором выносят решение о вредоносности анализируемого файла 250.
На этапе 210 с помощью средства извлечения ресурсов 110 извлекают ресурсы из анализируемого файла.
На этапе 220 с помощью средства формирования правил 120 формируют по меньшей мере одно правило, устанавливающее функциональную зависимость между извлеченными ресурсами (далее - правило) путем создания из извлеченных ресурсов искусственной нейронной сети, где извлеченные ресурсы являются узлами искусственной нейронной сети, а связи между упомянутыми узлами, сформированные при создании упомянутой нейронной сети, указывают на функциональную зависимость между извлеченными ресурсами.
На этапе 230 с помощью средства поиска правил 130 осуществляют поиск во время которого находят по меньшей мере одно правило в базе ресурсов вредоносных файлов 160 на основании извлеченных на этапе 210 ресурсов.
На этапе 240 с помощью средства сравнения правил 140 вычисляют степень схожести между сформированным на этапе 220 и найденным на этапе 230 правилами;
На этапе 250 с помощью средства вынесения решения 150 признают анализируемый файл вредоносным, в случае, когда вычисленная степень схожести превышает заранее заданное пороговое значение.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.