RU2390837C2 - Способ и система для воплощения политики безопасности с помощью виртуальной машины безопасности - Google Patents
Способ и система для воплощения политики безопасности с помощью виртуальной машины безопасности Download PDFInfo
- Publication number
- RU2390837C2 RU2390837C2 RU2005107408/09A RU2005107408A RU2390837C2 RU 2390837 C2 RU2390837 C2 RU 2390837C2 RU 2005107408/09 A RU2005107408/09 A RU 2005107408/09A RU 2005107408 A RU2005107408 A RU 2005107408A RU 2390837 C2 RU2390837 C2 RU 2390837C2
- Authority
- RU
- Russia
- Prior art keywords
- security
- data
- command
- virtual machine
- instructions
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01H—STREET CLEANING; CLEANING OF PERMANENT WAYS; CLEANING BEACHES; DISPERSING OR PREVENTING FOG IN GENERAL CLEANING STREET OR RAILWAY FURNITURE OR TUNNEL WALLS
- E01H5/00—Removing snow or ice from roads or like surfaces; Grading or roughening snow or ice
- E01H5/04—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material
- E01H5/06—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades
- E01H5/065—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades characterised by the form of the snow-plough blade, e.g. flexible, or by snow-plough blade accessories
- E01H5/066—Snow-plough blade accessories, e.g. deflector plates, skid shoes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Storage Device Security (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Обеспечены способ и система для воплощения политики безопасности, закодированной в наборе команд виртуальной машины безопасности. Система безопасности обеспечивает виртуальную машину безопасности, которая исполняет программы безопасности, выраженные в наборе команд виртуальной машины безопасности. Техническим результатом изобретения является усовершенствованный метод воплощения политик безопасности, в частности политик безопасности, которые задают условия правильности параметров интерфейсов прикладных программ. Система безопасности сохраняет программу безопасности в хранилище команд виртуальной машины безопасности. При наступлении события воплощения безопасности виртуальная машина безопасности исполняет команды из своего хранилища команд с использованием данных события воплощения безопасности для воплощения политики безопасности. 3 н. и 22 з.п. ф-лы, 11 ил., 2 табл.
Description
Область техники, к которой относится изобретение
Описанная технология относится, в целом, к воплощению политики безопасности для блокирования нежелательного поведения компьютерной программы.
Предшествующий уровень техники
Системы программного обеспечения, например операционные системы и файловые системы, обеспечивают интерфейсы прикладного программирования, посредством которых прикладные программы могут осуществлять доступ к службам систем программного обеспечения. Интерфейс прикладной программы может обеспечивать функции с параметрами для выполнения заданной службы. Например, файловая система может иметь функцию (также именуемую "системным вызовом") для создания файла. Эта функция может иметь параметры, которые задают местоположение файла, имя файла, тип файла, размер файла и т.д. для создаваемого файла. Когда прикладная программа вызывает функцию, она передает фактические параметры, соответствующие формальным параметрам, заданным для этой функции. Функция может осуществлять определенные проверки фактических параметров, чтобы гарантировать их правильность. Например, функция создания файла может гарантировать, что заданный тип файла правильный. Если параметр неправильный, функция возвращает ошибку прикладной программе.
Системы программного обеспечения могут быть чрезвычайно сложны по разным причинам. К системе программного обеспечения можно предъявлять требование обратной совместимости со всеми более ранними версиями этой системы программного обеспечения. В этом случае может потребоваться, чтобы система программного обеспечения поддерживала все функции интерфейса прикладной программы более ранних версий. Поскольку в новой версии обычно добавляются новые функции, количество функций может быть очень большим, а их взаимодействие сложным. Некоторые системы программного обеспечения также включают в себя программные компоненты, разработанные разными подразделениями одной и той же компании или разными компаниями. Взаимодействие этих компонентов также может быть весьма сложным.
Для систем программного обеспечения становится все более важным гарантировать, что их интерфейсы прикладного программирования неуязвимы как для непреднамеренного неправильного использования, так и для преднамеренной атаки. Одно слабое место системы программного обеспечения может быть связано с параметрами ее интерфейса прикладного программирования. Когда функции более ранних версий объединяются с функциями новых версий и когда компоненты от разных разработчиков объединяются, существующая проверка параметров, осуществляемая функциями, может оказаться недостаточной для гарантирования правильного поведения функций. Например, интерфейс прикладного программирования файловой системы, разработанный одной компанией, может быть объединен с файловым сервером, разработанным другой компанией. Параметр максимального размера файла для интерфейса прикладного программирования может оказаться больше, чем поддерживаемый файловым сервером. В этом случае размер файла, допустимый в интерфейсе прикладного программирования, может приводить к проблемам с файловым сервером. В другом примере системный администратор может пожелать дополнительно ограничить максимальный размер файла, но системный администратор может не располагать средствами для воплощения этого ограничения.
Желательно иметь механизм воплощения политик безопасности и, в частности, политик безопасности, которые задают условия правильности параметров интерфейсов прикладных программ.
Сущность изобретения
Способ и система для воплощения политики безопасности обеспечиваются виртуальной машиной безопасности. Виртуальная машина безопасности включает в себя средство обработки, хранилище команд, хранилище данных и указатель команды. Виртуальная машина безопасности исполняет программу безопасности, заданную с использованием промежуточного языка, которая компилируется из представления политики безопасности на языке высокого уровня. Программа безопасности загружается в хранилище команд для исполнения. При наступлении события воплощения безопасности, например при вызове функции интерфейса прикладного программирования, данные из события воплощения безопасности сохраняются в хранилище данных, и средство обработки начинает извлекать и исполнять команды для программы безопасности из хранилища команд. Команды задают действия, которые следует предпринимать для воплощения политики безопасности, на основании данных события воплощения безопасности.
Перечень фигур
Фиг. 1 - блок-схема компонентов системы безопасности согласно одному варианту осуществления.
Фиг. 2 - блок-схема структуры данных хранилища данных согласно одному варианту осуществления.
Фиг. 3 - схема формата команды виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 4 - логическая блок-схема порядка работы компонента загрузки программы согласно одному варианту осуществления.
Фиг. 5 - логическая блок-схема порядка работы компонента перехвата системного вызова согласно одному варианту осуществления.
Фиг. 6 - логическая блок-схема порядка работы средства обработки виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 7 - логическая блок-схема порядка работы компонента разыменовывания виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 8 - логическая блок-схема порядка работы компонента оценивания теста виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 9 - логическая блок-схема порядка работы тестирующего компонента виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 10 - логическая блок-схема порядка работы компонента совпадения строк виртуальной машины безопасности согласно одному варианту осуществления.
Фиг. 11 - логическая блок-схема порядка работы нетестирующего компонента виртуальной машины безопасности согласно одному варианту осуществления.
Подробное описание
Обеспечены система и способ в компьютерной системе для воплощения политики безопасности, закодированной в виде набора команд виртуальной машины безопасности. Согласно одному варианту осуществления система безопасности обеспечивает виртуальную машину безопасности, которая исполняет программы безопасности, выраженные в наборе команд (т.е. на промежуточном языке) виртуальной машины безопасности. Система безопасности может включать в себя компилятор, который принимает политику безопасности, представленную на языке высокого уровня, и генерирует программу безопасности, которая является представлением политики безопасности на промежуточном языке виртуальной машины безопасности. Система безопасности сохраняет программу безопасности в хранилище команд виртуальной машины безопасности. При наступлении события воплощения безопасности (т.е. действия, которое нужно проверить, чтобы гарантировать, что оно согласуется с политикой безопасности) виртуальная машина безопасности исполняет команды для программы безопасности из своего хранилища команд с использованием данных из события воплощения безопасности для воплощения политики безопасности. Если событие воплощения безопасности указывает, что предпринимается попытка осуществления нежелательного поведения (например, действие, которое может использовать слабое место операционной системы), программа безопасности может блокировать эту попытку. Согласно одному варианту осуществления виртуальная машина безопасности системы безопасности исполняется в режиме ядра операционной системы, чтобы идентифицировать и предотвратить попытки со стороны приложений и внешних систем осуществлять нежелательное поведение для компьютерной системы, на которой исполняется система безопасности.
Согласно одному варианту осуществления система безопасности идентифицирует, когда параметры системного вызова, выданного приложением системной службе (например, файловой системе и системе управления памятью), могут привести к нежелательному поведению. Политика безопасности содержит правила, каждое из которых задает условие на основе параметров системного вызова и действие, которое следует предпринять в случае выполнения условия. Например, условие правила может быть выполнено, когда системный вызов создания файла выдается с параметром, задающим размер файла, превышающий 1 ГБ. Действие, связанное с этим правилом, может состоять в блокировании создания этого файла. Язык высокого уровня может быть языком на основе XML (расширяемого языка разметки), и каждое правило можно идентифицировать по правилу, условию и тегам (неотображаемым элементам разметки) действий. При компиляции правил политики безопасности, представленных на языке высокого уровня, каждое правило транслируется в команды промежуточного языка для формирования программы безопасности. Например, правило можно транслировать в последовательность команд. Одна из них сравнивает системный вызов со значением, показывающим, что функция представляет собой "создание файла", другая сравнивает параметр размера файла с константой, имеющей значение 1 ГБ, и еще одна выводит указание блокировать системный вызов.
Согласно одному варианту осуществления виртуальная машина безопасности включает в себя средство обработки, хранилище команд, указатель команды и хранилище данных. При инициализации виртуальной машины безопасности для воплощения политики безопасности система безопасности загружает в хранилище команд программу безопасности, которая реализует политику безопасности. Система безопасности также загружает данные программы безопасности в хранилище данных. При приеме системного вызова система безопасности сохраняет параметры системного вызова (в том числе значение, идентифицирующее системный вызов) в хранилище данных. Система безопасности может также сохранять информацию управления процессом для процесса, выдавшего системный вызов, в хранилище данных. Система безопасности инициализирует указатель команды так, чтобы он указывал на начальную команду программы безопасности. Средство обработки начинает программу безопасности, извлекая и исполняя начальную команду, на которую указывает указатель команды. Исполнение каждой команды меняет указатель команды так, чтобы он указывал на следующую команду, подлежащую исполнению. Команды ссылаются на данные хранилища данных для воплощения политики безопасности. При исполнении программы безопасности генерируется выходной набор действий, который задает действия (например, блокирование системного вызова), которые следует предпринять для воплощения политики безопасности.
Согласно одному варианту осуществления политика безопасности может содержать подполитику для каждого системного вызова, параметры которого подлежат проверке. Система безопасности может компилировать каждую подполитику в отдельную подпрограмму безопасности, которая может загружаться в хранилище команд независимо от других подпрограмм безопасности. Каждая подполитика может соответствовать воплощению безопасности для одного системного вызова. Система безопасности может поддерживать отображение каждого системного вызова в начальный указатель команды в хранилище команд и начальный указатель данных на данные в хранилище данных соответствующей подпрограммы безопасности. При воплощении политики безопасности для системного вызова система безопасности инициализирует указатель команды соответствующим начальным указателем команды и указатель данных соответствующим начальным указателем данных. Подпрограммы безопасности могут использовать методы ссылки на команды и данные, которые сродни указателю команды и указателю данных. Таким образом, команды и данные каждой подпрограммы безопасности являются переместимыми. В нижеследующем описании единичная программа безопасности обрабатывает все системные вызовы, декодируя каждый системный вызов и осуществляя безусловный переход в соответствующее местоположение команды для обработки этого системного вызова. Специалисту в данной области очевидно, что описанную систему можно выполнить с возможностью поддержки подпрограммы для каждого системного вызова.
На фиг. 1 изображена блок-схема, которая иллюстрирует компоненты системы безопасности согласно одному варианту осуществления. Система безопасности включает в себя некоторые компоненты, которые исполняются в режиме 100 пользователя, и другие, которые исполняются в режиме 120 ядра. Компилятор 102 политик - это компонент, который исполняется в режиме пользователя для компиляции политик безопасности из хранилища 103 политик в программы безопасности, исполняемые виртуальной машиной безопасности. Компоненты режима ядра включают в себя компонент 121 перехвата системного вызова, компонент 122 загрузки программы и виртуальную машину 125 безопасности. Виртуальная машина безопасности включает в себя указатель 126 команды (УК), средство 127 обработки, хранилище 128 команд и хранилище 129 данных. Компонент загрузки программы загружает программы безопасности, скомпилированные компилятором политик, в хранилище команд виртуальной машины безопасности, сохраняет программные данные в хранилище данных и задает начальный указатель команды. Компонент перехвата системного вызова перехватывает системные вызовы, выданные прикладными программами 101, и сохраняет параметры каждого системного вызова и информацию управления процессом прикладных программ в хранилище данных. После перехвата системного вызова и сохранения его параметров компонент перехвата системного вызова предписывает средству обработки исполнять программу безопасности из хранилища команд. Процессор исполняет программу безопасности, извлекая команды, на которые указывает указатель команды, и осуществляет операции, заданные командами. Операции включают в себя сохранение действий, которые следует предпринимать для воплощения политики безопасности, в выходном наборе действий хранилища данных. По завершении исполнения программы безопасности компонент перехвата системного вызова осуществляет действия выходного набора действий.
Вычислительное устройство, на котором может быть реализована система безопасности, может включать в себя центральный процессор, память, устройства ввода (например, клавиатуру и указательные устройства), устройства вывода (например, устройства отображения) и запоминающие устройства (например, дисководы). Память и запоминающие устройства являются машиночитаемыми носителями, которые могут содержать команды, реализующие систему безопасности. Кроме того, структуры данных и структуры сообщений могут храниться или передаваться посредством среды передачи данных, например, в виде сигнала по линии связи. Можно использовать различные линии связи, например Интернет, локальную сеть, глобальную сеть или двухточечное коммутируемое соединение.
На фиг. 1 показан пример подходящей рабочей среды, в которой может быть реализована система безопасности. Эта рабочая среда может быть лишь одним примером подходящей рабочей среды и не призвана накладывать какие-либо ограничения на объем использования или функции системы безопасности. Другие общеизвестные вычислительные системы, среды и конфигурации, которые могут быть пригодны для использования, включают в себя персональные компьютеры, компьютеры-серверы, карманные или портативные устройства, многопроцессорные системы, системы на основе микропроцессора, программируемую бытовую электронику, сетевые персональные компьютеры (ПК), мини-компьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеописанных систем и устройств, и т.п.
Система безопасности может быть описана в общем контексте машиноисполняемых команд, например программных модулей, исполняемых одним или несколькими компьютерами или другими устройствами. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и прочее, которые осуществляют определенные действия или реализуют определенные абстрактные типы данных. Обычно функциональные возможности программных модулей могут объединяться или распределяться, как описано в различных вариантах осуществления.
На фиг. 2 показана блок-схема структуры данных хранилища данных согласно одному варианту осуществления. Хранилище данных включает в себя структуру 201 литеральных данных, структуру 211 динамических данных, структуру 221 данных параметров системного вызова, структуру 231 данных блока управления процессом и выходной набор 241 действий. Структура литеральных данных включает в себя таблицу 202 литеральных данных и хранилище 203 литеральных данных. Таблица литеральных данных содержит записи фиксированного размера, которые ссылаются на литеральные данные, хранящиеся в хранилище литеральных данных. Под "литеральными данными" подразумевают данные программы безопасности, которые остаются постоянными на период действия загруженной в данный момент политики безопасности. Литеральные данные могут изменяться только при загрузке новой политики безопасности. Структура динамических данных имеет организацию, сходную с организацией структуры литеральных данных, но в ней хранятся «динамические» данные, а не "литеральные данные". Под "динамическими данными" подразумеваются данные программы безопасности, которые могут изменяться без загрузки новой политики безопасности. Например, динамические данные могут включать в себя имена приложений, которые не подлежат контролю со стороны политики безопасности. Каждая запись таблиц литеральных и динамических данных указывает на данные в соответствующем хранилище данных. Данные хранилищ литеральных и динамических данных представлены в формате самоописания. Этот формат включает в себя информацию типа данных и размера данных. Согласно одному варианту осуществления виртуальная машина безопасности поддерживает такие типы данных, как булево значение, целое число, строка и необработанный двоичный объект (именуемый также "большой двоичный объект" («blob»)), а также массивы целых чисел, строк и больших двоичных объектов. Команды ссылаются на литеральные и динамические данные с использованием индексов литеральных и динамических таблиц. При исполнении команды виртуальная машина безопасности разыменовывает индекс литеральной и динамической таблицы, извлекая индексированную запись и используя ее значение в качестве указателя начала элемента данных в хранилище литеральных или динамических данных. Поскольку данные имеют свойство самоописания, можно определить тип и размер данных. Структура данных параметров системного вызова включает в себя таблицу 222 строк, таблицу 223 целых чисел и таблицу 224 необработанных двоичных объектов. Параметры системного вызова сохраняются в этих таблицах в соответствии с их типом данных. Структура данных блока управления процессом - это таблица, которая содержит запись для каждой порции информации управления процессом, доступной виртуальной машине безопасности. Согласно одному варианту осуществления информация управления процессом включает в себя идентификатор приложения и идентификатор потока. Выходной набор действий может представлять собой набор флагов действия, генерируемых при исполнении программы безопасности и показывающих действия, подлежащие осуществлению для воплощения политики безопасности для системного вызова. Действия могут включать в себя блокирование системного вызова и извещение пользователя.
На фиг. 3 показана схема формата команды виртуальной машины безопасности согласно одному варианту осуществления. Каждая команда включает в себя поле 310 операции, поле 320 параметра 1, поле перехода 330 по условию «истина» (true), поле 340 перехода по условию «ложь» (salse) и поле 350 параметра 2. Поле параметра 1 ссылается на данные, связанные с системным вызовом (т.е. хранящиеся в структуре данных системного вызова или в структуре данных управления процессом), и поле параметра ссылается на данные, связанные с программой безопасности (т.е. непосредственно получаемые данные или данные, хранящиеся в структурах литеральных или динамических данных). Поле операции включает в себя описатель 311 параметра 2 ("m") и код 312 операции. Описатель параметра 2 задает, как интерпретировать параметр 2. Параметр 2 может содержать непосредственно получаемые данные, ссылку на динамические данные или ссылку на литеральные данные. Когда ссылка задана, виртуальная машина безопасности разыменовывает параметр прежде, чем осуществить операцию команды. Код операции идентифицирует операцию команды, что более подробно изложено ниже. Поле параметра 1 содержит описатель 321 параметра 1 ("s") и индекс 322. Описатель параметра 1 показывает, относится ли параметр 1 к параметру системного вызова или к информации управления процессом. Если описатель параметра 1 показывает параметр системного вызова, то старшие биты индекса задают, подлежит ли индексированию таблица строк, таблица целых чисел или таблица необработанных двоичных объектов структуры данных параметров системного вызова, а младшие биты указывают индексированную запись таблицы. Если описатель параметра 1 показывает информацию управления процессом, то индекс показывает конкретную информацию управления процессом. Поле перехода по условию «истина» и поле перехода по условию «ложь» содержат смещения, которые задают следующую команду, подлежащую выполнению, в зависимости от того, равен ли код условия этой команды «истина» или «ложь». Смещение прибавляется к текущему указателю команды для того, чтобы он указывал на следующую команду, подлежащую выполнению.
Таблицы 1 и 2 иллюстрируют команды виртуальной машины безопасности согласно одному варианту осуществления. Команды можно подразделить на выполняющие тестирование данных и не выполняющие его. Таблица 1 иллюстрирует нетестирующие команды.
Таблица 1 | ||
Код операции | Описание | Параметры |
HALT | Останавливает обработку | p2: код состояния |
ACTION | Добавляет код действия в выходной набор действий | p2: код действия |
JMP | Осуществляет безусловный переход к новой команде | p2: смещение перехода из текущего местоположения |
RESET | Очищает выходной набор действий | p2: игнорируется |
Таблица 2 иллюстрирует тестирующие команды. Команда шаблона может задавать регулярное выражение для сравнения двух строк, которое полезно для сравнений по типу групповых символов для имен файлов (например, "*.DAT").
Таблица 2 | |
Код операции | Описание |
TEST | Булево выражение: тестировать, равен ли p2 «истина» |
CMPEQ | Целое число: сравнить p1==p2 |
CMPNE | Целое число: сравнить p1 !=p2 |
CMPLT | Целое число: сравнить p1<p2 |
CMPLE | Целое число: сравнить p1<=p2 |
CMPGE | Целое число: сравнить p1>=p2 |
CMPGT | Целое число: сравнить p1>p2 |
BLOB_MATCH | большой двоичный объект: p1==p2 |
STRING_MATCH | строка: p1==p2 |
PATTERN_MATCH | строка: p1 совпадает с p2 по шаблону групповых символов |
BLOB_MEMBEROF | большой двоичный объект: p1==p2[i] |
INT_MEMBEROF | Целое число: p1==p2[i] |
STRING_MEMBEROF | строка: p1==p2[i] |
PATTERN_MEMBEROF | строка: p1 совпадает с p2[i] по шаблону групповых символов |
На фиг.4 изображена логическая блок-схема порядка работы компонента загрузки программы согласно одному варианту осуществления. Компонент вызывается, когда программа безопасности должна загружаться в виртуальную машину безопасности. Программа безопасности содержит виртуальные команды, блок литеральных данных и блок динамических данных. Блок литеральных данных включает в себя информацию таблицы литеральных данных, а также информацию хранилища литеральных данных. Компонент копирует блок литеральных данных в литеральное хранилище, начиная с начального положения. Затем компонент прибавляет это базовое положение к каждому смещению в таблице литеральных данных для преобразования смещений в указатели. Компонент обрабатывает блок динамических данных аналогичным образом. Виртуальные команды содержат смещения относительно начала литерального хранилища и динамического хранилища. На этапе 401 компонент идентифицирует начальное положение в литеральном хранилище и копирует блок литеральных данных программы безопасности, начиная с этого начального положения. На этапе 402 компонент прибавляет начальное положение каждого смещения таблицы литеральных данных для преобразования смещений программы безопасности в указатели. На этапе 403 компонент идентифицирует начальное положение в динамическом хранилище и копирует блок динамических данных программы безопасности, начиная с этого начального положения. На этапе 404 компонент прибавляет начальное положение к каждому смещению таблицы динамических данных для преобразования смещений программы безопасности в указатели. На этапе 405 компонент копирует виртуальные команды программы безопасности в хранилище команд, после чего завершает обработку.
На фиг. 5 изображена логическая блок-схема порядка работы компонента перехвата системного вызова согласно одному варианту осуществления. Компонент вызывается при перехвате системного вызова. Компонент инициализирует структуру данных параметра системного вызова и структуру данных управления процессом, после чего запускает виртуальную машину безопасности. Компонент также может обеспечивать указатель команды для команды начала исполнения для обработки системного вызова. При использовании подпрограмм безопасности компонент может иметь отображение системных вызовов в начальные указатели команд и в начальные указатели данных для структур литеральных и динамических данных для этого системного вызова. Компонент загрузки программы можно вызывать неоднократно для загрузки различных подпрограмм программы безопасности для обработки разных системных вызовов. Поскольку доступ к командам и данным осуществляется на основании смещения, команды и данные можно сохранять в следующих доступных местах хранилища команд и структур данных. На этапе 501 компонент задает текущий указатель команды как начальный указатель команды программы безопасности и сбрасывает выходной набор действий в начальное состояние (например, пустое). На этапах 502-504 компонент выполняет цикл по сохранению параметров системного вызова в структуру данных параметров системного вызова. На этапе 502 компонент выбирает следующий параметр системного вызова. На этапе ветвления 503, если все параметры системного вызова уже выбраны, компонент переходит к этапу 505, в противном случае компонент переходит к этапу 504. На этапе 504 компонент сохраняет выбранный параметр в соответствующей таблице структуры данных параметров системного вызова, а затем возвращается к этапу 502 для выбора следующего параметра системного вызова. На этапах 505-507 компонент выполняет цикл по сохранению информации управления процессом в структуре данных управления процессом. На этапе 505 компонент выбирает следующую информацию управления процессом для процесса, выдавшего системный вызов. На этапе ветвления 506, если вся информация управления процессом уже выбрана, компонент переходит к этапу 508, в противном случае компонент переходит к этапу 507. На этапе 507 компонент сохраняет выбранную информацию управления процессом в структуре данных управления процессом, а затем возвращается к этапу 505 для выбора следующей информации управления процессом. Альтернативно, вместо того, чтобы использовать инициализацию внутренней структуры данных управления процессом, система безопасности может по мере необходимости извлекать информацию управления процессом непосредственно из блока управления процессом (БУП). Специалисту в данной области очевидно, что блок управления процессом создается операционной системой при создании процесса. На этапе 508 компонент запускает виртуальную машину (ВМ) безопасности для воплощения политики безопасности для перехваченного системного вызова. По завершении исполнения программы безопасности виртуальной машиной безопасности компонент осуществляет действия из выходного набора действий.
На фиг. 6 изображена логическая блок-схема порядка работы средства обработки виртуальной машины безопасности согласно одному варианту осуществления. Средство обработки инициализирует структуру данных параметра системного вызова на основании перехваченного системного вызова, запускает виртуальную машину безопасности и осуществляет действия из выходного набора действий. На этапах 601-607 средство обработки выполняет цикл по загрузке и исполнению команд программы безопасности, хранящейся в хранилище команд, пока не будет исполнена команда останова. Согласно одному варианту осуществления политика безопасности может задавать, что всякий раз при выполнении условия правила никакие другие правила не тестируются. На этапе 601 средство обработки извлекает команду, на которую указывает текущий указатель команды. На этапе 602 средство обработки вызывает компонент для разыменовывания параметра 1 и параметра 2. На этапе ветвления 603 если код операции команды соответствует тестирующей операции, то средство обработки переходит к этапу 604. Если код операции команды соответствует нетестирующей операции (за исключением операции останова), то средство обработки переходит к этапу 608. Если код операции команды соответствует операции останова, то средство обработки переходит к этапу 609. На этапе 604 средство обработки вызывает компонент оценивания теста, чтобы определить, «истину» или «ложь» возвратила тестирующая операция. Вызванный компонент устанавливает флаг кода условия (КУ) равным «истина» или «ложь». На этапе ветвления 605 если код условия равен «истина», то средство обработки переходит к этапу 607, в противном случае средство обработки переходит к этапу 606. На этапе 606 средство обработки прибавляет смещение поля перехода по условию «ложь» (ЛП) к текущему указателю команды, после чего возвращается к этапу 601 для извлечения следующей команды. На этапе 607 средство обработки прибавляет смещение поля перехода по условию «истина» (ИП) к текущему указателю команды, после чего возвращается к этапу 601 для извлечения следующей команды. На этапе 608 средство обработки вызывает компонент выполнения без тестирования, а затем возвращается к этапу 601 для извлечения следующей команды. Компонент выполнения без тестирования осуществляет операцию команды и задает текущий указатель команды так, чтобы он указывал на следующую команду, подлежащую исполнению. Компонент выполнения без тестирования прибавляет смещение перехода по условию «истина» (или параметр 2 в случае команды безусловного перехода) команды к указателю команды. На этапе 609 компонент выполняет команду останова и завершает работу.
На фиг. 7 изображена логическая блок-схема порядка работы компонента разыменовывания виртуальной машины безопасности согласно одному варианту осуществления. Этот компонент разыменовывает параметр 1 и параметр 2 извлеченной команды. На этапах 701-708 компонент разыменовывает параметр 1. На этапе ветвления 701 если параметр 1 является параметром системного вызова, что указано описателем параметра 1, то компонент переходит к этапу 703, в противном случае компонент переходит к этапу 702. На этапе 702 компонент устанавливает разыменованный параметр 1 равным информации управления процессом, заданной индексом параметра 1, после чего переходит к этапу 709. На этапе ветвления 703 если индекс параметра 1 показывает, что параметр системного вызова является целым числом, то компонент переходит к этапу 704, в противном случае компонент переходит к этапу 705. На этапе 704 компонент устанавливает разыменованный параметр 1 равным целому числу, заданному индексом, и переходит к этапу 709. На этапе ветвления 705 если индекс параметра 1 показывает, что параметр системного вызова является строкой, то компонент переходит к этапу 706, в противном случае компонент переходит к этапу 707. На этапе 706 компонент устанавливает разыменованный параметр 1 равным строке, заданной индексом, и переходит к этапу 709. На этапе ветвления 707 если индекс параметра 1 показывает, что параметр системного вызова является необработанным двоичным объектом, то компонент переходит к этапу 708, в противном случае возникает ошибка. На этапе 708 компонент устанавливает разыменованный параметр 1 равным необработанному двоичному объекту, заданному индексом, и переходит к этапу 709. На этапах 709-714 компонент разыменовывает параметр 2. На этапе ветвления 709 если описатель параметра 2 показывает непосредственно получаемые данные, то компонент переходит к этапу 710, в противном случае компонент переходит к этапу 711. На этапе 710 компонент задает разыменованный параметр равным значению параметра в извлеченной команде и переходит к возвращению. На этапе ветвления 711 если описатель параметра 2 показывает литеральные данные, то компонент переходит к этапу 712, в противном случае компонент переходит к этапу 713. На этапе 712 компонент устанавливает разыменованный параметр равным литеральным данным, заданным параметром 2 в извлеченной команде, и переходит к возвращению. На этапе ветвления 713 если описатель параметра 2 показывает динамические данные, то компонент переходит к этапу 714, в противном случае возникает ошибка. На этапе 714 компонент устанавливает разыменованный параметр равным динамическим данным, заданным параметром 2 в извлеченной команде, и переходит к возвращению.
На фиг. 8 изображена логическая блок-схема порядка работы компонента оценивания теста виртуальной машины безопасности согласно одному варианту осуществления. Компонент декодирует код операции загруженной команды и вызывает компонент для реализации теста этого кода операции. Вызванный компонент устанавливает код условия равным «истина» или «ложь». На этапах ветвления 801-803 компонент декодирует код операции загруженной команды. На этапах 804-806 компонент вызывает компоненты для реализации декодированного кода операции и переходит к возвращению.
На фиг. 9 изображена логическая блок-схема порядка работы тестирующего компонента виртуальной машины безопасности согласно одному варианту осуществления. Тестирующий компонент реализует код тестирующей операции. На этапе 911 компонент задает код условия равным значению разыменованного параметра 2 и переходит к возвращению.
На фиг. 10 изображена логическая блок-схема порядка работы компонента совпадения строк виртуальной машины безопасности согласно одному варианту осуществления. Компонент определяет, совпадает ли разыменованный параметр 1 с разыменованным параметром 2. Согласно одному варианту осуществления виртуальная машина безопасности может использовать совпадение по шаблону. Например, параметр может включать в себя описание посредством "группового символа" или в более общем случае регулярное выражение. На этапе ветвления 1001 если длины параметра 1 и параметра 2 совпадают, то компонент переходит к этапу 1003, в противном случае разыменованные параметры не могут совпадать и компонент переходит к этапу 1002. На этапе 1002 компонент устанавливает код условия равным «ложь» и переходит к возвращению. На этапах 1003-1006 компонент выполняет цикл, проверяя каждый символ строк разыменованных параметров. На этапе 1003 компонент выбирает следующий символ каждой строки. На этапе ветвления 1004 если все символы строк уже выбраны, то компонент переходит к этапу 1008, в противном случае компонент переходит к этапу 1005. На этапе 1005 компонент нормализует выбранные символы. Например, компонент может переводить каждый символ в нижний регистр для реализации сравнения, не зависящего от регистра. На этапе ветвления 1006 если выбранные символы совпадают, то компонент переходит к этапу 1003, чтобы выбрать следующий символ строк, в противном случае компонент переходит к этапу 1007. На этапе 1007 компонент устанавливает код условия равным «ложь» и переходит к возвращению. На этапе 1008 все символы строк совпадают, и компонент задает код условия равным «истина» и переходит к возвращению.
На фиг. 11 изображена логическая блок-схема порядка работы нетестирующего компонента виртуальной машины безопасности согласно одному варианту осуществления. Компонент осуществляет операцию кода нетестирующей операции извлеченной команды, в том числе устанавливает текущий указатель команды так, чтобы он указывал на следующую команду, подлежащую исполнению. На этапе ветвления 1101, если код операции соответствует операции действия, то компонент переходит к этапу 1102, в противном случае компонент переходит к этапу 1103. На этапе 1102 компонент добавляет параметр извлеченной команды в выходной набор действий, а затем переходит к этапу 1107. На этапе ветвления 1103 если код операции соответствует операции сброса, то компонент переходит к этапу 1104, в противном случае компонент переходит к этапу 1105. На этапе 1104 компонент очищает выходной набор действий, а затем переходит к этапу 1107. На этапе ветвления 1105 если код операции соответствует операции безусловного перехода, то компонент переходит к этапу 1106, в противном случае компонент продолжает декодировать другие коды операции. На этапе 1106 компонент прибавляет параметр 2 (П2) к текущему указателю команды и затем переходит к возвращению. На этапе 1107 компонент прибавляет значение поля перехода по условию «истина» к текущему указателю команды и переходит к возвращению.
Специалисту в данной области очевидно, что, хотя в иллюстративных целях здесь были описаны конкретные варианты осуществления системы безопасности, можно предложить различные модификации, не отклоняясь от сущности и объема изобретения. Специалисту в данной области очевидно, что систему безопасности, использующую виртуальную машину безопасности, можно использовать для воплощения широкого круга политик безопасности. Например, систему безопасности можно использовать для воплощения безопасности сообщений, принимаемых по сети, транзакций, принятых процессором транзакций, и в более общем случае любого приложения, которое обеспечивает интерфейс прикладного программирования. Соответственно, изобретение не ограничивается ничем, кроме прилагаемой формулы изобретения.
Claims (25)
1. Выполняемый в компьютерном устройстве, имеющем первый набор команд, способ воплощения политики безопасности, содержащий этапы, на которых
обеспечивают политику безопасности на языке высокого уровня, причем данная политика безопасности указывает параметры системных вызовов, которые могут привести к нежелательному поведению,
компилируют политику безопасности в программу безопасности на основе второго набора команд, являющегося набором команд виртуальной машины безопасности, причем этот второй набор команд виртуальной машины отличается от упомянутого первого набора команд компьютерного устройства, при этом виртуальная машина безопасности реализована с использованием команд первого набора команд компьютерного устройства,
загружают программу безопасности в хранилище команд виртуальной машины безопасности,
по перехвату системного вызова операционной системы с параметрами, выданного приложением, исполняющимся на компьютерном устройстве вне виртуальной машины безопасности,
загружают упомянутые параметры в хранилище данных виртуальной машины безопасности,
исполняют средством обработки из состава виртуальной машины безопасности команды второго набора команд из хранилища команд на основе параметров, загруженных в хранилище данных, чтобы сгенерировать набор действий, которые должны быть предприняты для воплощения политики безопасности, и выполняют действия из упомянутого набора действий.
обеспечивают политику безопасности на языке высокого уровня, причем данная политика безопасности указывает параметры системных вызовов, которые могут привести к нежелательному поведению,
компилируют политику безопасности в программу безопасности на основе второго набора команд, являющегося набором команд виртуальной машины безопасности, причем этот второй набор команд виртуальной машины отличается от упомянутого первого набора команд компьютерного устройства, при этом виртуальная машина безопасности реализована с использованием команд первого набора команд компьютерного устройства,
загружают программу безопасности в хранилище команд виртуальной машины безопасности,
по перехвату системного вызова операционной системы с параметрами, выданного приложением, исполняющимся на компьютерном устройстве вне виртуальной машины безопасности,
загружают упомянутые параметры в хранилище данных виртуальной машины безопасности,
исполняют средством обработки из состава виртуальной машины безопасности команды второго набора команд из хранилища команд на основе параметров, загруженных в хранилище данных, чтобы сгенерировать набор действий, которые должны быть предприняты для воплощения политики безопасности, и выполняют действия из упомянутого набора действий.
2. Способ по п.1, в котором данные программы безопасности сохраняют в хранилище данных в структуре литеральных данных, в которой хранятся литеральные данные, которые являются постоянными при загрузке программы безопасности.
3. Способ по п.2, в котором команда в хранилище команд содержит ссылку на литеральные данные, хранящиеся в структуре литеральных данных.
4. Способ по п.1, в котором данные программы безопасности сохраняют в хранилище данных в структуре динамических данных, в которой хранятся динамические данные, которые могут быть изменены без загрузки новой программы безопасности.
5. Способ по п.4, в котором команда в хранилище команд содержит ссылку на динамические данные, хранящиеся в структуре динамических данных.
6. Способ по п.1, в котором команда в хранилище команд идентифицирует местоположение следующей команды, подлежащей исполнению.
7. Способ по п.1, в котором виртуальная машина безопасности поддерживает типы данных, соответствующие булевому значению, целому числу, строке и необработанному двоичному объекту.
8. Способ по п.1, в котором виртуальная машина безопасности поддерживает сравнения на основе совпадения по шаблону регулярного выражения.
9. Способ по п.1, в котором исполнение команд осуществляется в режиме ядра.
10. Способ по п.1, в котором команда в хранилище команд включает в себя код операции, параметры и поля условного перехода.
11. Способ по п.10, в котором поля условного перехода включают в себя поле перехода по условию «истина», которое задает следующую команду, когда условие команды равно «истина», и поле перехода по условию «ложь», которое задает следующую команду, когда условие команды равно «ложь».
12. Способ по п.1, в котором упомянутые действия задают поведение, соответствующее блокированию упомянутого системного вызова.
13. Система безопасности, приспособленная для воплощения политики безопасности и реализованная в компьютерном устройстве, имеющем первый набор команд, при этом система безопасности содержит
виртуальную машину безопасности, содержащую: хранилище команд, хранилище данных и средство обработки,
компилятор политик, выполненный с возможностью компиляции, представленной на языке высокого уровня политики безопасности, указывающей параметры системных вызовов, которые могут привести к нежелательному поведению, в программу безопасности на основе второго набора команд, являющегося набором команд виртуальной машины безопасности, причем этот второй набор команд виртуальной машины отличается от упомянутого первого набора команд компьютерного устройства, при этом скомпилированная программа безопасности загружается в хранилище команд виртуальной машины безопасности, и
компонент перехвата системного вызова, выполненный с возможностью перехватывать системный вызов операционной системы с параметрами, выданный приложением, исполняющимся на компьютерном устройстве вне виртуальной машины безопасности, и загружать эти параметры в хранилище данных виртуальной машины безопасности,
при этом средство обработки из состава виртуальной машины безопасности выполнено с возможностью исполнять программу безопасности посредством извлечения команд второго набора команд из хранилища команд и выполнения операций, заданных этими командами, на основе параметров, загруженных в хранилище данных, чтобы сгенерировать набор действий, которые должны быть предприняты для воплощения политики безопасности,
при этом компонент перехвата системного вызова дополнительно выполнен с возможностью осуществлять действия из упомянутого набора действий.
виртуальную машину безопасности, содержащую: хранилище команд, хранилище данных и средство обработки,
компилятор политик, выполненный с возможностью компиляции, представленной на языке высокого уровня политики безопасности, указывающей параметры системных вызовов, которые могут привести к нежелательному поведению, в программу безопасности на основе второго набора команд, являющегося набором команд виртуальной машины безопасности, причем этот второй набор команд виртуальной машины отличается от упомянутого первого набора команд компьютерного устройства, при этом скомпилированная программа безопасности загружается в хранилище команд виртуальной машины безопасности, и
компонент перехвата системного вызова, выполненный с возможностью перехватывать системный вызов операционной системы с параметрами, выданный приложением, исполняющимся на компьютерном устройстве вне виртуальной машины безопасности, и загружать эти параметры в хранилище данных виртуальной машины безопасности,
при этом средство обработки из состава виртуальной машины безопасности выполнено с возможностью исполнять программу безопасности посредством извлечения команд второго набора команд из хранилища команд и выполнения операций, заданных этими командами, на основе параметров, загруженных в хранилище данных, чтобы сгенерировать набор действий, которые должны быть предприняты для воплощения политики безопасности,
при этом компонент перехвата системного вызова дополнительно выполнен с возможностью осуществлять действия из упомянутого набора действий.
14. Система безопасности по п.13, в которой язык высокого уровня отвечает формату на основе XML (расширяемого языка разметки).
15. Система безопасности по п.13, в которой виртуальная машина безопасности выполнена с возможностью исполнения в режиме ядра.
16. Система безопасности по п.13, в которой второй набор команд является сокращенным набором команд.
17. Система безопасности по п.13, в которой в хранилище данных хранится информация управления процессом, используемая при исполнении команд.
18. Система безопасности по п.13, в которой хранилище данных включает в себя структуру литеральных данных и структуру динамических данных, при этом в структуре литеральных данных хранятся литеральные данные, которые являются постоянными при загрузке программы безопасности, а в структуре динамических данных хранятся динамические данные, которые могут быть изменены без загрузки новой программы безопасности.
19. Система безопасности по п.13, в которой команды в хранилище команд содержат ссылку на хранилище данных.
20. Система безопасности по п.13, в которой каждая команда в хранилище команд идентифицирует местоположение следующей команды, подлежащей исполнению.
21. Система безопасности по п.13, в которой виртуальная машина безопасности поддерживает типы данных, соответствующие булевому значению, целому числу, строке и необработанному двоичному объекту.
22. Система безопасности по п.13, в которой виртуальная машина поддерживает сравнения на основе совпадения по шаблону регулярного выражения.
23. Система безопасности по п.13, в которой команда в хранилище команд включает в себя код операции, параметры и поля условного перехода.
24. Система безопасности по п.23, в которой поля условного перехода включают в себя поле перехода по условию «истина», которое задает следующую команду, когда условие команды равно «истина», и поле перехода по условию «ложь», которое задает следующую команду, когда условие команды равно «ложь».
25. Машиночитаемый носитель, содержащий команды, которые при их исполнении в компьютере предписывают компьютеру выполнять этапы способа по одному из пп.1-12.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/832,798 | 2004-04-27 | ||
US10/832,798 US8607299B2 (en) | 2004-04-27 | 2004-04-27 | Method and system for enforcing a security policy via a security virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2005107408A RU2005107408A (ru) | 2006-08-27 |
RU2390837C2 true RU2390837C2 (ru) | 2010-05-27 |
Family
ID=34939240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2005107408/09A RU2390837C2 (ru) | 2004-04-27 | 2005-03-16 | Способ и система для воплощения политики безопасности с помощью виртуальной машины безопасности |
Country Status (17)
Country | Link |
---|---|
US (1) | US8607299B2 (ru) |
EP (1) | EP1596298B1 (ru) |
JP (1) | JP4902129B2 (ru) |
KR (1) | KR101143154B1 (ru) |
CN (1) | CN1690957B (ru) |
AU (1) | AU2005200911B2 (ru) |
BR (1) | BRPI0501171A (ru) |
CA (1) | CA2499688C (ru) |
CO (1) | CO5680123A1 (ru) |
MX (1) | MXPA05003403A (ru) |
MY (1) | MY147383A (ru) |
NO (1) | NO336813B1 (ru) |
NZ (1) | NZ539022A (ru) |
RU (1) | RU2390837C2 (ru) |
SG (1) | SG116580A1 (ru) |
TW (1) | TWI423040B (ru) |
ZA (1) | ZA200502451B (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2729406C1 (ru) * | 2017-10-09 | 2020-08-06 | Зте Корпорейшен | Способ и устройство для автоматического управления политикой зеркалирования виртуализиванного потока, а также носитель данных |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469346B2 (en) * | 2003-06-27 | 2008-12-23 | Disney Enterprises, Inc. | Dual virtual machine architecture for media devices |
US8607299B2 (en) | 2004-04-27 | 2013-12-10 | Microsoft Corporation | Method and system for enforcing a security policy via a security virtual machine |
WO2006017388A1 (en) * | 2004-08-03 | 2006-02-16 | Softricity, Inc. | System and method for controlling inter-application association through contextual policy control |
US7913092B1 (en) * | 2005-12-29 | 2011-03-22 | At&T Intellectual Property Ii, L.P. | System and method for enforcing application security policies using authenticated system calls |
US7725614B2 (en) * | 2006-08-08 | 2010-05-25 | Sandisk Corporation | Portable mass storage device with virtual machine activation |
US20080127142A1 (en) * | 2006-11-28 | 2008-05-29 | Microsoft Corporation | Compiling executable code into a less-trusted address space |
US20080250407A1 (en) * | 2007-04-05 | 2008-10-09 | Microsoft Corporation | Network group name for virtual machines |
US8397216B2 (en) * | 2008-02-29 | 2013-03-12 | International Business Machines Corporation | Compiler for a declarative event-driven programming model |
US8365149B2 (en) * | 2008-02-29 | 2013-01-29 | International Business Machines Corporation | Debugger for a declarative event-driven programming model |
US8627299B2 (en) | 2008-02-29 | 2014-01-07 | International Business Machines Corporation | Virtual machine and programming language for event processing |
US9940181B2 (en) * | 2008-07-14 | 2018-04-10 | Nyotron Information Security Ltd. | System and method for reacting to system calls made to a kernal of the system |
US8533833B2 (en) * | 2008-07-14 | 2013-09-10 | Nyotron Information Security Ltd. | System, a method, and a data-structure for processing system calls in a computerized system that implements a kernel |
EP2194456A1 (en) * | 2008-12-05 | 2010-06-09 | NTT DoCoMo, Inc. | Method and apparatus for performing a file operation |
US20100162240A1 (en) * | 2008-12-23 | 2010-06-24 | Samsung Electronics Co., Ltd. | Consistent security enforcement for safer computing systems |
US8561090B2 (en) * | 2009-02-26 | 2013-10-15 | Red Hat, Inc. | Method and an apparatus to implement secure system call wrappers |
EP2237200A1 (en) * | 2009-04-01 | 2010-10-06 | Alcatel Lucent | Method for filtering the streaming of virtual environment content assets, a related system, network element and a related virtual environment content asset |
US8429648B2 (en) * | 2009-05-28 | 2013-04-23 | Red Hat, Inc. | Method and apparatus to service a software generated trap received by a virtual machine monitor |
US8813069B2 (en) * | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
KR101113820B1 (ko) * | 2010-03-16 | 2012-02-29 | 소프트캠프(주) | 응용프로그램의 파일 입출력 보안방법과 보안시스템 |
JP2012084071A (ja) | 2010-10-14 | 2012-04-26 | Toshiba Corp | デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置 |
US9129138B1 (en) * | 2010-10-29 | 2015-09-08 | Western Digital Technologies, Inc. | Methods and systems for a portable data locker |
US8566899B2 (en) * | 2011-03-16 | 2013-10-22 | Symantec Corporation | Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
JP5275432B2 (ja) | 2011-11-11 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
AU2012337403B2 (en) | 2011-11-16 | 2015-04-30 | V-Key Inc | Cryptographic system and methodology for securing software cryptography |
JP5204290B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、システム、及び装置 |
JP5204291B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、装置、システム |
JP5100884B1 (ja) | 2011-12-02 | 2012-12-19 | 株式会社東芝 | メモリ装置 |
JP5112555B1 (ja) | 2011-12-02 | 2013-01-09 | 株式会社東芝 | メモリカード、ストレージメディア、及びコントローラ |
JP5275482B2 (ja) | 2012-01-16 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
US8966574B2 (en) | 2012-02-03 | 2015-02-24 | Apple Inc. | Centralized operation management |
CN102831342B (zh) * | 2012-07-28 | 2016-01-06 | 北京深思数盾科技有限公司 | 一种提高安卓系统中应用程序保护强度的方法 |
US9087191B2 (en) * | 2012-08-24 | 2015-07-21 | Vmware, Inc. | Method and system for facilitating isolated workspace for applications |
US9201811B2 (en) | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
US8984294B2 (en) | 2013-02-15 | 2015-03-17 | Kabushiki Kaisha Toshiba | System of authenticating an individual memory device via reading data including prohibited data and readable data |
US20150277949A1 (en) * | 2014-03-27 | 2015-10-01 | Thiam Wah Loh | Securing shared interconnect for virtual machine |
US10402584B1 (en) * | 2015-10-01 | 2019-09-03 | Hrl Laboratories, Llc | System and method for translating security objectives of computer software to properties of software code |
US10289853B2 (en) * | 2016-03-31 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure driver platform |
US10650138B2 (en) * | 2017-01-27 | 2020-05-12 | Hewlett Packard Enterprise Development Lp | System call policies for containers |
US11831655B2 (en) | 2017-10-02 | 2023-11-28 | Qualcomm Incorporated | Incorporating network policies in key generation |
CN109992974B (zh) * | 2017-12-29 | 2023-04-14 | 中兴通讯股份有限公司 | 虚拟机字节码文件的保护方法、设备及可读存储介质 |
US10747711B2 (en) * | 2018-03-20 | 2020-08-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Dynamic hybridized positional notation instruction set computer architecture to enhance security |
US11108823B2 (en) | 2018-07-31 | 2021-08-31 | International Business Machines Corporation | Resource security system using fake connections |
US11182507B2 (en) * | 2018-08-30 | 2021-11-23 | Micron Technology, Inc. | Domain crossing in executing instructions in computer processors |
US10915465B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory configured to store predefined set of domain registers for instructions being executed in computer processors |
US11914726B2 (en) | 2018-08-30 | 2024-02-27 | Micron Technology, Inc. | Access control for processor registers based on execution domains |
US11500665B2 (en) | 2018-08-30 | 2022-11-15 | Micron Technology, Inc. | Dynamic configuration of a computer processor based on the presence of a hypervisor |
US10915457B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory access control through permissions specified in page table entries for execution domains |
US10942863B2 (en) | 2018-08-30 | 2021-03-09 | Micron Technology, Inc. | Security configurations in page table entries for execution domains using a sandbox application operation |
US11481241B2 (en) * | 2018-08-30 | 2022-10-25 | Micron Technology, Inc. | Virtual machine register in a computer processor |
US10452868B1 (en) * | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
US11880422B2 (en) | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
US11698980B2 (en) * | 2019-09-12 | 2023-07-11 | Arm Limited | System, devices and/or processes for secure computation on a virtual machine |
US11588859B2 (en) * | 2021-03-15 | 2023-02-21 | Zscaler, Inc. | Identity-based enforcement of network communication in serverless workloads |
WO2022270385A1 (ja) | 2021-06-22 | 2022-12-29 | デジタル・インフォメーション・テクノロジー株式会社 | プログラム、情報処理装置、方法 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4792895A (en) * | 1984-07-30 | 1988-12-20 | International Business Machines Corp. | Instruction processing in higher level virtual machines by a real machine |
JP3381927B2 (ja) * | 1997-01-17 | 2003-03-04 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 分散コンピュータ・システムにおいて資源を保護する方法 |
US6370571B1 (en) * | 1997-03-05 | 2002-04-09 | At Home Corporation | System and method for delivering high-performance online multimedia services |
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US6125447A (en) * | 1997-12-11 | 2000-09-26 | Sun Microsystems, Inc. | Protection domains to provide security in a computer system |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6170009B1 (en) | 1998-07-17 | 2001-01-02 | Kallol Mandal | Controlling devices on a network through policies |
US6658571B1 (en) * | 1999-02-09 | 2003-12-02 | Secure Computing Corporation | Security framework for dynamically wrapping software applications executing in a computing system |
US6546546B1 (en) * | 1999-05-19 | 2003-04-08 | International Business Machines Corporation | Integrating operating systems and run-time systems |
US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
GB2365561B (en) | 1999-12-14 | 2004-06-16 | Ibm | Conditional access control |
US6567974B1 (en) * | 2000-02-25 | 2003-05-20 | Sun Microsystems, Inc. | Small memory footprint system and method for separating applications within a single virtual machine |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
US6973493B1 (en) * | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
CA2315449A1 (en) * | 2000-08-10 | 2002-02-10 | Ibm Canada Limited-Ibm Canada Limitee | Generation of runtime execution traces of applications and associated problem determination |
KR20020033859A (ko) | 2000-10-30 | 2002-05-08 | 송영호 | 리눅스 보안 커널 |
WO2002086699A2 (en) * | 2001-04-23 | 2002-10-31 | Atmel Corporation | Microprocessor for executing byte compiled java code |
US20020184520A1 (en) * | 2001-05-30 | 2002-12-05 | Bush William R. | Method and apparatus for a secure virtual machine |
US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
GB2376761A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk |
US7698713B2 (en) | 2001-09-20 | 2010-04-13 | Google Inc. | Altered states of software component behavior |
GB2381092B (en) * | 2001-10-19 | 2005-10-19 | Ibm | Object locking in a shared VM environment |
JP2003173301A (ja) * | 2001-12-07 | 2003-06-20 | Hitachi Ltd | ネットワーク,サーバおよびストレージのポリシーサーバ |
JP4522705B2 (ja) | 2001-12-13 | 2010-08-11 | 独立行政法人科学技術振興機構 | ソフトウェア安全実行システム |
US7415270B2 (en) * | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US7536181B2 (en) * | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
US7178049B2 (en) | 2002-04-24 | 2007-02-13 | Medius, Inc. | Method for multi-tasking multiple Java virtual machines in a secure environment |
US20030204500A1 (en) * | 2002-04-25 | 2003-10-30 | Jean-Francois Delpech | Process and apparatus for automatic retrieval from a database and for automatic enhancement of such database |
US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
US7149510B2 (en) * | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
JP2004126854A (ja) | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
US7117481B1 (en) * | 2002-11-06 | 2006-10-03 | Vmware, Inc. | Composite lock for computer systems with multiple domains |
US7657937B1 (en) * | 2003-01-02 | 2010-02-02 | Vmware, Inc. | Method for customizing processing and response for intrusion prevention |
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US20050044301A1 (en) * | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US7478388B1 (en) * | 2004-04-21 | 2009-01-13 | Vmware, Inc. | Switching between multiple software entities using different operating modes of a processor in a computer system |
US8607299B2 (en) | 2004-04-27 | 2013-12-10 | Microsoft Corporation | Method and system for enforcing a security policy via a security virtual machine |
-
2004
- 2004-04-27 US US10/832,798 patent/US8607299B2/en active Active
-
2005
- 2005-02-28 AU AU2005200911A patent/AU2005200911B2/en not_active Ceased
- 2005-03-01 TW TW094106137A patent/TWI423040B/zh not_active IP Right Cessation
- 2005-03-07 CA CA2499688A patent/CA2499688C/en active Active
- 2005-03-08 SG SG200501470A patent/SG116580A1/en unknown
- 2005-03-16 RU RU2005107408/09A patent/RU2390837C2/ru not_active IP Right Cessation
- 2005-03-22 MY MYPI20051234A patent/MY147383A/en unknown
- 2005-03-22 NO NO20051525A patent/NO336813B1/no not_active IP Right Cessation
- 2005-03-22 CO CO05026108A patent/CO5680123A1/es not_active Application Discontinuation
- 2005-03-23 BR BR0501171-0A patent/BRPI0501171A/pt not_active IP Right Cessation
- 2005-03-23 NZ NZ539022A patent/NZ539022A/en not_active IP Right Cessation
- 2005-03-24 ZA ZA200502451A patent/ZA200502451B/en unknown
- 2005-03-25 JP JP2005088743A patent/JP4902129B2/ja not_active Expired - Fee Related
- 2005-03-25 KR KR1020050024933A patent/KR101143154B1/ko active IP Right Grant
- 2005-03-29 CN CN2005100626459A patent/CN1690957B/zh active Active
- 2005-03-29 MX MXPA05003403A patent/MXPA05003403A/es active IP Right Grant
- 2005-04-12 EP EP05102869.4A patent/EP1596298B1/en not_active Not-in-force
Non-Patent Citations (2)
Title |
---|
VENNERS В. «Java security: How to install the security manager and customize your security policy» JAVA WORLD, 01.11.1997, найдено по адресу URL: http://www.javaworld.com/javaworld/jw-11-1997/jw-11-hood.html. * |
МЕШКОВ В. Перехват системных вызовов в ОС Linux. Ж.: Системный администратор, 05.2003, №3 (4), найдено по адресу URL:http://av5.com/journals-magazines-online/1/27/200. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2729406C1 (ru) * | 2017-10-09 | 2020-08-06 | Зте Корпорейшен | Способ и устройство для автоматического управления политикой зеркалирования виртуализиванного потока, а также носитель данных |
Also Published As
Publication number | Publication date |
---|---|
EP1596298B1 (en) | 2017-02-08 |
KR20060044764A (ko) | 2006-05-16 |
EP1596298A1 (en) | 2005-11-16 |
US8607299B2 (en) | 2013-12-10 |
AU2005200911A1 (en) | 2007-02-15 |
CO5680123A1 (es) | 2006-09-29 |
NZ539022A (en) | 2007-05-31 |
NO336813B1 (no) | 2015-11-02 |
KR101143154B1 (ko) | 2012-05-08 |
AU2005200911B2 (en) | 2010-10-21 |
CA2499688A1 (en) | 2005-10-27 |
JP4902129B2 (ja) | 2012-03-21 |
NO20051525L (no) | 2005-10-28 |
NO20051525D0 (no) | 2005-03-22 |
TWI423040B (zh) | 2014-01-11 |
CN1690957A (zh) | 2005-11-02 |
JP2005316964A (ja) | 2005-11-10 |
CA2499688C (en) | 2014-02-25 |
BRPI0501171A (pt) | 2006-01-10 |
TW200617702A (en) | 2006-06-01 |
CN1690957B (zh) | 2010-06-09 |
MY147383A (en) | 2012-11-30 |
SG116580A1 (en) | 2005-11-28 |
RU2005107408A (ru) | 2006-08-27 |
MXPA05003403A (es) | 2005-10-31 |
ZA200502451B (en) | 2006-12-27 |
US20050257243A1 (en) | 2005-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2390837C2 (ru) | Способ и система для воплощения политики безопасности с помощью виртуальной машины безопасности | |
US6260187B1 (en) | System for modifying object oriented code | |
US8464207B2 (en) | System and method for tracking software changes | |
US20060130016A1 (en) | Method of kernal-mode instruction interception and apparatus therefor | |
Chen et al. | Pointer tagging for memory safety | |
Arras et al. | SaBRe: load-time selective binary rewriting | |
Bauer et al. | Novt: Eliminating C++ virtual calls to mitigate vtable hijacking | |
Kang | Function call interception techniques | |
Fan et al. | Advanced memory checking frameworks for MPI parallel applications in Open MPI | |
Winter et al. | The tyranny of the vital few: The Pareto principle in language design | |
Wielemaker | SWI-Prolog 5.1 | |
Ogorkiewicz et al. | Analysis of buffer overflow attacks | |
Wielemaker | SWI-Prolog 4.0 | |
Klimiankou | Rapid Instruction Decoding for IA-32 | |
Wielemaker | SWI-Prolog 2.9. 6 | |
CN116010100A (zh) | 区块链系统中的合约调用方法、装置、设备及存储介质 | |
Wielemaker | J. Wielemaker@ vu. nl | |
Mallo | A translator from BML annotated Java bytecode to BoogiePL | |
CN115037735A (zh) | 一种基于短名称的链接方法和系统 | |
Lew | BCIR: A Framework for the Representation and Manipulation of the Java Bytecode | |
BRPI0501171B1 (pt) | Method in a computing device to enforce a security policy | |
Di Cataldo et al. | Stack Frames | |
Gilmore | Deep type inference for mobile functions | |
Dhanjani et al. | Kernel korner: Loadable kernel module programming and system call interception | |
Wing et al. | XEmacs Internals Manual |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150306 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20210317 |