Пояснення nodev та nosuid у fstab


44

Я бачу ці два варіанти, які постійно пропонуються в Інтернеті, коли хтось описує, як встановити tmpfs або ramfs. Часто також з noexec, але мене спеціально цікавлять nodev та nosuid. Я в основному ненавиджу лише сліпо повторювати те, що хтось запропонував, без реального розуміння. І оскільки я бачу в мережі лише інструкції з копіювання / вставки, я прошу тут.

Це з документації:
nodev - Не інтерпретуйте блок спеціальних пристроїв у файловій системі.
nosuid - Блокуйте роботу бітів suid та sgid.

Але я хотів би практичного пояснення, що може статися, якщо я вийду з цих двох. Скажімо, я налаштував tmpfs або ramfs (без цих двох згаданих параметрів), який є доступним (читати + записувати) певним (некореневим) користувачем у системі. Що може зробити цей користувач, щоб нашкодити системі? Виключення випадків споживання всієї доступної системної пам'яті у разі рамкових файлів


1
Це хороша відповідь на ваш Q: unix.stackexchange.com/questions/188601/…
Еліптичний вигляд

Відповіді:


36

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

  • Параметр кріплення nodev вказує, що файлова система не може містити спеціальних пристроїв: Це запобіжна безпека. Ви не хочете, щоб користувальницька файлова система, доступна у всьому світі, мала потенціал для створення символьних пристроїв або доступу до апаратних засобів випадкових пристроїв.

  • Параметр кріплення nosuid вказує, що файлова система не може містити встановлені файли userid. Попередження встановлених бінарних файлів у файловій системі, що записується у світі, має сенс, оскільки там існує ризик ескалації кореня чи іншої жахливості.

Для того, що варто, я часто не використовую ці параметри ... лише в системах, що стоять перед громадськістю, де є інші міркування відповідності.


1
Я фактично маю публічну систему, оскільки програмне забезпечення працює під тим обліковим записом, який знаходиться в мережі. Тож мені цікаво, які тут сценарії. Що робити, якщо хтось отримує доступ до оболонки через деяку вразливість. Звичайно, є й інші речі, які він може зробити для ескалації прав, але я б хотів їх мінімізувати. Тому мені цікаво, наприклад, для suid, чи не зможе користувач все-таки змінити цей прапор незалежно від того, дозволяє це файлова система чи ні. Чи є варіант nosuid тоді лише запобігати випадковому погано налаштованому програмному забезпеченню (коренем)? Або користувач може експлуатувати це самостійно?
Іван Ковачевич

1
@IvanKovacevic Не потрібно використовувати рекомендовані параметри кріплення файлової системи. Вони там, щоб зменшити вектор атаки. Вивчення сценаріїв "що робити", можливо, виходить за рамки цього питання.
ewwhite

3
@ewwhite: щодо того, nosuidчи не ігнорується встановлений біт? (замість The nosuid mount option specifies that the filesystem cannot contain set userid files)
користувач2284570
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.