Система и способ выявления вредоносного cil-файла
Иллюстрации
Показать всеИзобретение относится к решениям для выявления вредоносных приложений. Технический результат – повышение безопасности работы пользователя на вычислительном устройстве. Способ выявления анализируемого файла, содержащего транслированный код с языков высокого уровня на промежуточный язык, вредоносным, в котором выделяют набор строк из анализируемого файла, вычисляют хеш набора выделенных строк, выявляют степень схожести набора выделенных строк анализируемого файла с наборами выделенных строк известных вредоносных файлов, выносят решение о вредоносности анализируемого файла. 4 з.п. ф-лы, 3 ил.
Реферат
Область техники
Изобретение относится к решениям для выявления вредоносных приложений, а более конкретно к системам и способам выявления вредоносных CIL-файлов.
Уровень техники
В настоящее время количество файлов, хранящихся на вычислительных устройствах, растет. Компьютеры и мобильные устройства пользователей работают под управлением различных операционных систем (ОС), содержат различные установленные приложения и файлы пользователя. Кроме того, приложения и компоненты операционной системы регулярно обновляются, в результате чего один и тот же компонент может иметь различные версии у разных пользователей. Также все большую популярность набирает платформа.NET, предлагаемая компанией Microsoft. Многие приложения адаптируются под эту технологию. Одной из ключевых особенностей платформы.NET является то, что независимо от языка высокого уровня платформы.NET, который используется при создании приложения, компилятор преобразует исходный код в промежуточный язык Microsoft (англ. Microsoft Intermediate Language, MSIL), представляющий собой независимый от процессора набор инструкций, который можно эффективно преобразовать в машинный код.
Стоит отметить, что в настоящее время растет и количество вредоносного программного обеспечения (например, компьютерные вирусы, троянские программы, сетевые черви). Зачастую злоумышленники, создающие вредоносное программное обеспечение, также используют платформу .NET.
Приложения безопасности (например, антивирусные приложения) используют различные методы определения вредоносного программного обеспечения, среди которых есть методы анализа файлов, созданных с помощью платформы .NET.
Так, публикация US9384364 описывает технологию добавления сборок платформы .NET, содержащих CIL-код, в белый список (англ. whitelist). На основании одной сборки на каждом отдельном устройстве формируется свой образ (англ. Image) - предкомпилированная сборка, в которой CIL-код уже откомпилирован в исполняемый машинный код, при этом образ не является РЕ-файлом, РЕ-заголовок образа выполняет роль контейнера для исполняемого кода. Эти образы машинно-зависимы, и для каждой конфигурации устройства формируется уникальный образ сборки, поэтому у одной сборки-родителя есть множество образов-потомков. Возникающая проблема - это значительное количество некатегоризированных образов-потомков на фоне меньшего количества категоризированных сборок-родителей. Упомянутая технология использует метаданные сборок для определения связи между категоризированной сборкой-родителем и некатегоризированным образом-потомком. При установлении такой связи потомки получают категорию родителя (в частности, если сборка-родитель находится в белом списке, то образ-потомок тоже попадет в белый список).
Предлагаемое решение отличается от существующих тем, что использует статический анализ для выявления вредоносности CIL-файла. Общеизвестно, что методы статического анализа выполняются намного быстрее методов эвристического анализа, что позволяет экономить вычислительные ресурсы системы, на которой выполняется проверка CIL-файла, а также сокращает время, требуемое на проверку вредоносности CIL-файла.
Сущность изобретения
Технический результат настоящего изобретения заключается в повышении безопасности работы пользователя на вычислительном устройстве, которое достигается выявлением вредоносных CIL-файлов.
Другой технический результат настоящего изобретения заключается в реализации заявленного назначения.
Согласно одному из вариантов реализации предоставляется способ выявления анализируемого файла, содержащего транслированный код с языков высокого уровня на промежуточный язык, вредоносным, в котором с помощью средства выделения ресурсов выделяют набор строк из анализируемого файла; с помощью средства вычисления хеша вычисляют хеш набора выделенных строк; с помощью средства анализа выявляют степень схожести набора выделенных строк анализируемого файла с наборами выделенных строк известных вредоносных файлов, содержащих транслированный код с языков высокого уровня на промежуточный язык, путем сравнения хешей, при этом степень схожести есть числовая вероятностная величина, чем выше которая, тем выше схожесть наборов выделенных строк упомянутого анализируемого файла и известного вредоносного файла; в случае, если степень схожести упомянутого наборов выделенных строк анализируемого файла превышает пороговое значение, выносят решение о вредоносности упомянутого файла на основании результатов сравнения.
Согласно другому варианту реализации предоставляется способ, в котором из выделенного набора строк исключаются строки, сгенерированные случайным образом.
Согласно одному из частных вариантов реализации предоставляется способ, в котором вычисляют перцептивный хеш.
Согласно одному из частных вариантов реализации предоставляется способ, в котором перцептивный хеш вычисляется с использованием дискретного косинусного преобразования.
Согласно одному из частных вариантов реализации предоставляется, способ, в котором степень схожести вычисляется с использованием расстояния Хэмминга.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 отображает структуру системы выявления вредоносных CIL-файлов.
Фиг. 2 отображает способ выявления вредоносных CIL-файлов.
Фиг. 3 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
CIL-файл - исполняемый файл, созданный компилятором, поддерживающим платформу.NET, при этом содержащий транслированный код с языков высокого уровня (например, платформы .NET) на промежуточный язык CIL (англ. Common Intermediate Language). В общем случае CIL-файл - это именованная область данных на носителе информации. В частном варианте реализации CIL-файлом является непрерывная область памяти, содержащая транслированный код с языков высокого уровня платформы.NET на промежуточный язык CIL.
Под средствами системы в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 3). При этом компоненты (каждое из средств) системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Фиг.1 отображает структуру системы выявления вредоносных CIL-файлов.
Система выявления вредоносных CIL-файлов является частью приложения безопасности 140 (например, антивирусного приложения) и содержит средство выделения ресурсов 110, средство вычисления хеша 120 и средство анализа 130. В общем случае приложение безопасности 140 выполняется на вычислительном устройстве. Приложение безопасности 140 выявляет CIL-файл 180, анализ которого на вредоносность необходимо выполнить (далее по тексту - анализируемый CIL-файл), и передает его средству выделения ресурсов 110. В одном из вариантов реализации приложение безопасности 140 выявляет для анализа CIL-файл 180, который не имеет цифровой подписи доверенного центра сертификации. В другом варианте реализации приложение безопасности 140 выявляет для анализа CIL-файл 180, размер которого или контрольная сумма изменились.
В одном из вариантов реализации средство выделения ресурсов 110 выполняется на устройстве пользователя. В другом варианте реализации средство выделения ресурсов 110 выполняется на удаленном сервере или в качестве облачного сервиса. Средство выделения ресурсов 110 предназначено для выделения ресурсов из анализируемого CIL-файла. В общем случае средство выделения ресурсов 110 выделяет из области ресурсов CIL-файла строки. В одном из вариантов реализации средство выделения ресурсов 110 выделяет строки, состоящие из ANSI-символов. В еще одном из вариантов реализации средство выделения ресурсов 110 определяет лингвистический язык, на котором составлены упомянутые выделенные строки. После выделения упомянутых строк средство выделения ресурсов 110 определяет с помощью известных из уровня техники фильтров, какие из выделенных ANSI-строк сгенерированы случайными методами. В общем случае строки, сгенерированные случайными методами, исключаются средством выделения ресурсов 110 из дальнейшего анализа анализируемого CIL-файла.
Набор выделенных ANSI-строк, которые не были исключены, передается средством выделения ресурсов 110 средству вычисления хеша 120.
В одном из вариантов реализации средство вычисления хеша 120 выполняется на устройстве пользователя. В другом варианте реализации средство вычисления хеша 120 выполняется на удаленном сервере или в качестве облачного сервиса. Средство вычисления хеша 120 предназначено для вычисления перцептивного хеша (англ. perceptive hash) набора выделенных ANSI-строк анализируемого CIL-файла 180, полученных от средства выделения ресурсов 110. Перцептивный хеш - это хеш, вычисленный способом, предназначенным для создания сравнимых хешей.
Из уровня техники известны способы вычисления перцептивных хешей. Примером вычисления перцептивного хеша средством вычисления хеша 120 может являться способ, использующий дискретное косинусное преобразование (ДКП, англ. Discrete Cosine Transform, DCT).
Пусть x[m], где m=0,…, (N - 1) - набор строк длиной N.
При этом ДКП можно определить как
Это выражение можно переписать как
где c[n,m] - элемент матрицы ДКП на пересечении строки с номером n и столбца с номером m.
ДКП матрица определяется как
В одном из вариантов реализации ДКП матрица может быть вычислена заранее для любой необходимой длины строки. Таким образом ДКП может быть представлена в виде
ДКП=М×I×М'
где: М - ДКП матрица, I - набор строк квадратного размера, М' - обратная матрица.
Стоит отметить, что низкочастотные коэффициенты ДКП наиболее стабильны к манипуляциям со строками, так как большая часть информации, как правило, сосредоточена в нескольких низкочастотных коэффициентах.
В данном примере в качестве матрицы I выступает набор выделенных ANSI-строк, который дополняется до квадратного размера (длина строк равна количеству строк, длина дополняется нулевыми символами, пустые строки заполняются нулевыми символами). Далее матрица I сжимается до размера 32×32. В одном из вариантов реализации к матрице I средством сравнения могут быть применены различные фильтры, известные из уровня техники. В результате получается матрица I', в левом верхнем углу которой находятся низкочастотные коэффициенты, при этом в одном из вариантов реализации средством вычисления хеша 120 из левого верхнего угла выделяется блок значений 8×8 (например, целочисленные значения ANSI-символов). Далее вычисляется среднее значение для всех 64 значений. На следующем шаге создается последовательность из 64 битов, при этом для каждого из 64 значений устанавливается или сбрасывается соответствующий ему бит в зависимости от того, значение для этого бита больше или меньше среднего значения. На последнем шаге вычисляется перцептивный хеш, при этом 64 отдельных бита преобразовываются в 64-битное значение. Порядок старшинства бит не имеет значения.
Вычисленный перцептивный хеш (64-битное значение) средство вычисления хеша 120 передает средству анализа 130. В одном из вариантов реализации перцептивные хеши выделенных ANSI-строк известных вредоносных CIL-файлов могут быть вычислены средством вычисления хеша 120 ранее и сохранены в базе данных 190, при этом в базе данных 190 также сохраняется идентификатор известного вредоносного CIL-файла, соответствующий вычисленному перцептивному хешу. При этом анализ известных вредоносных CIL-файлов на вредоносность был проведен ранее любым из известных из уровня техники способов или их комбинацией
В одном из вариантов реализации средство анализа 130 выполняется на устройстве пользователя. В другом варианте реализации средство анализа 130 выполняется на удаленном сервере или в качестве облачного сервиса. Средство анализа 130 предназначено для выявления вредоносности анализируемого CIL-файла 180 на основании результатов сравнения вычисленного средством вычисления хеша 120 перцептивного хеша набора выделенных ANSI-строк анализируемого файла 180 с перцептивными хешами известных вредоносных CIL-файлов.
В одном из вариантов реализации для сравнения вычисляется степень схожести наборов выделенных ANSI-строк анализируемого CIL-файла 180 и известного вредоносного CIL-файла. В общем случае степень схожести есть числовая вероятностная величина, чем выше которая, тем выше схожесть наборов выделенных ANSI-строк. В общем случае для вычисления степени схожести используется расстояние Хэмминга, использующее для сравнения количество разных битов в перцептивных хешах. Нулевое расстояние означает, что наборы выделенных ANSI-строки, вероятно, одинаковые, при этом степень схожести наборов сравниваемых выделенных ANSI-строк равна 1. Расстояние 5 означает, что наборы выделенных ANSI-строки отличаются, но похожи друг на друга, степень схожести при этом высокая (например, 0.75). Если расстояние 10 или больше, то это, вероятно, совершенно разные наборы выделенных ANSI-строк, степень схожести низкая (например, 0.1). В одном из вариантов реализации значения соответствий степени схожести расстоянию Хэмминга могут быть сохранены в базе данных 190. В другом варианте реализации средство сравнения 110 использует пороговое значение (для степени схожести или для расстояния Хэмминга). В еще одном из вариантов реализации ближайшие по расстоянию Хэмминга перцептивные хеши известных вредоносных CIL-файлов средством сравнения 110 объединяются в общие (англ. generic) хеши побитовым объединением перцептивных хешей.
Это может быть полезно в случае для выделения группы схожих CIL-файлов, если известные вредоносные CIL-файлы (или семейство вредоносных CIL-файлов) от версии к версии обновляют набор ANSI-строк, при этом набор ANSI-строк изменяется не сильно, а хранение всех наборов ANSI-строк (и, соответственно, сравнение со всеми наборами ANSI-строк), соответствующих всем версиям известного вредоносного CIL-файла нецелесообразно.
При превышении порогового значения (например, пороговое значение 0.9, вычисленная степень схожести 0.99) наборы ANSI-строк считаются схожими, средство анализа 130 выносит решение о том, что анализируемый CIL-файл 180 является вредоносным.
В общем случае решение о вредоносности анализируемого CIL-файла 180 средство анализа 130 передает приложению безопасности 140.
Приложение безопасности 140 в случае получения решения о вредоносности анализируемого CIL-файла 180 от средства анализа 130 выполняет действие для обеспечения безопасности вычислительного устройства. В одном из вариантов реализации приложение безопасности 140 удаляет анализируемый CIL-файл 180. В другом варианте реализации приложение безопасности 140 помещает анализируемый CIL-файл 180 в карантин. В еще одном из вариантов реализации приложение безопасности 140 блокирует активность CIL-файла 180, например, сетевую или файловую активность.
Фиг. 2 отображает способ выявления вредоносных CIL-файлов.
На этапе 210 с помощью средства выделения ресурсов 110 выделяют набор строк из анализируемого файла 180, при этом анализируемый файл содержит транслированный код с языков высокого уровня на промежуточный язык. В общем случае анализируемый файл является CIL-файлом. В одном из вариантов реализации выделяются строки в формате ANSI.
В одном из вариантов реализации средством выделения ресурсов 110 из выделенного набора строк исключаются строки, сгенерированные случайным образом.
На этапе 220 с помощью средства вычисления хеша 120 вычисляют перцептивный хеш набора выделенных строк.
В одном из вариантов реализации перцептивный хеш вычисляется средством вычисления хеша 120 с использованием дискретного косинусного преобразования.
На этапе 230 с помощью средства 130 анализа выявляют степень схожести набора выделенных строк анализируемого файла 180 с наборами выделенных строк известных вредоносных файлов путем сравнения перцептивных хешей, при этом степень схожести есть числовая вероятностная величина, чем выше которая, тем выше схожесть наборов выделенных строк упомянутого файла и известного файла.
На этапе 240 с помощью средства анализа 130 на основании результатов сравнения выносят решение о вредоносности. В случае, если степень схожести упомянутого набора выделенных строк анализируемого файла 180 превышает пороговое значение, анализируемый файл 180 признается средством анализа 130 вредоносным.
Фиг. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.
1. Способ выявления анализируемого файла, содержащего транслированный код с языков высокого уровня на промежуточный язык, вредоносным, в котором:
- с помощью средства выделения ресурсов выделяют набор строк из анализируемого файла;
- с помощью средства вычисления хеша вычисляют хеш набора выделенных строк;
- с помощью средства анализа выявляют степень схожести набора выделенных строк анализируемого файла с наборами выделенных строк известных вредоносных файлов, содержащих транслированный код с языков высокого уровня на промежуточный язык, путем сравнения хешей, при этом степень схожести есть числовая вероятностная величина, чем выше которая, тем выше схожесть наборов выделенных строк упомянутого анализируемого файла и известного вредоносного файла;
- в случае, если степень схожести упомянутого наборов выделенных строк анализируемого файла превышает пороговое значение, выносят решение о вредоносности упомянутого файла на основании результатов сравнения.
2. Способ по п. 1, в котором из выделенного набора строк исключаются строки, сгенерированные случайным образом.
3. Способ по п. 1, в котором вычисляют перцептивный хеш.
4. Способ по п. 3, в котором перцептивный хеш вычисляется с использованием дискретного косинусного преобразования.
5. Способ по п. 1, в котором степень схожести вычисляется с использованием расстояния Хэмминга.