У стандартній файловій системі Linux який із цих поширених каталогів за замовчуванням можна записати у всьому світі ?
/tmp
/etc
/var
/proc
/bin
/boot
/....
....
Чому вони є світовими? Чи це загрожує безпеці?
У стандартній файловій системі Linux який із цих поширених каталогів за замовчуванням можна записати у всьому світі ?
/tmp
/etc
/var
/proc
/bin
/boot
/....
....
Чому вони є світовими? Чи це загрожує безпеці?
Відповіді:
Єдині довідники, наділені FHS, які, як правило, використовуються для запису у світі, є /tmpі /var/tmp. В обох випадках це тому, що вони призначені для зберігання тимчасових файлів, які може створити будь-хто.
Також поширене /dev/shm, як tmpfs (файлова система, що підтримується оперативною пам’яттю), для швидкого доступу до даних середнього розміру, що поділяються між процесами, або просто створення файлів, які гарантовано знищуються при перезавантаженні.
Також можуть бути довідники /var/mailабо /var/spool/mail, а іноді й інші спойлери. Вони використовуються для тимчасового зберігання пошти до її обробки. Вони не завжди доступні для запису у світі, залежно від використовуваних інструментів. Коли вони є, це тому, що файли можуть створюватися там інструментами користувача для обробки демонами.
У всіх цих каталогах зазвичай встановлено липкий біт ( t), це означає, що лише власник файлу або каталогу може переміщувати або видаляти файли в ньому.
Будь-яка програма, що працює як будь-який користувач, може створювати файли в цих каталогах, і це залежить від створення програми, щоб зробити все правильно, наскільки захищає конкретні дані. Немає особливих загальних проблем із безпекою, крім того, що хтось потенційно може заповнити файлову систему, але достатньо можливостей для програми, щоб помилити її.
Відбулися певні кроки до конкретних службових /tmpкаталогів. Вони уникають деяких можливих помилок, які можуть виникнути, тому не так важливо, щоб програма не мала помилок у тому, як вона використовує каталог.
Ви можете знайти каталоги, що записуються у вашій системі, за допомогою:
find / -maxdepth 3 -type d -perm -777
/tmp, /var/tmpІ /var/lockвсесвітньо-записувані за замовчуванням. Можуть бути посилання, такі як /usr/tmp→ /var/tmp, передбачені сумісністю зі старими програмами.
/tmpі /var/tmpдля запису у всьому світі, оскільки вони призначені для використання будь-яким користувачем для будь-якого тимчасового зберігання. /var/lockє доступним для запису у всьому світі, так що будь-який процес, виконаний як будь-який користувач, може створювати файли блокування в центральному місці.
Чи існує ризик безпеки? Ні, але це так.
Дозволи для всіх цих каталогів є 1777, причому провідним 1є клейкий біт . Це означає, що хоча хтось може створити файл у цих світових каталогах, лише власник може видалити власні файли (і, звичайно, користувач root також може).
Можливий ризик безпеки може виникнути через створення небезпечних тимчасових файлів. Оскільки ці каталоги є безкоштовними для всіх, користувачі повинні вживати заходів обережності, щоб переконатися, що створені ними файли - це фактично нові файли, а не відкривати існуючий файл чи символьну посилання, які, можливо, посадили там зловмисні користувачі. Якщо файли створюються за допомогою належних методів, таких як open(…, O_EXCL)або mkstemp(3), такого ризику можна уникнути.
/tmp
Це ризиковано, адже для безпечного використання потрібно додати додатковий код. Очевидно, що це не помічається.
Недавній приклад наводить Стів Кемп. http://blog.steve.org.uk/somasures_reading_code_makes_you_scream_.html
./mgmt/tools/SysAPI.cc: tmp = fopen("/tmp/shadow", "w"); ./mgmt/tools/SysAPI.cc: system("/bin/mv -f /tmp/shadow /etc/shadow");
Якщо ви (зловмисник) заміните / tmp / тінь перед другим рядком, ви отримаєте заміну пароля всіх. (Я думаю, що атака вимагає від вас створити файл перед першим рядком і зробити файл доступним для запису).
Systemd on linux дозволяє пом'якшити такі вразливості, виділивши / tmp для багатьох системних служб. (За винятком тих, що "неправильно використовують / tmp як місце розташування для IPC-розеток та інших комунікативних примітивів").
У Fedora Linux - http://fedoraproject.org/wiki/Features/ServicesPrivateTmp
Системне пояснення - http://0pointer.de/blog/projects/security.html
fopenйого перезаписують, але не скидають дозволи, тому шкідливий користувач все одно може вносити зміни. Також зловмисний користувач міг би зробити щось на кшталт ln -s /bin/bash /tmp/shadowперед першим рядком, щоб істотний бінарний файл перезаписався.
Щоб знайти каталоги, що записуються у світі, ви можете використовувати
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
Для файлів змініть тип на f
Для символьних посилань введіть до l
Щоб встановити клейкий біт:
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print0| xargs -0 chmod +t
/var/lock→/run/lock