gdb

IDE, VCS и прочее

Модератор: Модераторы разделов

Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

gdb

Сообщение cy6erGn0m »

недавно напоролся на такую штуку: gdb может подключиться к ЛЮБОМУ процессу в рамках пользователя и можно лазать по памяти процесса и т.п..

Вопрос: что мешает любому другому процессу делать так же? что если некоторый процесс будет лазать по памяти чужих процессов и творить что хочет?

ЗЫ: то же самое есть и в dbx на Solaris. В чём же фишка? неужели любой процесс может хозяйничать? А мне самому как быть при написании программ? мне что, контрольные суммы памяти сверять и данные хранить в зашифрованном виде?? :(
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: gdb

Сообщение serzh-z »

cy6erGn0m писал(а):
08.04.2008 16:04
неужели любой процесс может хозяйничать?
Да, если он использует соответствующие отладочные функции (ptrace) и/или привилегии (как, скажем, в Windows).
cy6erGn0m писал(а):
08.04.2008 16:04
то же самое есть и в dbx на Solaris
Ага, и в Windows тоже. Только там было хуже, пока не заделали эту дыру: обычный процесс, через отладочные функции, мог получить доступ к процессам системы и/или администратора.
cy6erGn0m писал(а):
08.04.2008 16:04
данные хранить в зашифрованном виде
Зачем? Если стоит задача скрыть данные от самого же пользователя системы, то это не поможет.
Спасибо сказали:
Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

Re: gdb

Сообщение cy6erGn0m »

Иными словами: процесс не может находиться в безопасности и ни о какой изоляции процессов не идёт и речи. Разве что изоляция от случайного воздействия. В любом случае это неправильно: любой процесс может проникнуть и выкрасть какую-то конфиденциальную инфу, например, какой-нибудь яндекс-кошелёк или что-то типа него. Выходит что он невероятно уязвим как под виндой, так и под солярой. Так что все разговоры о безопасности и т.п. это просто болтовня, когда и так все всё могут.
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: gdb

Сообщение serzh-z »

cy6erGn0m писал(а):
08.04.2008 16:53
ни о какой изоляции процессов не идёт и речи
Изоляция есть. ptrace API можно образно представить в виде ключа и двери, которыми управляет ОС по запросу приложения. Система привилегий (capabilites) и различные модули безопасности LSM, а так же SELinux могут помочь ужесточить взаимодействие между процессами одного пользователя.
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: gdb

Сообщение halturin »

В рамках одного юзера ты можешь цепляться к какому-либо процессу. Но (не из под рута) ты не сможешь приаттачиться к процессу соседа.

Код:

~# ps axu| grep 18725 root 770 0.0 0.0 372 144 pts/1 R+ 09:29 0:00 grep 18725 mpd 18725 0.0 0.1 11024 2868 ? S Apr09 0:18 /usr/bin/mpd /etc/mpd.conf


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

Код:

fantom@ghost:~$ whoami fantom fantom@ghost:~$ gdb (gdb) attach 18725 Attaching to process 18725 ptrace: Operation not permitted.


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