[.nix] shell под админом - писец руту или не писец?
> Модель безопасности *nix такова, что это по-любому пиздец.
Ты знаешь стандартные способы превратиться из юзера в root?
если этот юзер - админ (как в нашем случае и не полный параноик, то способов настолько много, что стандартный не выделить
Перечисли хотя бы несколько.
(с отдельной консоли рутом входят только полные параноики, периодически проверяют $PATH тоже)
ну типа изменить ему $PATH и подменить su, sudo или чем он пользуется, чтоб стать рутомОтдельные параноики, например я, всегда печатают только /usr/bin/su и /usr/local/bin/sudo.
(с отдельной консоли рутом входят только полные параноики, периодически проверяют $PATH тоже)
alias '/usr/bin/su'='/home//.fakesu'
Или лезть в память уже выполняющегося шелла, чтобы подменить код там.
Но скажи, не в эмуляторе ли терминала, работающего в X11, ты это набираешь?
Если да, то задача упрощается - нужно подождать, пока ты отвернёшься, и набрать на этом терминале нужные команды.
Пройдёт ли такая штука без X, с виртуальной консолью, не знаю.
Ну ты крут, придётся делать что-то вродеДа. Поэтому всё таки нужно логиниться рутом всегда отдельно.
alias '/usr/bin/su'='/home//.fakesu'
Кстати по ssh тоже, хотя большинство людей считает, что это менее безопасно.
Или лезть в память уже выполняющегося шелла, чтобы подменить код там.Наверное реально. Реализовывалось ли когда нибудь?
Но скажи, не в эмуляторе ли терминала, работающего в X11, ты это набираешь?Ну это физический доступ, против лома нет приема.
Если да, то задача упрощается - нужно подождать, пока ты отвернёшься, и набрать на этом терминале нужные команды.
Пройдёт ли такая штука без X, с виртуальной консолью, не знаю.
Ну типа да, в теории.
Но на практике так делают только малочисленные параноики, поскольку очень уж неудобно.
> Наверное реально. Реализовывалось ли когда нибудь?
Хз, я теоретик, а не взломщик.
> Ну это физический доступ, против лома нет приема.
Какой физический доступ? Терминалы виртуальные.
Да, в случае X и su/sudo/ssh набирать ничего не надо - только присосаться к серверу и послушать пароли.
> Кстати по ssh тоже, хотя большинство людей считает, что это менее безопасно.
Кстати, если ты ходишь куда-то из под своего логина, которым овладел злоумышленник, то и логины на удалённых машинах ты отдаёшь ему.
Кстати, если ты ходишь куда-то из под своего логина, которым овладел злоумышленник, то и логины на удалённых машинах ты отдаёшь ему.
Глебиус умный, он otp пользуется, я сам видел
маза само по себе это не спасёт, враг, напрягшись и подменив ssh, поставит бекдор на удалённой машине в первый же заход
Какой физический доступ? Терминалы виртуальные.Не прохавал. Предположим у меня открыт порт иксов и разрешено коннектиться всем. Ты хочешь сказать что один X клиент может повлиять на работу другого?
Да, в случае X и su/sudo/ssh набирать ничего не надо - только присосаться к серверу и послушать пароли.
Типа ещё как может.
маза само по себе это не спасёт, враг, напрягшись и подменив ssh, поставит бекдор на удалённой машине в первый же заходРазве через одну ssh сессию можно пропихнуть что-то еще кроме неё самой? Или враг типа сделает что-то так быстро, что мне это покажется перерисовыванием терминала.
> Типа ещё как может.
Наверное я чего-то не знаю. Каким образом?
Этого хватит, хотя есть ещё port forwarding, X11 forwarding и может ещё что-то что я не знаю
> Или враг типа сделает что-то так быстро, что мне это покажется перерисовыванием терминала.
Особенно торопиться некуда, подменённый ssh просто не покажет тебе лишнего.
Я подумал, и понимаю, что действительно это всё реально. Только очень сложно технически, но реально.
Защититься от этого тоже очень сложно технически. Я например вижу только внедрение такой политики:
после хотя бы одного удаленного логина не пользоваться su. Потом локально проанализировать lastcomm на момент удаленного
логина, и если ничего лишнего не будет найдено, то прошедший логин можно считать безопасным.
Мне сегодня будут сниться кошмары, и завтра буду логиниться только с собственного ноутбука.
Я доки читал давно, и детали не помню.
Но можно посылать другим клиентам сообщения, можно слушать все нажатия клавиш, можно брать картинку с экрана - это как минимум.
Надо заметить, что есть проекты добавлению механизмов разграничения доступа в X-сервер, как раз чтобы решать эту проблему.
> Я например вижу только внедрение такой политики:
> после хотя бы одного удаленного логина не пользоваться su. Потом локально проанализировать lastcomm на момент удаленного
> логина, и если ничего лишнего не будет найдено, то прошедший логин можно считать безопасным.
Ну типа да, воздержание и аудит. Трудно, да, ни разу не слышал, чтобы на практике использовалось - типа ломать гораздо проще в данном случае, чем защищаться, отсюда и наезд на модель безопасности.
> Мне сегодня будут сниться кошмары
Ура, день прошёл не зря
Но можно посылать другим клиентам сообщения, можно слушать все нажатия клавиш, можно брать картинку с экрана - это как минимум.Примеры какие нибудь можно? Я вот посмотрел сейчас у себя, и вижу, что всякие элементы рабочего стола, которые друг на друга оказывают влияние связаны пайпами или локальными сокетами. Если бы они могли бы управлять друг другом через сервер, то им не было бы это нужно.
> локальными сокетами. Если бы они могли бы управлять друг другом через сервер, то им не было бы это нужно.
Ну типа так удобнее управлять, X11 - это не сахар, подробнее в Unix Haters' Guide
Примеры? Ну не знаю, xwd типа видел? Оно картинку берёт с экрана.
Скринсейверы и переключатели клавиатуры хитрые типа видел? Они клавиши слушают. А xev - так даже и показывает их.
xeyes типа видел? Оно за курсором следит.
window manager - так он только и делает, что общается с другими клиентами.
Примеров для посылки событий о нажатии клавиш не знаю, самому надо писать наверное.
Это общение только с сервером. Хотя r/o доступ к какой-то информации даёт.
> Скринсейверы и переключатели клавиатуры хитрые типа видел? Они клавиши слушают. А xev - так даже и показывает их.
Это не врите. xev показывает только свои собственные клавиши.
> xeyes типа видел? Оно за курсором следит.
Курсор это клиент, а часть сервера. Так что это общение только с сервером.
> window manager - так он только и делает, что общается с другими клиентами.
Перемещает их, знает их геометрию. Но не может не слушать их инпут, не вставлять свой.
P.S. В любом случае современные X серверы, не открывают TCP сокет, а даже если открывают, то xhost содержит только локальный hostname.
man xev
/-id
> В любом случае современные X серверы, не открывают TCP сокет, а даже если открывают, то xhost содержит только локальный hostname.
Типа форвардингом через ssh тоже не пользуешься? Правильно, небезопасно, а сетевую прозрачность типа в сад.
man xevПиздец. Кошмары обеспечены на месяц вперед.
/-id
> В любом случае современные X серверы, не открывают TCP сокет, а даже если открывают, то xhost содержит только локальный hostname.Причем здесь форвардинг? Если враг может залогиниться мной на мою машину, то ему уже не нужно прослушивать моих X клиентов.
Типа форвардингом через ssh тоже не пользуешься? Правильно, небезопасно, а сетевую прозрачность типа в сад.
Типа если ты зашёл на другую машину, а враг там.
> Типа если ты зашёл на другую машину, а враг там.
Хм. А xev вот не работает через ssh, только что проверил (0x1e0000e - локальное окно):
furry:~:|>xev -id 0x1e0000e
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 3 (X_GetWindowAttributes)
Resource id in failed request: 0x1e0000e
Serial number of failed request: 6
Current serial number in output stream: 7
Сам по себе работает, с чужим id нет. Если я запущу удаленный X клиент, то на него xev можно натравить, а на локальный нельзя.
У меня работает, тоже проверил.
Уж не враг ли тебе сломал ssh?
> Уж не враг ли тебе сломал ssh?
Ты его натравил на локального клиента?
там xlsclients -l , видишь список окон на своём дисплее, выбираешь нужное, напускаешь xev на него
X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 20 (X_GetProperty)
Atom id in failed request: 0x24
Serial number of failed request: 319
Current serial number in output stream: 319
xlsclients -l выдает ошибку на первом же клиенте.
В любом случае ни с одним из локальных id не работает.
У меня Xorg как на обоих машинах.
ну может в Xorg уже встроено что-то против этого, я его не смотрел
хз, может просто глючит. Хорошо хоть другие пользователи не могут к твоему сокету прицепиться.
такая ошибка говорит только о глюке проги
по крайней мере, больше в голову ничего не приходит.
Оставить комментарий
Marinavo_0507
> Я имею в виду что malicious user получив каким-то образом твой шеллМодель безопасности *nix такова, что это по-любому пиздец.