Объектно-концептуальная модель ВС и РПС

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

Наиболее перспективным с точки зрения практики анализа безопасности представляется объектно-ориентированный подход, рассматривающий РПС как сущности, обладающие определенной структурой и свойствами, вступающие во взаимодействие с другими элементами ВС, такими как программы и данные. Будем рассматривать множество элементов, существующих в ВС, как множество объектов принадлежащих тому или иному классу(в данном случае термин "объект" обозначает основное понятие ООА и не имеет отношения к используемому для описания политики безопасности термину "объект", который противопоставляется термину "субъект" при описании взаимодействия). В ООА класс определяется как множество объектов, связанных общностью структуры и поведения. Каждый класс характеризуется наличием некоторого набора признаков или атрибутов, образующего его структуру, множеством операций, определенных над объектами класса, и множеством отношений, связывающих его с другими классами. Смысл этих отношений зависит от предметной области, однако существует набор универсальным отношений, главными среди которых являются отношения наследования и включения. Наследование - это такое отношение между классами, когда один класс (производный) повторяет структуру и поведение другого (базового). В этом случае говорят, что производный класс наследует от базового его структуру и поведение. Отношение включения описывает ситуацию, когда все члены одного класса являются одновременно членами другого.

2.1.1.1.Базовые классы модели ВС

Введем основные понятия, которые образуют базовые классы для объектного представления предметной области. Это данные, алгоритмы и ресурсы.

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

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

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

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

Основываясь на этих базовых классах, можно построить классы, представляющие более сложные объекты (операционные системы СУБД, оконные среды и т. д.), однако для данного исследования представляется необходимым рассмотреть только класс программ.

Базовыми для класса программ являются классы алгоритмов и данных т.к. программа с нашей точки зрения представляет собой совокупность алгоритма, который она реализует, и формы представления этого алгорит­ма. Соответственно, класс программ наследует свойства данных(программы хранятся в файле на диске, или в некоторой области оперативной памяти и могут рассматриваться и обрабатываться как данные) и алгоритмов (в процессе своего выполнения программа реализует последовательность действий, определяемую ее алгоритмом) (см. рис. 2.1). Таким образом класс программ связан с классами алгоритмов и данных отношением наследования. Следовательно, к программам применимы те же операции, что к данным(чтение и запись) и к алгоритмам (модификация). Модификация алгоритма возможна в том случае, если внесение изменений в набор данных, представляющих программу (файл, область памяти), приводит к изменению ее алгоритма. Кроме того, к программе можно осуществлять специфический тип доступа - ее выполнение. Программы в процессе выполнения используют ресурсы ВС и осуществляют доступ к данным, хранящимся в ВС. Однако программы, присутствующие в ВС, не являются однотипными. С точки зрения анализа безопасности можно выделить по крайней мере два класса, связанных с классом программ отношением включения. Это подклассы системных программ и прикладных программ. Класс РПС, связанный с классом программ отношением наследования будет подробно рассмотрен в следующем разделе.

Прикладные программы. Это любые пользовательские программы, выполняющие ту или иную задачу.

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

2.1.1.2 Объектно-концептуальная модель РПС.

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

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

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

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

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

1. Нелегитимное использование ресурсов. РПС, в отличие от полезных программ, осуществляют нелегитимное потребление ресурсов - захват оперативной памяти, дискового пространства, любое РПС, по крайней мере, расходует процессорное время.

2. Нелегитимный доступ к данным. РПС осуществляют нелегитимный доступ(чтение или запись) к данным. Это одно из основных свойств РПС, которому они обязаны своим названием.

3. Нелегитимный запуск программ. Это свойство присуще в основном PHC, функционирующим в развитых сетевых ОС(так называемые "черви"). В этом случае РПС существуют и распространяются не как программы на диске, а как процессы в ОС.

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

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

Наиболее часто выделяют три основных подкласса, связанных с классом РПС отношением включения, - вирусы, троянские кони или "закладки" и программы-взломщики систем защиты и средств разграничения доступа. Все эти подклассы РПС характеризуются специфическими отношениями с объектами ВС (см. рис. 2.1). Заметим, что многообразие видов и типов РПС не исчерпывается этими тремя классами, просто они являются наиболее распространенными.

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

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

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

2.1.2. Модель взаимодействия объектов ВС с точки зрения безопасности

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

Рассмотрим смысл этих понятий для всех типов отношений. Несанкционированный доступ означает, что программа пытается совершить действия, на которые она не имеет полномочий. Эти действия не допускаются политикой безопасности ВС и должны пресекаться системой разграничения доступа ВС. Нелегитимный доступ влечет за собой ущерб безопасности и/или целостности ВС. Как уже говорилось нелегитимныи доступ является обобщением несанкционированного. Взаимоотношения между несанкционированным доступом и доступом нелегитимным, но санкционированным показаны в таблице 2.2.

Таблица 2.2

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

2.1.2.1. Использование понятия легитимности при построении модели безопасности ВС

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

Будем рассматривать ВС как совокупность двух множеств - множества объектов О и множества субъектов S. Объекты представляют собой пассивные компоненты ВС и описываются рассмотренной объектно-концептуальной моделью. Субъекты являются активными компонентами и устанавливают различные отношения с объектами. Множество субъектов S состоит из двух подмножеств пользователей(Su) и процессов(). Процессы представляют собой выполняющиеся программы, действующие от имени пользователей, или от своего собственного. Процесс представляет собой реализацию последовательности отношений Ri, между субъектами и объектами, принадлежащих полному множеству отношений R=SxO. Тип отношений зависит от типа объекта (чтение, запись, использование, запуск и т.д.). Как уже говорилось отношения делятся на легитимные и нелегитимные.

Для оценки состояния ВС предлагается использовать две характеристики - безопасность и целостность. Исходя из определения понятия легитимности очевидно, что безопасность и целостность системы определяются легитимностью отношений, установленных между составляющими ее субъектами и объектами. Очевидно, что такая проверка должна производится перед установлением отношений и предотвращать попытки установить нелегитимные отношения. В том случае, когда субъектом является пользователь, отношения пользователь - объект контролируются политикой безопасности, принятой в ВС. Если субъектом является процесс, то проверка легитимности отношений процесс-объект составляет задачу анализа безопасности программ. На рис. 2.2 показана схема контроля легитимности отношений в ВС. Это позволяет сформулировать следующий критерий безопасности систем, являющийся развитием основной теоремы безопасности: система состоящая из множества объектов О и субъектов S является безопасной и целостной на шаге n, если все существовавшие в ней до этого шага отношения между субъектами и объектами были легитимны, т.е.

Ri О L для всех i < n.

Обозначим конкретную программу - p. Обозначим через Р множество всех возможных для данной ВС программ, или пространство программ, очевидно что рОR. Обозначим через v множество всех РПС, VМ R. Отметим, что любая программа, обладающая свойствами РПС, должна быть отнесена к РПС - например, любая прикладная программа, зараженная вирусом или содержащая в себе троянского коня, принадлежит множеству РПС.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: