Запуск процессов с ограниченными правами


Запуск процессов с правами системы является порочной практикой, от которой следует отказываться. Да, фатальных уязвимостей, которые позволяли бы злоумышленнику исполнять произвольный код на удалённой машине с OS/2, обнаружено не было. Тем не менее, при наличии адекватного средства для ограничения прав процессов было бы глупо им не воспользоваться. Ниже будет показан способ задания прав процесса на примере веб-сервера Apache — потенциально весьма уязвимого сервиса, особенно при использовании серверных скриптов.

Для начала надо установить пакет Security/2 by nickk (достаточно установить его в режиме 'No local logon'). Рекомендуются следующие параметры:

BASEDEV=SSES.SYS /suanyuser /logbuf:65535 /logresult:deny
RUN=C:\SECURITY\bin\ssesctl.exe --source C:\SECURITY\etc\passwd?C:\SECURITY\etc\acls --logfile E:\logs\sses\ssesctl.log --logsuck

Здесь C:\SECURITY — каталог, в который установлена Security/2, E:\logs\sses\ — каталог, в котором будут вестись логи.

Далее с помощью утилиты USER.EXE создадим пользователя 'apache' с паролем '12345'.

После этого начнётся самое интересное — разрешение пользователю 'apache' использовать те ресурсы, без которых он не может работать. Я предпочитаю запускать апач детачем:

su -p 12345 -c "detach httpd.exe" apache
Смотрим E:\logs\sses\ssesctl.log и видим список ресурсов, к которым был запрещён доступ процессу, запущенному от пользователя 'apache'. Вдумчиво разрешаем то, что необходимо. Правим C:\Security\etc\acls и запускаем апач заново. Постепенно приходим к чему-то типа нижеследующего:
[100:first]
x   <dll>
# По дефолту здесь стоит '* C:\os2\*'. Это не есть хорошо

[104:u:apache]
# devices
rw    \dev\screen$
rw    \dev\nul
rw    \dev\inet$
r     \dev\singleq$
# системные файлы/библиотеки, emx
rx    C:\OS2\CMD.EXE
rx    C:\OS2\DLL*
r     C:\OS2\SYSTEM*
rx    C:\emx\dll*
# собственно апач
rwcd  D:\Apps\apache\log*
rx    D:\Apps\apache*
# настройки
r     C:\MPTN\ETC\socks.env
r     C:\MPTN\ETC\resolv
r     C:\MPTN\ETC\resolv2
r     C:\MPTN\ETC\hosts
r     C:\MPTN\ETC\services
r     C:\MPTN\ETC\php.ini
r     D:\Apps\resin\conf\resin.conf
r     *.htaccess
# каталог с сайтами
rx    E:\www\*\cgi-bin*
r     E:\www*
# каталог для upload handling и session handling
rwcd  E:\temp\apache*
# каталог для логов
rwc   E:\logs\apache*
# рассылка почты через IPS
rwx   D:\Apps\IPS\endmail\endmail.cmd
rwcd  D:\Apps\IPS\queue\mail*
# и, наконец, запрещаем всё, что не разрешено
-     *
Благодарность: Nick Lepehin aka nickk aka ||||-|||| за саму программу и за помощь при разбирательствах с оной.
Dmitry Ban


Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ