Розширення привілеїв
Якщо зломщик зміг дістатися до облікового запису користувача в системі Windows 2000, то наступним його бажанням стане отримання виняткових привілеїв — прав адміністратора. На щастя, операційна система Win 2000 є стійкішою, ніж її попередниці в сенсі протистояння таким спробам (принаймні погрози типу getadmin і sechole їй тепер не страшні). Але на жаль, якщо зломщик зміг отримати дані інтерактивного облікового запису, то запобігти можливості розширення його привілеїв дуже складно (інтерактивні облікові записи набули набагато ширшого поширення з появою термінального сервера Windows 2000, вживаного в цілях видаленого управління і розподіленої обробки даних).
Використання іменованих конвеєрів для запуску програм з системними привілеями
Атака,
що забезпечує розширення привілеїв на основі прогнозування створення іменованого каналу при ініціалізації системних служб Windows 2000 (таких як Server, Workstation, Alerter і Clipbook, пов'язаних з обліковим записом SYSTEM), була розроблена Майком Шифманом (Mike Schiffman) і відправлена до бюлетеня Bugtraq (ID 1535). Перед запуском кожної служби на сервері створюється іменований канал з прогнозованою послідовністю імен. Цю послідовність можна отримати з параметра системного реєстру Hklm\system\currentcontrolset\control\ Servicecurrent.
Будь-який інтерактивний користувач Win 2000 (включаючи видалених користувачів термінального сервера) може спрогнозувати ім'я каналу,
інсталювати його і таким чином запустити програму з системними привілеями. Якщо до цього іменованого каналу додати сторонній код, то він теж отримає системні привілеї і зможе виконати практично будь-які дії в локальній системі (наприклад, додати поточного користувача в групу адміністраторів).
Тестовий код, написаний хакером Мачо (Масео), декілька менш ефективний: він знаходить користувача з відносним ідентифікатором RID 500 (докладніша інформація про ідентифікатори RID міститься в розділі 5), тобто обліковий запис адміністратора незалежно від того, чи була вона перейменована, і виводить на екран його пароль в зашифрованому вигляді. Так працює приведена нижче програма злому main. Проте спочатку покажемо, що поточний інтерактивний користувач є членом групи операторів резервного копіювання Backup Operators, запустивши утиліту
whoami.
C:\>whoami /groups
[Group
1] = "Everyone"
[Group 2] = "Builtin\backup Operators"
[Group 3] = "LOCAL" [Group 4] = "NT
AUTHORITYMNTERACTIVE" [Group 5] = "NT Authorityxauthenticated
Users"
G:\>main
The Clipbook service is not started.
More 'help is available by typing NET HELPMSG 3521.
Impersonating: SYSTEM Dumping SAM for RID 500 ...
F:ox020001000000000000000000000000000000000000coo.
V:0x00000000a800000002000100a80000001a000000000c4.
Звернете увагу, що ця програма злому для виконання своїх згубних дій використовує обліковий запис SYSTEM. Тепер хакер може зламати пароль адміністратора і реєструватися в системі. (Нагадаємо, що за наявності системних привілеїв це не складає труднощів. Набагато складніше "пробратися" в групу адміністраторів.)
Контрзаходи проти використання іменованих каналів
Компанія
Microsoft випустила модуль оновлення, що змінює спосіб створення і розміщення іменованих каналів диспетчером Win 2000 Service Control Manager (SCM). Його можна знайти за адресою http://www.microsoft.com/technet/security/
bulletin/ms00-053 .asp.
Цей модуль оновлення не увійшов до сервісного пакету Sp1 і може застосовуватися як до, так і після установки цього пакету.
Привілеї інтерактивних облікових записів звичайно ж необхідно жорстко обмежити в будь-якій системі, що містить конфіденційні дані, оскільки інакше завдання хакера значно полегшуються. Щоб перевірити права інтерактивних облікових записів в системі Windows 2000, запустите аплет Security Policy (або для локальної політики або для політики груп), знайдіть елемент User Rights Assignment в групі Local Policies і ознайомтеся з тим, як виділяються права при локальній реєстрації.
У Win 2000 з'явилася нова можливість відміняти для деяких груп або користувачів дію багатьох привілеїв. Наприклад, як видно з малюнка, можливість локальної реєстрації відміняється шляхом вибору політики Deny logon locally.
За умовчанням група users і обліковий запис Guest володіють правом локальної реєстрації в системі Win 2000 Professional і на автономних серверах Win 2000 Server. Права користувачів контроллера домена обмежені жорсткіше завдяки спеціальній використовуваній за умовчанням політиці (правами локальної реєстрації володіють всі групи операторів). Ми рекомендуємо відмінити це право для групи users і обліковому запису Guest і строго стежити за тим, кому надаються такі привілеї.
Порушення доступу до робочих станцій
Більшість адміністраторів Windows ніколи не чули про робочі станції в контексті одного з найбільш загадкових розділів програмування для Windows. Модель безпеки Win 2000 визначає ієрархію контейнерів, призначених для розмежування функцій зашиті між різними процесами. У цій ієрархії об'єкти впорядковані від загального до приватного: сеанс, робоча станція, робочий стіл. При цьому сеанс містить одну або декілька робочих станцій, які, у свою чергу, можуть включати один або декілька робочих столів. В рамках цієї концепції сфера дії процесів обмежена робочою станцією, а потоки одного процесу працюють з одним або декількома робочими столами. Проте по якихось причинах ця концепція не була реалізована в початковій версії Win 2000. За деяких умов процес з нижчими привілеями, що працює на одному з робочих столів, в рамках одного сеансу міг отримувати інформацію від робочого столу іншої робочої станції.
Наслідком цього з'явилася
можливість для зловмисників інтерактивно реєструватися в системі Win 2000 і взаємодіяти з процесами, що працюють в рамках цього ж інтерактивного сеансу. (Відмітимо, що при цьому не можна взаємодіяти з іншими користувачами термінального сервера, оскільки вони працюють в окремих сеансах.) Зломщики також можуть створити процес на іншій робочій станції. Проте до кінця не ясно, які дії вони можуть зробити, навіть якщо створений ними процес володіє системними привілеями. Хакери, як мінімум, можуть прочитувати інформацію, що вводиться з клавіатури і виводиться на екран.
Контрзаходи проти порушення доступу до робочих станцій
Оскільки
ця проблема пов'язана з некоректною реалізацією моделі безпеки компанією Microsoft, то і в її рішенні доведеться покластися на модуль оновлення цієї компанії. Такий модуль, що забезпечує коректне розділення процесів для різних робочих столів, можна отримати за адресою
http://www.microsoft.com/technet/ security/bulletin/ms00-020.asp. Крім того, він увійшов до складу сервісного пакету Sp1.
Ще одна корисна рада зводиться до обмеження привілеїв інтерактивного облікового запису (див. приведений вище опис проблеми з іменованими каналами).
Ця проблема наробила багато шуму і обговорювалася навіть в бюлетені Ntbugtraq
(http://www.ntbugtraq.com), проте вона не принесла ніякої шкоди, хоча основні труднощі, можливо, ще попереду. Слід зазначити, правда, що до моменту виходу в світ цієї книги ні про які нові проблеми мова не йшла. Все ж таки радимо читачам періодично звертатися до Web-узлу компанії Microsoft, присвяченого питанням безпеки.
|