ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.11.2019

Просмотров: 1406

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Лекція 1. Вступ. Категорії інформаційної безпеки. Захист програм.

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

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

Помилки, що призводять до можливості атак на інформацію

Короткий огляд технології RAID

Що таке RAID?

Рівні RAID

RAID рівня 0

RAID рівня 1

RAID рівнів 2 і 3

RAID рівнів 4 і 5

Переваги і недоліки основних рівнів RAID

Складені RAID масиви

RAID 0+1 (01) і 1+0 (10)

RAID 0+3 (03) і 3+0 (30)

RAID 0+5 (05) і 5+0 (50)

RAID 1+5 (15) і 5+1 (51)

JBOD

1.1 Криптографія.

Класифікація криптоалгоритмів

1.3 Симетричні криптоалгоритмы

1.3.1 Скремблери

1.3.2 Блокові шифри

Загальні відомості про блокові шифри

Мережа Фейштеля

Інструментарій хакера

Основи побудови захисту - крок за кроком

Крок 1. Відключення автоматичного запуску CD

Крок 2. Автоматичне оновлення системи

Крок 3. Відключення непотрібних сервісів

Крок 4. Установка фаервола

Крок 5. Паролі і усе про них

Крок 6. Теорія складання паролів

Крок 7. Акаунт "Адміністратор"

Крок 8. Небезпечна заставка

Крок 9. Реєстр, друг наш!

Крок 10. Провідник

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ


ЛУГАНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ТАРАСА ШЕВЧЕНКА


ІНСТИТУТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ


КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ












КОНСПЕКТ ЛЕКЦІЙ

до дисципліни


Безпека програм та даних


Спеціальність: Програмна інженерія


















2011





Лекція 1. Вступ. Категорії інформаційної безпеки. Захист програм.

Комерційні програми зазвичай захищають від несанкціонованого ти-

ражирования.

Наявність доступу тільки до носія інформації з дистрибутивом (набором

інсталяційних файлів) програмного продукту не повинно давати воз-

можности встановити працездатну копію програми. Тобто даних

дистрибутива, який можна скопіювати або непомітно узяти на несколь-

до днів, не повинно хапати для створення працездатній копії програм-

ми. Подібні обмеження можуть бути реалізовані різними способами.

Наприклад, дуже багато комерційних програм при інсталяції требу-

ют ввести серійний номер, надрукований на коробці або вказаний в од-

ном з документів (, що додаються до програмного продукту, у Microsoft -

у сертифікаті автентичності). |

Також часто виникає потреба обмежити число користувачів, одновре-

менно що працюють з програмою. Тобто людина, яка придбала лицен-

зию на одне робоче місце, не повинен мати можливості створити 2 робітників

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

ния апаратних ключів, менеджерів ліцензій і процедури активації.

Для деяких програмних продуктів (зокрема ігор) часто использует-

ця прив'язка до носія інформації, наприклад компакт-диску. Тобто для

запуску гри вимагається наявність в приводі оригінального компакт-диска

який захищений від копіювання стандартними засобами.

Для оцінних версій, обмежених за часом або числу запусків, не-

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

ник не зміг змусити працювати програму, просто перевівши годинник або видаливши

файл, в який записується кількість запусків програми або число

файлів.

Умовно безкоштовні продукти, на відміну від обмежених по функ-

циональности оцінних версій комерційних програм, після введення

реєстраційного коду повинні надавати доступ до усіх функцій

передбаченим в повній версії програми. Тобто в безкоштовно распро-

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

версії. Отже, бажано так організувати захист, щоб зло-

умышленник не зміг дістатися до функцій, властивих тільки повною

ці, поки в його розпорядженні не буде правильного реєстраційного

Процедури перевірки правильності серійних номерів, а також

кодів і кодів активації повинні будуватися так, щоб

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


в той же час, довжина кодового рядка не була дуже великою.Глава 9. Актуальні завдання захисту програм 105

Також може виникнути потреба захищати будь-які виконувані файли

внесення змін, дизасемблювання, дослідження під відладчиком і т. д.

Категорії інформаційної безпеки

Інформація з точки зору інформаційної безпеки має наступні категорії:

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

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

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

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

Відносно інформаційних систем застосовуються інші категорії:

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

  • точність - гарантія точного і повного виконання усіх команд

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

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

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

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

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

Однією з перших моделей була опублікована в 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 як єдине ціле з можливістю тільки спільного блокування

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

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

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

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

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

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

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

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



Помилки, що призводять до можливості атак на інформацію

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

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

Для цілих і дробових чисел, значень часу і тому подібних типів даних запис виробляється завжди у фіксованому об'ємі (2 байти, 4 байти, 10 байт). А ось для рядків і масивів даних перевірки довжини перед операціями запису потрібні. Для того, щоб змусити ЕОМ виконати код або записати дані туди, куди у нього немає правий запису, зловмисник спеціально примушує систему обробляти рядки дуже великої довжини, або поміщати в масив кількість елементів більше, ніж його об'єм. У разі успіху можливо або попадання частини рядка в сегмент коду або стека з наступним виконанням, або модифікація яких-небудь службових даних, що дозволить потім зловмисникові увійти до системи в обхід системи захисту. Природно, що вміст кінця рядка (що виявляється після переповнювання буфера в неналежній області пам'яті) підбирається спеціальним чином. Самі дані або рядки можуг бути абсолютно безглуздими.

Проблема обмежень, які розробник програми рахує само собо зрозумілими, але які насправді можуть не виконуватися, зустрічається набагато частіше, але рідше призводить до яких-небудь серйозних наслідків. Найчастіше результатом обробки подібних даних стає переривання роботи програми з повідомленням про помилку або просто "зависання". Тобто цей клас атак використовується з метою проведення атаки "відмова в сервісі".

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


Методи дублювання


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

За часом відновлення інформації методи дублювання можуть бути розділені на:

оперативні;

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

додаткові зовнішні пристрої (блоки), що запам'ятовують;

спеціально виділені області пам'яті на незнімних машинних носіях;

знімні носії інформації. По числу копій методи дублювання діляться на:

однорівневі;

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

зосередженого дублювання;

розосередженого дублювання

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

Відповідно до процедури дублювання розрізняють методи:

повного копіювання;

дзеркального копіювання;

часткового копіювання;

комбінованого копіювання. При повному копіюванні дублюються усі файли. При дзеркальному копіюванні будь-які зміни основної інформації супроводжуються такими ж змінами дублюючої інформації. При такому дублюванні основна інформація і дубль завжди ідентичні. Часткове копіювання припускає створення дублів певних файлів, наприклад, файлів користувача. Одним з видів часткового копіювання, що дістало назву інкрементного копіювання, є метод створення дублів файлів, змінених з часу останнього копіювання. Комбіноване копіювання допускає комбінації, наприклад, повного і часткового копіювання з різною періодичністю їх проведення. Нарешті, по виду дублюючій інформації методи дублювання розділяються на:

методи із стискуванням інформації;

методи без стискування інформації.