[devel] Q: hiding security sensitive info

Anton V. Denisov =?iso-8859-1?q?fire_=CE=C1_kgpu=2Ekamchatka=2Eru?=
Чт Дек 4 18:26:39 MSK 2003


Приветствую всех.

Прошу прощения за отступление от тематики данного списка рассылки, но
altlinux-security@ у нас пока нет.

Возник у меня следующий вопрос: как непривилегированный пользователь
может получить список пользователей, вошедших в систему? Предполагается,
что доступа к /usr/bin/{w,who} у пользователя нет. Также он не может
скомпилировать и выполнить на хосте свою программу, но может загрузить
её на хост уже в скомпилированном виде. Это подразумевает, что у
пользователя есть доступ на запись к некоторым каталогам, которые
находятся на разделе, смонтированном с параметром 'exec'.

Прочитал ещё раз вопрос и понял - в этом случае ничто не помешает
загрузить на хост и запустить статически слинкованный бинарник who. Но
это значительно усложнит жизнь злоумышленнику. Особенно если доступа к
средствам загрузки тоже нет.

Данный вопрос можно распространить на информацию, выдаваемую следующими
утилитами: dmesg, mount, netstat, ps, uname, df, free, last, lastlog,
id, groups, pstree, quota, fdisk, chkconfig, lsmod, ifconfig, ip, route
и многими других.

С помощью этих и других утилит пользователь может получить довольно
много информации о системе, поэтому я бы для себя поставил их на
control(8), но в этом не будет смысла, если пользователь сможет получить
эту информацию другими путями - про это и был мой первоначальный вопрос.

Openwall Linux Kernel Patch несколько улучшает ситуацию, защищая /proc,
но этого явно недостаточно.

Помню нашёл на одном web сервер дырявый cgi скрипт, который позволял
выполнять системные команды. Выполнил id, чтобы узнать что, я nobody (это
и предполагалось), потом who, а потом отослал /etc/passwd админу сервера
(я его знал :-)). Так вот хочется защититься от подобных вещей. Если бы
у пользователя nobody изначально не было прав запускать что-либо из
$PATH, то мне бы пришлось гораздо труднее в данном случае.

Конечно, когда пользователи имеют удалённый доступ и полноценный shell,
то такую защиту применить труднее. Но меня больше интересует случай
использования аккаунта непривилегированного пользователя, полученного
через удалённую уязвимость или как в случае описанном выше.

P.S. Очень буду благодарен за ответ на это письмо или направление - куда
читать.. Наверное я параноик :-][
P.P.S. Что лучше почитать про систему kernel capabilities?

--
With best regards, Anton V. Denisov.
In silent deep without hope.
'-- MARK --' is my favourite log-entry.





Подробная информация о списке рассылки Devel