logo
ИнфСборник по ЗИ и ИБ

Вопрос 3.

ОБЪЕКТНО-КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ СЕТЕЙ И РАЗРУШАЮЩИХ ПРОГРАММНЫХ СРЕДСТВ.

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

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

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

Базовые классы объектно-концептуальной модели ВС.

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

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

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

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

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

Ресурсы

Данные

Алгоритмы

Программы

РПС

Прикладные

Системные

Утилиты

Системы защиты

Троянские кони

Вирусы

Программы-взломщики

Отношения наследования

Отношения включения

Отношения нелегитимного доступа

Отношения исследования

Отношения заражения

Отношения «взлома»

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

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

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

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