Абстрактная модель песочницы на основе перенаправления запросов доступа | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №22 (156) июнь 2017 г.

Дата публикации: 31.05.2017

Статья просмотрена: 86 раз

Библиографическое описание:

Игисинов, И. Ж. Абстрактная модель песочницы на основе перенаправления запросов доступа / И. Ж. Игисинов. — Текст : непосредственный // Молодой ученый. — 2017. — № 22 (156). — С. 130-134. — URL: https://moluch.ru/archive/156/44064/ (дата обращения: 16.12.2024).



Формулировка задачи

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

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

‒ полная виртуализация;

‒ частичная виртуализация.

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

В отличии от полной виртуализации, частичная может обеспечить достаточный уровень изоляции потенциально опасного ПО, при этом не потребляя избыточных ресурсов. Это достигается тем, что виртуализируется не вся операционная система, в которой будет выполняться процесс, а лишь затрагиваемые этим процессом элементы. Для решения задачи частичной виртуализации в данной работе предлагается использовать запатентованный [1] метод перенаправления запросов доступа на копию запрашиваемого объекта, таким образом можно добиться сохранности исходного объекта.

Метод перенаправления запросов доступа на копию запрашиваемого объекта

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

Далее рассмотрим саму ситуацию. Пользователь хочет безопасно запустить потенциально опасную программу и выполнить какие-либо манипуляции внутри нее. Для этого ему необходимо запустить программу внутри песочницы, что он и делает.

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

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

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

Рис. 1. Схема перенаправления запросов доступа к объекту на его копию

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

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

Абстрактная модель системы

Построим абстрактную модель операционной системы OS, она будет содержать множества субъектов Subjects и объектов Objects доступа [3,4]. Для упрощения, рассмотрим только затрагиваемые нами элементы. Так множество субъектов доступа Subjects = {p}, где p — рассматриваемый процесс. Множество же объектов доступа Objects более разнородно и состоит из подмножеств:

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

SF — системные файлы;

UF — пользовательские файлы;

  • PF — файлы, созданные процессом.

Objects = OF PF, где OF = SF UF; SF = {sf1,...,sfK}, где sfi системный файл i ∈ 1..K; UF = {uf1,...,ufL}, где ufi пользовательский файл i ∈ 1..L; PF = {pf1,...,pfM}, где pfi файл, созданный процессом i ∈ 1..M.

Обозначим символом x A отношение, состоящее в том, что для любого объекта из A субъект x может читать этот объект:

x A: ∀a A, x может открыть на чтение a, где x Subjects, A Objects.

Обозначим символом x A отношение, состоящее в том, что для любого объекта из A субъект x может читать и изменять этот объект:

x A: ∀a A, x может открыть на чтение и запись a, где x Subjects, A Objects.

Из приведенных обозначений следует, что если x A, то x A, обратное неверно.

Запишем правила доступа субъекта p ко всем объектам для случая, когда пользователь просто запускает процесс в своей системе без какой-либо виртуализации: p OF; p SF UF; p PF.

Таким образом в обычной системе без виртуализации, субъект может открывать на чтение и изменение все объекты.

Далее рассмотрим различные сценарии поведения системы.

Сценарий 1: Субъект доступа запрашивает доступ на чтение к объекту of.

Субъект p без каких-либо препятствий откроет запрошенный объект.

Сценарий 2: Субъект доступа запрашивает доступ на изменение объекта of.

Субъект p без каких-либо препятствий откроет и изменит запрошенный объект.

Сценарий 3. Субъект доступа запрашивает доступ на удаление объекта of.

Субъект p без каких-либо препятствий удалит запрошенный объект.

Сценарий 4. Субъект доступа запрашивает доступ на чтение и изменение объекта pf.

Субъект p без каких-либо препятствий откроет и изменит запрошенный объект.

Сценарий 5. Субъект доступа запрашивает доступ на удаление объекта pf.

Субъект p без каких-либо препятствий удалит запрошенный объект.

Абстрактные модели виртуализации системы

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

Обозначим O O1 отношение, состоящее в том, что одно множество является копией другого, это значит что и все объекты, входящие в множества O1 будут копиями объектов из множества O.

Рассмотрим изменения в модели. Множество субъектов доступа остается таким же: Subjects = {p}, где p — рассматриваемый процесс. А вот множество объектов преобразуется следующим образом: Objectsfull =

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

Objectsfull = OF OF1 PF1.

Используя принятые нами выше обозначения, запишем правила доступа субъекта p ко всем объектам для случая, когда пользователь запускает процесс в среде полной виртуализации, то есть на виртуальной машине: p OF1; p SF1 UF1; p PF1.

Со множеством объектов исходной системы OF субъект p никак не взаимодействует, потому что он полностью изолирован внутри виртуальной машины.

Рассмотрим различные сценарии поведения системы.

Сценарий 1: Субъект доступа запрашивает доступ на чтение к объекту of.

Вследствие того, что субъект p не имеет никакой возможности взаимодействовать с объектами исходной системы, то рассмотрим его запрос на чтение к копии объекта — of1, находящейся внутри виртуальной машины. Внутри же виртуальной машины субъект имеет полный доступ ко всем объектам OF1, а значит беспрепятственно получит доступ на чтение к объекту of1.

Сценарий 2: Субъект доступа запрашивает доступ на изменение объекта of.

Учитывая пояснение в сценарии 1, субъект p получит доступ на изменение к объекту of1.

Сценарий 3. Субъект доступа запрашивает доступ на удаление объекта of.

Учитывая пояснение в сценарии 1, субъект p беспрепятственно удалит объект of1.

Сценарий 4. Субъект доступа запрашивает доступ на чтение и изменение объекта pf.

Учитывая, что в данной модели нету объекта pf, то вместо него рассмотрим его аналог в этой модели pf1, к которому субъект p имеет полный доступ, а значит без каких-либо проблем получит доступ на чтение и изменение.

Сценарий 5. Субъект доступа запрашивает доступ на удаление объекта pf.

Учитывая пояснение в сценарии 4, субъект p беспрепятственно удалит объект pf1.

Частичная виртуализация системы (песочница). Абстрактная модель для частичной виртуализации будет отличаться от обеих описанных моделей. Множество субъектов доступа сохраняет свой прежний вид: Subjects = {p}. А вот множество объектов доступа должно включать в себя создаваемые в процессе работы объекты, которые объединим в множество CF; CF = {cf1,...,cfN}, где cfi файл, скопированный в процессе функционирования программы i ∈ 1..N. Тогда получим Objectspart = OF CF PF.

Теперь запишем правила доступа субъекта p ко всем объектам для случая, когда пользователь запускает процесс в предложенной среде частичной виртуализации:

p OF; p SF UF; p CF; p PF.

Таким образом, в данной среде субъект может открывать на чтение все объекты, но изменять может только созданные самим субъектом, и копии, которые создаются для перенаправления запросов на изменение к объектам OF и образуют собой множество CF.

Далее рассмотрим различные сценарии поведения системы.

Сценарий 1: Субъект доступа запрашивает доступ на чтение к объекту of.

Субъект p без каких-либо проблем откроет запрошенный объект.

Сценарий 2: Субъект доступа запрашивает доступ на изменение объекта of.

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

Сценарий 3. Субъект доступа запрашивает доступ на удаление объекта of.

Как и в случае, описанном в сценарии 2, субъект p не имеет запрашиваемого права доступа к объекту of, но тут снова вступает в силу специфика виртуализации, и операция завершится успехом, но удален будет не объект of, а его копия of1, если она была создана перед этим, если же нет, то тогда объект of сразу попадает в список удаленных объектов и субъект будет считать его удаленным, но при этом сам объект в системе останется нетронутым.

Сценарий 4. Субъект доступа запрашивает доступ на чтение и изменение объекта pf.

Субъект p без каких-либо проблем откроет и изменит запрошенный объект.

Сценарий 5. Субъект доступа запрашивает доступ на удаление объекта pf.

Субъект p без каких-либо проблем удалит запрошенный объект.

Выводы

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

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

Литература:

  1. Щеглов А. Ю., Щеглов К. А. Система переформирования объекта в запросе доступа. Патент на изобретение № 2538918.
  2. Щеглов К. А., Щеглов А. Ю. Контроль доступа к статичным файловым объектам //Вопросы защиты информации. — 2012. — №. 2. — С. 12–20.
  3. Ковешников М. Г., Щеглов К. А., Щеглов А. Ю. Абстрактные модели виртуализации системы // Научно-технический вестник информационных технологий, механики и оптики. — 2015. — № 3.
  4. Ковешников М. Г., Щеглов К. А., Щеглов А. Ю. Метод и абстрактная модель контроля и разграничения прав доступа перенаправлением (переадресацией) запросов доступа // Научно-технический вестник информационных технологий, механики и оптики -2015. — Т. 15. — № 6(100). — С. 1122–11293.
Основные термины (генерируются автоматически): субъект, виртуальная машина, сценарий, изменение, копия, множество, множество субъектов, операционная система, процесс, чтение.


Похожие статьи

Инструменты и этапы построения архитектуры расширяемого чат-бота на примере бота для изучения английского языка

Гибкие нейро-нечеткие системы вывода и программная реализация для решения задач аппроксимации

Кластеризация эталонов радужки как метод оптимизации поиска в больших базах

Реализация алгоритмов дискретного преобразования Фурье на языке программирования Python

Динамическая адаптация эвристического алгоритма для задачи транспортной маршрутизации при использовании кросс-докинга

Использование двумерных массивов в VBA на уроках информатики

Модифицированный аппарат вложенных гибридных сетей Петри

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

Система диагностики заболеваний на основе нечеткой логики в MATLAB

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

Похожие статьи

Инструменты и этапы построения архитектуры расширяемого чат-бота на примере бота для изучения английского языка

Гибкие нейро-нечеткие системы вывода и программная реализация для решения задач аппроксимации

Кластеризация эталонов радужки как метод оптимизации поиска в больших базах

Реализация алгоритмов дискретного преобразования Фурье на языке программирования Python

Динамическая адаптация эвристического алгоритма для задачи транспортной маршрутизации при использовании кросс-докинга

Использование двумерных массивов в VBA на уроках информатики

Модифицированный аппарат вложенных гибридных сетей Петри

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

Система диагностики заболеваний на основе нечеткой логики в MATLAB

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

Задать вопрос