Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.docx
Скачиваний:
81
Добавлен:
07.02.2016
Размер:
482.95 Кб
Скачать

Абстрактні моделі захисту інформації

Однією з перших моделей була опублікована в 1977 модель Биба (Biba). Згідно з нею усі суб'єкти і об'єкти заздалегідь розділяються по декількох рівнях доступу, а потім на їх взаємодії накладаються наступні обмеження: 1) суб'єкт не може викликати на виконання суб'єкти з нижчим рівнем доступу; 2) суб'єкт не може модифікувати об'єкти з вищим рівнем доступу. Як бачимо, ця модель дуже нагадує обмеження, введені в захищеному режимі мікропроцесорів Intel 80386+ відносно рівнів привілеїв.

Модель Гогена-Мезигера (Goguen - Meseguer), представлена ними в 1982 році, заснована на теорії автоматів. Згідно з нею система може при кожній дії переходити з одного дозволеного стану тільки в декілька інших. Суб'єкти і об'єкти в цій моделі захисту розбиваються на групи - домени, і перехід системи з одного стану в інше виконується тільки відповідно до так званої таблиці дозволів, в якій вказано які операції може виконувати суб'єкт, скажімо, з домена C над об'єктом з домена D. У цій моделі під час переходу системи з одного дозволеного стану в інше використовуються транзакції, що забезпечує загальну цілісність системи.

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

Важливу роль в теорії захисту інформації грає модель захисту Кларка-Вильсона (Clark - Wilson), опублікована в 1987 році і модифікована в 1989. Заснована ця модель на повсюдному використанні транзакцій і ретельному оформленні прав доступу суб'єктів до об'єктів. Але в цій моделі уперше досліджена захищеність третьої сторони в цій проблемі - сторони, підтримувальної усю систему безпеки. Цю роль в інформаційних системах зазвичай грає програма-супервізор. Крім того, в моделі Кларка-Вильсона транзакції уперше були побудовані по методу верифікації, тобто ідентифікація суб'єкта вироблялася не лише перед виконанням команди від нього, але і повторно після виконання. Це дозволило зняти проблему підміни автора в момент між його ідентифікацією і власне командою. Модель Кларка-Вильсона вважається однією з найдосконаліших відносно підтримки цілісності інформаційних систем.

Основні положення по розробці по

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

  • не використовуйте екзотичні і недокументовані можливості мови програмування : Ви не упевнені в тому, як вони реалізуються насправді

  • оформляйте початковий текст ясно і чітко, використовуйте необхідні коментарі

  • використовуйте дужки для явної вказівки порядку операцій : компілятор може оптимізувати виконання виразів і почати, скажімо, складання F(1)+F(2)+F(3) з другого знаку "+", тим самим викликавши спочатку функцію F від 2, потім від 3, а тільки потім від 1 - якщо у функції змінюються які-небудь глобальні змінні це може привести до непредсказумым наслідків

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

  • використовуйте структурне програмування: розбивайте складні блоки коду на процедури з ясною структурою і легко контрольованим набором параметрів

  • ніколи не програмуйте недокументовані возможнности: технологія "reverse engineering" - дизасемблювання і зворотна компіляція" - на сьогодні досягла величезних результатів, особливо відносно високорівневих мов програмування

  • закривайте файли відразу ж після закінчення роботи з ними, а якщо Ви записуєте важливу інформацію протягом довгого часу - періодично викликайте функції скидання файлового буфера на дисковий накопичувач

  • перевіряйте вільне місце на диску перед записом у файл: деякі операційні видають помилки при записі на переповнений диск нестандартним чином, результат цього може бути плачевним

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

  • прагніть як можна сильніше скоротити час запису в спільно використовувані файли, а, отже, і час їх блокування

  • не будьте заздалегідь упевненими, що програма запущена з тієї директорії, де розташований її здійснимий файл, - одній з перших команд після запуску програми явно зміните каталог на бажаний

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

  • дуже ретельно розробляйте схему синхронізації паралелльно процесів, що працюють з одними і тими ж даними

  • ретельно перевіряйте алгоритми на синдром "мертвої петлі" - це ситуація, коли процес A, почавши змінювати об'єкт 1 і заблокувавши його у зв'язку з цим, чекає зняття блокування з об'єкту 2, тоді як процес B, в той же самий час що почав змінювати об'єкт 2 і заблокувавши його, чекає зняття блокування з об'єкту 1 - подібна проблема при такій схемі синхронізації теоретично нерозв'язна, єдиний вихід з неї - розглядати об'єкти 1 і 2 як єдине ціле з можливістю тільки спільного блокування

  • акуратно виділяйте і очищайте об'єкти в динамічній пам'яті

  • при необхідності використовуйте криптографію

  • ніколи не передавайте пароль відкритим текстом

  • використовуйте криптостойкие алгоритми шифрування і хешування

  • вичищайте блоки оперативної пам'яті після того, як інформація (паролі, ключі, конфіденційні дані), що знаходилася в них, стала непотрібною

  • завжди перевіряйте довжини рядків і масивів перед початком роботи з ними

  • встрайвайте у Ваші системи вимога реєстрації кожного оператора з унікальним паролем і записом як можна більшої кількості інформації про сеанс в балку-файл, недоступний для зміни операторам

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]