LINUX.ORG.RU
ФорумTalks

Работа под ограниченным пользователем


0

1

Очень часто на ЛОРе хвалятся, что мол работа на своем компьютере из под ограниченной учетной записи якобы повышает безопасность, и что win xp была столь дырявой из-за того, что все работали из под админа.

Но вот если подумать. Что мешает трояну, запущенному с правами пользователя (из-за уязвимости в каком-нибудь evince, например) прописать алиас на 'sudo' в bashrc, или сделать фишинговый диалог policykit? Почти наверняка получится отснифить пароль раньше, чем вы это заметите.

Это я к тому, что единственная основа безопасности GNU/Linux - использование только проверенного софта из репозиториев, что рухнет в случае набора популярности и установки стороннего ПО.

В этом плане Android выглядит не как костыль над Linux, а как единственный способ привлечь third-party ПО и технически более грамотная архитектура. Я могу попробовать неизвестное приложение, и могу точно сказать, что после его удаления не останется никаких побочных эффектов. Примерно такую же свободу когда-то дал веб: я могу зайти на чужой неизвестный сайт не опасаясь, что он попортит мое окружение.

И Android, и веб сейчас прогрессируют и постепенно вытесняют обычные окружения. Не в этом ли основная причина?

★★★★★

Примерно такую же свободу когда-то дал веб: я могу зайти на чужой неизвестный сайт не опасаясь, что он попортит мое окружение.

Расскажи об этом пользователям Windows.

ChALkeR ★★★★★
()
Ответ на: комментарий от different_thing

> Это я к тому, что единственная основа безопасности GNU/Linux - использование только проверенного софта из репозиториев, что рухнет в случае набора популярности и установки стороннего ПО.

3. Я ещё не всё прочитал

different_thing
()

>Что мешает трояну, запущенному с правами пользователя (из-за уязвимости в каком-нибудь evince, например) прописать алиас на 'sudo' в bashrc, или сделать фишинговый диалог policykit?

А как этот троян туда попадёт? Ты сам его соберёшь, удовлетворив зависимости и прописав заведомо опасные права на .bashrc? ССЗБ.

Lighting ★★★★★
()
Ответ на: комментарий от Lighting

Методами социальной инженерии, например. Напишу статью на хабре про какую-нибудь замечательную библиотеку и выложу код примера с аккуратно спрятанным шеллкодом. Половина читателей спокойно его скомпилирует и запустит.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от Lighting

И да, допустим, введёшь ты пароль рута в это фальшивое окно, что дальше? Далеко не у каждого вообще есть root, во-вторых, часто он отсутствует по умолчанию. Ну и SELinux, да.

Lighting ★★★★★
()
Ответ на: комментарий от snizovtsev

я считаю при появлении таковых вирей, прсто кешы браузеров будут маунтится автоматом куда-нибудь в tmpfs с noexec.

Suicide_inc ★★
()

>В этом плане Android выглядит не как костыль над Linux, а как единственный способ привлечь third-party ПО и технически более грамотная архитектура. Я могу попробовать неизвестное приложение, и могу точно сказать, что после его удаления не останется никаких побочных эффектов.

слабо понимаю, чем андроид технически более грамотен, учитывая постоянные сообщения о новых троянах под ведроид. поясни, а?

vostrik ★★★☆
()
Ответ на: комментарий от snizovtsev

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

[s]Ну вот и вали в свой хабра[/s] Аккуратно, ага. Впрочем, всё равно, даже по умолчанию, хватает средств для обеспечения должного уровня безопасности(iptables, права и прочее).

Lighting ★★★★★
()
Ответ на: комментарий от vostrik

> слабо понимаю, чем андроид технически более грамотен, учитывая постоянные сообщения о новых троянах под ведроид. поясни, а? Тем, что каждое приложение запускается в своей песочнице, а все пути их связи декларируются разработчиком и легко видны пользователю.

_Все_ эти «трояны» перед установкой сообщают, что будут слать смс, звонить и т.д. по списку. И их вычистить можно простым удалением приложения штатными средствами, а не полным аудитом всей системы.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от onon

а что, после того, как ты удалил троян, тебе заказным письмом присылают все украденные данные?

vostrik ★★★☆
()

> Что мешает трояну, запущенному с правами пользователя (из-за уязвимости в каком-нибудь evince, например) прописать алиас на 'sudo' в bashrc, или сделать фишинговый диалог policykit?

Ничего. Не очень понятно, что ему даст алиас на sudo (он не просит пароля), но троян может это сделать.

я могу зайти на чужой неизвестный сайт не опасаясь, что он попортит мое окружение.

Нет.

И Android, и веб сейчас прогрессируют и постепенно вытесняют обычные окружения. Не в этом ли основная причина?

Нет.

tailgunner ★★★★★
()
Ответ на: комментарий от snizovtsev

>_Все_ эти «трояны» перед установкой сообщают, что будут слать смс, звонить и т.д. по списку.

подозрительно, jabber-клиент хочет получить доступ к интернету. надо запретить, ага

И их вычистить можно простым удалением приложения штатными средствами, а не полным аудитом всей системы.

см. выше

vostrik ★★★☆
()
Ответ на: комментарий от snizovtsev

> _Все_ эти «трояны» перед установкой сообщают, что будут слать смс, звонить и т.д. по списку.

Кури selinux

iBliss
()

> Очень часто на ЛОРе хвалятся, что мол работа на своем компьютере из под ограниченной учетной записи якобы повышает безопасность, и что win xp была столь дырявой из-за того, что все работали из под админа.

В винде любой вирус или троян просто браз и ставил всю систему раком как хотел, потому что _сразу_ при запуске имел права админа.

Но вот если подумать. Что мешает трояну, запущенному с правами пользователя (из-за уязвимости в каком-нибудь evince, например) прописать алиас на 'sudo' в bashrc, или сделать фишинговый диалог policykit? Почти наверняка получится отснифить пароль раньше, чем вы это заметите.

Если проблема станет актуальна, то решения появятся. Сразу сходу варианты:

1. Дописываем в bash команду noalias, которай позволит запрещать алиасы для отдельных команд или даже для всех команд из указанной директории (noalias /sbin/ например). Прописываем нужные noalias-ы в /etc/profile, и всё. В принципе, ты уже сейчас можешь использовать синтаксис вида \sudo для отмены подстановки алиаса, а также прямое указание пути от корня. noalias будет просто дополнительной плюшкой

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

3. После того, как мы научили иксы ограничивать возможности для отдельных окон, последняя опасность это «сделать фишинговый диалог». Тут всё просто. Пусть диалог рисует процесс, который SUID-битом запускается от рута и имеет доступ к файлу с секретным ключем. Когда он показывает диалог, он выводит в нём этот секретный ключ. Пользователь знает ключ и может убедиться, что это тот самый ключ. Таким образом у нас происходит взаимная авторизация: процесс предоставляет пользователю ключ, чем подтверждает, что запущен от рута. Затем пользователь вводит пароль, чем подтверждает, что имеет права на выполнение запрашиваемого действия. Так ака троян не может запустить себя от рута, предоставить диалог с правильным ключем он не сможет.

geekless ★★
()
Ответ на: комментарий от tailgunner

> Не очень понятно, что ему даст алиас на sudo (он не просит пароля)

Просит, если админ — дурак^Wиспользует дефолтную убунту. А узнав пароль пользователя, запускаем sudo su в отдельном pts, подсовываем ему пароль, и вот — мы получили оболочку рута.

geekless ★★
()
Ответ на: комментарий от tailgunner

> Ничего. Не очень понятно, что ему даст алиас на sudo (он не просит пароля), но троян может это сделать. man фишинг получим пароль - сможем запустить скрытно настоящий sudo и стать рутом. далее грузим руткит в ядро и обнаружить его становится крайне сложно => он может жить в системе месяцами и больше.

В Android приложение подписано сертификатом. Достаточно кому-нибудь понять, что этот «jabber клиент» - малварь, как сразу этот сертификат можно заблеклистить и приложение спокойно и без костылей надёжно удалить.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

> сертификат можно заблеклистить и приложение спокойно и без костылей надёжно удалить.

Огораживание в действии. Да, это частично помогает бороться с малварью. Но это огораживание.

geekless ★★
()
Ответ на: комментарий от geekless

> Огораживание в действии. Да, это частично помогает бороться с малварью. Но это огораживание.

Ну вообщем-то да. Я не говорю, что он идеален. Они решили, что все permission-ы нужно давать на этапе установки, хотя очень часто нужен интерактивный режим.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

>Половина читателей спокойно его скомпилирует и запустит.

запускают только анальные вантузы

thunar ★★★★★
()

«Ограниченный пользователь» - это такой школьник как ТС, пишущий безграмотный бред, подобный вышеприведённому топику.

Led ★★★☆☆
()
Ответ на: комментарий от sin_a

Отлично описано, какие функции выполняет юзерская учетка на десктопе. Я говорю о том, что в современных реалиях есть потребность в создании новой сущности - песочницы для ПО. Почти все демоны настраивают на запуск в отдельном uid, только вручную. Так зачем же firefox и openoffice в одном супе X11 держать?

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

> в современных реалиях есть потребность в создании новой сущности - песочницы для ПО

1. Создаешь еще одну учетку.
2. Даешь своему пользователю право делать sudo в эту учётку (а то пароль каждый раз вводить лениво).
3. ???
4. Профит.

Всё уже создано. Пользуйтесь.

geekless ★★
()
Ответ на: комментарий от snizovtsev

Методами социальной инженерии, например. Напишу статью на хабре про какую-нибудь замечательную библиотеку и выложу код примера с аккуратно спрятанным шеллкодом. Половина читателей спокойно его скомпилирует и запустит.

Кто-то сказал „perl“?

ChALkeR ★★★★★
()
Ответ на: комментарий от geekless

> Всё уже создано. Пользуйтесь.

Изоляция так будет. Но нехватает механизмов взаимодействия между этими песочницами.

Например, если я запущу nautilus^Wsuper-new-cool-file-manager в отдельном пользователе, то он чихать будет на мои ассоциации файлов с приложениями.

Тут вижу 2 пути: 1. Запихнуть все как-нибудь в новомодный D-Bus. 2. Unix-way. Пакетный менеджер для каждого не системного пакета создаёт пользователя, а бинарникам в нем назначает suid бит (владелец бинарника - конечно не root, а тот созданный юзер). Для взаимодействия просто запускаем процессы. Вообщем тот же Android, только без велосипедов aka intent-ы, а на отлаженных механизмах процессов и pipe-ов.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

Например, если я запущу nautilus^Wsuper-new-cool-file-manager в отдельном пользователе, то он чихать будет на мои ассоциации файлов с приложениями.

Даешь пользователю super-new-cool-file-manager-user доступ к настройкам файловых ассоциаций из твоего хомяка, в чем проблема?

Вот чтобы дочерний от super-new-cool-file-manager процесс смог получить обратно твои права, это уже интереснее. Нужен sudo- или suid- шлюз. (sudo предпочтительнее.)

Разумеется, если это дело будет часто использоваться, нужен и соответствующий инструментарий для умного руления правилами шлюза.

geekless ★★
()
Ответ на: комментарий от snizovtsev

Пакетный менеджер для каждого не системного пакета создаёт пользователя

Ну какбе в нормальных дистрибутивах уже ЦЁ:

[22:25] fletch@helix ~\ $ cat /etc/passwd
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
nobody:x:99:99:nobody:/:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
http:x:33:33::/home/http/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
virtual:x:1001:1001::/home/ftp:/bin/bash
mpd:x:45:45::/var/lib/mpd:/bin/true
nut:x:55:55::/var/state/ups:/bin/false
munin:x:998:998:Munin system monitor:/var/lib/munin:/bin/false
fetchmail:x:90:99:Fetchmail daemon:/var/lib/fetchmail:/bin/false
named:x:40:40:BIND DNS Server:/var/named:/bin/false
exim:x:79:79:Exim MTA:/var/spool/exim:/sbin/nologin
dovecot:x:76:76:Dovecot user:/var/empty:/sbin/nologin
Fletch ★★
()
Ответ на: комментарий от snizovtsev

>> Ничего. Не очень понятно, что ему даст алиас на sudo (он не просит пароля), но троян может это сделать.

man фишинг

man sudo

В Android приложение подписано сертификатом. Достаточно кому-нибудь понять, что этот «jabber клиент» - малварь, как сразу этот сертификат можно заблеклистить и приложение спокойно и без костылей надёжно удалить.

Непонятно, зачем для удаления подпись.

Ты не понимаешь очень простую вещь - все эти приложения написаны не для Unix, а для песочницы Андроида. И методы, работающие в специально спроектированной песочнице, не сработают в ОС общего назначения. У ОС есть свои медоды - от Unix permissions до namespace'ов и SELinux (не только SELinux, конечно).

tailgunner ★★★★★
()

> И Android, и веб сейчас прогрессируют и постепенно вытесняют обычные окружения. Не в этом ли основная причина?

Безопасность тут не при чем. Просто есть возможность сделать приложение один раз, после чего оно будет работать на миллионах устройств без проблем, тормозов, глюков и независимо от настроек клиентской ОС. Нативные приложения уходят.

Igron ★★★★★
()

Зачем так сложно? Достаточно упаковать вирус с deb и предоставить пользователю возможность самому его установить. И это не шутка - правильно преподнесённые вирусы будут ставить за милую душу.

RussianNeuroMancer ★★★★★
()

Например, моя учетка дома и на работе не входит в группу судоеров вообще. Дома потому что в магее так по дефолту, а на работе админы так поставили.

abraziv_whiskey ★★★★★
()

не используй клоаку ака sudo и будет тебе счастье
и запрос пароля рута от пользовательского софта...странно, не так ли!? ;)
что там рухнет от набора популярности, я так и не распарсил
каким образом - тоже

megabaks ★★★★
()

Не юзай полисикит, ага.

arknir
()
Ответ на: комментарий от tailgunner

>Не очень понятно, что ему даст алиас на sudo (он не просит пароля), но троян может это сделать.

sudo() { \sudo chmod u+s /very/evil/binary/file && $* }

Точно так же можно и в cron или rc.whatever добавить что угодно.

x3al ★★★★★
()
Ответ на: комментарий от geekless

>В винде любой вирус или троян просто браз и ставил всю систему раком как хотел, потому что _сразу_ при запуске имел права админа.

Всё правильно: в прошедшем времени. Сейчас там по дефолту кастрированный, зато достаточно юзабельный даже для хомячков вариант selinux'а (при желании настраивается, впрочем).

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

Емнип xspy забивает на окна и поллит состояние клавиатуры.

огда он показывает диалог, он выводит в нём этот секретный ключ.

Картинкой, как ssh? Хорошая идея.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>> Не очень понятно, что ему даст алиас на sudo (он не просит пароля), но троян может это сделать.

sudo() { \sudo chmod u+s /very/evil/binary/file && $* }

Зачем? Если sudo не просит пароля, просто запусти его, а добавление алиаса - только лишний след.

tailgunner ★★★★★
()
Ответ на: комментарий от x3al

> Емнип xspy забивает на окна и поллит состояние клавиатуры.

Мы это уже обсуждали. Считать доступ к XQueryKeymap разновидностью доступа к окну, имеющему фокус. Если клиент не имеет права слушать очередь сообщений для сфокусированного окна, то запросить keymap он не имеет права.

geekless ★★
()
Ответ на: комментарий от tailgunner

> Зачем? Если sudo не просит пароля, просто запусти его, а добавление алиаса - только лишний след.

Речь идет о случае, когда sudo просит пароля.

geekless ★★
()
Ответ на: комментарий от geekless

В любом случае, в selinux-патчах такое было. Как минимум об этом упоминалось в обсуждениях xspy.

x3al ★★★★★
()

Единственная основа безопасности GNU/Linux - интеллектуальный уровень ее пользователей.

P.S.

В этом плане Android

Это тот, в котором из официальных репозиториев вирусы прилетают?

trex6 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.