Автор Тема: Perl & SuExec  (Прочетена 5146 пъти)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Perl & SuExec
« Отговор #15 -: Aug 09, 2011, 19:36 »
Само не разбрах, защо от Perl го обърнахме на C?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

Mitaka

  • Гост
Re: Perl & SuExec
« Отговор #16 -: Aug 09, 2011, 19:44 »
Само не разбрах, защо от Perl го обърнахме на C?

Защото това е wrapper, т.е. перла го извиква с аргумент - приложението, което искаш да пуснеш като root, напр. system("wrapper /bin/bash") А на perl няма как да напишеш подобно нещо, или поне аз не знам как.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Perl & SuExec
« Отговор #17 -: Aug 10, 2011, 00:10 »
Не бих посъветвал никой да прави suid wrapper-и, да ползва sudo, да пише демони с root-ски привилегии, които изпълняват потребителски вход и тем подобни неща освен в краен случай и почти винаги има алтернативи. Изпълнението на какъвто и да било потребителски вход, независимо колко орязано и безопасно изглежда и колко добре се филтрират лоши неща, винаги има проблеми. Мога да дам много примери, съвсем реални. В повечето случаи има начин да се реши проблема без да се минава през "грубия" механизъм. Ако е за писане на файл където ти трябват superuser-ски позволения, това се решава с acl-и. Ако ти трябват raw сокети, това се решава с chcap. И така нататък.

На човек обикновено му е трудно да си представи как дребни неща могат да доведат до големи проблеми. Прекалено голяма част от софтуера въобще не е правен с идеята да работи с административни привилегии. Мога да дам един прост пример отпреди години - tool-че, което е доста полезно, защото ти позволява да пращаш доста свободно-нагласени IP пакети (примерно custom-ски protocol type, TTL, съответно флагове разни ако е TCP и т.н.). Доста забавен инструмент за тестване на разни firewall-и. Съответно за да може да изпраща такива неща, трябва да отвори raw сокет, а за да го направи непривилегирован потребител, бяха решили да го suid-нат. Всичко е много хубаво, но хората които го бяха писали бяха оставили възможността да се изпише резултата в текстов лог файл. При което не се бяха сетили че като е suid-нато, можеш да мажеш по всякакви файлове, създавайки symlink-ове към тях. С добре приготвени параметри спокойно замазвах и /etc/passwd и /etc/shadow и си създавах собствен root-ски потребител с моя си парола. Доста тъпо.
Активен

"Knowledge is power" - France is Bacon

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Perl
Общ форум
x11r6 5 3560 Последна публикация Aug 09, 2003, 10:03
от x11r6
Perl
Общ форум
Йордан 3 3006 Последна публикация Nov 13, 2003, 16:14
от Йордан
Gtk-Perl
Хардуерни и софтуерни проблеми
apogza 0 1916 Последна публикация Jan 24, 2004, 12:52
от apogza
Ползва ли се Perl в България и за какво?
Общ форум
berov 63 19202 Последна публикация Jan 31, 2005, 11:17
от toxigen
Apache2+suphp+suexec+chroot
Настройка на програми
d3v1ous 4 2280 Последна публикация Jan 14, 2011, 10:25
от d3v1ous