Files
cyber-security/lab3
2026-03-16 14:43:38 +03:00
..
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00
2026-03-16 14:43:38 +03:00

Lab 3 — DAC + MAC

Система доступа к конфиденциальным данным с дискреционным (DAC) и мандатным (MAC) управлением доступом. Основана на Lab 2.

Структура каталогов

$PRACTICE3_DIR/          # по умолчанию /usr/local/practice3
├── etc/
│   ├── passwd           # логин:sha256:id:права:ФИО
│   ├── access_mode      # BOTH | DAC_ONLY | MAC_ONLY
│   ├── acl              # матрица доступа (DAC)
│   ├── subject_labels   # метки субъектов (MAC)
│   └── object_labels    # метки объектов (MAC)
├── confdata/            # конфиденциальные файлы
├── bin/                 # usermgr, confaccess, bruteforce
└── log/                 # usermgr.log, access.log

Режимы проверки доступа

Режим DAC MAC
BOTH (по умолчанию) да да
DAC_ONLY да нет
MAC_ONLY нет да

Режим задаётся через usermgr set-mode (только root).

Установка

chmod +x setup.sh

# для пути по умолчанию нужен root:
sudo ./setup.sh

# для тестирования без root:
PRACTICE3_DIR=/tmp/practice3 ./setup.sh

Использование

usermgr — управление пользователями

usermgr add alice
usermgr list
usermgr edit alice --full-name "Иванов Иван" --permissions rw
usermgr edit alice --label 1          # метка субъекта (root only)
usermgr set-label report.txt 2       # метка объекта (root only)
usermgr set-mode DAC_ONLY            # режим проверки (root only)
usermgr show-mode                    # текущий режим (root only)
usermgr passwd alice
usermgr delete alice

confaccess — доступ к данным

confaccess
PRACTICE3_DIR=/tmp/practice3 confaccess

Команды после аутентификации:

create <file>              создать файл (владелец = текущий пользователь)
read <file>                прочитать файл
append <file> <text>        дописать в файл
copy <src> <dst>            скопировать в confdata
remove <file>              удалить файл
grant <user> <path> <perms> выдать права (только владелец)
help / exit

DAC (дискреционный доступ)

  • Каждый объект имеет владельца (создатель)
  • Владелец может выдавать права через grant <user> <path> <perms>
  • Права: r (чтение), w (запись), d (удаление)

MAC (мандатный доступ, Белл–Лападула)

  • Метки: 0 — несекретно, 1 — ДСП, 2 — секретно
  • Нет чтения сверху: субъект читает только объекты с уровнем ≤ своего
  • Нет записи вниз: субъект пишет только в объекты с уровнем ≥ своего

bruteforce

bruteforce alice
bruteforce alice --max-length 4