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

Изобретение относится к решениям для выявления вредоносных файлов. Технический результат – повышение безопасности компьютерной системы. Система анализа на вредоносность файла, открываемого в виртуальной машине в виде среды для безопасного исполнения файлов, в которой перехватывают событие, которое возникает в процессе исполнения потока процесса, созданного при открытии файла в виртуальной машине в виде среды для безопасного исполнения, и приостанавливают исполнение потока; считывают контекст процессора, на котором исполняется поток; сохраняют перехваченное событие и контекст в журнал; сравнивают данные, сохраненные в журнале, с шаблонами, при этом на основании сравнения принимают по меньшей мере одно из решений: решение о признании файла вредоносным, решение об остановке исполнения файла, решение об изменении контекста процессора, решение об ожидании следующего события; исполняют действия, соответствующие принятым решениям. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

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

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

- средство перехвата, предназначенное для:

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

• приостановки исполнения упомянутого потока;

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

• сохранения каждого перехваченного события и контекста, считанного при возникновении указанного события, в журнал;

• передачи журнала средству анализа;

• изменения контекста процессора, на котором исполняется упомянутый поток, на основании полученного решения от средства анализа;

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

- средство анализа, предназначенное для:

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

• передачи решения средству перехвата.

2. Система по п. 1, в которой открытием файла является исполнение файла, если файл исполняемый.

3. Система по п. 1, в которой открытием файла является открытие файла приложением, если файл не исполняемый.

4. Система по п. 1, в которой событие представляет собой по меньшей мере одно из:

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

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

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

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

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

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

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

7. Система по п. 1, в которой шаблон содержит по меньшей мере одно правило.

8. Система по п. 7, в которой правило содержит по меньшей мере одно событие.

9. Система по п. 7, в которой правило содержит по меньшей мере один контекст процессора.

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

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

б) считывают контекст процессора, на котором исполняется упомянутый поток;

в) сохраняют перехваченное событие и упомянутый контекст в журнал;

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

д) исполняют действия, соответствующие принятым на шаге г) решениям.

11. Способ по п. 10, в котором открытием файла является исполнение файла, если файл исполняемый.

12. Способ по п. 10, в котором открытием файла является открытие файла приложением, если файл не исполняемый.

13. Способ по п. 10, в котором событие представляет собой по меньшей мере одно из:

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

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

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

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

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

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

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

16. Способ по п. 10, в котором шаблон содержит по меньшей мере одно правило.

17. Способ по п. 16, в котором правило содержит по меньшей мере одно событие.

18. Способ по п. 16, в котором правило содержит по меньшей мере один контекст процессора.



 

Похожие патенты:

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

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

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

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

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

Изобретение относится к системам и способам автоматического резервного копирования и восстановления цифровых данных. Раскрыта самовосстанавливающаяся система видеонаблюдения.

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

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

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

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

Изобретение относится к вычислительной технике. Технический результат заключается в определении DDoS-атаки на сервер при некорректной работе сервисов сервера. Система определения DDoS-атаки на сервер включает сервер, который содержит один или несколько сервисов, которые отвечают за обработку запросов пользователей, получаемых от устройств пользователей; приложение, отвечающее за безопасность, которое предназначено для определения некорректной работы сервисов сервера и передачи данной информации средству защиты от DDoS-атак, а также предназначенное для настройки средства защиты от DDoS-атак путем изменения типов данных, используемых для построения вектора пользователя; средство защиты от DDoS-атак, которое предназначено для определения DDoS-атаки на сервер на основании перехваченных запросов со стороны пользователей и информации от упомянутого приложения, отвечающего за безопасность. 2 н.п. ф-лы, 8 ил., 1 табл.

Представлен и описан проточный расходомер (1), прежде всего для эксплуатации с обеспечением единства измерений, имеющий корпус (2), по меньшей мере одно расположенное в корпусе устройство (3) обработки данных и расположенный в корпусе интерфейс (4) для коммуникации с внешним устройством (5) управления, причем устройство (3) обработки данных выполнено с возможностью записи данных через интерфейс (4). Незаконное воздействие на устройство (3) обработки данных предотвращается за счет того, что в корпусе (2) расположены по меньшей мере два чувствительных элемента (7а, 7b) защиты от записи, что внешняя сторона корпуса имеет гнездо (8) по меньшей мере для одного воздействующего элемента (9) защиты от записи, что воздействующий элемент (9) защиты от записи во вставленном в гнездо (8) состоянии переводит чувствительные элементы (7а, 7b) защиты от записи в состояние защиты от записи, что состояние защиты от записи чувствительных элементов (7а, 7b) защиты от записи обнаруживается устройством (3) обработки данных, причем при обнаружении состояния защиты от записи по меньшей мере одного из чувствительных элементов (7а, 7b) защиты от записи устройством (3) обработки данных запись данных через интерфейс (4) в устройство (3) обработки данных по меньшей мере частично предотвращается. Технический результат - обеспечение защищающего от воздействия механизма для располагающих встроенным интерфейсом проточных расходомеров, посредством которого может быть произведено воздействие на устройство обработки данных проточного расходомера и при использовании которого тем самым реализован отличный от чисто механического контроль доступа. 13 з.п. ф-лы, 4 ил.

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

Изобретение относится к сетевой безопасности. Технический результат заключается в расширении арсенала средств того же назначения. Устройство выполнено с возможностью приема ненадежных входных данных в анклаве в электронном устройстве, изоляции ненадежных данных по меньшей мере от участка анклава, передачи по меньшей мере части ненадежных данных в модуль проверки целостности с использованием канала аттестации и приема проверки целостности данных для ненадежных данных от модуля проверки целостности. Модуль проверки целостности может выполнять функции аттестации целостности данных для проверки ненадежных данных, причем функции аттестации целостности данных включают в себя политику аттестации данных и белый список. 4 н. и 21 з.п. ф-лы, 9 ил.

Группа изобретений относится к системе и способу для ограничения запросов доступа. Технический результат – обеспечение защиты доступа сети. Для этого в системе балансировщик нагрузки принимает запрос доступа, интерпретирует принятый запрос доступа в UDP-сообщение и передает UDP-сообщение в агрегатор; агрегатор накапливает принятое UDP-сообщение в соответствии с предопределенной комбинацией полей данных и предопределенной длительностью таким образом, чтобы сформировать статистические данные, и отправляет статистические данные в сумматор в ответ на запрос от сумматора; сумматор запрашивает статистические данные от агрегатора в соответствии с предопределенным временным интервалом запроса, принимает статистические данные от агрегатора, формирует черный список для запросов доступа в соответствии с принимаемыми статистическими данными и предопределенным правилом и отправляет черный список в балансировщик нагрузки в ответ на запрос от балансировщика нагрузки. Балансировщик нагрузки определяет действие обработки по каждому из принимаемых запросов доступа в соответствии с текущим черным списком. 2 н. и 10 з.п. ф-лы, 3 ил.

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

Изобретение относится к устройствам и способам шифрования и передачи данных. Технический результат заключается в обеспечении безопасности данных. Устройство содержит модуль обработки, выполненный с возможностью равномерного разделения исходных данных на N пакетов первых данных, причем N является положительным целым числом, шифрования пакета первых данных в N пакетах первых данных, для получения N пакетов шифрованных первых данных, где номер первого пакета данных имеет максимум N-1, и кодирования, с использованием фонтанного кода, N пакетов шифрованных первых данных для получения M пакетов вторых данных, где М представляет собой целое положительное число, причем M > N, и модуль передачи, выполненный с возможностью передачи М пакетов вторых данных, полученных модулем обработки, на сторону приема. 4 н. и 11 з.п. ф-лы, 8 ил.
Изобретение относится к области компьютерной техники и информационных технологий. Технический результат заключается в повышении уровня защищенности компьютера. Раскрыт компьютер для работы в доверенной вычислительной среде, содержащий встроенное аппаратное средство защиты информации - резидентный компонент безопасности (РКБ), связанный по меньшей мере с шиной компьютера, при этом РКБ - по меньшей мере одним из своих выходов и/или входов - дополнительно связан по меньшей мере с одним из функциональных блоков компьютера физически выделенной линией (ФВЛ), по которой обеспечивается привилегированное - по отношению к командам, приходящим по шине, - исполнение команд управления состоянием этого блока(этих блоков) со стороны РКБ, и/или достоверное определение последним состояния такового(таковых). 2 з.п. ф-лы.

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении безопасности взаимодействия пользователя с банковскими сервисами путем выявления потенциально опасных устройств при взаимодействии пользователя с банковскими сервисами. Система выявления потенциально опасных устройств среди устройств, посредством которых пользователь взаимодействует с банковскими сервисами содержит средство сбора, предназначенное для сбора цифровых отпечатков устройств пользователей; сбора данных о потенциально опасных состояниях устройств пользователей; средство вычисления степени угрозы, предназначенное для вычисления степеней угрозы устройств пользователей; создания кластеров устройств на основании характеристик устройства, полученных при сборе отпечатков устройств; вычисления степеней угрозы созданных кластеров устройств пользователей; средство анализа, предназначенное для выявления потенциально опасных устройств. 2 н. и 8 з.п. ф-лы, 3 ил.

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