преамбула
Я продовжую чути, як люди повторюють помилки з усього Інтернету .. таким чином, я спробую дати деяке уточнення
По-перше; скільки випадкових відкриттів було, що просто .. внаслідок причини та наслідку в кінцевому підсумку використовувались для чогось іншого, ніж за призначенням?
що було, а що таке - тюрма Chroot
Chroot спочатку був розроблений для зміни кореневого каталогу для процесу або користувача (відмінно підходить для компіляції програмного забезпечення з невідомих джерел). це забезпечило безпеку базової системи, а також прилад для швидкого тестування ліжка, включаючи просте очищення. З тих пір минули роки, і його концепція та загальне використання, безсумнівно, також змінилися.
chroot ефективно використовується і знаходиться безпосередньо в базі коду для декількох програм і бібліотек (наприклад, openSSHd, apache2 + mod_security2 / mod_chroot, dovecot, sendmail, openVPN, pam_chroot тощо ). якщо припустити, що всі ці основні програми впровадили несправні рішення безпеки, це просто неправда
chroot - це рішення для віртуалізації файлової системи: ні менше, ні більше. припущення, що ви можете легко вирватися з хротону, також не відповідає дійсності ... доки ви дотримуєтесь вказівок щодо запуску процесів усередині в'язниці Chroot.
кілька кроків, щоб убезпечити тюрму Chroot
тобто НЕ запускайте процеси як ROOT. це може відкрити вектор ескалації кореня (що також вірно всередині чи поза хроном). не запускайте процес всередині chroot, використовуючи того самого користувача, що й інший процес поза chroot. відокремте кожен процес та користувача у своєму Chroot, щоб обмежити атакуючі поверхні та забезпечити конфіденційність. монтуйте лише необхідні файли, бібліотеки та пристрої. нарешті, chroot НЕ замінює базову безпеку системи. захистити систему в повному обсязі.
Ще одна важлива примітка: багато людей думають, що OpenVZ зламаний або що він не є рівним порівняно з повною системою віртуалізації. вони роблять це припущення, оскільки це, по суті, Chroot, із таблицею процесів, яка була стерилізована. при застосуванні заходів безпеки на апаратних і пристроях. більшість з яких ви можете реалізувати в хротоні.
не кожен адміністратор має рівень знань, необхідний для забезпечення всіх необхідних параметрів ядра на спеціальному сервері або за умови повної віртуалізації системи. це означає, що розгортання OpenVZ означає, що у ваших клієнтів буде набагато менше поверхні атаки, щоб спробувати прикрити та захистити перед розгортанням своїх додатків. хороший хост зробить гарну роботу, забезпечивши ці параметри, а це, в свою чергу, краще не тільки для всіх у Вузлі чи в дата-центрі, але і для Інтернету в цілому ...
як зазначено, chroot забезпечує віртуалізацію файлової системи. ви повинні переконатися у відсутності встановлених виконуваних файлів, незахищених програм, бібліотек, звисаючих безвласницьких символьних посилань тощо. Якщо зловмисник БУДЕ компрометувати прив'язку, їм потрібно буде прокрутити віртуальну файлову систему, щоб щось перекрити буфером, грати з дескрипторами файлів або іншим способом компрометувати щось, що перебуває всередині хрото- виходу з в'язниці, як правило, шляхом ескалації привілеїв або введення його або її корисного вантажу в базову систему.
якщо це трапляється, це зазвичай є результатом поганого оновлення, нульового експлуатування або ідіоматичної помилки людини .
чому Chroot досі використовується, на відміну від повної віртуалізації системи
врахуйте цей сценарій: ви запускаєте віртуальний приватний сервер, а вузловий хост працює на OpenVZ. ви просто не можете запустити нічого, що працює на рівні ядра. це також означає, що ви не можете використовувати віртуалізацію операційної системи для розділення процесів та надання додаткової безпеки. таким чином, Ви ПОВИНЕН використовувати chroot для цієї мети.
крім того, chroot є стійким у будь-якій системі, незалежно від наявних ресурсів. Простіше кажучи, він має найменші витрати на будь-який тип віртуалізації. це означає, що вона як і раніше важлива для багатьох нижніх коробок.
розгляньте інший сценарій: у вас є апарат, який працює у віртуалізованому середовищі. ви хочете розділити кожного користувача. забезпечення віртуалізованої файлової системи через додавання chroot до apache (mod_chroot, mod_security тощо) було б найкращим варіантом для забезпечення максимальної конфіденційності між кінцевими користувачами. це також запобігає збиранню інформації та пропонує ще один рівень безпеки.
простіше кажучи, важливо реалізувати безпеку в шарах . Chroot потенційно є одним з них. не у всіх і в кожній системі є розкіш доступу до ядра, тому chroot STILL служить цілі. існує безліч застосувань, в яких повна віртуалізація системи по суті є надмірною.
У відповідь на ваше запитання
Я особливо не використовую CentOS, але я знаю, що Bind тепер відмовляється від своїх привілеїв перед операціями. Я б припускав, однак, що зв'язування введене в силу своєї історії векторів атак та потенційних вразливих місць.
також ... має сенс автоматично хронізувати цю програму, ніж ні, тому що НЕ ВСЕ кожен має доступ до повної віртуалізації на рівні системи / операційної системи. це, в свою чергу, і теоретично допомагає забезпечити безпеку бази користувачів CentOS:
Провайдери операційної системи просто не обійдуться, припускаючи, що кожен працює в одній і тій же системі. таким чином вони можуть допомогти забезпечити додатковий рівень безпеки в цілому ...
є причина, чому так багато додатків використовують це , і чому, очевидно, ваша ОС працює за замовчуванням: тому що вона використовується як функція захисту, і вона НЕ працює. при ретельному приготуванні, як було зазначено раніше, це ще одне перешкода, яку потенційний зловмисник повинен подолати - більшість часу, обмежуючи шкоду, заподіяну лише в'язниці Chroot.