
- •Безпека інформаційно- комунікаційних систем
- •Isbn 966-552-167-5
- •1.1. Термінологія
- •1.1.1. Системи, в яких здійснюється захист інформації
- •1.1.2. Завдання захисту інформації
- •1.1.3. Загрози і вразливості
- •1.1.4. Комплексна система захисту інформації
- •1.1.5. Об'єкти захисту та їхні властивості
- •1.1.6. Розроблення й оцінювання захищених систем
- •1.2. Загрози безпеці інформації
- •1.2.1. Класифікація загроз
- •1.2.2. Перелік типових загроз безпеці
- •1.2.3. Класифікація атак
- •1.2.4. Методика класифікації загроз stride
- •1.2.5. Модель загроз
- •1.3. Порушники
- •1.3.1. Визначення терміну «хакер»
- •1.3.2. Наслідки віддій порушників
- •1.3.3. Модель порушника
- •2.1. Рівні інформаційно-комунікаційної системи
- •2.2. Функціональні сервіси безпеки і механізми, що їх реалізують
- •2.2.1. Таксономія функцій систем захисту
- •2.3. Основні підсистеми комплексу засобів захисту
- •2.3.1. Підсистема керування доступом
- •2.3.2. Підсистема ідентифікації й автентифікації
- •2.3.3. Підсистема аудита
- •Підсистема забезпечення цілісності
- •Криптографічна підсистема
- •3.1. Історична довідка
- •3.2. Основні поняття
- •3.3.1. Симетричне шифрування
- •3.3.2. Асиметричне шифрування
- •4.1. Загальні поняття теорії захисту інформації
- •4.2. Позначення, аксіоми та визначення
- •4.3. Основні типи політик безпеки
- •4.4. Математичні моделі безпеки
- •4.4.1. Моделі дискреційної політики безпеки
- •4.4.2. Моделі мандатної політики безпеки
- •5.1. Передумови виникнення вразливостей у комп'ютерних системах
- •5.2. Класифікація вад захисту
- •5.2.1. Класифікація вад захисту за причиною їх появи
- •5.2.2. Класифікація вад захисту за їх розміщенням у системі
- •5.2.3. Класифікація вад захисту за етапами їх появи
- •5.3. Класифікація помилок, що виникають у процесі програмної реалізації системи
- •5.4. Помилки переповнення буфера
- •5.4.1. Переповнення буфера у стеку
- •5.4.2. Переповнення буфера у статичній або динамічній пам'яті
- •5.4.3. Помилка переповнення в один байт
- •5.5. Помилки оброблення текстових рядків
- •5.5.1. Використання конвеєра
- •5.5.2. Переспрямування введення-виведення
- •5.5.3. Спеціальні символи
- •5.6. Люки
- •5.6.1. Режим debug у програмі sendmail
- •6.1. Класифікація шкідливого програмного забезпечення
- •6.2. Програмні закладки
- •6.2.1. Функції програмних закладок
- •6.2.2. Шпигунські програми
- •6.2.3. «Логічні бомби»
- •6.2.4. Люки — утиліти віддаленого адміністрування
- •6.2.5. Несанкціонована робота з мережею
- •6.2.6. Інші програмні закладки
- •6.3. Комп'ютерні віруси
- •6.3.1. Файлові віруси
- •6.3.2. Завантажувальні віруси
- •6.3.3. Макровіруси
- •6.3.4. Скриптові віруси
- •6.3.5. Захист від комп'ютерних вірусів
- •6.4. Мережні хробаки
- •6.4.1. Класифікація мережних хробаків
- •6.4.2. Хробак Морріса
- •6.4.3. Сучасні мережні хробаки
- •6.5. «Троянські коні»
- •6.5.1. Соціальна інженерія
- •6.5.2. Класифікація «троянських коней»
- •6.5.3. Шпигунські троянські програми
- •6.5.4. Троянські інсталятори
- •6.5.5. «Троянські бомби»
- •6.6. Спеціальні хакерські утиліти
- •6.6.1. Засоби здійснення віддалених атак Засоби проникнення на віддалені комп'ютери
- •6.6.2. Засоби створення шкідливого програмного забезпечення
- •6.6.3. Створення засобів атак
- •7.1. Призначення стандартів інформаційної безпеки
- •7.2. Стандарти, орієнтовані на застосування військовими та спецслужбами
- •7.2.1. «Критерії оцінювання захищених комп'ютерних систем» Міністерства оборони сша
- •7.2.2. Інтерпретація і розвиток tcsec
- •7.2.3. Керівні документи Державної технічної комісії при Президенті Російської Федерації
- •7.3. Стандарти, що враховують специфіку вимог захисту в різних системах
- •7.3.1. Європейські критерії безпеки інформаційних технологій
- •7.4. Стандарти, що використовують
- •7.4.1. Концепція профілю захисту
- •7.4.2. Федеральні критерії безпеки
- •8.1. Законодавча і нормативна база захисту
- •8.1.1. Закон України «Про захист інформації
- •8.1.2. Нормативні документи системи
- •8.2. Оцінювання захищеності інформації,
- •8.2.1. Особливості термінології
- •8.2.2. Критерії захищеності інформації в комп'ютерних системах від несанкціонованого доступу
- •8.2.3. Класифікація автоматизованих систем
- •8.3. Керівні документи з вимогами до захисту інформації в інформаційних системах певних типів
- •8.3.1. Вимоги із захисту конфіденційної інформації
- •8.3.2. Вимоги до захисту інформації веб-сторінки від несанкціонованого доступу
- •9.1. Основні відомості
- •9.2. Базові поняття
- •9.3.2. Оцінювання об'єкта за «Загальною методологію»
- •9.3.3. Матеріали, необхідні для проведення кваліфікаційного аналізу
- •9.3.4. Три етапи здійснення кваліфікаційного аналізу
- •9.4. Структура основних документів «Загальних критеріїв»
- •9.4.1. Профіль захисту
- •9.4.2. Завдання з безпеки
- •1. Вступ.
- •5. Вимоги безпеки.
- •8. Обґрунтування.
- •10.1. Завдання апаратного захисту
- •10.2. Підтримка керування пам'яттю
- •10.2.1. Віртуальні адреси
- •10.2.2. Віртуальна пам'ять
- •10.2.3. Трансляція адрес
- •10.4. Особливості архітектури процесорів Intel х86
- •10.4.2. Селектори та дескриптори сегментів і сторінок
- •10.5.2. Сегментно-сторінковий розподіл пам'яті
- •10.6. Керування задачами
- •10.6.1. Виклик процедур
- •10.6.2. Виклик задач
- •10.6.3. Привілейовані команди
- •11.1. Загрози безпеці операційних систем
- •11.1.1. Сканування файлової системи
- •11.1.2. Викрадення ключової інформації
- •11.1.3. Добирання паролів
- •11.1.4. Збирання сміття
- •11.1.5. Перевищення повноважень
- •11.1.6. Програмні закладки
- •11.1.7. «Жадібні» програми
- •11.2. Поняття захищеної операційної системи
- •11.2.1. Підходи до побудови захищених операційних систем
- •11.2.2. Принципи створення захищених систем
- •11.2.3. Адміністративні заходи захисту
- •11.2.4. Політика безпеки
- •11.3.1. Основні функції кзз
- •11.3.2. Розмежування доступу
- •11.3.3. Ідентифікація, автентифікація й авторизація
- •11.3.4. Аудит
- •12.1. Історія створення unix
- •12.2. Архітектура системи
- •12.3.1. Модель безпеки системи unix
- •12.3.2. Підсистема ідентифікації й автентифікації
- •12.3.3. Підсистема розмежування доступу
- •12.3.4. Підсистема реєстрації
- •12.4. Адміністрування засобів безпеки unix 12.4.1. Особливості адміністрування
- •12.4.2. Утиліти безпеки
- •12.4.3. Характерні вразливості системи unix
- •13.1. Основні відомості про систему
- •13.1.1. Стисло про історію створення системи
- •13.1.2. Відповідність вимогам стандартів безпеки
- •13.2.1. Основні концепції
- •13.2.2. Компоненти системи захисту
- •13.3. Розмежування доступу
- •13.3.1. Основні принципи реалізації системи розмежування
- •13.3.2. Суб'єкти доступу Windows
- •13.3.3. Об'єкти доступу Windows
- •13.3.4. Стандартні настроювання прав доступу
- •13.3.5. Ідентифікація й автентифікація
- •13.3.6. Реалізація дискреційного керування доступом
- •13.4. Аудит
- •14.1. Обґрунтування застосування захищених ос для створення систем оброблення конфіденційної інформації
- •14.2. Система Trusted Solaris
- •14.2.1. Основні характеристики середовища Trusted Solaris
- •14.2.2. Керування доступом у середовищі Trusted Solaris
- •14.2.3. Окреме зберігання позначеної мітками
- •14.2.4. Адміністрування безпеки у середовищі Trusted Solaris
- •14.3. Операційна система Фенікс
- •14.3.1. Архітектура системи
- •14.3.2. Засоби захисту
- •14.3.3. Дискреційна модель ієрархічного керування
- •14.3.4. Засоби керування доступом
- •14.3.5. Перегляд протоколу аудита
- •14.3.5. Програмні інтерфейси системи
- •14.3.7. Застосування операційної системи Фенікс
- •15.1. Основні відомості про комп'ютерні мережі
- •15.1.1. Відкриті системи
- •15.1.2. Модель взаємодії відкритих систем
- •15.1.3. Стеки протоколів
- •15.2. Інтернет
- •15.2.1. Організація
- •15.2.2. Адресація
- •15.2.3. Маршрутизація
- •15.3. Загрози безпеці інформації у мережах
- •15.4. Безпека взаємодії відкритих систем
- •15.4.1. Сервіси безпеки
- •15.4.2. Специфічні механізми безпеки
- •15.4.3. Універсальні механізми безпеки
- •15.4.5. Подальший розвиток міжнародних стандартів
- •16.1. Протоколи прикладного рівня
- •16.1.1. Протокол Telnet
- •16.1.2. Протокол ftp
- •16.1.3. Мережні служби unix
- •16.2. Транспортні протоколи
- •16.2.1. Протокол udp
- •16.2.2. Протокол tcp
- •16.3. Протокол ip
- •16.3.1. Призначення й можливості протоколу iPv4
- •16.3.2. Атаки на протокол iPv4, пов'язані з адресацією Підміна адреси відправника
- •16.3.3. Атаки, що ґрунтуються на помилках оброблення фрагментованих пакетів
- •16.3.4. Можливості, закладені у протокол iPv6
- •16.4.1. Особливості протоколу
- •16.4.2. Модель загроз
- •16.4.3. Механізми захисту
- •16.4.4. Рішення з безпеки
- •Interdomain Route Validation
- •16.4.5. Оцінювання захищеності
- •16.5. Протоколи керування мережею 16.5.1. Протокол ісмр
- •16.5.2. Протокол snmp
- •17.1. Система електронної пошти
- •17.1.1. Архітектура системи електронної пошти
- •17.1.2. Формат повідомлення електронної пошти
- •17.1.3. Протокол smtp
- •17.1.4. Протокол рорз
- •17.1.5. Протокол імар4
- •17.1.6. Загрози, пов'язані з використанням електронної пошти
- •17.1.7. Анонімне відсилання електронної пошти
- •17.1.8. Атаки через систему електронної пошти
- •17.2.1. Принципи веб-технології
- •17.2.2. Протокол http
- •17.2.3. Динамічні сторінки
- •17.2.4. Уразливості серверного програмного забезпечення
- •17.2.5. Уразливості у сценаріях
- •17.2.7. Міжсайтовий скриптінг
- •17.2.8. Захист сервера від атак
- •17.2.9. Атака на клієнта
- •17.2.10. Безпека Java
- •18.1. Архітектура захищених мереж
- •18.1.1. Протидія прослуховуванню трафіку
- •18.1.2. Сегментація мережі
- •18.1.3. Резервування мережного обладнання і каналів зв'язку
- •18.2. Міжмережні екрани
- •18.2.1. Можливості міжмережних екранів
- •18.2.2. Рівні реалізації
- •18.2.3. Особливості персональних брандмауерів
- •18.2.4. Недоліки міжмережного екрана
- •18.3. Системи виявлення атак
- •18.3.1. Можливості систем виявлення атак
- •18.3.2. Різні типи систем виявлення атак
- •18.3.3. Інформаційні джерела
- •18.3.4. Аналіз подій у системах виявлення атак
- •18.3.5. Відповідні дії систем виявлення атак
- •18.4. Додаткові інструментальні засоби
- •18.4.1. Системи аналізу й оцінювання вразливостей
- •18.4.2. Перевірка цілісності файлів
- •Передавання інформації через захищені мережі
- •19.1. Захист інформації, що передається відкритими каналами зв'язку
- •19.2. Віртуальні захищені мережі
- •19.2.1. Різні види віртуальних захищених мереж
- •Vpn віддаленого доступу
- •19.2.2. Проблеми побудови віртуальних захищених мереж
- •19.3. Рівні реалізації віртуальних захищених мереж
- •19.3.1. Захист віртуальних каналів на сеансовому рівні
- •19.3.2. Захист віртуальних каналів на мережному рівні
- •19.3.3. Захист віртуальних каналів на канальному рівні
- •19.4. Вимоги нормативної бази до реалізації віртуальних захищених мереж в Україні
- •20.1. Порядок проведення робіт зі створення комплексної системи захисту інформації
- •20.1.1. Структура комплексної системи захисту інформації
- •20.1.2. Створення комплексної системи захисту інформації
- •Обґрунтування потреби у створенні системи захисту
- •20.2.2. Обстеження середовищ функціонування
- •20.2.3. Визначення й аналіз можливих загроз безпеці
- •20.2.4. Розроблення політики безпеки
- •20.2.5. Перелік вимог до захищеної системи
- •20.3. Розроблення технічного завдання на створення комплексної системи захисту інформації
- •20.4. Створення і впровадження комплексної системи захисту інформації
- •20.4.1. Розроблення проекту Порядок розроблення проекту
- •20.4.2. Введення комплексної системи захисту інформації в дію та оцінювання захищеності інформації в інформаційно-телекомунікаційних системах
- •20.4.3. Супроводження комплексної системи захисту інформації
- •21.1. Вимоги до кваліфікаційного аналізу
- •21.2. Організація державної експертизи
- •21.2.1. Положення про державну експертизу
- •21.2.2. Рекомендації з оформлення програм і методик проведення експертизи комплексної системи захисту інформації
- •21.3. Сертифікація засобів технічного захисту інформації
- •22.1. «Типове положення про службу захисту інформації в автоматизованій системі»
- •22.1.1. Загальні положення
- •22.1.2. Завдання та функції служби захисту інформації
- •22.1.3. Права й обов'язки служби захисту інформації
- •22.1.4. Взаємодія служби захисту інформації з іншими підрозділами та із зовнішніми організаціями
- •22.1.5. Штатний розклад і структура служби захисту інформації
- •22.1.6. Організація заходів служби захисту інформації та їх фінансування
- •22.2. Рекомендації щодо структури
- •22.2.1. Завдання захисту інформації в ас
- •22.2.2. Класифікація інформації, що обробляють в ас
- •22.2.3. Компоненти ас і технології оброблення інформації
- •22.2.4. Загрози інформації в ас
- •22.2.5. Політика безпеки інформації в ас
- •22.2.6. Календарний план робіт із захисту інформації в ас
- •22.3. Iso/iec 27002 «Інформаційні технології — Методики безпеки — Практичні правила управління безпекою інформації»
- •22.3.1. Загальні відомості про стандарт
- •22.3.2. Структура й основний зміст стандарту
- •22.3.3. Інші стандарти серн 27000
- •Грайворонський Микола Владленович Новіков Олексій Миколайович безпека інформаційно-комунікаційних систем
- •21100, М. Вінниця, вул. 600-річчя, 19.
10.5.2. Сегментно-сторінковий розподіл пам'яті
Якщо сторінковий механізм вимкнено (в регістрі сг0 біт pg = 0), з дескриптора за розглянутими вище алгоритмами визначається фізична базова адреса сегмента, а після додавання до неї зміщення — фізична адреса даних у пам'яті. Якщо ж сторінковий механізм увімкнено (в регістрі сгО біт pg = 1), то з дескриптора за тими самими алгоритмами визначається лінійна базова адреса сегмента, а після додавання до неї зміщення — лінійна адреса даних. Для обчислення фізичної адреси здійснюється сторінкове перетворения. Те саме стосується не лише адрес даних, а й базових адрес таблиць дескрипторів і адрес самих дескрипторів. Сторінкове перетворення показано на рис. 10.4. Механізм сторінкового перетворення може використовувати атрибути захисту сторінок з дескриптора (див. табл. 10.5).
Важливою відмінністю сегментно-сторінкового розподілу пам'яті порівняно з сегментним розподілом пам'яті у процесорах х86 є те, що в режимі сегмент но-сторінкового розподілу пам'яті максимальним віртуальним адресним просто ром є 4 Гбайт, і різні сегменти можуть перекриватися (вони можуть мати однаковий розмір у 4 Гбайт і перекриватися повністю). Тоді до однієї лінійної адреси можна звернутися через різні сегменти та обійти таким чином згадані вище функції захисту сегментів. Ці проблеми процесор не вирішує, а передає їх у сферу відповідальності операційної системи. Саме розробники операційної системи визначають, як будуть виділятися сегменти пам'яті процесам і потокам і як буде організовано взаємодію між ними, зокрема обмін даними.
Нумерація віртуальних сторінок — наскрізна та не залежить від поділу віртуального адресного простору на сегменти. Кожний процес має свій 4-гігабайтовий віртуальний адресний простір, а також власний набір розділів таблиць сторінок і власну таблицю розділів. Адресація таблиці розділів здійснюється через регістр сгЗ, отже, значення цього регістра специфічне для кожного процесу.
10.6. Керування задачами
Процесори х86 надають засоби для підтримки виклику процедур і задач [63, 92].
Виклик процедури означає виклик коду в межах одного процесу (потоку), коли
відбувається переключення на інший сегмент коду (виклик процедури в межах
одного сегмента є тривіальним і не потребує спеціальних заходів захисту; відтак ми його не розглядатимемо), але зберігаються структури, що керують адресним простором процесу (таблиця LDT, таблиця сторінок). Після виклику задачі операційною системою створюється новий процес з усіма відповідними структурами і відбувається переключення на нього. Виклик задачі здійснюється також у багато задачній операційній системі, коли відбувається переключення між процесами. У такій системі необхідні структури вже є, і потрібно лише переключитися на них, забезпечивши збереження відповідних структур поточного процесу. За будь-якого виклику використовується захист, заснований на рівнях привілеїв.
10.6.1. Виклик процедур
Виконуючи будь-який програмний код, сучасні операційні системи постійно викликають процедури, код яких розміщено в інших сегментах. Такі сегменти можуть належати іншому програмному модулю тієї самої програми, бібліотеці або операційній системі. Процесори х86 пропонують кілька способів виклику процедур з інших сегментів:
прямий виклик процедури з непідпорядкованого сегмента;
прямий виклик процедури з підпорядкованого сегмента;
непрямий виклик процедури через шлюз.
Правила розмежування доступу на підставі привілеїв ураховують окрім, власне, рівнів привілеїв CPL, RPL і DPL ще й так звану підпорядкованість сегмента, що містить код процедури. Підпорядкованість сегмента задається прапорцем С
у байті захисту дескриптора сегмента коду (див. табл. 10.3): С = 1 — підпорядкований сегмент, С = 0 — непідпорядкований сегмент.
Прямий виклик процедури з непідпорядкованого сегмента
Цей спосіб полягає у розміщенні в полі команди JMP або CALL селектора, який вказує на дескриптор нового кодового сегмента, того, що містить код процедури, яку викликають. Початкова адреса (точка входження) процедури визначається з базової адреси сегмента, яка знаходиться у дескрипторі, та зміщення, заданого в команді JMP або CALL.
Для такого виклику встановлено суворі правила захисту. Якщо сегмент, який викликають, є непідпорядкованим, то виклик дозволено лише тоді, коли рівень привілеїв сегмента, з якого робиться виклик, дорівнює рівню привілеїв сегмента, який викликають, тобто CPL = DPL. Виклик процедури за умови, що CPL > DPL (тобто поточний код має нижчий рівень привілеїв, ніж код, який намагаються викликати), заборонено з очевидних міркувань захисту критичного коду з більшими привілеями від виклику з процедур, що мають нижчі привілеї, наприклад, для захисту процедур ОС від безконтрольного виклику з процедур користувача (безконтрольного — оскільки за такого виклику можна задати будь-яку точку входження і передати через стек будь-які параметри).
Але й протилежна ситуація, а саме виклик за умови, що CPL < DPL (тобто поточний код має вищий рівень привілеїв за код, який намагаються викликати), також заборонена. Це обмеження введено з тих міркувань, що у загальному випадку
привілейований
код не може використовувати процедури
з низькими привілеями, позаяк останні
вважаються ненадійними.
Прямий
виклик процедури з підпорядкованого
сегмента
Виклик
підпорядкованих сегментів — це один
зі способів, у який програми з низьким
рівнем привілеїв можуть використовувати
код, що має високий рівень привілеїв.
Наприклад, це буває корисним, коли
програми користувача застосовують
системні бібліотеки. Виклик коду
процедури, яка розміщується в
підпорядкованому сегменті, здійснюється
аналогічно виклику процедур із не
підпорядкованих сегментів (точки
входження так само можна задавати в
довільний спосіб). Але у разі
підпорядкованого сегмента виклик
здійснюється за умови, що CPL
> DPL,
тобто код, що викликає, має привілеї,
не вищі за привілеї коду, який викликають.
Підпорядкований
сегмент має особливу властивість. Код
із підпорядкованого сегмента успадковує
рівень привілеїв коду, що його викликав,
тому, яким би не був DPL
підпорядкованого
сегмента, під час виклику коду CPL
не змінюється. Наприклад, код системної
бібліотеки, який міститься в сегменті
з DPL
= 0 виконуватиметься з CPL
= 0, якщо його було викликано з ядра ОС,
і з CPL
= 3, якщо його було викликано з програми
користувача. Тож системний код, викликаний
із програми користувача, буде мати
обмежені можливості доступу до системних
даних і достатні можливості для роботи
з даними користувача.
Непрямий
виклик процедури через шлюз
Можливостей,
які надає виклик процедур із
підпорядкованого сегмента, недостатньо,
щоб реалізувати системні виклики,
позаяк потрібно не лише виконувати
визначений код, а й звертатися до
системних даних. Механізм контрольованого
виклику процедур, які виконуються зі
своїм рівнем привілеїв, вищим за той,
що має поточний код, реалізується за
допомогою шлюзів.
Шлюз
— це спеціальний системний дескриптор
(рис. 10.12, табл. 10.8). Шлюз, який може бути
розташовано і в таблиці GDT,
і
в таблиці LDT,
призначений
для виклику не сегмента коду, а окремої
процедури з нього. Для виклику цієї
процедури шлюз містить адресу її точки
входження — селектор сегмента і
зміщення.
Виклик
здійснюється шляхом розміщення в полі
команди JMP
або CALL
селектора, який вказує на шлюз (задане
в команді зміщення не береться до
уваги).
Рис.
10.12. Шлюз виклику процедури: а — формат
шлюзу; б — формат байта захисту шлюзу
Шлюз
має власний DPL,
який визначає можливість доступу до
нього коду:
виконується умова CPL
<DPL,
тоді код має привілеї, не нижчі за
привілеї шлюзу.
Рівень DPL
сегмента того коду, що викликається
через шлюз, із рівнем CPL
не
порівнюється, натомість
порівнюється із RPL
селектора, що міститься у шлюзі.
Якщо
виклик успішний, код виконується зі
своїм CPL,
заданим DPL
сегмента.
Таблиця
10.8.
Поля шлюзу виклику процедури |
Ширина |
Символьне |
Призначення і вміст полів |
в шлюзі |
поля |
позначення |
|
|
(розряди) |
|
|
0...1 |
16 |
offset_l |
Молодші 16 розрядів зміщення точки входження |
2...3 |
16 |
selector |
Селектор сегмента, який містить код |
4 |
|
|
процедури |
біти 0...4 |
5 |
WC |
Лічильник параметрів |
біти 5...7 |
3 |
|
Заповнення нулями |
5 |
|
|
Байт захисту |
біти 0...3 |
4 |
Type |
Тип: С (386) або 4 (286) |
біт 4 |
1 |
S |
v =0 — «системний» |
біти 5...6 |
2 |
DPL |
Рівень привілеїв шлюзу |
біт 7 |
1 |
p - |
— шлюз відкритий |
|
|
|
=0 — шлюз закритий |
6...7 |
16 |
offset_l |
Старші 16 розрядів зміщення точки входження |