Оглавление |
---|
Признаки проблемы
Выполнение системного вызова shmget() из пользовательской сессии с ненулевой классификационной меткой заканчивается ошибкой вида:
Блок кода |
---|
Can't shmget: at .. |
Информация | ||
---|---|---|
| ||
|
Устранение проблемы
Предупреждение |
---|
Проблема вызвана запретом на межпроцессное взаимодействие (inter-process communication, IPC) между пользовательскими сессиями с ненулевой классификационной меткой. Это ограничение установлено в Astra Linux Special Edition для предотвращения создания скрытых каналов утечки информации. Доверенными системными процессам для использования IPC предоставляется Parsec-привилегия parsec_cap_ipc_owner, неприменимая для пользовательских сессий. Снятие ограничений использования IPC на уровне пользовательских сессий ведет к появлению возможности организовать скрытый канал утечки конфиденциальной информации. |
Для того, чтобы разрешить использование IPC независимо от классификационой метки пользовательской сессии необходимо в файлах авторизации пользователей в каталоге /etc/pam.d в вызовы PAM-модуля pam_parsec_mac.so добавить параметр public_sysv_ipc. Если в файле имеются нескоколько вызовов PAM-модуля pam_paresec_mac.so, то параметр public_sysv_ipc добавить к первому вызову. В итоге вызовы модуля для стандартного набора файлов должны выглядеть так:
Блок кода |
---|
/etc/pam.d/fly-dm:session required pam_parsec_mac.so unshare_root_only public_sysv_ipc /etc/pam.d/fly-dm:auth required pam_parsec_mac.so /etc/pam.d/fly-dm:account required pam_parsec_mac.so labelselect=appset /etc/pam.d/fly-dm:session required pam_parsec_mac.so /etc/pam.d/fly-dm-np:session required pam_parsec_mac.so unshare_root_only public_sysv_ipc /etc/pam.d/fly-dm-np:auth required pam_parsec_mac.so /etc/pam.d/fly-dm-np:account required pam_parsec_mac.so labelselect=appset /etc/pam.d/fly-dm-np:session required pam_parsec_mac.so /etc/pam.d/login:session required pam_parsec_mac.so unshare_root_only public_sysv_ipc /etc/pam.d/login:auth required pam_parsec_mac.so /etc/pam.d/login:account required pam_parsec_mac.so /etc/pam.d/login:session required pam_parsec_mac.so /etc/pam.d/passwd:password required pam_parsec_mac.so public_sysv_ipc /etc/pam.d/sshd:session required pam_parsec_mac.so stub public_sysv_ipc /etc/pam.d/sumac.xauth:auth required pam_parsec_mac.so public_sysv_ipc /etc/pam.d/sumac.xauth:account required pam_parsec_mac.so labelselect=appset /etc/pam.d/sumac.xauth:session required pam_parsec_mac.so |
Если в каталоге /etc/pam.d имеются дополнительные файлы то в них нужно сделать аналогичные изменения.