Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БІКС 2015_1 / 8лек Засоби захисту в операційній системі UNIXповн.doc
Скачиваний:
78
Добавлен:
12.02.2016
Размер:
5.46 Mб
Скачать

12.3. Безпека unix

12.3.1. Модель безпеки системи unix

Модель безпеки системи UNIX згідно з [104] можна подати як діаграму (рис. 12.3).

Мережна безпека

Рис. 12.3- Модель безпеки системи UNIX

Зовнішній рівень захисту — це фізичний захист системи (контроль фізичного доступу користувачів до системи) і мережна безпека (захист периметра за допо­могою міжмережних екранів і приховування, тобто інкапсуляція, трафіку). Пи­тання щодо мережної безпеки буде розглянуто в розділах 15-19. Наступний рі­вень захисту — це захист облікових записів користувачів за допомогою паролів. Останній рівень захисту — це розмежування доступу користувачів до файлової системи та шифрування критичних із міркувань безпеки файлів.

12.3.2. Підсистема ідентифікації й автентифікації

У системі UNIX єдині можливі суб'єкти доступу — користувачі [91]. Крім зви­чайних, є ще й спеціальні користувачі, яких система жодним чином не відрізняє від звичайних. Насправді ж спеціальні користувачі є фіктивними і фактично пред­ставляють системні процеси або групи процесів [15]. Система розрізняє корис­тувачів за їхніми UID (User ID) — числовими ідентифікаторами облікових запи­сів. Користувачі замість числових ідентифікаторів застосовують умовне ім'я, яке складається з одного слова, — login_name. Взаємодіючи з користувачами (на­приклад, під час виведення інформації про тих із них, що працюють у системі в поточний момент), система транслює UID у login_name. Автентифікуючою ін­формацією є пароль — рядок символів, на який залежно від версії системи та її конфігурації накладаються певні обмеження. До пароля — однієї з найважливі­ших складових безпеки системи — потрібно ставитися уважно, оскільки, заво­лодівши ним, зловмисник зможе працювати в системі з повноваженнями легаль­ного користувача. Дуже важливо дотримувати певних правил вибору пароля. Є засоби, що дають змогу адміністраторам:

  • встановлювати обмеження на пароль (наприклад, його мінімальну припусти­му довжиНу, дозвіл на використання у паролі великих букв, цифр, спеціаль­них символів) або застосовувати лише згенеровані системою паролі;

  • задавати час змінення пароля;

  • блокувати доступ користувача в систему після закінчення терміну дії пароля і після здійснення певної кількості неуспішних спроб введення пароля; .

  • задавати інші обмеження.

Паролі не зберігають у системі у відкритому вигляді, а зберігають лише їхні образи — результат виконання деякого перетворення над рядком пароля. Звичай­но використовують одну з відомих криптографічно стійких хеш-функщй — легко обчислювану функцію, для якої зворотна не може бути обчислена у прийнятний термін. Раніше для цього використовували алгоритм DES, який підтримується й дотепер. Хоча, сьогодні найбільш поширеним є алгоритм MD5, його поступово витісняє ще більш стійкий алгоритм SHA. Односторонність функції не дає змоги відновити пароль за його образом, натомість можна одержащобраз (шляхом об­числення значення хеш-функції) і таким чином перевірити правильність введе­ного користувачем пароля. Шифрування паролів під час їх первинного введення, а також під час перевірки в ході процедури автентифікації здійснює системна функція crypt.

Задля реалізації цієї функції вживають заходів, що запобірають добиранню па­ролів. Один із них — штучне вповільнення процедури шифрування. 3 огляду на те, що процедура введення користувачем рядка символів із клавіатури значно повіль­ніша за процедуру будь-яких обчислень, таке вповільнення може суттєво переш­коджати виконанню автоматизованих процедур добирання паролів за допомогою створених зловмисниками програм, жодним чином не впливаючи на здійснення користувачем входження в систему.ЙрІ

Іншим, іще потужнішим заходом захисту є використання так званого маркан-та (SaIt) [91]. Маркант (два довільних символи) додається до введеного пароля і лише після цього здійснюється його хешування. Маркант зберігається в системі разом із хеш-образом пароля. Тож якщо два користувачі застосовуватимуть од­накові паролі, їх образи будуть різними. Це суттєво ускладнює спроби добирання паролів користувачів за словником. Справді, без маркантів усі паролі давали б однакові образи, і тоді можна було б один раз здіЙснити хешування слів зі слов­ника, а потім дуже швидко порівняти знайдені образи з образами паролів, що зберігаються в системі. Наявність марканта змушує або здійснювати хешування безпосередньо під час добирання пароля, що вповільнює процес, або для кожного слова зі словника знаходити велику кількість (тисячі) різних образів для всіх можливих маркантів.

Ідентифікатори користувачів та інша інформація облікових записів (без обра­зу паролів) міститься у файлі /etc/passwd, який доступний для читання всім ав­торизованим корстувачам системи. Образи паролів зберігаються у файлі /etc/ shadow (у більшості UNIX-подібних систем) або /etc/master.passwd (у BSD), до­ступ на читання і записування до якого має лише суперкористувач (root). Завдя­ки цьому ніхто, крім суперкористувача, не може отримати образ пароля, відтак унеможливлюється добирання паролів інакше, ніж їх перебиранням.

Якщо у файлі /etc/master.passwd або /etc/shadow поле, де має міститися па­роль користувача, порожнє, то цей користувач входить у систему без автентифі­кації. Якщо ж це поле містить деяку послідовність символів, що не є хеш-образом будь-якого пароля, то інтерактивне входження в систему для такого користувача взагалі заборонене. Здебільшого інтерактивне входження в систему заборонено всім спеціальним користувачам. Найчастіше для цього в поле пароля вносять символ «*». Але в деяких системах рекомендують використовувати спеціальні послідовності символів, які дають змогу адміністратору з'ясувати причину забо­рони входження в систему.

Формат файлу /etc/passwd стандартний для всіх систем UNIX. Це тексто­вий файл, якййможна переглядати за допомогою текстового редактора або ути­літ cat, more тощо. Структура файлу подібна до структури бази даних, тому кожний його рядок так само називають записом. Вінвизначає дані стосовно од­ного користувача. Кожний запис має сім полів, розділених символами «>. Поля мають такі значення:

  • login_name (ідентифікатор користувача);

  • символ «*>> (колись це поле займав образ пароля);

  • UID (числовий ідентифікатор користувача, який застосовує система);

  • GID (числовий ідентифікатор первинної групи користувача);

  • додаткова текстова інформація про користувача, яку система може виводити;

  • «домашній» каталог користувача, в якому користувач розпочинає роботу;

  • програма, яку система запускає від імені користувача, для того щоб він розпо­чав роботу в системі.

Файл /etc/master.passwd у системі FreeBSD відрізняється від файлу /etc/pas­swd тим, що в його другому полі містяться образи паролів, а також є ще п'ять до­даткових полів, які задають обмеження на термін чинності пароля. В інших системах аналогічний файл може мати іншу назву (наприклад, у багатьох системах, що ус­падковують класичний UNIX від AT&T, Щ це файл /etc/shadow) й інший фор­мат. Наприклад, в ОС Solarisy файлі /etc/shadow перше поле містить login__name, друге поле - - образ пароля, а далі йдуть п'ять полів, які визначають правила змінення пароля користувачем, зокрема термін чинності пароля.

Хоча файл /etc/passwd можна редагувати у звичайному текстовому редакторі, робити це потрібно обережно, позаяк наслідки можуть бути непередбачувані. Піс­ля його редагування не змінюється файл /etc/master.passwd (або /etc/shadow у різних системах), тож у такий спосіб не можна додавати або видаляти користува­чів. Внесені під час редагування файлу /etc/master.passwd або /etc/shadow зміни мали б ефект, якби інформацію з цих файлів було синхронізовано з інформацією у файлі /etc/passwd. Окрім того, сучасні системи UNIX використовують інформа­цію з недоступних користувачам системних таблиць, яка теж мала б змінюватися відповідно до змінень, внесених у файлі /etc/master.passwd або /etc/ shadow. Та­ку синхронізацію здійснює окремий системний виклик.

Є також спеціальні утиліти, які дають змогу виконати всі ці дії за допомогою однієї команди. Стандартною є утиліта vipw, доступна суперкористувачу. У сис­темі FreeBSD ця утиліта запускає редактор vi (або інший редактор, відповідно до настроювань) для редагування файлу /etc/master.passwd, а за спроби зберегти файл перевіряє коректність внесених змін і автоматично вносить відповідні змі­ни до файлу /etc/passwd і системних таблиць. У системі Solaris, навпаки, вона редагує файл /etc/passwd, а оновлення інформації в файлі /etc/shadow здійсню­ють додаткові системні засоби.

Стандартна процедура ідентифікації й автентифікації здійснюється таким чи­ном: у відповідь на запит системи користувач вводить свої ідентифікатор і па­роль, а система, використовуючи інформацію із файлу /etc/master.passwd (або із файлів /etc/passwd та /etc/shadow), перевіряє пароль на відповідність. За цю про­цедуру відповідає системна утиліта login. Якщо пароль правильний, здійснюється авторизація користувача, що для ОС UNIX полягає в запуску від імені щойно за­реєстрованого користувача програми, вказаної в останньому полі запису для цього користувача у файлі /etc/passwd. Як правило, це одна з наявних у системі оболо­нок shell — командних інтерпретаторів, завдяки яким користувачі можуть запус­кати програми і керувати їх виконанням. Уся робота користувача в системі від­бувається в межах shell, тому вихід із неї означає вихід із системи.