RU2460133C1 - System and method of protecting computer applications - Google Patents
System and method of protecting computer applications Download PDFInfo
- Publication number
- RU2460133C1 RU2460133C1 RU2011126328/08A RU2011126328A RU2460133C1 RU 2460133 C1 RU2460133 C1 RU 2460133C1 RU 2011126328/08 A RU2011126328/08 A RU 2011126328/08A RU 2011126328 A RU2011126328 A RU 2011126328A RU 2460133 C1 RU2460133 C1 RU 2460133C1
- Authority
- RU
- Russia
- Prior art keywords
- objects
- request
- host system
- application
- virtual
- Prior art date
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
Область техникиTechnical field
Настоящее изобретение относится к системам и способам защиты информации и, более конкретно, к системам и способам виртуализации приложений с целью обеспечения безопасности информации, обрабатываемой данным приложением.The present invention relates to systems and methods for protecting information and, more specifically, to systems and methods for virtualizing applications to ensure the security of information processed by this application.
Уровень техникиState of the art
Ускоренный рост вредоносных программ и атак на информационные ресурсы приводит к тому, что специалисты по информационной безопасности не способны обработать все новые файлы для их последующего обнаружения даже с применением автоматизированных средств.The accelerated growth of malware and attacks on information resources leads to the fact that information security specialists are not able to process all new files for their subsequent detection, even using automated tools.
При работе с конфиденциальной информацией безопасность приобретает еще большую актуальность. Эффективность средства обнаружения угроз колеблется в зависимости от новизны и сложности вредоносного кода и не является абсолютной. Появляется необходимость в новом рубеже защиты, который должен оградить критические объекты системы или приложения от несанкционированного доступа. Подобным средством может являться «песочница» - средство для исполнения инструкций приложения в виртуальной среде с заданными правилами. Исполнение программы может быть ограничено, что исключает доступ к критической области памяти и процессам. Основной целью применения подобных средств является защита системы от непроверенного программного кода, в том числе от вредоносных программ.When working with confidential information, security becomes even more relevant. The effectiveness of a threat detection tool varies depending on the novelty and complexity of the malicious code and is not absolute. There is a need for a new frontier of protection, which should protect critical objects of the system or application from unauthorized access. A similar tool can be a “sandbox” - a tool for executing application instructions in a virtual environment with specified rules. Program execution may be limited, which excludes access to critical memory areas and processes. The main purpose of using such tools is to protect the system from unverified program code, including malware.
Вероятность того, что компьютерная система заражена и содержит вирус (тут и далее под вирусом понимается любой вид вредоносной программы), существует всегда. Этот случай указывает новое направление развития средств безопасности, когда на зараженной компьютерной системе необходимо совершить действия с конфиденциальной или секретной информацией в безопасном режиме, т.е. ограничить процессы, память, файлы и другие объекты защищаемого приложения от других программ, сохранив при этом работоспособность данного приложения. Подобное решение раскрывается в данном изобретении.The likelihood that a computer system is infected and contains a virus (hereinafter, the virus refers to any type of malware) always exists. This case indicates a new direction in the development of security tools when it is necessary to perform actions with confidential or secret information in a safe mode on an infected computer system, i.e. limit processes, memory, files and other objects of the protected application from other programs, while maintaining the functionality of this application. A similar solution is disclosed in this invention.
Существуют технологии, определяющие предшествующий уровень техники. Описанные в заявках US 20100024936 и US 20100192224 системы и способы виртуализации приложений, и более детально веб-браузеров, направлены на защиту хостовой системы от угроз, исходящих из сети Интернет, но не позволяют безопасно работать с приложением, когда хостовая система уже является зараженной вредоносной программой. В заявке US 20090300307 более детально описан способ виртуализации на лету за счет внедрения уровня виртуализации между операционной системой и модулем памяти, который контролирует команды чтения/записи в область памяти. Данная технология не позволяет фильтровать запросы по видам операций, отличным от чтения/записи, анализировать запросы по алгоритмам антивирусной проверки и динамически изменять правила фильтрации запросов.There are technologies defining the prior art. The systems and methods of application virtualization described in applications US 20100024936 and US20100192224, and in more detail web browsers, are aimed at protecting the host system from threats coming from the Internet, but do not allow safe operation of the application when the host system is already infected with malware . In the application US 20090300307 a more detailed description of the virtualization method on the fly by introducing a virtualization level between the operating system and the memory module, which controls the read / write commands in the memory area. This technology does not allow you to filter requests by types of operations other than read / write, analyze requests by anti-virus scanning algorithms and dynamically change the rules for filtering requests.
Данное изобретение устраняет описанные недостатки предшествующего уровня техники и позволяет повысить уровень защищенности приложений и его объектов.This invention eliminates the described disadvantages of the prior art and improves the level of security of applications and its objects.
Сущность изобретенияSUMMARY OF THE INVENTION
Настоящее изобретение предназначено для защиты приложений от других процессов, исполняющихся на компьютере. Техническим результатом настоящего изобретения является предотвращение несанкционированного доступа к объектам защищаемого приложения. Описанное далее изобретение позволяет перехватывать программные запросы к объектам защищаемого приложения, анализировать их на вредоносный характер и в случае опасности блокировать запрос, виртуализировать объекты приложения и хостовой системы и в зависимости от результатов анализа запроса предоставлять ссылку на объект или его виртуальную копию. Система защиты компьютерных приложений состоит из: (а) драйвера защиты, который предназначен для перехвата программных запросов; (б) обработчика безопасной среды исполнения, который предназначен для выделения программных запросов к объектам защищаемого приложения от процессов хостовой системы, обработки выделенных запросов в соответствии с установленными ограничениями и отправки ответа на перехваченный запрос, включающего запрашиваемый объект, ошибку или виртуальный объект в зависимости от установленных ограничений; (в) безопасной среды исполнения, предназначенной для создания виртуальных копий объектов, к которым адресуются перехваченные запросы.The present invention is intended to protect applications from other processes running on a computer. The technical result of the present invention is the prevention of unauthorized access to the objects of the protected application. The invention described below allows you to intercept software requests to the objects of the protected application, analyze them for malicious character and, in case of danger, block the request, virtualize the application and host system objects and, depending on the results of the request analysis, provide a link to the object or its virtual copy. The security system for computer applications consists of: (a) a security driver that is designed to intercept software requests; (b) a safe runtime processor that is designed to isolate program requests to the objects of the protected application from the host system processes, process selected requests in accordance with the established restrictions, and send a response to the intercepted request, including the requested object, error, or virtual object, depending on the installed restrictions; (c) a secure execution environment designed to create virtual copies of objects to which intercepted requests are addressed.
Система защиты компьютерных приложений также может быть настроена на обработку запросов от приложений к хостовой системе.The computer application security system can also be configured to process requests from applications to the host system.
Вариант реализации изобретения предполагает перехват запросов, включающих операцию открытия процесса, или операцию открытия потока, или операцию чтения памяти процесса, или операцию прямого доступ к памяти, или операцию доступа к файловой системе, или операцию доступа к реестру, или операцию доступа к объектам ядра ОС, или операцию на получение привилегий, имя объекта в качестве операнда.An embodiment of the invention involves intercepting requests including a process open operation, or a thread open operation, or a process memory read operation, or a direct memory access operation, or a file system access operation, or a registry access operation, or an access operation to OS kernel objects , or operation to obtain privileges, the name of the object as an operand.
В одном из вариантов реализации система защиты приложений содержит средство обнаружения угроз, предназначенное для определения вредоносного характера перехваченного запроса и блокирования запроса в том случае, если вредоносный характер перехваченного запроса установлен.In one embodiment, the application protection system comprises a threat detection means for determining the malicious nature of the intercepted request and blocking the request if the malicious nature of the intercepted request is established.
В другом варианте реализации безопасная среда исполнения контролирует изменения виртуальных объектов и позволяет применить изменения путем переноса виртуальных объектов в хостовую систему или отменить изменения, удалив редактированные виртуальные объекты.In another embodiment, the secure runtime monitors changes to virtual objects and allows you to apply changes by transferring virtual objects to the host system or discard changes by deleting edited virtual objects.
В одном из примеров системы защиты приложений объектами хостовой системы или объектами приложения являются запись реестра, каталоги файловой системы, ядро операционной системы и сервисы пользователя.In one example of an application security system, host system objects or application objects are registry entries, file system directories, the kernel of the operating system, and user services.
Краткое описание прилагаемых чертежейBrief description of the attached drawings
Сопровождающие чертежи, которые включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов работы изобретения.The accompanying drawings, which are included to provide an additional understanding of the invention and form part of this description, show embodiments of the invention and together with the description serve to explain the principles of the invention.
Заявленное изобретение поясняется следующими чертежами, на которых:The claimed invention is illustrated by the following drawings, in which:
Фиг.1 показывает пример архитектуры компьютерной системы с установленной операционной системой и работающими в ней приложениями.Figure 1 shows an example architecture of a computer system with an installed operating system and applications running in it.
Фиг.2 показывает пример архитектуры компьютерной системы с установленной операционной системой, работающими в ней приложениями и системой защиты приложений.Figure 2 shows an example architecture of a computer system with an installed operating system, applications running in it, and an application security system.
Фиг.3 показывает пример виртуализации СОМ-подсистемы.Figure 3 shows an example of virtualization of the COM subsystem.
Фиг.4 показывает один из вариантов схемы перехватов и обработки запросов приложения.Figure 4 shows one embodiment of an interception scheme and processing application requests.
Фиг.5 показывает состав виртуальных объектов в безопасной среде исполнения.Figure 5 shows the composition of virtual objects in a secure runtime.
Фиг.6 показывает способ переадресации запросов за счет изменения имен портов.6 shows a method of forwarding requests by changing port names.
Фиг.7 показывает функциональную схему системы защиты приложений.7 shows a functional diagram of an application security system.
Фиг.8 показывает блок-схему способа защиты приложений.FIG. 8 shows a flowchart of an application security method.
Фиг.9 показывает схему системы защиты приложений.9 shows a diagram of an application security system.
Фиг.10 показывает пример компьютерной системы общего назначения.10 shows an example of a general purpose computer system.
Описание предпочтительных вариантов осуществленияDescription of Preferred Embodiments
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than specific details to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined only in the scope of the attached claims.
Система защиты компьютерной программы представляет собой устройство, предназначенное для безопасной работы приложения в программной среде, подверженной угрозам вирусного заражения и несанкционированного доступа.The computer program protection system is a device designed for safe operation of the application in a software environment that is prone to threats of virus infection and unauthorized access.
Система защиты компьютерной программы осуществляет защиту файлов, процессов приложения от других приложений и служб за счет виртуализации приложения и за счет набора правил, по которым осуществляется взаимодействие приложения с компьютерной системой.The computer program protection system protects files, application processes from other applications and services due to application virtualization and due to a set of rules by which the application interacts with the computer system.
При отсутствии в компьютере системы защиты программа, исполняемая в режиме пользователя, остается уязвимой, например, для троянских вредоносных программ, которые перехватывают информацию ввода/вывода, данные из программных файлов, которые могут содержать конфиденциальную информацию, и отсылают их злоумышленнику.In the absence of a security system in the computer, the program executed in user mode remains vulnerable, for example, to Trojan malware that intercepts I / O information, data from program files that may contain confidential information and sends it to an attacker.
На Фиг.1 показан пример архитектуры компьютерной системы с установленной операционной системой и работающими в ней приложениями 100, которые в совокупности составляют хостовую систему. Управление аппаратными средствами 120, в том числе процессором, памятью, осуществляется программно. Процессоры и операционные системы поддерживают несколько уровней привилегий исполнения программ. В частности, операционная система (ОС) Windows поддерживает два режима исполнения программ: режим ядра 110 и режим пользователя 115. Приложения запускаются в режиме пользователя. Это увеличивает степень защищенности всей системы от критических ошибок и защищает системные службы 130, драйверы 140 и другие процессы, необходимые для корректной работы компьютера. В системе пользователя также работают сервисы 150, например, службы безопасности, такие как антивирус, которые контролируют работу приложений и состояние системы в целом.Figure 1 shows an example architecture of a computer system with an installed operating system and
На Фиг.2 показан пример реализации системы защиты приложения в хостовой системе. Под хостовой системой в данной заявке следует понимать основную операционную систему, приложения, работающие в ней, и обрабатываемые ей файлы. В операционную систему встраивается драйвер защиты 230, который перехватывает все программные запросы к приложению 100 и от него, а также переправляет их в среду безопасного исполнения 220, которая работает в режиме пользователя. Безопасная среда исполнения (БСИ) 220 обрабатывает запрос в виртуальной системе, после чего отсылается ответ на запрос без воздействия на хостовую систему. Под хостовой системой понимается операционная система, работающие в данной операционной системе приложения и их объекты. Объектами хостовой системы и, в частности, объектами приложения являются каталоги и файлы, процессы, ключи реестра, библиотеки, область памяти и т.д.Figure 2 shows an example implementation of an application security system in a host system. The host system in this application should be understood as the main operating system, the applications running in it, and the files processed by it. A
БСИ 220 является сервисом операционной системы 150, работающим на уровне пользователя. Пример виртуализации СОМ-подсистемы показан на Фиг.3. Модель СОМ предоставляет возможность создания многократно используемых компонентов. Такие компоненты представляют собой исполняемые файлы или динамические библиотеки, которые созданы с возможностью их вызова из любой программы, поддерживающей модель СОМ. Примером такой программы является Internet Explorer или другой браузер. Через СОМ возможно получить доступ к запущенной копии приложения и управлять ею. При обращении к сервису СОМ 300 запрос переадресуется в виртуальную копию СОМ 301, созданную безопасной средой исполнения. Благодаря этому доступ к СОМ-объектам операционной системы и отдельных приложений осуществляется не напрямую. Виртуальный сервис СОМ не отличается от оригинального сервиса. При запросе от приложения он запускает СОМ-сервер 310, который возвращает приложению 100 требуемый объект. Виртуальный сервис соответственно создает виртуальный сервер 311 и возвращает виртуальный объект.BSI 220 is an
На Фиг.4 показана общая схема работы безопасной среды исполнения для защиты хостовой системы от заражения. Во время исполнения приложения 100 перехватываются следующие запросы:Figure 4 shows the general operation scheme of a secure runtime environment to protect the host system from infection. At runtime,
- открытие процесса/потока;- opening a process / thread;
- чтение памяти процесса;- reading process memory;
- прямой доступ к памяти/диску;- direct access to memory / disk;
- доступ к файловой системе, реестру и объектам ядра ОС 400;- access to the file system, registry and kernel objects of the
- запрос на получение привилегий.- request for privileges.
Приложение посылает запрос ОС 400, где его должен обработать обработчик 405 ОС. Указанные выше запросы перехватываются и не попадают в обработчик 405. Перехват осуществляется драйвером защиты 230, после чего запрос перенаправляется в безопасную среду исполнения 220, где выполняется виртуализация необходимых объектов системы. Запрос попадает к обработчику 410 безопасной среды исполнения, где процесс исполняется.The application sends an
Ход выполнения программы зависит от уровня детализации виртуализации хостовой системы. Для эффективной работы без возникновения ошибок необходимо создать виртуальную копию файловой системы, реестра и некоторых служб ОС. На Фиг.5 показан состав виртуальных объектов, входящих в безопасную среду исполнения 220. В нее входят виртуализация сервисов пользователя 500 и СОМ подсистемы 505, виртуализация объектов ядра 510 (port, pipe, event, mutex, section, smaphore), виртуализация реестра 520 и виртуализация файловой системы 530. Виртуализация происходит без процесса инсталляции, перезагрузки системы, т.к. не требует изменений в ядре ОС.The progress of the program depends on the level of detail of the host virtualization. To work effectively without errors, you must create a virtual copy of the file system, registry and some OS services. Figure 5 shows the composition of virtual objects included in the
Виртуализация подразумевает, что изменения, которые приложение совершает в системе, реально в системе не совершаются. Оригинальная информация в хостовой системе (файл или ключ реестра) не меняется. Под виртуализацией процесса понимается виртуализация его доступа к объектам ОС (в том числе к файлам и реестру). Виртуализация объекта предполагает создание его виртуальной копии, если это необходимо (может быть также предоставлен доступ к реальному объекту). Создание копии выполняется по решению обработчика безопасной среды исполнения. Реальный объект возвращается, как правило, при доступе только на чтение. Виртуальные файлы хранятся в специальной директории, а ключи реестра в специальной ветке реестра. Другие объекты ОС хранятся в оперативной памяти.Virtualization implies that the changes that the application makes in the system are not really made in the system. The original information in the host system (file or registry key) does not change. Virtualization of a process refers to virtualization of its access to OS objects (including files and registry). Virtualizing an object involves creating a virtual copy of it if necessary (access to the real object can also be provided). Creating a copy is performed by the decision of the processor of the safe execution environment. The real object is returned, as a rule, with read-only access. Virtual files are stored in a special directory, and registry keys in a special registry branch. Other OS objects are stored in RAM.
Драйвер защиты 230 перехватывает также локальные вызовы процедур (LPC). Это позволяет системе защиты приложения изолировать приложения за счет подмены имен портов. Пример подобного перехвата отражен на Фиг.6. Приложение отправляет запрос на создание объекта в библиотеку внедрения объектов OLE32.dll 600 (в ОС Windows). Данная библиотека вызывает функцию установления соединения с портом NtConnectPort("\\RPC_Control\epmapper"), где "\\RPC_Control\epmapper" - имя порта. Запрос перехватывается и заменяется имя порта. После подмены имени порта запрос поступает не в сервис удаленного вызова процедур RPCSS 610 (в ОС Windows), а в виртуальный сервис удаленного вызова процедур Virtual RPCSS 615. Виртуальный сервис 615 возвращает приложению интерфейс epmapper для дальнейшего взаимодействия с виртуальной системой.
Предыдущие примеры рассматривались в отношении взаимодействия приложения с ОС. Подобные примеры раскрывают возможность защиты ОС от вредоносного воздействия на нее со стороны приложений. Однако виртуализировать все приложения на компьютере чрезвычайно ресурсоемкая задача и это нецелесообразно для решения задачи безопасной работы с конфиденциальной информацией. Существует ограниченный набор приложений на компьютере, которые хранят, передают и принимают информацию, содержащую личные данные, которые пользователь пожелал бы скрыть. К подобной информации относятся личная переписка, персональные данные, секретные коды, пароли, номера кредитных карт и другие данные. Виртуализация приложений и их взаимодействие с другими приложениями и ОС по определенным правилам является необходимым слоем защиты в условиях постоянного роста риска информационной безопасности. Описываемое изобретение позволяет ограничить приложение от потенциально вредоносного программного обеспечения без потери функциональности, не требует дополнительного процесса инсталляции и перезагрузок.Previous examples have been considered in relation to the interaction of the application with the OS. Such examples reveal the possibility of protecting the OS from malicious exposure on the part of applications. However, virtualizing all applications on a computer is an extremely resource-intensive task and it is not practical to solve the problem of safe work with confidential information. There is a limited set of applications on the computer that store, transmit and receive information containing personal data that the user would like to hide. Such information includes personal correspondence, personal data, secret codes, passwords, credit card numbers and other data. Application virtualization and their interaction with other applications and operating systems according to certain rules is a necessary layer of protection in the face of a constant increase in information security risk. The described invention allows you to limit the application from potentially malicious software without loss of functionality, does not require an additional installation process and reboots.
Система защиты приложений, являясь средством виртуализации приложения, организует в первую очередь защиту хостовой системы от заражения через уязвимости и ошибки в запущенном приложении по следующим принципам:The application protection system, as a means of application virtualization, primarily organizes the protection of the host system from infection through vulnerabilities and errors in the running application according to the following principles:
- ограничение доступа к защищенным объектам - объектам, содержащим конфиденциальные данные пользователя;- restriction of access to protected objects - objects containing confidential user data;
- защита хостовой системы от изменений: создание и предоставление копии объекта приложению, запущенному в безопасной среде исполнения при попытке модификации объекта в хостовой системе;- protection of the host system from changes: creating and providing a copy of the object to an application running in a safe runtime environment when trying to modify the object in the host system;
- защита критичных процессов и служб, запущенных в хостовой системе, от доступа со стороны приложения, запущенного в безопасной среде исполнения с целью исключения утечки вредоносных процессов в хостовую систему.- protection of critical processes and services running on the host system from access by an application running in a safe runtime to prevent malicious processes from leaking to the host system.
В данном случае система защиты приложений представляет собой фильтр запросов, поступающих от приложения, запущенного в безопасной среде исполнения, к объектам хостовой системы.In this case, the application protection system is a filter of requests from an application running in a safe runtime to the objects of the host system.
С другой стороны, за счет дополнительных ограничений и интеграции со средством обнаружения угроз, система защиты приложений позволяет получить новый технический результат, заключающийся в фильтрации запросов, поступающих к приложению, исполняемому в безопасной среде исполнения, от процессов, запущенных в хостовой системе.On the other hand, due to additional restrictions and integration with the threat detection tool, the application protection system allows you to get a new technical result, which consists in filtering requests received by the application running in a safe execution environment from processes running in the host system.
Реализация нового подхода к защите приложений дополнительно характеризуется следующими положительными факторами:The implementation of a new approach to application security is additionally characterized by the following positive factors:
- защита от проникновения вредоносных программ в ходе работы приложения в сети Интернет в хостовую систему;- protection against malware penetration during the operation of the application on the Internet in the host system;
- очистка временных файлов, журналов посещений и других данных, хранящих историю работы приложения;- cleaning of temporary files, visit logs and other data storing the history of the application;
- защита пользовательских данных, обрабатываемых защищаемым приложением, от несанкционированного доступа процессов из хостовой системы;- protection of user data processed by the protected application from unauthorized access of processes from the host system;
- безопасный запуск программ из защищаемого приложения, которые автоматически будут запущены в безопасной среде исполнения.- safe launch of programs from the protected application, which will be automatically launched in a safe execution environment.
На Фиг.7 показана работа песочницы для защиты приложения от вредоносной программы, которая не была обнаружена антивирусными средствами защиты хостовой системы. В качестве примера выбрано приложение браузер 700, как наиболее распространенное. Аналогично осуществляется защита для банковских приложений, средств быстрого обмена сообщениями, веб-агентов и других программ. Алгоритм кражи конфиденциальной информации, обрабатываемой программой, может содержать считывание памяти процесса и передача информации в сеть 711 вредоносной программой 710, установленной в хостовую систему. Когда некая программа обращается к браузеру, например, на чтение памяти одного из процессов, данный запрос перехватывается драйвером защиты 230. Среда безопасного исполнения 220 переправляет запрос и имя вызвавшей программы в средство проверки 210, которое должно определить характер запроса и установить вердикт - разрешить запрос, заблокировать запрос или перенаправить запрос в виртуальную систему. Средство проверки представляет собой экспертную систему правил 720, учитывающую запрос (действие), объект запроса, статистику запросов, атрибуты и поведение обращающейся к приложению программы. Простым примером подобных правил является исключение доступа в зависимости от объекта, отмеченного в примере угловыми скобками:Figure 7 shows the operation of the sandbox to protect the application from a malicious program that was not detected by anti-virus means of protecting the host system. As an example, the
Если {доступ к<объекту ядра ОС>}, то {доступ блокировать}If {access to <OS kernel object>}, then {access block}
В зависимости от вердикта запрос либо направляется обработчику ОС без модификации, либо блокируется, либо запрос направляется в виртуальную систему, созданную в безопасной среде исполнения. Обращения к процессам, данным и памяти приложений фильтруются в соответствии с правилами, что усиливает защиту доступа к конфиденциальным данным 730 приложения.Depending on the verdict, the request is either sent to the OS handler without modification, or it is blocked, or the request is sent to a virtual system created in a secure execution environment. Accesses to processes, data and application memory are filtered in accordance with the rules, which enhances the protection of access to
Алгоритм защиты приложения в виде блок-схемы показан на Фиг.8. Происходит перехват запроса 800 к приложению (памяти приложения, его процессам, файлам приложения) или от него. Запрос проверяется на соответствие правилам безопасности 810 и в результате проверки принимается решение 815 - запрос блокируется 825, если он не соответствует условиям безопасности, запрос разрешается 820 (посылается обработчику ОС), если не представляет угрозы, запрос виртуализируется, если запрос не соответствует первым двум условиям. Безопасная среда исполнения создает виртуальную систему 830, состав которой показан на Фиг.5. В виртуальной системе запрос обрабатывается виртуальным обработчиком 835 и подменяет память, процессы, файлы и другие объекты на виртуальные копии, которые возвращаются вызывающей программе. Производимые действия с виртуальной системой сохраняются 840 и далее по желанию могут быть применены 845 к хостовой системе. В случае применения изменений, объекты виртуальной системы переносятся 850 в хостовую. На этом цикл операций завершается 855 до следующего запроса, после чего цикл повторяется.The application security algorithm in the form of a block diagram is shown in Fig. 8.
Итоговая схема системы защиты приложений представлена на Фиг.9. Драйвер защиты 230 перехватывает программные запросы, которые и являются входными параметрами системы. Перехваченные запросы поступают в безопасную среду исполнения, в которой происходит виртуализация защищаемых приложений и обработка запроса обработчиком безопасной среды исполнения 900. Примеры перехватываемых запросов описаны выше. Если запрос направлен к критическому объекту с ограниченным доступом, создается виртуализированный объект, возвращаемый программе, от которой поступил запрос. Как показано на Фиг.9, объектами виртуализации являются файловая система 530, ядро операционной системы 510, реестр 520 и сервисы пользователя 500. Помимо ограничений, накладываемых безопасной средой исполнения на объекты защищаемого приложения, в системе также присутствует средство обнаружения угроз 210. Оно необходимо для определения подозрительной активности программ, обращающихся к защищаемому приложению, и анализа активности защищаемого приложения, на случай, чтобы оно не осуществляло действий, способных нанести ущерб хостовой системе. Обнаружение происходит по обновляемым правилам, составляющим рейтинг опасности того или иного процесса. Получив запрос, безопасная среда исполнения направляет его в средство обнаружения угроз, которое возвращает вердикт о том, является ли данный запрос безопасным или может составлять угрозу для приложения и обрабатываемых данных. Более подробное описание работы упомянутого средства обнаружения угроз содержится в патенте номер US7530106 «System and method for security rating of computer processes». Если запрос адресован от безопасного процесса и не попадает под ограничения безопасной среды исполнения, то он без изменений возвращается обработчику операционной системы. Другим случаем является необходимость блокировать запрос, когда процесс, сделавший запрос, может быть вредоносным. Еще одна ситуация возникает, когда запрос попадает под ограничения безопасной среды исполнения, например, чтение памяти процесса. Для того чтобы защитить данные приложения и сохранить при этом функциональность, запрос направляется в обработчик безопасной среды исполнения, который осуществляет взаимодействие с виртуальными объектами.The final diagram of the application security system is presented in Fig.9. The
Фиг.10 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.10 is an example of a general purpose computer system, a personal computer or
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс привода магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35 и дополнительные программные приложения 37, другие программные модули 38 и программные данные 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.10. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the
В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, описанного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.In conclusion, it should be noted that the information provided in the description are only examples that do not limit the scope of the present invention described by the claims. One skilled in the art will recognize that there may be other embodiments of the present invention consistent with the spirit and scope of the present invention.
Claims (16)
(а) драйвера защиты, загруженного в память и исполняемого на процессоре хостовой системы, который предназначен для перехвата программных запросов на уровне ядра хостовой системы и связан при этом с обработчиком безопасной среды исполнения;
(б) обработчика безопасной среды исполнения, загруженного в память и исполняемого на процессоре хостовой системы, который предназначен для:
- выделения программных запросов к объектам защищаемого приложения от процессов хостовой системы и обработки выделенных запросов в соответствии с установленными ограничениями, накладываемыми на объект, или на операцию, или на операцию с объектом;
- отправки ответа на перехваченный запрос, включающего:
- запрашиваемый объект, в том случае, если запрос к данному объекту разрешен в соответствии с упомянутыми ограничениями, или
- ошибку в случае, если запрос к данному объекту заблокирован в соответствии с упомянутыми ограничениями, или
- виртуальный объект в том случае, если запрос к данному объекту не заблокирован и не разрешен в соответствии с упомянутыми ограничениями, при этом упомянутый обработчик безопасной среды исполнения связан с безопасной средой исполнения;
(в) безопасной среды исполнения, загруженной в память, исполняемой на процессоре хостовой системы и предназначенной для создания виртуальных копий объектов, к которым адресуются перехваченные запросы.1. A system for protecting computer applications, consisting of:
(a) a protection driver loaded into memory and executed on the processor of the host system, which is designed to intercept software requests at the kernel level of the host system and is associated with the processor of the safe execution environment;
(b) a processor for a secure execution environment loaded into memory and executed on the processor of the host system, which is intended for:
- allocation of program requests to the objects of the protected application from the processes of the host system and processing of selected requests in accordance with the established restrictions imposed on the object, or on the operation, or on the operation with the object;
- sending a response to an intercepted request, including:
- the requested object, if the request for this object is allowed in accordance with the mentioned restrictions, or
- an error if the request to this object is blocked in accordance with the mentioned restrictions, or
- a virtual object in the event that the request to this object is not blocked and is not allowed in accordance with the mentioned restrictions, while the said processor of the safe execution environment is associated with a safe execution environment;
(c) a secure execution environment loaded into memory executable on the processor of the host system and designed to create virtual copies of objects to which intercepted requests are addressed.
(а) перехватывают программные запросы на уровне ядра хостовой системы;
(б) выделение программных запросов к объектам защищаемого приложения от процессов хостовой системы;
(в) обрабатывают перехваченный запрос в соответствии с установленными ограничениями, накладываемыми на объект, или на операцию, или на операцию с объектом;
(г) создают виртуальную копию объекта, к которому адресуется перехваченный запрос;
(д) отправляют ответ на перехваченный запрос, включающий:
- запрашиваемый объект в том случае, если запрос к данному объекту разрешен в соответствии с упомянутыми ограничениями, или
- ошибку в случае, если запрос к данному объекту заблокирован в соответствии с упомянутыми ограничениями, или
- виртуальную копию запрашиваемого объекта в том случае, если запрос к данному объекту не заблокирован и не разрешен в соответствии с упомянутыми ограничениями.9. A method of protecting applications in which:
(a) intercept program requests at the kernel level of the host system;
(b) the allocation of program requests to the objects of the protected application from the processes of the host system;
(c) process the intercepted request in accordance with the established restrictions imposed on the object, or on the operation, or on the operation with the object;
(d) create a virtual copy of the object to which the intercepted request is addressed;
(e) send a response to the intercepted request, including:
- the requested object if the request to this object is permitted in accordance with the above restrictions, or
- an error if the request to this object is blocked in accordance with the mentioned restrictions, or
- a virtual copy of the requested object in the event that the request to this object is not blocked and is not allowed in accordance with the mentioned restrictions.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2011126328/08A RU2460133C1 (en) | 2011-06-28 | 2011-06-28 | System and method of protecting computer applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2011126328/08A RU2460133C1 (en) | 2011-06-28 | 2011-06-28 | System and method of protecting computer applications |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2460133C1 true RU2460133C1 (en) | 2012-08-27 |
Family
ID=46937931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2011126328/08A RU2460133C1 (en) | 2011-06-28 | 2011-06-28 | System and method of protecting computer applications |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2460133C1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2537814C2 (en) * | 2013-02-06 | 2015-01-10 | Закрытое акционерное общество "Крафтвэй корпорейшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2538286C2 (en) * | 2013-02-06 | 2015-01-10 | Закрытое акционерное общество "Крафтвэй корпорейшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2606877C1 (en) * | 2015-09-28 | 2017-01-10 | Общество С Ограниченной Ответственностью "Яндекс" | System and method of processing data in executed on computer system |
US10855725B2 (en) | 2016-06-02 | 2020-12-01 | Microsoft Technology Licensing, Llc | Hardware-based virtualized security isolation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU84594U1 (en) * | 2009-03-10 | 2009-07-10 | Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации | STORAGE WITH PROTECTION FROM UNAUTHORIZED ACCESS TO MEMORY |
-
2011
- 2011-06-28 RU RU2011126328/08A patent/RU2460133C1/en active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU84594U1 (en) * | 2009-03-10 | 2009-07-10 | Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации | STORAGE WITH PROTECTION FROM UNAUTHORIZED ACCESS TO MEMORY |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2537814C2 (en) * | 2013-02-06 | 2015-01-10 | Закрытое акционерное общество "Крафтвэй корпорейшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2538286C2 (en) * | 2013-02-06 | 2015-01-10 | Закрытое акционерное общество "Крафтвэй корпорейшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2538286C9 (en) * | 2013-02-06 | 2018-07-12 | Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2537814C9 (en) * | 2013-02-06 | 2018-07-13 | Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" | Method of launching hypervisor in computer system at early computer booting stage |
RU2606877C1 (en) * | 2015-09-28 | 2017-01-10 | Общество С Ограниченной Ответственностью "Яндекс" | System and method of processing data in executed on computer system |
US9996702B2 (en) | 2015-09-28 | 2018-06-12 | Yandex Europe Ag | System for and method of data processing in a computer-implemented system |
US10855725B2 (en) | 2016-06-02 | 2020-12-01 | Microsoft Technology Licensing, Llc | Hardware-based virtualized security isolation |
RU2755880C2 (en) * | 2016-06-02 | 2021-09-22 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Hardware virtualized isolation for ensuring security |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956184B2 (en) | On-demand disposable virtual work system | |
US8099596B1 (en) | System and method for malware protection using virtualization | |
US10242186B2 (en) | System and method for detecting malicious code in address space of a process | |
RU2714607C2 (en) | Double self-test of memory for protection of multiple network endpoints | |
US9396326B2 (en) | User transparent virtualization method for protecting computer programs and data from hostile code | |
US8161563B2 (en) | Running internet applications with low rights | |
US9009836B1 (en) | Security architecture for virtual machines | |
TWI470471B (en) | Protecting operating-system resources | |
US8510838B1 (en) | Malware protection using file input/output virtualization | |
US20170272462A1 (en) | System and Method for Process Hollowing Detection | |
EP2902937B1 (en) | Method, apparatus, and system for triggering virtual machine introspection | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
RU2697954C2 (en) | System and method of creating antivirus record | |
CA2635583A1 (en) | Real time lockdown | |
US9454652B2 (en) | Computer security system and method | |
US8775802B1 (en) | Computer security system and method | |
US11416611B2 (en) | Countering malware detection evasion techniques | |
Wueest | Threats to virtual environments | |
RU2460133C1 (en) | System and method of protecting computer applications | |
KR100704721B1 (en) | method for computer protection with real-time monitoring and thereby computer and thereby system | |
Zhao et al. | Virtual machine security systems | |
RU2592383C1 (en) | Method of creating antivirus record when detecting malicious code in random-access memory | |
US10452817B1 (en) | File input/output redirection in an API-proxy-based application emulator | |
RU2739832C1 (en) | System and method of detecting changed system files for checking for malware in a cloud service | |
RU92217U1 (en) | HARDWARE ANTI-VIRUS |