Тестирование MAC seeotheruids



% ps Zax

biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.03 -su (bash)

biba/15(15-15),mls/15(15-15),partition/15 1101 #C: R+ 0:00.01 ps Zax

Просмотр процессов всех других пользователей должен быть запрещен.

Тестирование MAC partition

Отключите политику MAC seeotheruids для остальных тестов:

# sysctl security.mac.seeotheruids.enabled=0

% ps Zax

LABEL                                              PID TT STAT TIME COMMAND

biba/equal(low-high),mls/equal(low-high),partition/15 1122 #C: S+ 0:00.02 top

biba/15(15-15),mls/15(15-15),partition/15         1096 #C: S 0:00.05 -su (bash)

biba/15(15-15),mls/15(15-15),partition/15         1123 #C: R+ 0:00.01 ps Zax

Все пользователи должны видеть каждый процесс в своем разделе (partition).

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

Другой пример: Использование MAC для защиты веб сервера

Будет создано отдельное хранилище для веб данных, к которому пользователи должны иметь доступ. Это позволит biba/high управлять доступом к веб данным.

Начните с создания каталога для хранения веб данных:

# mkdir /usr/home/cvs

Теперь инициализируйте его командой cvs:

# cvs -d /usr/home/cvs init

Для начала необходимо включить политику biba, добавив mac_biba_enable="YES" в /boot/loader.conf. Предполагается, что ядро скомпилировано с поддержкой MAC.

Далее установите метку biba/high для всей системы по умолчанию.

В файл login.conf, класс default, необходимо внести следующие изменения:

:ignoretime@:\

   :umask=022:\

   :label=biba/high:

Каждого пользователя необходимо поместить в класс по умолчанию; такая команда:

# for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \

   /etc/passwd`; do pw usermod $x -L default; done;

быстро решит эту задачу.

Теперь создадим другой класс, web, копию класса default с меткой, установленной в biba/low.

Создайте пользователя для работы с основными веб данными, хранящимися в репозитории cvs. Этого пользователя необходимо поместить в новый класс, web.

Поскольку метка по умолчанию biba/high, на репозитории она будет той же. Веб данные должны иметь ту же метку, чтобы у пользователей был доступ к ним на чтение/запись. Веб сервер должен иметь доступ к тем же данным, к которым есть доступ у пользователей с меткой biba/high, для этого необходимо понизить метку данных.

Все, что потребуется, это следующий sh(1) скрипт, который может быть запущен из cron(8):

PATH=/bin:/usr/bin:/usr/local/bin; export PATH;

CVSROOT=/home/repo; export CVSROOT;

cd /home/web;

cvs -qR checkout -P htdocs;

exit;

Замечание: Во многих случаях в веб файлы cvs необходимо поместить теги Id.

Этот скрипт теперь может быть помещен в домашний каталог каталог пользователя web, необходимо также добавить следующую запись crontab(1):

# Выполнять checkout web данных под меткой biba/low каждые 12 часов:

0      */12  *  *  *  web /home/web/checkout.sh

Эта запись будет извлекать HTML страницы каждые двенадцать часов.

Метод запуска веб сервера по умолчанию также должен быть изменен для запуска процесса с меткой biba/low. Это может быть сделано путем следующего изменения в скрипте /usr/local/etc/rc.d/apache.sh:

command="setpmac biba/low /usr/local/sbin/httpd"

Настройки Apache должны быть изменены для работы с политикой biba/low. В этом случае необходимо указать для хранения лог файлов каталог с меткой biba/low, иначе будут возвращены ошибки access denied.

Замечание: В этом примере необходимо указать в директиве docroot каталог /home/web/htdocs; или, Apache не сможет найти каталог с документами.

Необходимо также изменить другие параметры конфигурации, включая PID файл, Scoreboardfile, DocumentRoot, или любые другие настройки для каталогов, где необходим доступ на запись. При использовании biba будет запрещен доступ на запись во все каталоги сервера, на которых нет метки biba/low.


Дата добавления: 2018-10-26; просмотров: 295; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!