Специалисты по информационной безопасности, проанализировав компьютерную систему, пришли к следующим выводам:
1. В системе хранятся файлыF1,F2,F3;
2. Система имеет в своем составе набор программ S0,S0,…,S6;
3. Удалось определить права, которыми обладают.Права доступа представлены в виде таблицы доступов.
Выясните, возможно ли чтение данных программойS0из файлаF1? Ответ обосновать.
|
F1 |
F2 |
F3 |
S0 |
S1 |
S2 |
S3 |
S4 |
S5 |
S6 |
S0 |
|
|
|
|
|
|
|
|
|
|
S1 |
|
|
|
|
|
g |
|
|
t |
|
S2 |
|
|
|
|
|
|
t |
|
|
|
S3 |
|
|
|
|
|
|
|
|
|
t |
S4 |
|
|
|
t |
|
|
|
|
|
|
S5 |
|
|
|
|
|
|
|
t |
|
|
S6 |
r |
|
|
|
|
|
|
|
|
|
Комментарий
Каждая строка таблицы доступов описывает права одной программы в системе. Каждый элемент строки описывает какими правами обладает программа по отношения к элементу системы, которым помечен соответствующий столбец. Например, в приведенной таблице программа S6имеет право на чтение файла F1. В общем случае,программа может иметь несколько прав к одному и тому же элементу системы.
Название правила |
Состояние элементов таблицы доступов до применения правила |
Состояние элементов таблицы доступов после применение правила | ||||||||||||||||||||||||
Take |
Si – программа; O– файл или программа; β – любое право доступа |
| ||||||||||||||||||||||||
Grant |
Si – программа; O– файл или программа; β – любое право доступа |
| ||||||||||||||||||||||||
Create |
S – программа;
|
S – программа; O– файл или программа; |
Право r (read) показывает, что программа может обратиться и считать данные, относящиеся к элементу. Права, обозначенные как t (take) и g (grant), являются соответственно правом брать право и давать право. Обладая этими правами, программы могут изменять набор прав доступа согласно правилам, приведенным в таблице.
Представим приведенную в условие таблицу в виде направленного графа. Обозначим все файлы и программы как вершины. Две вершины S1 и O2 соединены ребром в этом графе и ребро помечено правом p, если в ячейке таблицы с номером S1O2 находится право p.Таким образом, имеем граф:
Аналогично, правила преобразования таблицы доступов могут быть заменены на правила преобразования графа (см. табл.).
Название правила |
Состояние графа доступов до применения правила |
Состояние графа доступов после применение правила |
take | ||
grant | ||
create |
Применим правила преобразования в следующем порядке:
1. программа S5 преобразовывает граф по правилу take;
2. программа S1 преобразовывает граф по правилу take;
3. программа S3 преобразовывает граф по правилу take;
4. программа S2 преобразовывает граф по правилу take;
5. программа S1 преобразовывает граф по правилу grant.
Тогда полученный граф в упрощенном виде (без учета вершин и ребер, не участвующих в дальнейших преобразованиях) может быть представлен следующим образом:
Для проведения дальнейших преобразований с целью передачи прав доступа необходимо создать еще одну программу по правилу create и, используя новый субъект, завершить преобразования.
6. программа S0 создает программуTпо правилу create;
7. программа S2 преобразовывает граф по правилу take;
8. программа S2 преобразовывает граф по правилу grant;
9. программа S0 преобразовывает граф по правилу take.
В итоге, из полученного графа можно сделать вывод, что чтение данных из файла F программой S0 возможно.