Ноу Інти, лекція, безпеку в windows

Анотація: Вимоги до безпеки. Організація керованого доступу до об'єктів. Права і привілеї.

Вимоги до безпеки

1. Обов'язкова ідентифікація і аутентифікація.

До виконання будь-яких дій користувач повинен увійти до системи (ідентифікація) і підтвердити, що він є тим, ким представився (аутентифікація). Зазвичай реалізується за допомогою введення унікального імені користувача та пароля.

У Windows за ідентифікацію і аутентифікація користувачів відповідають процеси Winlogon.exe і Lsass.exe.

2. Керований доступ до об'єктів.

Користувач-власник об'єкта повинен мати можливість надавати доступ до об'єкта певним користувачам і / або групам користувачів.

Безпечний доступ реалізується в Windows компонентом Security Reference Monitor (SRM. Монітор контролю безпеки) виконавчої системи Ntoskrnl.exe.

Система повинна вміти відстежувати і записувати всі події, пов'язані з доступом до об'єктів.

У Windows аудит підтримується SRM і Lsass.exe.

4. Захист при повторному використанні об'єктів.

Якщо область пам'яті виділялася якомусь користувачеві, а потім була звільнена, то при подальшому виділенні цієї області всі дані в ній (навіть зашифровані) повинні бути стерті.

У Windows звільнена пам'ять очищається системним потоком обнулення сторінок, які працюють під час простою системи (з нульовим пріоритетом).

Далі в лекції буде розглянута організація керованого доступу до об'єктів в SRM. а також права і привілеї користувачів.

Організація керованого доступу до об'єктів

Принцип організації доступу

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

З іншого боку, всі об'єкти в системі мають структуру даних, яка називається дескриптор захисту (security descriptor). У цю структуру входить список ідентифікаторів користувачів, які можуть (або не можуть) отримати доступ до об'єкта, а також вид доступу (тільки читання, читання і запис, повний доступ і т.д.).

При спробі доступу процесу до об'єкта ідентифікатор з маркера доступу процесу порівнюється з ідентифікаторами, що містяться в дескрипторі захисту об'єкта, і на підставі результатів порівняння доступ дозволяється або забороняється.

Розглянемо структури даних і функції, що відповідають за реалізацію цього принципу в ядрі Windows.

ідентифікатори захисту

Для однозначного визначення користувача в системі використовуються ідентифікатори безпеки (SID - Security Identifier). Крім користувачів, SID є у груп користувачів, комп'ютерів, доменів 4 Домен (в Windows) - група комп'ютерів, керованих централізовано, інформація про яких зберігається в загальній базі даних (Active Directory) і членів доменів.

SID генерується системою випадковим чином так, що ймовірність збігу SID у різних користувачів близька до нуля.

У WRK структура SID описується в файлі public \ sdk \ inc \ ntseapi.h (рядок 251). SID складається з наступних частин:

  • номер версії - поле Revision (1 байт);
  • код агента ідентифікатора (identifier authority) - поле IdentifierAuthority (6 байт);
  • коди субагентов (subauthority values) - поле SubAuthority (від 1 до 15 кодів по 4 байта кожен). Кількість кодів субагентов зберігається в поле SubAuthorityCount.

В текстовому вигляді SID записується в такий спосіб:


Мал. 13.1. Текстове представлення SID

На рис.13.1 останній код субагента називається відносним ідентифікатором (relative identifier, RID), оскільки всі облікові записи користувачів на комп'ютері можуть мати однакові коди, крім RID. RID, який дорівнює 500, позначає локального адміністратора.

маркер доступу

Ідентифікатори безпеки користувачів зберігаються в маркерах доступу (access token). Під час входу користувача в систему процес Lsass.exe створює для нього маркер доступу, який призначається першому призначеному для користувача процесу UserInit.exe, інші процеси, запущені користувачем, успадковують цей маркер (рис.13.2). Маркер доступу процесу зберігається в поле Token структури EPROCESS (див. Лекцію 6 "Процеси і потоки").

Маркер доступу представлений структурою TOKEN. описаної у файлі base \ ntos \ se \ tokenp.h (рядок 235) і має наступні основні поля:

Ноу Інти, лекція, безпеку в windows


Мал. 13.2. Створення та успадкування маркера доступу

Схожі статті