Тестирование меток 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