Для этого необходимо:
· выбрать субъект и объект доступа;
· попытаться выполнить те операции доступа, которые указаны в соответствующей ячейке матрицы. Убедиться в возможности их выполнения;
· попытаться выполнить операции, не указанные в ячейке матрицы доступа. Убедиться в запрете таких видов доступа.
Примечание:проверку производить для операций, определенных в файле описания модели. Операции, которые не описаны в файле - разрешены, т.е. здесь действует принцип: «все, что не запрещено - разрешено».
7. Выйти из программы security.exe и вернуться к редактированию файла описания модели.
8. Реализовать в файле описания троянского коня, который обходит защиту данного типа моделей.
Примечание: на данном этапе возможно использование дополнительных файлов prefile и postfile.
9. Повторить выполнение пунктов 3 - 5.
10. Убедиться в возможности обхода защиты, предоставляемой дискреционной моделью Харрисона-Руззо-Ульмана.
11. Выйти из программы security.exe.
Содержание отчета
В отчете необходимо привести:
1. Исходные данные:
· матрицу доступа;
· содержимое файла описания модели;
· содержимое файлов prefile и postfile, если таковые используются.
2. Результаты, подтверждающие защищенность информации при использовании дискреционной модели доступа.
3. Выводы, поясняющие действие механизма троянского коня и нарушения защиты.
4. Выводы по лабораторной работе.
Пример отчета
1. Исходные данные:
• матрица доступа
Рассмотрим систему, состоящую из двух субъектов и двух объектов. Будем рассматривать лишь две операции доступа: чтение и запись. При этом предположим, что в системе реализовано дискреционное управление доступом, заданное матрицей вида:
01 |
02 |
|
ыS1 |
R, W |
W |
sS2 |
R, W |
__ |
R - чтение объекта (read object);
W - запись в объект (write object).
• файл инициализации
Запишем матрицу доступа при помощи двоичных чисел. Например, ячейка M[S1, O1] будет выглядеть как (R, W) = (1 1 )2 = (3)10. Для проверки возможности доступа к объекту надо будет выделять интересующие нас биты посредством логической операции «И».
// исходный текст файла описания модели h_r_u.ini
S(1, 3,1, 0,0,0,0,0,0);
S(2, 3, 0, 0,0,0,0,0,0);
О(1, 3,3, 0,0,0,0,0,0);
О(2, 1,0, 0,0,0,0,0,0);
RULES
// используем побитовую операцию «И», чтобы выделить
// установленный (не установленный) бит чтения
READO IF( getSattr() && AS(THISO)&2 )
// записи
WRITEOIF(AS(THISO)&1)
ENDRULES
• prefile
ULONG getSattr(void);
• postfile
// действие троянской программы эквивалентно получению
// неавторизованным субъектом доступа к объекту, например, по чтению
ULONG getSattr(void)
{
S(2, 3,2, 0,0,0,0,0,0);
return 1;
}
2. В ходе работы была проведена проверка на доступ к объектам. Изначально файл описания модели h_r_u.ini не содержал вызова функции getSattr(). Файлы prefiie и postfile были не заполнены. Дискреционная модель обеспечивала надежную гранулированную защиту по чтению и записи (другие операции разрешены, т.к. в файле инициализации не оговорено противное.
3. Затем был применен механизм троянского коня, который эквивалентен получению неавторизованным субъектом доступа на чтение. Для этого были изменены файлы h_r_u.ini, prefile и postfile. Их новый вид приведен в п.1 данного отчета. После запуска программы security.exe и до выполнения операции чтения над пассивной сущностью (т.е. пока не произошла смена атрибутов) были определены атрибуты второго субъекта. Они соответствовали значениям, указанным в файле описания модели. После посылки сообщения «read object» атрибуты второго субъекта изменились - он получил доступ по чтению ко второму объекту. Запись нового атрибута выполнила троянская функция названием getSattr().
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.