Linux: встановлені програми без дозволу читання


4

Я помітив, що у всіх системах Linux ArchLinux *деякі setuidпрограми мають досить незвичні права:

-r-sr-xr-x кореневий корінь / bin / su *
--- s - x - x root root / usr / bin / sudo *

Питання в тому, чому sudoдвійковий набір можна читати тільки для кореня? У чому сенс цього? Чому він не може бути таким su?

Редагувати: Після перевстановлення sudoвін також не читає / записує.

( *Я міг присягнути, що бачив те саме в Debian. Мабуть, ні.)

Відповіді:


4

Перше питання, яке мені спало на думку, - це чому sudoдозволу на запис для root?

Загалом, суїд програми дуже небезпечні, і вам слід надати їм якомога менше пільг. Ви не можете отримати набагато більш обмежувальний характер, ніж виконати дозвіл!

Якщо ви можете прочитати файл, його можна розібрати. І якщо ви зможете його розібрати, ви можете шукати недоліки безпеки та полегшити пошук векторів нападу.

sudoє трохи більш вразливим для атаки, ніж suтому, що вам не завжди потрібно вводити пароль, щоб мати привілейований доступ до деяких ресурсів (залежно від способу налаштування). Це може гарантувати більш жорстку безпеку.


А якщо ви можете скласти це самостійно? Хіба це не зробить це ще простіше?
grawity

1
Це лише додаткова перешкода, що потенційному нападу доведеться стрибнути. Це недостатньо само по собі, але як додатковий рівень захисту він може того вартий.
Стівен Дарлінгтон

0

На моїй машині, Ubuntu 9.04, різниці в дозволах немає.

-rwsr-xr-x 2 root root /usr/bin/sudo
-rwsr-xr-x 1 root root /bin/su

На вашій машині це, можливо, було зроблено не читабельним у спробі не допустити використання ним людей? Можливо, це якось відредагували? Немає жодних причин для того, щоб дозволи на два файли були різними. У Ubuntu кореневий обліковий запис заблоковано - ви не можете ввійти як root як завгодно (якщо ви не вживатимете дій, щоб це ввімкнути).

Можливо, тут є відмінності в ОС. Яку ОС ви використовуєте у своєму прикладі?


Перевірив це ще раз, і, здається, це трапляється лише в Arch Linux. (Насправді після перевстановлення sudoпакета його двійкові
файли

Makefile з оригінального вихідного пакету від sudo.ws також встановлюється sudoяк 4111.
grawity

Поширені питання про sudo кажуть, що дозволи на sudo (повинні бути) "щось подібне chmod 4111 /usr/local/bin/sudo". У мене виникають проблеми з пошуку еквівалентної інформації для su. Чи можливо, що різниця є лише історичною, оскільки два бінарні файли мають дві різні групи розробників?
DaveParillo

0

Я сумніваюся у вашій передумові. Чому судо має бути як су?

su надає лише приватні особи, якщо ви (а) вже маєте їх або (b) підтвердите автентифікацію, щоб отримати їх.

sudo надає приватні особи на базі правил; можна сказати, наприклад, надати root privs 'joe' у будь-який час, коли Джо запитає, без пароля. "людина sudoers" - її досить потужна.

Тож судо має можливість робити те, що не може робити.

Можна наштовхнутися на виконувану версію sudo таким чином, щоб вона завжди отримувала корінь для кожного, хто запитав - ігноруючи файл sudoers і просто використовуючи внутрішню "шнур-проводку".

Тому має сенс захищати його БІЛЬШЕ, ніж нам потрібно для захисту су; є сенс зробити це дуже важко читати чи писати самому виконуваному файлу sudo.


Питання стосувалося readдозволу, не write.
grawity

Перший крок створення "ступні" - це читання виконуваного файлу, щоб ви могли дізнатися, як він працює, і де можна тупати. Таким чином я поправив свою відповідь.
PBR
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.