Пояснительная записка (1208216), страница 4
Текст из файла (страница 4)
Для более наглядного представления решаемой задачи и уменьшения количества связей между отдельными частями программы предлагается избрать объектно-ориентированный подход к разработке программ. В этом случае выделенные программные модули могут быть представлены в виде объектов, а отдельные задачи, решаемые этими объектами — в виде методов объектов. В качестве языка программирования для разработки программного продукта был выбран язык C#, который является удобным объектно-ориентированным языком.
2.3.1 Диаграммы вариантов использования
Для проектирования и разработки информационной системы необходимо ее начальное концептуальное представление, в качестве которого выступает диаграмма вариантов использования. Концептуальная модель складывается на основе представлений о предметной области относительно каждого типа пользователя. Визуальное моделирование можно представить, как некоторый процесс поуровнего спуска от наиболее общей и абстрактной концептуальной модели к логической, а затем и к физической модели соответствующей информационной системы. Для этого вначале строится модель вариантов использования, которая описывает функциональное назначение системы. Разработка диаграммы преследует следующие цели:
-
определить общие границы и контекст моделируемой предметной области;
-
сформулировать общие требования к функциональному поведению проектируемой системы;
-
разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей.
Суть данной диаграммы состоит в следующем: проектируемая система представляется в виде множества актеров, взаимодействующих с системой с помощью так называемых вариантов использования. При этом актером называется любой объект, субъект или система, взаимодействующая с моделируемой системой извне. Это может быть человек, техническое устройство или другая система, которая может служить источником воздействия на моделируемую систему. В свою очередь вариант использования – это спецификация сервисов (функций), которые система предоставляет актеру. Другими словами, каждый вариант использования определяет некоторый набор действий, совершаемых системой при взаимодействии с актером. При этом в модели никак не отражается то, каким образом будет реализован этот набор действий.
Актеры:
-
администратор. Администратор безопасности предприятия.
Варианты использования:
-
анализ соответствия. Проверка соответствия прав доступа пользователей в ИС с правами доступа, регламентирующимися политикой информационной безопасности;
-
просмотр списка пользователей. Просмотр всех учетных записей, зарегистрированных в системе;
-
принадлежность пользователя к группе. Получение информации о группах пользователя;
-
информация о привилегиях пользователя. Просмотр прав учетной записи (Чтение/Запись/Изменение/Выполнение);
-
просмотр файловой системы. Представление иерархии файловой системе в удобном для анализа виде;
-
создание матрицы доступа. Создание портативного файла, в котором будут храниться права пользователя. Данный файл служит в качестве переносного модуля, который хранит в себе информацию о правах, назначенных администратором.
2.3.2 Контекстная диаграмма
Эта диаграмма, представляет собой самое общее описание системы и ее взаимодействие с внешней средой. На рисунке 3.1 показана контекстная диаграмма.
Данная диаграмма включает в себя следующие варианты использования:
-
«анализ соответствия»– проверка прав пользователей системы на соответствие их матрице доступа, утвержденной политикой информационной безопасности предприятия;
-
«просмотр списка пользователей» – просмотр прав пользователей, по отношению к объекту системы;
-
«принадлежность пользователя к группе»– отображение всех групп, в которых состоит выбранный пользователь;
-
«информация о привилегиях пользователя»–просмотр привилегий конкретного пользователя для конкретного ресурса информационной системы;
-
«просмотр файловой системы» – отображение древовидной архитектуры файловой системы, с возможностью выбора файла для его тщательного анализа;
-
«создание матрицы доступа» – создание портативного файла, содержащего набор правил разграничения прав доступа пользователей, применяемых в данной информационной системе.
А также одного актера – «Администратор».
2.3.3 Диаграммы декомпозиции
Диаграммы декомпозиции, как правило, представляют собой «ромашку», в центре которой декомпозируемый вариант использования, а вокруг – входящие в него обязательные или расширяющие составные части. На рисунке 2.3.3.1. показана диаграмма декомпозиции «Создание матрицы доступа». На рисунке 2.3.3.2 отображена диаграмма декомпозиции «Просмотр файловой системы».
Рисунок 2.3.3.1 – Диаграмма декомпозиции «Создание матрицы доступа»
Рисунок 2.3.2.1.– Контекстная диаграмма вариантов использования
Рисунок2.3.1.2 – Диаграмма декомпозиции «Просмотр файловой системы»
2.3.2 Диаграмма автоматов
Диаграммы автоматов – один из способов детализации диаграмм вариантов использования. Они используются для описания поведения, реализуемого в рамках варианта использования, либо поведения экземпляра сущности. В данном случае моделирование поведения системы представляет собой описание состояний экземпляра, а также переходы между ними. Таким образом, диаграмма автоматов – связанный граф, в котором вершины – состояния, а дуги – переходы между ними.
На контекстной диаграмме состояний показана организация данного пользовательского интерфейса.
На диаграмме приняты следующие условные обозначения:
-
RunApplication–начало работы системы;
-
SelectMenuItem(*)–открытие диалогового окна, находящегося в аргументе(*);
-
CloseWindow(*)–закрытие диалогового окна, находящегося в аргументе(*);
На рисунке 2.3.2.1 отображена диаграмма автоматов будущего продукта.
Она включает в себя следующие объекты:
-
главное окно;
-
создание матрицы доступа;
-
выбор пользователя;
-
выбор ресурса;
-
сохранение матрицы;
-
анализ доступа;
-
выбор матрицы;
-
сохранение отчета;
-
проверка HASH;
-
информация о файле.
А также 2 состояния:
-
StartState;
-
End State.
2.4 Определение интерфейса программы
Чтобы придать интерфейсу современный вид была использована оболочка «Metro», разработанная компанией Microsoft. Данная оболочка характеризуется минимализмом, краткостью и понятностью информации, представленной на форме.
Рисунок2.3.2.1 – Диаграмма автоматов
Стиль Metro основан на принципах дизайна швейцарского стиля. Основными принципами Metro являются акцент на хорошей типографике и крупный текст, который сразу бросается в глаза. Выглядит Metro простым, чистым, современным, а также обновленный по сравнению с основанными на значках интерфейсами Windows.
Microsoft разработала Metro специально для укрепления группы общих задач для ускорения использования. Это достигается за счёт исключения лишней графики и вместо этого опоры на фактическое содержание, для функционирования в качестве основного пользовательского интерфейса.
Большую роль играет анимация. Microsoft рекомендует плавные переходы и взаимодействие с пользователем на основе реальных движений (таких, как нажатие или перемещение). Это создаёт у пользователя впечатление живого и отзывчивого интерфейса с добавленным ощущением глубины.
2.4 Основное окно программы
Метод Main предоставляет консольный пользовательский интерфейс, обеспечивающий возможность доступа ко всем режимам работы программы. При запуске программы метод Main предлагает пользователю ввести директорию, для которой будет производиться анализ доступа посредством объекта TreeNode. Пользователь может не вводить директорию, тогда программа будет анализировать доступ ко всем локальным файлам компьютера.
Метод Main предоставляет пользователю меню, в котором имеется возможность выбрать следующие действия:
-
просмотр иерархии файловой системы;
-
просмотр списка групп;
-
просмотр списка файлов;
-
проверка доступа;
-
вызов справки.
Первые три действия выполняются посредством вызова специальных методов объекта класса SystemInformator. Проверка прав доступа производится при помощи вызова соответствующих элементов из объектов List. Перед выводом на экран маска преобразуется из битовой строки в список доступных прав.Вывод прав доступа осуществляется в режиме «Права конкретного пользователя на конкретный файл».
Сразу после запуска приложения перед пользователем предстает главное окно программы. Оно является дальнейшим проводником пользователя по другим модулям программы. Главное окно должно быть интуитивно понятным пользователю, иметь простой и понятный интерфейс. Для достижения этой цели необходимо определить компоненты, располагающиеся на главной форме:
Панель навигации по программе (Управление переходами между модулями программы, запуск процесса анализа / создания матрицы доступа)
Отображение иерархии файловой системы для быстрого просмотра прав учетной записи для выбранного файла
Для отображения иерархии файловой системы был использован элемент «TreeNode», который позволяет строить дерево на основе файловой системы и отображать его (рисунок 2.5.1).
Рисунок 2.5.1–Объект «TreeNode»
Пользователь, выбрав папку, получает список файлов, находящихся в этой папке, которые в свою очередь помещаются в объект DataGridView (Рисунок 2.5.2).
Рисунок 2.5.2 – Объект «DataGridView»
2.5 Разработка структуры для анализа доступа
Важной задачей в проектировании модели программного продукта является определение модели хранения данных. После получения списка зарегистрированных в системе учетных записей и их прав на объект доступа, необходимо создать для них временное хранилище в которое они будут помещены. Это необходимо для того, чтобы избежать потери производительности ввиду частого обращения к внешней среде программы (WMI). Хранилище должно быть динамическим, это обусловлено тем, что заранее нам не известно какое количество учетный записей зарегистрировано в системе. Хорошим выбором послужит класс «List». Класс «List» представляет собой список простейших однотипных объектов, который имеет достаточный функционал для обеспечения необходимого результата.
Среди его методов можно выделить следующие:
-
добавление нового элемента в список;
-
добавление с список коллекции или массива;
-
бинарный поиск элемента в списке. Если элемент найден, то метод возвращает индекс этого элемента в коллекции. При этом список должен быть отсортирован;
-
возвращает индекс первого вхождения элемента в списке
-
вставляет элемент item в списке на позицию index;
-
удаляет элемент item из списка, и если удаление прошло успешно, то возвращает true;
-
удаление элемента по указанному индексу index
-
сортировка списка.
Для получения списка привилегий субъектов используется класс «AccessControl», в частности, его метод «AccessControl.GetAccessRule». Результатом выполнения данного метода будет возврат информации о всех пользователях и их правах, для выбранного файла. Именно после выполнения этого метода происходит добавление информации в двух элемента типа «List». Первый элемент –это имена пользователей, второй – их права. В конечном итоге мы получаем два экземпляра класса List, хранящих связанные между собой пользовательские идентификаторы и их права.
2.6 Получение списка пользователей и групп
Для получения списка пользователей системы с перечислением всех групп, в которые входят пользователи, применяется метод getSubjects. Данный метод не имеет параметров. В начале метод получает список всех групп и список всех пользователей в системе с помощью WMI-объектов «Win32_Group» и «Win32_UserAccount» соответственно, информация о пользователях и группах сохраняется в элементах List Groups и Users. Затем метод перебирает всех пользователей и все группы, чтобы выяснить членство пользователей в группах. Для проверки членства пользователя в группе используется метод checkMembership, принимающий на вход имя домена, имя группы и имя пользователя. Метод checkMembership возвращает значение «истина» либо «ложь», в зависимости от того, является указанный пользователь членом указанной группы или нет.















