×
07.09.2018
218.016.8411

Результат интеллектуальной деятельности: Система и способ анализа файла на вредоносность в виртуальной машине

Вид РИД

Изобретение

Аннотация: Изобретение относится к решениям для выявления вредоносных файлов. Технический результат – повышение безопасности компьютерной системы. Система анализа на вредоносность файла, открываемого в виртуальной машине в виде среды для безопасного исполнения файлов, в которой перехватывают событие, которое возникает в процессе исполнения потока процесса, созданного при открытии файла в виртуальной машине в виде среды для безопасного исполнения, и приостанавливают исполнение потока; считывают контекст процессора, на котором исполняется поток; сохраняют перехваченное событие и контекст в журнал; сравнивают данные, сохраненные в журнале, с шаблонами, при этом на основании сравнения принимают по меньшей мере одно из решений: решение о признании файла вредоносным, решение об остановке исполнения файла, решение об изменении контекста процессора, решение об ожидании следующего события; исполняют действия, соответствующие принятым решениям. 2 н. и 16 з.п. ф-лы, 4 ил.

Область техники

Изобретение относится к решениям для выявления вредоносных файлов, а более конкретно к системам и способам анализа файла на вредоносность в виртуальной машине.

Уровень техники

В настоящее время растет количество вредоносного программного обеспечения (например, компьютерные вирусы, трояны, сетевые черви), направленного на причинение ущерба как данным пользователя, так и самому пользователю электронного устройства, зараженного вредоносным программным обеспечением. Ущерб может быть причинен повреждением или удалением файлов пользователя, использованием ресурсов вычислительного устройства пользователя для "добычи" (англ. mining) криптовалют, кражей электронных и конфиденциальных данных пользователя (переписки, изображений, логинов, паролей, данных банковских карт) и прочими действиями. Кроме того, вредоносное программное обеспечение постоянно изменяется, так как его авторы прибегают к все более новым механизмам атак и защиты от приложений безопасности. Используются различные механизмы, например, обфускация (другими словами приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции, например) вредоносного кода или использование механизмов противодействия эмуляции (например, вредоносное программное обеспечение наделено функциями распознавания того, что оно исполняется в эмуляторе, и не проявляет свою вредоносную активность).

Кроме того, зачастую вредоносное программное обеспечение не проявляет свою вредоносную активность сразу, вместо этого производит множество (порядка миллионов вызовов) вызовов API-функций, огромные циклы (порядка миллиардов итераций), приостанавливает свою работу на некоторое время сразу после запуска (например, на 1 час использованием функции «Sleep()»). Вычислительные устройства пользователя в настоящее время имеют высокую производительность, многоядерные процессоры (есть и многопроцессорные системы), поэтому пользователь может не увидеть или не придать значения загруженности одного из ядер. Кроме того, обычно пользователь пользуется устройством после включения более одного часа. Поэтому вредоносному программному обеспечению, если оно запустилось, нет необходимости сразу проявлять свою активность.

Для борьбы с упомянутыми подходами производителями приложений безопасности (например, антивирусных приложений) используются подходы с использованием виртуальных машин в виде изолированной среды для безопасного исполнения файлов. Зачастую такие виртуальные машины называются песочницами (от англ. sandbox). Гипервизоры, под управлением которых работают такие виртуальные машины, содержат механизмы перехвата функций, вызываемых исполняемыми в них приложениями.

Стоит отметить, что приложения безопасности используют различные методы определения вредоносного программного обеспечения, например, такие технологии, как сигнатурный и/или эвристический анализ. Если в процессе анализа вредоносность файла не была определена, он может быть передан приложением безопасности на анализ поведения в упомянутую виртуальную машину (например, если не имеет цифровой подписи доверенного производителя программного обеспечения). Затем переданный файл исполняется в виртуальной машине, в процессе исполнения происходит перехват его действий и событий, исполняемых вызовами различных функций, перехваченные события и действия сохраняются в журнал и в дальнейшем анализируются приложением безопасности или экспертом по информационной безопасности.

Таким образом, известные системы перехвата и агрегации событий и действий, работают в два шага. На первом шаге информация собирается, на втором она анализируется.

Так, публикация US 8479286 B2 описывает систему и способ, в которых файл до исполнения в виртуальной машине подвергается анализу, и для исполнения файла по результатам анализа выбирается окружение, наиболее подходящее для раскрытия поведения файла. Далее файл исполняется, если по результатам исполнения принимается решение об изменении окружения, окружение изменяется, и файл исполняется повторно.

Публикация US 7779472 B1 описывает классический способ исполнения файла в виртуальной машине. В процессе исполнения происходит перехват вызовов API-функций и их параметров. Набор вызванных API-функций сравнивается с наборами вызовов, соответствующих вредоносному поведению. В случае соответствия выносится решение о вредоносности файла.

Недостатком известных систем и способов является то, что в процессе исполнения файла они не влияют на процесс исполнения. Например, если процесс, запущенный из анализируемого файла (или из приложения, которым анализируемый файл был открыт), приостановил свое исполнение на час или атакует какой-либо почтовый клиент или мессенджер (программу для обмена сообщениями), обращаясь к файлу с сохраненными паролями, но в виртуальной машине атакуемая программа отсутствует, то вредоносность поведения файла выявлена не будет (так как, не обнаружив требуемого файла с паролями, вредоносный файл закончит свое исполнение сам и не проявит вредоносной активности).

Настоящее изобретение позволяет влиять на процесс исполнения файла в виртуальной машине при анализе файла на вредоносность.

Сущность изобретения

Технический результат настоящего изобретения заключается в повышении безопасности компьютерной системы, которое достигается путем анализа файла на вредоносность при его открытии в виртуальной машине в виде безопасной среды для исполнения файлов.

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

Согласно другому частному варианту реализации предлагается система, в которой открытием файла является исполнение файла, если файл исполняемый.

Согласно еще одному частному варианту реализации предлагается система, в которой открытием файла является открытие файла приложением, если файл не исполняемый.

Согласно еще одному частному варианту реализации предлагается система, в которой событие представляет собой по меньшей мере одно из: вызов API-функции потоком; возврат из API-функции; системный вызов; возврат из системного вызова; оповещение от операционной системы.

Согласно еще одному частному варианту реализации предлагается система, в которой передача журнала производится каждый раз, когда произведено упомянутое сохранение перехваченного события и контекста процессора.

Согласно еще одному частному варианту реализации предлагается система, в которой контекст процессора содержит по меньшей мере значения регистров процессора.

Согласно еще одному частному варианту реализации предлагается система, в которой шаблон содержит по меньшей мере одно правило.

Согласно еще одному частному варианту реализации предлагается система, в которой правило содержит по меньшей мере одно событие.

Согласно еще одному частному варианту реализации предлагается система, в которой правило содержит по меньшей мере один контекст процессора.

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

Согласно еще одному частному варианту реализации предлагается способ, в котором открытием файла является исполнение файла, если файл исполняемый.

Согласно еще одному частному варианту реализации предлагается способ, в котором открытием файла является открытие файла приложением, если файл не исполняемый.

Согласно еще одному частному варианту реализации предлагается способ, в котором событие представляет собой по меньшей мере одно из: вызов API-функции потоком; возврат из API-функции; системный вызов; возврат из системного вызова; оповещение от операционной системы.

Согласно еще одному частному варианту реализации предлагается способ, в котором передача журнала производится каждый раз, когда произведено упомянутое сохранение перехваченного события и контекста процессора.

Согласно еще одному частному варианту реализации предлагается способ, в котором контекст процессора содержит по меньшей мере значения регистров процессора.

Согласно еще одному частному варианту реализации предлагается способ, в котором шаблон содержит по меньшей мере одно правило.

Согласно еще одному частному варианту реализации предлагается способ, в котором правило содержит по меньшей мере одно событие.

Согласно еще одному частному варианту реализации предлагается способ, в котором правило содержит по меньшей мере один контекст процессора.

Краткое описание чертежей

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:

Фиг. 1 показывает пример анализа файла на вредоносность в виртуальной машине.

Фиг. 2 показывает пример реализации предлагаемой системы анализа файла на вредоносность в виртуальной машине.

Фиг. 3 показывает пример реализации предлагаемого способа анализа файла на вредоносность в виртуальной машине.

Фиг. 4 показывает пример компьютерной системы общего назначения, которая позволяет реализовать настоящее изобретение.

Описание вариантов осуществления изобретения

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.

Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.

Виртуальная машина в виде среды для безопасного исполнения файла - это набор (комплекс) программно-аппаратных средств, который предоставляет ресурсы хостовой операционной системы (ГОСТ 56938-2016) для гостевой операционной системы, при этом гостевая операционная система не имеет связи с хостовой операционной системой.

Под средствами системы анализа файла на вредоносность в виртуальной машине в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 4). При этом компоненты (каждое из средств) системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.

Фиг. 1 показывает пример анализа файла на вредоносность в виртуальной машине.

В общем случае для анализа на вредоносность файл 100 открывается в виртуальной машине 120 в виде изолированной среды для исполнения файлов. Средство безопасности 110 передает виртуальной машине 120 файл 100. В одном из вариантов реализации виртуальная машина 120 создается средством безопасности 110. В другом варианте реализации виртуальная машина 120 выбирается средством безопасности 110 из ранее созданных виртуальных машин.

Стоит отметить, что в рамках настоящего изобретения файлом 100 является:

- исполняемый файл;

- динамическая библиотека;

- сценарий, исполняемый каким-либо интерпретатором (например, файлы Microsoft PowerShell);

- файлы, содержащие сценарии исполнения (например, файлы форматов Microsoft Office или Adobe Acrobat);

- веб-страница;

- изображение;

- прочие известные из уровня техники файлы, которые могут при использовании (например, при исполнении или открытии другими приложениями) нанести вред данным пользователя вычислительного устройства.

В одном из вариантов реализации под файлом 100 понимается ссылка (например, URL).

В общем случае анализ файла 100 осуществляется после его открытия в операционной системе виртуальной машины 120. Под открытием файла 100 понимается одно из:

- исполнение файла 100, если файл 100 исполняемый;

- открытие файла 100 приложением, если файл 100 не исполняемый.

Результатом открытия файла 100 является создание и запуск на исполнение процесса (англ. process) в виртуальной машине 120. При этом создается по меньшей мере один поток (англ. thread).

В одном из вариантов реализации средство безопасности 110 и монитор виртуальных машин 115 (далее по тексту - гипервизор), под управлением которого работает виртуальная машина 120, исполняются на вычислительном устройстве пользователя. В данном случае средство безопасности 110 является приложением безопасности (например, антивирусным приложением). В другом случае средство безопасности 110 и гипервизор 115 исполняются на удаленном сервере (или на разных серверах) или в качестве облачного сервиса. Средство безопасности 110 в этом случае получает файл 100 от сторонних источников (например, от средств безопасности 110, работающих на вычислительных устройствах пользователя), и передает его виртуальной машине 120, где происходит открытие файла 100.

В общем случае гипервизор 115 содержит средство перехвата 130 (средство перехвата 130 является модулем, компонентом или функциональной частью гипервизора 115). Средство перехвата 130 перехватывает вызовы API-функций потоками процесса, созданного при открытии файла 100 в виртуальной машине 120, считывает контекст процессора, на котором исполняется поток, вызывавший API-функцию. Стоит отметить, что контекст процессора содержит по меньшей мере значения регистров процессора. В одном из вариантов реализации средство 130 перехвата также считывает стек, используя ранее считанные данные, содержащиеся в регистрах процессора, соответствующих стеку (например, память по адресу из регистров ESP и ЕВР). Кроме того, средство перехвата 130 агрегирует упомянутые данные, сохраняет их (например, в базе данных или в журнале 150) и передает их средству безопасности 110 после исполнения процесса, созданного при открытии файла 100. Средство безопасности 110 в свою очередь выносит на основании данных от средства перехвата 130 вердикт о вредоносности файла 100. В общем случае вердикт выносится после анализа сохраненных данных, например, в зависимости от того, в какой последовательности и с какими параметрами производился вызов API-функций потоками процесса, созданного при открытии файла 100. В одном из вариантов реализации, если вердикт не был вынесен, данные, сохраненные средством перехвата 130, передаются средством безопасности 110 специалисту по информационной безопасности (не отображен на Фиг. 1) на анализ.

Фиг. 2 показывает пример реализации предлагаемой системы анализа файла на вредоносность в виртуальной машине.

Настоящее изобретение отличается тем, что предлагаемая система наряду со средством перехвата 130 содержит также средство анализа 140. В одном из вариантов реализации гипервизор 115 содержит средство анализа 140. В другом варианте реализации средство анализа 140 является компонентом (модулем, функциональной частью) средства безопасности 110.

В общем случае средство перехвата 130 перехватывает события в потоках процесса, созданного при открытии файла 100.

Событиями являются по меньшей мере:

- вызов API-функции потоком;

- возврат из API-функции;

- системный вызов или, другими словами, обращение потока к ядру операционной системы для исполнения какой-либо операции (англ. system call);

- возврат из системного вызова;

- оповещение (уведомление, нотификация) от операционной системы (например, создание потока, создание процесса, загрузка модуля).

В случае перехвата события исполнение потока приостанавливается средством перехвата 130. Стоит отметить, что перехват возможен на разных кольцах защиты операционной системы виртуальной машины 120, реализующих аппаратное разделение системного и пользовательского уровня привилегий, что обеспечивает перехват событий на:

- уровне ядра (англ. kernel mode),

- уровне приложений (англ. user mode).

Исполнение потока приостанавливается путем остановки исполнения инструкций потока.

Стоит отметить, что в общем случае реализации во время исполнения потоков процесса, созданного при открытии файла 100, средство перехвата 130 определяет стандарт кодирования (англ. coding convention) вызываемых потоками API-функций. Это позволяет однозначно определить использование регистров процессора для передачи параметров в вызываемые API-функции. Так, например, параметры вызовов будут находиться в регистрах ЕСХ (первый параметр), EDX (второй параметр), остальные параметры будут в стеке (регистр ESP). Кроме того, стандарт кодирования позволяет однозначно определить возвращаемые значения. Например, если API-функция возвращает значение «0», то делает это в регистре ЕАХ.

Перехваченное событие и контекст процессора средство перехвата сохраняет в журнал 150. После сохранения журнал 150 передается средством перехвата 130 средству анализа 140.

Средство анализа 140 использует набор шаблонов. В одном из вариантов реализации шаблоны хранятся в структуре данных (например, в дереве). В структуру данных шаблоны могут быть добавлены средством анализа 140 во время запуска виртуальной машины 120. В другом варианте реализации, шаблоны выбираются средством анализа 140 из базы данных.

В общем случае шаблон содержит одно или несколько правил. В одном из вариантов реализации каждому правилу назначается приоритет. В другом случае правила добавляются в шаблон упорядоченно.

Правило представляет собой логическое условие, основанное на использовании логических операндов (например, «если» или «логическое или»). Кроме того, правила могут быть связаны с друг с другом. В одном из вариантов реализации правило использует сохраненный контекст процессора. В другом варианте реализации правило содержит логику изменения контекста процессора и данные для изменения контекста процессора. В еще одном вариантов реализации правило содержит логику, с помощью которой средство анализа 140 признает открытый файл 100 вредоносным.

Примерами вышеописанных правил являются:

Правило 1: «если» вызвана FileO(«$SytemDrive:\<случайное имя>»), «то» продолжить исполнение.

Правило 2: «если» Правило 1 и FileWrire («$SytemDrive:\<случайное имя>», текстовая строка), «то» продолжить исполнение.

В вышеописанном примере поток процесса, созданного при открытии файла 100, обращается к случайному (требуемому) файлу в корне системного диска. Само по себе событие создания (или чтения) требуемого файла не является вредоносным, но оно зачастую является началом вредоносного функционала. Поэтому средством анализа 140 на основании правил принимается решение продолжить исполнение упомянутого потока. Далее, в требуемый файл производится запись. В зависимости от типа требуемого файла и записанной в него информации требуемый файл может иметь вредоносный функционал.

Более подробным примером работы системы и правил является следующий набор:

Правило 10: «если» файл 100 не подписан, то продолжить исполнение.

Правило 11: «если» правило 10, «и» файл 100 вызвал FileOpen(«$SytemDrive:\<случайное имя>»), «то» подменить возвращаемое значение на «Успех» «и» продолжить исполнение.

Правило 12: «если» правило 11, «и» файл 100 вызвал FileWrite(«$SytemDrive:\<случайное имя>», буфер памяти, используемый процессом, созданным при открытии файла 100), «то» признать файл 100 вредоносным «и» закончить исполнение.

Стоит отметить, что в приведенном примере правил «файл 100» используется для более наглядного и понятного представления правил. В общем случае в правиле используются потоки процесса, созданного при открытии файла 100.

В вышеописанном примере файл 100 не подписан, то есть поставщик (создатель) файла 100 неизвестен. Далее поток процесса, созданного при открытии файла 100, в процессе исполнения также обращается к случайному файлу в корне системного диска. Однако, обычно операционная система запрещает создание файла в корне системного диска (вредоносные файлы могут проверять другие пути, пока файл не создастся). Поэтому средством анализа 140 на основании правил принимается решение подменить возвращаемый результат на «успех», с помощью средства перехвата 130 результат подменяется, затем исполнение потока процесса, созданного при открытии файла 100, продолжается. Далее, в созданный файл производится запись. Если в созданный файл записан буфер памяти, файл может быть вредоносным (иметь вредоносный функционал). Имеет смысл прекратить анализ файла 100, затем провести анализ созданного файла, а по результатам анализа созданного файла вынести вердикт о вредоносности файла 100.

Стоит отметить, что выше описаны лишь примеры правил. В общем случае правила могут быть более емкими, например, отслеживать создание файла по разным путям, отслеживать расширение создаваемого файла, анализировать тип созданного файла, разрешать создание файла и отслеживать дальнейшее поведение потоков процесса, созданного при открытии файла 100 (например, не будет ли попыток добавить созданный файл в список автозапуска операционной системы каким-либо известным образом), отслеживать изменение атрибутов потоками как файла 100, так и других файлов, отслеживать доступ потоков в сеть Интернет.

В одном из вариантов реализации средство анализа 140 также оперирует экспертными данными (экспертизой), которые хранятся в отдельной базе данных. Эти данные могут также использоваться в правилах шаблонов.

Примером такого правила может являться:

Правило 21: «если» файл 100 обращается к веб-ресурсу, «и» веб-ресурсу присвоена вредоносная категория, «то» признать файл 100 вредоносным.

Стоит отметить, что в вышеописанном примере категория веб-ресурса, к которому обращается поток процесса, созданного при открытии файла 100 в виртуальной машине, ранее определена (присвоена) известным из уровня способом и сохранена в отдельной базе данных.

В одном из вариантов реализации правило содержит условие для глубины анализа или глубины агрегации события. Например,

Правило 31: «если» файл 100 исполняет цикл, «и» контекст событий вызова API-функций не меняется, «то» не перехватывать события возврата из API-функций.

Упомянутый пример правила позволяет ускорить исполнение файла 100 путем уменьшения количества перехватов событий и чтения контекста. Если потоком процесса, созданного при открытии файла 100, был вызван цикл длительностью порядка одного миллиарда итераций, состоящий из вызовов «CreateWindow()», «CloseWindow()», не имеет смысла перехватывать и сохранять контекст каждого события. Очевидно, что средство перехвата 130 в соответствии с вышеописанным отработает по меньшей мере четыре миллиарда раз (в цикле вызываются две API-функции, событием является вызов и возврат из API-функции), и столько же раз прочитает контекст процессора.

В одном из вариантов реализации правило содержит условие увеличения переменной цикла. Например,

Правило 41: «если» файл 100 исполняет цикл, «и» контекст событий вызова API-функций не меняется, «то» увеличивать значение переменной цикла в 5 раз спустя каждые 10 итераций.

Вышеописанный пример применим для ускорения исполнения циклов потоком процесса, созданного при открытии в виртуальной машине 120 файла 100. Средство анализа определяет, что исполняемый поток циклически вызывает некоторые события. При этом ничего не происходит, что является одним из известных сценариев антиэмуляции. Чтобы поток процесса, созданного при открытии файла 100, наиболее полно проявил свой функционал, необходимо как можно быстрее завершить цикл и продолжить исполнение. Благодаря вышеописанному правилу цикл будет завершен в несколько раз быстрее.

Таким образом, средство анализа 140 после получения журнала 150 от средства перехвата 130 анализирует произошедшие события, то есть события (текущее и предыдущие), сохраненные в журнале 150, и данные произошедших событий (например, контекст процессора, соответствующий какому-либо событию). Анализ заключается в сравнении произошедших событий с шаблоном. При этом событие сравнивается последовательно с каждым правилом, сохраненными в шаблоне (в зависимости от порядка правил в шаблоне или их приоритета). На основании сравнения средство анализа 140 принимает по меньшей мере одно из решений:

- решение о признании файла 100 вредоносным;

- решение об остановке исполнения процесса, созданного при открытии файла 100;

- решение об изменении контекста процессора;

- решение об ожидании следующего события.

Стоит отметить, что средство анализа 140 может комбинировать упомянутые выше решения. Например, если файл 100 был признан вредоносным, в одном из вариантов реализации можно остановить исполнение процесса, созданного при открытии файла 100. В другом варианте реализации можно продолжить исполнение процесса, созданного при открытии файла 100, то есть ожидать следующего события, для дальнейшего анализа поведения потоков процесса и создания журнала 150. В одном из вариантов реализации признают файл 100 вредоносным, но изменяют контекст процессора и ожидают следующего события. Такая последовательность действий нужна для более полного раскрытия функционала файла 100. Например, файл 100 был признан вредоносным после того, как в процессе анализа был создан еще один файл, содержащий вредоносный код. Однако, в некоторых случаях (например, поток пытается скачать что-то с вредоносного веб-ресурса) имеет смысл продолжить перехват событий и наполнение журнала 150 для анализа дальнейшего поведения потоков процесса, созданного при открытии файла 100. В еще одном из вариантов реализации, даже если файл 100 не был признан вредоносным (например, в процессе исполнения открылось окно, которое ожидает ввод пользователя), принимают решение об остановке исполнения процесса, созданного при открытии файла 100.

Принятые решения средство анализа 140 передает средству перехвата 130. Средство перехвата 130 исполняет действия, соответствующие принятым решениям. В случае принятия средством анализа 140 решения об ожидании следующего события возобновляется исполнение потока, которое было приостановлено средством перехвата 130.

В одном из вариантов реализации средство анализа 140 инициирует перезагрузку виртуальной машины 120. Например, если в процессе анализа файла 100 был создан новый файл, путь к которому был добавлен в автозагрузку операционной системы виртуальной машины 120, средство анализа 140 инициирует перезагрузку, чтобы проверить функционал созданного файла на вредоносность.

В общем случае после завершения анализа файла 100 в виртуальной машине 120 средство перехвата 130 передает журнал 150 средству безопасности 110. Анализ файл 100 может быть завершен как естественным путем (потоки процесса, созданного при открытии файла 100, сами закончили исполнение), так и по решению средства анализа 140 (средством анализа 140 вынесено решение об остановке процесса, созданного при открытии файла 100).

Таким образом, упомянутая система позволяет выявить вредоносность файла 100 на основании решений от средства анализа 140, а именно на основании того, было ли вынесено решение о признании файла 100 вредоносным.

Фиг. 3 показывает пример реализации предлагаемого способа анализа файла на вредоносность в виртуальной машине.

В общем случае для анализа на вредоносность средство безопасности 110 передает файл 100 виртуальной машине 120.

В общем случае анализ файла 100 осуществляется после его открытия в операционной системе виртуальной машины 120. Под открытием файла 100 понимается одно из:

- исполнение файла, если файл исполняемый;

- открытие файла приложением, если файл не исполняемый.

На начальном этапе 310 перехватывают с помощью средства перехвата 130 событие, которое возникает в процессе исполнения потока процесса, созданного при открытии файла 100. Событие представляет собой по меньшей мере одно из:

- вызов API-функции потоком;

- возврат из API-функции;

- системный вызов;

- возврат из системного вызова;

- оповещение от операционной системы.

Вместе с перехватом события приостанавливают с помощью средства перехвата 130 исполнение потока процесса, созданного при открытии файла 100.

Далее на этапе 320 считывают с помощью средства перехвата 130 контекст по меньшей мере одного процессора, на котором исполняется поток процесса, созданного при открытии файла 100. Контекст процессора при этом содержит по меньшей мере значения регистров процессора. Перехваченное событие и считанный контекст процессора с помощью средства перехвата 130 сохраняют в журнал 150.

Далее на этапе 330 с помощью средства анализа 140 сравнивают данные, сохраненные в журнале 150, по меньшей мере с одним шаблоном, который в свою очередь содержит по меньшей мере одно правило. В одном из вариантов реализации правило содержит по меньшей мере одно событие. В еще одном варианте реализации правило содержит по меньшей мере один контекст процессора. В результате сравнения данных, сохраненных в журнале 150, с правилами, содержащимися в шаблоне, с помощью средства анализа 140 принимают по меньшей мере одно из решений:

- решение о признании файла 100 вредоносным;

- решение об остановке исполнения процесса, созданного при открытии файла 100;

- решение об изменении контекста процессора;

- решение об ожидании следующего события.

Далее на этапе 340 передают принятые средством анализа 140 решения средству перехвата 130 и исполняют с помощью средства перехвата 130 действия, соответствующие принятым решениям.

Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.


Система и способ анализа файла на вредоносность в виртуальной машине
Система и способ анализа файла на вредоносность в виртуальной машине
Система и способ анализа файла на вредоносность в виртуальной машине
Система и способ анализа файла на вредоносность в виртуальной машине
Система и способ анализа файла на вредоносность в виртуальной машине
Источник поступления информации: Роспатент

Showing 51-60 of 157 items.
20.01.2018
№218.016.1274

Способ передачи управления между адресными пространствами

Изобретение относится к способу передачи выполнения инструкций из одного адресного пространства другому. Технический результат заключается в управлении выполнением инструкций кода. В способе определяют в оригинальном адресном пространстве процесса интересующий участок памяти, определяют...
Тип: Изобретение
Номер охранного документа: 0002634172
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.1282

Система и способ определения сообщения, содержащего спам, по теме сообщения, отправленного по электронной почте

Изобретение относится к области обнаружения спама. Техническим результатом является обнаружение спама в сообщении, отправленном по электронной почте. Раскрыт способ обнаружения спама в сообщении, отправленном по электронной почте, в котором: а) при помощи средства обработки сообщений получают...
Тип: Изобретение
Номер охранного документа: 0002634180
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.1283

Система и способ обнаружения вредоносного приложения путем перехвата доступа к отображаемой пользователю информации

Изобретение относится к области защиты данных приложений, а именно к системам и способам обнаружения вредоносного приложения путем перехвата доступа к отображаемой пользователю информации. Технический результат настоящего изобретения заключается в повышении безопасности вычислительного...
Тип: Изобретение
Номер охранного документа: 0002634176
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.1284

Способ выполнения кода интерпретатором

Изобретение относится к области выполнения кода интерпретатором. Техническим результатом является улучшение качества выполнения интерпретатором исследуемого программного кода путем интерпретации вспомогательного программного кода и обеспечение выполнения интерпретатором инструкций исследуемого...
Тип: Изобретение
Номер охранного документа: 0002634171
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.1287

Система и способ выполнения банковской транзакции

Изобретение относится к системе и способу выполнения банковской транзакции. Технический результат заключается в повышении безопасности выполнения банковских транзакций. Система содержит клиент, работающий на вычислительном устройстве, предназначенный для сбора с упомянутого вычислительного...
Тип: Изобретение
Номер охранного документа: 0002634174
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.128d

Система и способ определения уровня доверия url, полученного от передатчика

Изобретение относится к системам и способам определения уровня доверия URL. Технический результат заключается в улучшении безопасности компьютерного устройства путем контроля доступа к информационному ресурсу в сети в зависимости от определенного уровня доверия для URL, который был получен от...
Тип: Изобретение
Номер охранного документа: 0002634170
Дата охранного документа: 24.10.2017
20.01.2018
№218.016.1322

Система и способ обнаружения ошибок моделирования

Изобретение относится к системам и способам защиты объектов критической инфраструктуры путем контроля состояния такого объекта критической инфраструктуры, как технологическая система, посредством кибернетической системы контроля. Изобретение предназначено для тестирования кибернетической...
Тип: Изобретение
Номер охранного документа: 0002634455
Дата охранного документа: 30.10.2017
20.01.2018
№218.016.15f2

Система и способ выявления подозрительной активности пользователя при взаимодействии пользователя с различными банковскими сервисами

Изобретение относится к системам и способам выявления подозрительной активности пользователя при взаимодействии с банковскими сервисами. Технический результат заключается в повышении безопасности взаимодействия пользователя с банковскими сервисами посредством аккаунта пользователя при помощи...
Тип: Изобретение
Номер охранного документа: 0002635275
Дата охранного документа: 09.11.2017
20.01.2018
№218.016.1653

Безопасная аутентификация по логину и паролю в сети интернет с использованием дополнительной двухфакторной аутентификации

Изобретение относится к области защиты данных от несанкционированного доступа, а более конкретно, к системам безопасной аутентификации. Техническим результатом является обеспечение защищенной передачи данных пользователя на сайт в сети Интернет. Система для защищенной передачи...
Тип: Изобретение
Номер охранного документа: 0002635276
Дата охранного документа: 09.11.2017
20.01.2018
№218.016.1bf2

Способ устранения уязвимостей устройств, имеющих выход в интернет

Изобретение относится к способу устранения уязвимостей в устройствах, которые создают сетевые соединения, получают и обрабатывают входящий трафик, имеют отдельный интерфейс для взаимодействия (далее - "умные" вещи). Технический результат заключается в обеспечении информационной безопасности...
Тип: Изобретение
Номер охранного документа: 0002636700
Дата охранного документа: 27.11.2017
Showing 11-16 of 16 items.
10.05.2018
№218.016.4390

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

Изобретение относится к решениям для выявления вредоносных файлов. Техническим результатом является повышение безопасности компьютерной системы, которое достигается путем принятия решения о признании вредоносным файла, открываемого в виртуальной машине. Раскрыт способ принятия решения о...
Тип: Изобретение
Номер охранного документа: 0002649794
Дата охранного документа: 04.04.2018
10.05.2018
№218.016.4940

Способ обнаружения аномальных событий по популярности свертки события

Изобретение относится к способам обнаружения аномальных событий, возникающих в операционной системе. Технический результат заключается в обеспечении обнаружения аномальных событий, возникающих в операционной системе клиента в процессе исполнения программного обеспечения. Запускают агент,...
Тип: Изобретение
Номер охранного документа: 0002651196
Дата охранного документа: 18.04.2018
02.12.2018
№218.016.a2b7

Способ обнаружения аномальных событий на основании набора сверток безопасных событий

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении формирования сверток безопасных событий. Способ формирования набора сверток безопасных событий, в котором запускают в операционной системе по меньшей мере одного заведомо безопасного компьютерного...
Тип: Изобретение
Номер охранного документа: 0002673711
Дата охранного документа: 29.11.2018
08.12.2019
№219.017.eb31

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

Изобретение относится к способу признания файла вредоносным. Технический результат заключается в расширении арсенала средств, предназначенных для признания вредоносными файлов, использующих средства для противодействия анализу в изолированной среде. Способ, по которому: открывают файл средством...
Тип: Изобретение
Номер охранного документа: 0002708355
Дата охранного документа: 05.12.2019
29.06.2020
№220.018.2c65

Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине

Изобретение относится к способу формирования журнала при исполнении файла с уязвимостями. Технический результат заключается в повышении точности выявления наличия в виртуальной машине вредоносного приложения, эксплуатирующего уязвимости безопасного файла. Способ содержит этапы, на которых:...
Тип: Изобретение
Номер охранного документа: 0002724790
Дата охранного документа: 25.06.2020
21.05.2023
№223.018.6959

Способ обнаружения циклической активности в потоке событий для систем динамического анализа приложений

Изобретение относится к способу обнаружения циклической активности в потоке событий для систем динамического анализа приложений. Техническим результатом является снижение нагрузки на работу системы динамического анализа во время определения вредоносности приложения. Создают для потока событий,...
Тип: Изобретение
Номер охранного документа: 0002794735
Дата охранного документа: 24.04.2023
+ добавить свой РИД