Завися, который ps
управляйте, чтобы Вы использовали, я использую
ps -auxw
Память setuid программы могла бы (быть вероятным, даже) содержат конфиденциальные данные. Таким образом, дамп ядра должен был бы быть читаемым корнем только.
Если бы дамп ядра принадлежит корню, я не вижу очевидную дыру в системе безопасности, хотя ядро должно было бы бояться перезаписывать существующий файл.
Linux отключает дампы ядра для setxid программ. Чтобы включить им, необходимо сделать, по крайней мере, следующее (я не проверил, что это достаточно):
fs.suid_dumpable
sysctl к 2, например, с echo 2 >/proc/sys/fs/suid_dumpable
. (Примечание: 2, не 1; 1 означает, что “я отлаживаю систему в целом и хочу удалить всю безопасность”.)prctl(PR_SET_DUMPABLE, 1)
из программы.Дамп ядра содержит копию всего, что было в памяти во время отказа. Если программа выполняет suid, который означает, что этому нужен доступ к чему-то, к чему у Вас, как пользователь, нет доступа. Если программа получает ту информацию, затем выводит ядро, Вы сможете считать ту секретную информацию.
От Вашего примера выше, кажется, что Вы можете получить дамп ядра при выполнении как корень или если Вы удаляете расширение полномочий.
В то время как могло бы быть удобно (для разработчиков только, мне кажется) иметь легкий доступ к coredump из setuid программы, это - дыра в системе безопасности и должно быть оставлено на месте.
Я решил, что я также поделюсь своим вариантом использования, пока не забуду его. Это может быть полезно и для будущего меня, так как я решал ту же проблему несколько месяцев назад, и мне потребовалось слишком много времени, чтобы выяснить это еще раз. ОК. на самом деле это не дамп ядра, а трассировка стека, которая тоже полезна.
Проблема: Понятия не имею, что там происходит:
sudo id
Segmentation fault
Решение: Перенести бит suid из sudo
в valgrind
работает нормально:
chmod +s /usr/bin/valgrind
chmod -s /usr/bin/sudo
valgrind /usr/bin/sudo id
Если установлен debuginfo, хорошая обратная трассировка выписан.
fs.suid_dumpable
говорит. Можно ли попытаться установитьfs.suid_dumpable
без вызоваpctrl
в программе? Возможно, я неправильно понимаю документацию, и Вы действительно получаете ядро, но принадлежавший корню в этом случае. А-ч – Gilles 'SO- stop being evil' 24.06.2011, 02:19