chroot (від англ. change root) — в Unix-подібних операційних системах операція зміни кореневого каталогу. Програма, запущена зі зміненим кореневим каталогом, матиме доступ тільки до файлів, що містяться в цьому каталозі. Тому, якщо потрібно забезпечити програмі доступ до інших каталогів або файлових систем (наприклад, /proc), потрібно наперед примонтувати в цільовому каталозі необхідні каталоги або пристрої.
Зміна кореневого каталогу виконується за допомогою системного виклику chroot(2) і зачіпає тільки поточний процес (тобто, процес, що зробив системний виклик chroot(2)) і всіх його нащадків. Якщо потрібно запустити деяку програму зі зміненим кореневим каталогом, але в цій програмі не передбачено виконання виклику chroot(2), використовують програму chroot(8). Ця програма приймає як параметри новий кореневий каталог і шлях до програми. Вона спочатку сама виконує виклик chroot(2) для зміни власного кореневого каталогу на вказаний, а потім запускає програму за заданим шляхом. Оскільки змінений кореневий каталог успадковується нащадками процесів, програма запускається зі зміненим кореневим каталогом.
Сам по собі термін chroot може стосуватися або концепції змін кореневого каталогу, або системного виклику chroot(2) або програми chroot(8), що зазвичай зрозуміло з контексту.
Програма, корінь якої був перенесений в інший каталог, не може звертатися до файлів поза цим каталогом. Це забезпечує зручний спосіб помістити в «sandbox» («пісочницю») тестову, ненадійну або будь-яку іншу потенційно небезпечну програму. Це також простій спосіб механізму «jail» («в'язниці»). Але найчастіше chroot використовується для збірки дистрибутивів або окремих програм як би в «чистому» середовищі. (Дивись також Завантаження операційної системи).
На практиці, в chroot складно помістити програми, що мають при запуску знайти вільне місце на диску, файли конфігурації, файли пристроїв і динамічні бібліотеки в конкретних місцях. Для того, щоб дозволити програмам запуститися всередині chroot-каталогу, необхідно забезпечити їх мінімальним набором таких файлів, бажано акуратно вибраним так, щоб не дозволити ненавмисний доступ до системи зовні (наприклад, через файли пристроїв або FIFO).
Програмам дозволяється відкривати файлові дескриптори (для файлів, конвеєрів і мережевих з'єднань) в chroot, які можуть спростити створення jail, роблячи необов'язковим зберігання робочих файлів усередині каталогу chroot. Це також може використовуватися як проста capability-система, в якій програмі явно дається доступ до ресурсів зовні chroot, ґрунтуючись на дескрипторах, які містяться всередині.
Використання
- Розділення привілеїв
- chroot може використовуватися як попереджувальний засіб захисту від пролому безпеки, не дозволяючи потенційному атакуючому нанести будь-які пошкодження або зондувати систему за допомогою скомпрометованої програми. Наприклад, мережевий файловий сервер може робити chroot у той каталог, з якого він роздає файли відразу після з'єднання з клієнтом. Подібний підхід використовується MTA Postfix, який розділяє свою роботу на конвеєр менших, індивідуально ув'язнених в chroot програм.
- Виготовлення honeypot-ів
- chroot-каталог може бути наповнений так, щоб симулювати реальну систему з запущеними мережними сервісами. Механізм chroot в результаті може запобігти витоку інформації, оскільки атакоючий отримає інформацію про штучне оточення, це потенційно ускладнить злом реальної системи.
- Тестування
- Ізоляція, яка забезпечується механізмом chroot, також корисна для цілей тестування. Окрема копія операційної системи може бути встановлена в chroot-каталог як тестове оточення для ПЗ, яке інакше було б дуже ризиковано розгортати на працюючій системі.
Недоліки
Тільки суперкористувач (root) може виконувати системний виклик chroot(2). Це необхідно для того, щоб запобігти атаці з боку користувача за допомогою поміщення setuid-ної програми всередині спеціально виготовленою chroot jail (наприклад, з помилковим файлом /etc/passwd), що призводитиме до того, що вони отримають підвищення привілеїв.
Сам по собі механізм chroot не повністю безпечний. Якщо програма, запущена в chroot має привілеї root, вона може виконати second chroot для того, щоб вибратися назовні. Це працює тому, що деякі ядра Unix не дозволяють правильного вкладення контекстів chroot.
Більшість систем Unix не повністю орієнтовані на файлову систему і залишають потенційно руйнівну функціональність, таку як мережну і контроль процесів, доступною через інтерфейс системних викликів до програми в chroot.
Механізм chroot сам по собі не вміє здійснювати лімітації на ресурси, такі як пропускна спроможність вводу-виводу, дисковий простір або час центрального процесора.
Див. також
Посилання
- chroot(2) сторінка допомоги в FreeBSD [ 22 грудня 2013 у Wayback Machine.](англ.)
- chroot(8) сторінка допомоги в FreeBSD [ 22 грудня 2013 у Wayback Machine.](англ.)
- (англ.)
- Налаштування OpenSSH chroot в FreeBSD [ 23 жовтня 2009 у Wayback Machine.](англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
chroot vid angl change root v Unix podibnih operacijnih sistemah operaciya zmini korenevogo katalogu Programa zapushena zi zminenim korenevim katalogom matime dostup tilki do fajliv sho mistyatsya v comu katalozi Tomu yaksho potribno zabezpechiti programi dostup do inshih katalogiv abo fajlovih sistem napriklad proc potribno napered primontuvati v cilovomu katalozi neobhidni katalogi abo pristroyi Zmina korenevogo katalogu vikonuyetsya za dopomogoyu sistemnogo vikliku chroot 2 i zachipaye tilki potochnij proces tobto proces sho zrobiv sistemnij viklik chroot 2 i vsih jogo nashadkiv Yaksho potribno zapustiti deyaku programu zi zminenim korenevim katalogom ale v cij programi ne peredbacheno vikonannya vikliku chroot 2 vikoristovuyut programu chroot 8 Cya programa prijmaye yak parametri novij korenevij katalog i shlyah do programi Vona spochatku sama vikonuye viklik chroot 2 dlya zmini vlasnogo korenevogo katalogu na vkazanij a potim zapuskaye programu za zadanim shlyahom Oskilki zminenij korenevij katalog uspadkovuyetsya nashadkami procesiv programa zapuskayetsya zi zminenim korenevim katalogom Sam po sobi termin chroot mozhe stosuvatisya abo koncepciyi zmin korenevogo katalogu abo sistemnogo vikliku chroot 2 abo programi chroot 8 sho zazvichaj zrozumilo z kontekstu Programa korin yakoyi buv perenesenij v inshij katalog ne mozhe zvertatisya do fajliv poza cim katalogom Ce zabezpechuye zruchnij sposib pomistiti v sandbox pisochnicyu testovu nenadijnu abo bud yaku inshu potencijno nebezpechnu programu Ce takozh prostij sposib mehanizmu jail v yaznici Ale najchastishe chroot vikoristovuyetsya dlya zbirki distributiviv abo okremih program yak bi v chistomu seredovishi Divis takozh Zavantazhennya operacijnoyi sistemi Na praktici v chroot skladno pomistiti programi sho mayut pri zapusku znajti vilne misce na disku fajli konfiguraciyi fajli pristroyiv i dinamichni biblioteki v konkretnih miscyah Dlya togo shob dozvoliti programam zapustitisya vseredini chroot katalogu neobhidno zabezpechiti yih minimalnim naborom takih fajliv bazhano akuratno vibranim tak shob ne dozvoliti nenavmisnij dostup do sistemi zovni napriklad cherez fajli pristroyiv abo FIFO Programam dozvolyayetsya vidkrivati fajlovi deskriptori dlya fajliv konveyeriv i merezhevih z yednan v chroot yaki mozhut sprostiti stvorennya jail roblyachi neobov yazkovim zberigannya robochih fajliv useredini katalogu chroot Ce takozh mozhe vikoristovuvatisya yak prosta capability sistema v yakij programi yavno dayetsya dostup do resursiv zovni chroot gruntuyuchis na deskriptorah yaki mistyatsya vseredini VikoristannyaRozdilennya privileyiv chroot mozhe vikoristovuvatisya yak poperedzhuvalnij zasib zahistu vid prolomu bezpeki ne dozvolyayuchi potencijnomu atakuyuchomu nanesti bud yaki poshkodzhennya abo zonduvati sistemu za dopomogoyu skomprometovanoyi programi Napriklad merezhevij fajlovij server mozhe robiti chroot u toj katalog z yakogo vin rozdaye fajli vidrazu pislya z yednannya z kliyentom Podibnij pidhid vikoristovuyetsya MTA Postfix yakij rozdilyaye svoyu robotu na konveyer menshih individualno uv yaznenih v chroot program Vigotovlennya honeypot iv chroot katalog mozhe buti napovnenij tak shob simulyuvati realnu sistemu z zapushenimi merezhnimi servisami Mehanizm chroot v rezultati mozhe zapobigti vitoku informaciyi oskilki atakoyuchij otrimaye informaciyu pro shtuchne otochennya ce potencijno uskladnit zlom realnoyi sistemi Testuvannya Izolyaciya yaka zabezpechuyetsya mehanizmom chroot takozh korisna dlya cilej testuvannya Okrema kopiya operacijnoyi sistemi mozhe buti vstanovlena v chroot katalog yak testove otochennya dlya PZ yake inakshe bulo b duzhe rizikovano rozgortati na pracyuyuchij sistemi NedolikiTilki superkoristuvach root mozhe vikonuvati sistemnij viklik chroot 2 Ce neobhidno dlya togo shob zapobigti ataci z boku koristuvacha za dopomogoyu pomishennya setuid noyi programi vseredini specialno vigotovlenoyu chroot jail napriklad z pomilkovim fajlom etc passwd sho prizvoditime do togo sho voni otrimayut pidvishennya privileyiv Sam po sobi mehanizm chroot ne povnistyu bezpechnij Yaksho programa zapushena v chroot maye privileyi root vona mozhe vikonati second chroot dlya togo shob vibratisya nazovni Ce pracyuye tomu sho deyaki yadra Unix ne dozvolyayut pravilnogo vkladennya kontekstiv chroot Bilshist sistem Unix ne povnistyu oriyentovani na fajlovu sistemu i zalishayut potencijno rujnivnu funkcionalnist taku yak merezhnu i kontrol procesiv dostupnoyu cherez interfejs sistemnih viklikiv do programi v chroot Mehanizm chroot sam po sobi ne vmiye zdijsnyuvati limitaciyi na resursi taki yak propuskna spromozhnist vvodu vivodu diskovij prostir abo chas centralnogo procesora Div takozhchmod Sandbox pisochnicya Posilannyachroot 2 storinka dopomogi v FreeBSD 22 grudnya 2013 u Wayback Machine angl chroot 8 storinka dopomogi v FreeBSD 22 grudnya 2013 u Wayback Machine angl angl Nalashtuvannya OpenSSH chroot v FreeBSD 23 zhovtnya 2009 u Wayback Machine angl