Лекції з WinApi

Тема №9 Безпека

9. Безпека
 9.1. Загальна модель безпеки в Microsoft Windows NT

Механізми безпеки (security) діють автоматично для всіх додатків, що працюють під керуванням Windows NT. У більшості випадків цього досить. На додаток до цього функції безпеки Win32® API дозволяють додаткам вибірково чи надавати забороняти доступ до окремих об'єктів.

Windows NT розроблена таким чином, щоб задовольняти рівню безпеки C2 міністерства оборони США (див.п.2.2). Основні вимоги рівня C2 наступні:

  • Повинне здійснюватися керування доступом до ресурсів. Повинно бути можливим чи дозволяти забороняти доступ до зазначених ресурсів як окремим користувачам, так і групам користувачів.
  • Пам'ять повинна бути захищена таким чином, щоб неможливо було прочитати інформацію навіть після звільнення пам'яті процесом.
  • Користувачі повинні реєструвати себе в системі і мати унікальні ідентифікатори. Усі дії користувачів, контрольовані системою, повинні бути персоніфіковані.
  • Системний адміністратор і тільки він повинний мати можливість контролювати виконання дій, що відносяться до безпеки.
  • Система повинна бути захищена від утручання, наприклад, від модифікації системного коду в чи пам'яті системних файлів на диску.

Всі об'єкти в Windows NT можуть бути захищені. Атрибути захисту кожного об'єкта описані в його дескрипторі захисту (security descriptor). Дескриптор захисту містить інформацію про власника об'єкта і список керування доступом (ACL - access control list). Список керування доступом складається з елементів (ACE - access control entry), кожний з який відповідає користувачу і групі користувачів, яким дозволений чи заборонений доступ до об'єкта.

При реєстрації користувача його пароль звіряється з інформацією, що зберігається в системній базі даних. У випадку успіху на підставі цієї інформації йому призначається маркер доступу (access token). Цей маркер надалі буде привласнюватися кожному процесу, що запустить користувач. Маркер містить інформацію про користувача, групу, привілеї і правах доступу. При спробі процесу звернутися до об'єкта виробляється пошук у ACL цього об'єкта ACE, що відповідає процесу, що звернувся. На основі порівняння маркера доступу і ACE приймається рішення про чи дозвіл забороні доступу процесу до об'єкта.