Просветите насчет Segmentation fault - чем так страшно его появление и почему считается что программа его производящая приводит к потенциальной проблемме безопасности.
Но обращение к нулевому указателю - не переполнение стека. Вообще говоря - валится, значить исправлять. Мож вся секурность и состоит в работе собственно этой проги? ;)
подробности:
это говорит о том что если взять core файл и подцепиться к нему
дебагером - то можно найти
1- где валится или переполняется (а потом завалить)
2- возможные данные оставшиеся в памяти (пароли)
посему рекомендуется на серверах отрубать создавание core файлов!
Честно говоря я страшного ничего не увидел, судя по ответам
1) Потенциальное переполнение стека, обращене к нулевому указателю,
обращение к неверной области памяти - это проблеммы так сказать саммой
программы в котых ничего опасного кроме вырубания какогото отдельного сервиса нет.
2)Анализ файла core - теоретически возможно но только для некоторых прог,
и лечится запретом его создания
Но я слышал что этот самый Segmentation fault - приводит к получению
прав root локальными пользователями, кто чего может обьяснить
по этому поводу?
итак при переполнении стэка с
может передаться соманда типа call или jimp куда попало
ежели это куда попало вылетает за пределы памяти где живет прога
то ядро прибивает прогу! получается корка :-)
ежели переход идет в рабочей области программы то это тоже к
хорошему неприводит!
Но переход может осуществится (так или иначе) в область переполненого
стэка--!
Тогда надо выяснить куда там улетает переход
проанализировать как переполняется стэк
ну и подсунуть такие данные в этот стэк(например из командной строки или
прямо запихать в сокет) чтобы в районе call-> оказался заранее подготовленный
код - ну дальше понятно ежели код наш то творим чего хотим !!!
PS: я сам не ломатель -- это полный мазохизм! Ну ежели мне совсем делать
нечего будет то от скуки может начну ломать.
Вообще зависит под каким юзером запущена прога,
поэтому придуманы были такие методы как запуск
например bind в chroot и под юзером 'xxx'
В этом случае при падении взломщики
не получают root-овых прав и даже shell (если сделан chroot)
Если хочешь назови это как запуск демона в safe-mode
Мне IMHO напоминает JVM
Что вообще пускается - свое или чужое? Если самописное - то неверно написано. А чужое может работать только при своем запуске (типа из-под PPPD плугином), а при явном с консоли - бьет segmentation fault (была и у меня фишка с pppdverbose.so - примочка-статистика под PPP, по dial-up работает нормально, а с консоли валит ошибку).