Руководство FreeBSD

         

Тестирование меток Biba и MLS


# setpmac partition/15,mls/equal,biba/high\(high-high\) top

% ps Zax

LABEL PID TT STAT TIME COMMAND biba/high(high-high),mls/equal(low-high), partition/15 1251 #C: S+ 0:00.02 top biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su (bash) biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps Zax

Политика Biba позволяет чтение объектов с более высокими метками.

# setpmac partition/15,mls/equal,biba/low top

% ps Zax

LABEL PID TT STAT TIME COMMAND biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash) biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps Zax

Политика Biba не позволяет чтение объектов с более низкими метками; тем не менее, MLS разрешает это.

% ifconfig bge0 | grep maclabel

maclabel biba/low(low-low),mls/low(low-low) % ping -c 1 192.0.34.166

PING 192.0.34.166 (192.0.34.166): 56 data bytes ping: sendto: Permission denied

Пользователи не могут выполнить ping на example.com, или на любой домен по этой причине.

Для устранения этой ошибки, запустите следующую команду:



# sysctl security.mac.biba.trust_all_interfaces=1

Она устанавливает метку интерфейса по умолчанию в незащищенный режим, так что политика Biba по умолчанию не будет применена.

# ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\)

% ping -c 1 192.0.34.166

PING 192.0.34.166 (192.0.34.166): 56 data bytes 64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms --- 192.0.34.166 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 ms

Установив более корректную метку, мы можем использовать ping.

Теперь создадим файлы для процедуры тестирования чтения и записи:

# touch test1 test2 test3 test4 test5

# getfmac test1

test1: biba/equal,mls/equal # setfmac biba/low test1 test2; setfmac biba/high test4 test5; \ setfmac mls/low test1 test3; setfmac mls/high test2 test4

# setfmac mls/equal,biba/equal test3 && getfmac test?


test1: biba/low,mls/low test2: biba/low,mls/high test3: biba/equal,mls/equal test4: biba/high,mls/high test5: biba/high,mls/equal # chown testuser:testuser test?

Все эти файлы должны принадлежать пользователю testuser. Тесты на чтение:

% ls

test1 test2 test3 test4 test5 % ls test?

ls: test1: Permission denied ls: test2: Permission denied ls: test4: Permission denied test3 test5

Доступ на чтение не должен быть разрешен для пар: (biba/low,mls/low), (biba/low,mls/high)

и (biba/high,mls/high). Теперь несколько тестов на запись:

% for i in `echo test*`; do echo 1 > $i; done

-su: test1: Permission denied -su: test4: Permission denied -su: test5: Permission denied

Подобно тестам на чтение, доступ на запись должен быть запрещен для пар: (biba/low,mls/high) и (biba/equal,mls/equal).

% cat test?

cat: test1: Permission denied cat: test2: Permission denied 1 cat: test4: Permission denied

А теперь от root:

# cat test2

1


Содержание раздела