LINUX.ORG.RU

Чем страшен Segmentation fault


0

0

Просветите насчет Segmentation fault - чем так страшно его появление и почему считается что программа его производящая приводит к потенциальной проблемме безопасности.


Потому что это указывает на потенциальное переполнение стека.

ivlad ★★★★★
()

Но обращение к нулевому указателю - не переполнение стека. Вообще говоря - валится, значить исправлять. Мож вся секурность и состоит в работе собственно этой проги? ;)

vodz ★★★★★
()

подробности:
это говорит о том что если взять core файл и подцепиться к нему
дебагером - то можно найти
1- где валится или переполняется (а потом завалить)
2- возможные данные оставшиеся в памяти (пароли)

посему рекомендуется на серверах отрубать создавание core файлов!

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

> 2- возможные данные оставшиеся в памяти (пароли)
это несколько преувеличено.

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

> А как отрубить создание core?
почитай документацию на PAM. Конкретно -- на pam_limits AFAIR

ivlad ★★★★★
()

Честно говоря я страшного ничего не увидел, судя по ответам

1) Потенциальное переполнение стека, обращене к нулевому указателю,
обращение к неверной области памяти - это проблеммы так сказать саммой
программы в котых ничего опасного кроме вырубания какогото отдельного сервиса нет.
2)Анализ файла core - теоретически возможно но только для некоторых прог,
и лечится запретом его создания
Но я слышал что этот самый Segmentation fault - приводит к получению
прав root локальными пользователями, кто чего может обьяснить
по этому поводу?

temofey
() автор топика

2barmasay: отрубить core можно в bash командой "ulimit -c 0"

temofey
() автор топика

итак при переполнении стэка с
может передаться соманда типа call или jimp куда попало
ежели это куда попало вылетает за пределы памяти где живет прога
то ядро прибивает прогу! получается корка :-)
ежели переход идет в рабочей области программы то это тоже к
хорошему неприводит!
Но переход может осуществится (так или иначе) в область переполненого
стэка--!
Тогда надо выяснить куда там улетает переход
проанализировать как переполняется стэк
ну и подсунуть такие данные в этот стэк(например из командной строки или
прямо запихать в сокет) чтобы в районе call-> оказался заранее подготовленный
код - ну дальше понятно ежели код наш то творим чего хотим !!!



PS: я сам не ломатель -- это полный мазохизм! Ну ежели мне совсем делать
нечего будет то от скуки может начну ломать.

Aleks_IZA
()
27 декабря 2000 г.
Ответ на: комментарий от temofey

Вообще зависит под каким юзером запущена прога,
поэтому придуманы были такие методы как запуск
например bind в chroot и под юзером 'xxx'
В этом случае при падении взломщики
не получают root-овых прав и даже shell (если сделан chroot)
Если хочешь назови это как запуск демона в safe-mode
Мне IMHO напоминает JVM

sandman
()

Локально-проблема может быть в suid (выполняется из под root-а)

sandman
()

Что вообще пускается - свое или чужое? Если самописное - то неверно написано. А чужое может работать только при своем запуске (типа из-под PPPD плугином), а при явном с консоли - бьет segmentation fault (была и у меня фишка с pppdverbose.so - примочка-статистика под PPP, по dial-up работает нормально, а с консоли валит ошибку).

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