Моделювання системи дозволів


Відповіді:


156

Моделі безпеки - це велике (і відкрите) поле досліджень. На вибір є величезний вибір моделей, починаючи від простих:

  • Матриця контролю доступу Лампсона перелічує кожен об’єкт домену та кожного принципала в системі з діями, які принципал може виконувати над цим об’єктом. Це дуже багатослівно, і якщо насправді реалізоване таким чином, дуже пам’ятне.

  • Списки контролю доступу є спрощенням матриці Лампсона: вважайте, що це щось подібне до реалізації з розрідженою матрицею, яка перелічує об’єкти та принципали та дозволені дії, і не кодує всіх «нульових» записів з матриці Лампсона. Списки контролю доступу можуть включати "групи" як зручність, а списки можуть зберігатися через об'єкт або за допомогою принципала (іноді за допомогою програми, як в AppArmor або TOMOYO або LIDS ).

  • Системи можливостей базуються на ідеї мати посилання або вказівник на об’єкти; процес має доступ до початкового набору можливостей і може отримати більше можливостей, лише отримавши їх від інших об’єктів системи. Це звучить досить далеко, але згадайте дескриптори файлів Unix: вони є незабутнім посиланням на конкретний відкритий файл, і дескриптор файлу може передаватися іншим процесам чи ні. Якщо ви надасте дескриптор іншому процесу, він матиме доступ до цього файлу. Навколо цієї ідеї були написані цілі операційні системи. (Найвідоміші - це, мабуть, KeyKOS та EROS, але я впевнений, що це спірний момент. :)

... до більш складних, які мають мітки безпеки, присвоєні об’єктам та принципалам:

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

  • Решітка Деннінга - це модель, на якій принципалам дозволено взаємодіяти з мітками безпеки в дуже ієрархічному порядку.

  • Bell-LaPadula схожий на " Решітку" Деннінга і забезпечує правила для запобігання витоку надсекретних даних на некласифіковані рівні, а загальні розширення забезпечують подальшу компарталізацію та категоризацію, щоб краще забезпечити підтримку "потрібно знати" у військовому стилі.

  • Biba Модель схожа на Bell-LaPadula, але «перевернута з ніг на голову» - Bell-LaPadula орієнтована на конфіденційність, але нічого не робить для цілісності та Biba орієнтований на цілісність, але нічого не робить для конфіденційності. (Белл-ЛаПадула заважає комусь читати «Список усіх шпигунів», але із задоволенням дозволить кожному написати що-небудь у ньому. Біба з радістю дозволить кожному читати «Список усіх шпигунів», але забороняє писати в ньому майже всім.)

  • Застосування типу (та його брат, Застосування типу домену) надає мітки на принципалах та об’єктах та визначає дозволені таблиці об’єкт-дієслово-предмет (клас). Це знайомі нам SELinux та SMACK.

.. а потім є деякі, що включають плину часу:

  • Китайська стіна була розроблена в бізнес-середовищі, щоб відокремити співробітників в організації, яка надає послуги конкурентам на певному ринку: наприклад, коли Джонсон почав працювати над рахунком Exxon-Mobil, йому не дозволяють отримати доступ до рахунку BP. Якби Джонсон спочатку почав працювати над BP, йому було б відмовлено у доступі до даних Exxon-Mobil.

  • LOMAC і високий водяний знак є двома динамічними підходами: LOMAC змінює привілеї процесів, оскільки вони отримують доступ до поступово вищих рівнів даних, і забороняє писати на нижчі рівні (процеси переходять до "найвищої безпеки"), а високий водяний знак змінює мітки на дані, оскільки до них звертаються процеси вищого рівня (дані переміщуються до "найвищої безпеки").

  • Моделі Clark-Wilson дуже відкриті; вони включають інваріанти та правила, що гарантують, що кожен перехід держави не порушує інваріанти. (Це може бути простим, як подвійний облік, або таким складним, як HIPPA .) Подумайте про транзакції бази даних та обмеження.

Метта Бішопа "Комп’ютерна безпека: мистецтво та наука", безумовно, варто прочитати, якщо ви хочете отримати детальнішу інформацію щодо опублікованих моделей.


7
Відмінна відповідь. Цікаво читати. Мені цікаво, де ця надто проста, але не рідкісна система вписується у ваш список: "За замовчуванням гості мають рівень 0, зареєстровані користувачі мають рівень 5, адміністратори sys мають рівень 9. Кожна дія має рівень, пов'язаний з цим, і може виконуватися лише кимось на цьому рівні або вище ".
Дивне мислення

1
@Oddthinking, ця проста модель може бути кількома :), але найпростішим "збігом" є модель Ring. Як реалізовано в x86, він має чотири рівні, як у вашому прикладі, і кожен додає операції, які може виконувати лише цей рівень коду або вище. (Те, що ви називаєте їх, є ортогональною проблемою.) Я легко можу уявити реалізації ACL, Capability, Lattice, BLP та TE на цьому прикладі. Я не був би здивований, якби інші могли також реалізувати цю модель; але простота - це добра чеснота. :)
sarnold

@Frank, дякую! Моя орфографія не лише жорстока, дякую за улов.
sarnold


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.