Реферат за темою випускної роботи
Шина USB (Universal Serial Bus - універсальна послідовна шина) є промисловим стандартом розширення архітектури персонального комп'ютера, орієнтованим на інтеграцію з телефонією та пристроями побутової електроніки. Специфікація периферійної шини USB була розроблена лідерами комп'ютерної і телекомунікаційної промисловості - Compaq, DEC, IBM, Intel, Microsoft, NEC та Northern Telecom - для підключення комп'ютерної периферії поза корпусом робочої станції за стандартом Plug-and-Play, в результаті чого відсутня необхідність в установці додаткових плат у слоти розширення та переконфігуруванні системи. Шина USB дозволяє одночасно підключати послідовно до 127 пристроїв, які можуть бути як додатковими компонентами робочої станції (зовнішні накопичувачі, пристрої введення, мобільні термінали та інше), так і хабами (вузлами) - пристроями, через які підключаються кінцеві додаткові компоненти [1]. Для досліджень обрано стандарт USB 2.0, який дозволяє проводити обмін інформацією з периферійними пристроями в трьох режимах: Low Speed (низька швидкість, до 1,5 Мбіт / с), Full Speed (стандартна швидкість, до 12 Мбіт / с), High Speed ( висока швидкість, до 480 Мбіт / с). Стандарт USB 3.0, який з'явився в 2010 році, все ще не входить в стандартне оснащення сучасних чіпсетів та поки не отримав широкого розповсюдження. Стандарт USB 3.0 повністю фізично та логічно сумісний з USB 2.0, граничної пропускної здатності в 480 Мбіт / с достатньо для задоволення потреб усіх застосувань в повній мірі, тому запропонована розробка збереже свою актуальність та працездатність при майбутньому переході на наступний стандарт.
- У даній роботі пропонується алгоритм забезпечення інформаційної безпеки в комп'ютерній мережі підприємства. В основі алгоритму полягає контроль інформаційних потоків між робочими станціями співробітників та зовнішніми накопичувачами, що підключаються за інтерфейсом USB.
- Актуальність запропонованого підходу полягає в необхідності реалізації контролю за внутрішніми та зовнішніми потоками даних підприємства для забезпечення максимальної конфіденційності внутрішньокорпоративної інформації.
- Наукова новизна роботи полягає в розробці інтелектуального алгоритму фільтрації інформаційних потоків, які передаються з / на USB-накопичувачі. Алгоритм фільтрації надає можливість виборки заданої інформації з широкого набору параметрів (ім'я процесу або файлу, маска даних, дата / час запису / читання та інші).
- Практична цінність запропонованого алгоритму полягає в розробці клієнт-серверної програми-розвідника, яка забезпечує контроль, управління та збір статистики за USB-накопичувачами, що підключаються до робочих станцій співробітників, а також змісту інформаційних потоків.
Архітектура шини та взаємодія компонентів USB
Архітектура та основні параметри шини USB визначаються покладеними на неї завданнями. Фізична топологія шини USB, наведена на рисунку 1, має наступні основні особливості [3]:
-шина забезпечує підключення USB-пристроїв до хосту USB;
-з'єднання пристроїв здійснюється за топології багатоярусної зірки;
-центром кожної зірки є хаб;
-кожен кабельний сегмент сполучає між собою дві точки: хост з хабом або функцією, хаб з функцією або іншим хабом.
Рисунок 1 – Фізична топологія шини USB
- Хост-контролер (host controller) USB - це центральний контролер, який входить до складу чипсета материнської плати та керує роботою всіх пристроїв на шині USB. При цьому на кожній шині USB допускається наявність тільки одного хоста. Типова плата сучасного комп'ютера містить кілька хост-контролерів, кожен з яких керує окремої шиною USB.
- Пристрій (device) USB може бути хабом або функцією, при цьому хаб (hub) - це пристрій, який забезпечує додаткові точки підключення до шини USB. Кожен хаб має один вихідний порт (Upstream Port), призначений для підключення до хабу верхнього рівня, та кілька спадних портів (Downstream Ports), призначених для підключення функцій або хабів нижнього рівня. Хаб управляє роботою низхідних портів, здійснює контроль підключення та відключення пристроїв.
Функція (function) USB - це периферійний пристрій (ПУ) або окремий блок ПУ, здатний передавати та приймати інформацію по шині USB. Розрізняють три рівні взаємодії хоста з фізичним пристроєм:
-на верхньому рівні (рівні функції) між собою взаємодіють клієнтська програма та функція;
-на середньому рівні (рівні пристрою) взаємодіють системне програмне забезпечення та логічний пристрій USB;
-на нижньому рівні (рівні інтерфейсу шини USB) хост-контролер взаємодіє з USB-інтерфейсом пристрою.
Рисунок 2 – Логічна топологія шини USB
Логічна топологія шини USB (рисунок 2), яка використовується на середньому рівні взаємодії, набагато простіше фізичної: хост обмінюється інформацією з логічними пристроями таким чином, що точка підключення пристрою не має значення, як якщо б всі пристрої були підключені до кореневого хабу.
- У специфікації шини USB вказана група дескрипторів, які повинні видаватися пристроями USB у відповідь на стандартні запити. Структура таких дескрипторів стандартизована, а в документації вони іменуються стандартними дескрипторами (standard descriptors) [4]. Далі розглянемо основні з них.
- Дескриптор пристрою. Стандартний дескриптор пристрою (standard Device Descriptor) містить основну інформацію про пристрій USB. Структура стандартного дескриптора пристрою показана в таблиці 1.
-
Табл. 1 – Структура дескриптора пристрою
-
Зміщ. |
Мнемоніка |
Розмір |
Опис |
0 |
bLength |
BYTE |
Розмір даного дескриптора в байтах |
1 |
bDescriptorType |
BYTE |
Тип дескриптора (DEVICE) |
2 |
bcdUSB |
WORD |
Номер версії специфікації USB |
4 |
bDeviceClass |
BYTE |
Код класу пристрою («0» - інтерфейси функціонують незалежно, «FFh» - клас визначається виробником |
5 |
bDeviceSubCIass |
BYTE |
Код підкласу пристрою USB |
6 |
bDeviceProtocol |
BYTE |
Код протоколу USB |
7 |
bMaxPacketSize |
BYTE |
Максимальний розмір пакета для нульової кінцевої точки (значення 8, 16, 32 і 64) |
8 |
idVendor |
WORD |
Ідентифікатор виробника пристрою |
10 |
idProduct |
WORD |
Ідентифікатор продукту |
12 |
bсdDevice |
WORD |
Номер версії пристрою |
14 |
iManufacturer |
BYTE |
Індекс дескриптора рядка (виробник) |
15 |
iProduct |
BYTE |
Індекс дескриптора рядка (продукт) |
16 |
iSerialNumber |
BYTE |
Індекс дескриптора рядка (серійний номер) |
17 |
bNumConfigurations |
BYTE |
Кількість конфігурацій |
Деякі поля стандартного дескриптора пристрою традиційно містять фіксовані значення та не несуть інформаційного навантаження. Код версії специфікації USB може приймати такі значення: "0100h" - версія 1.0, "0110h" - версія 1.1, "0200h" - версія 2.0. Значення коду класу одно "9" для хабів та "0" для будь-яких інших пристроїв, тому визначити тип пристрою за допомогою дескриптора пристрою можна тільки в тому випадку, якщо він є хабом, а ідентифікація інших стандартних периферійних пристроїв виконується за дескриптором інтерфейсу [3, 4].Ідентифікатор виробника пристрою, ідентифікатор продукту і номер версії пристрою використовуються для точної ідентифікації пристрою в рамках розроблюваної системи. У разі необхідності вони відправляються на сервер у вигляді рядка-ідентифікатора. Значення останнього байта стандартного дескриптора показує, скільки різних варіантів конфігурації можна задати для даного пристрою. Як правило, периферійні пристрої, призначені для використання спільно з персональними комп'ютерами, мають тільки один варіант конфігурації. Дескриптор конфігурації. Стандартний дескриптор конфігурації (Standard Configuration Descriptor) містить інформацію про одну з можливих конфігурацій пристрою. Структура стандартного дескриптора конфігурації показана в таблиці 2. Пристрій може мати один або кілька дескрипторів конфігурації відповідно до кількості можливих конфігурацій, зазначених у стандартному дескрипторі пристрою.
Табл. 2 – Структура стандартного дескриптора конфігурації
Зміщ.
Мнемоніка
Розмір
Опис
0
bLength
BYTE
Розмір даного дескриптора в байтах
1
bDescriptorType
BYTE
Тип дескриптора (CONFIGURATION)
2
TotalLength
WORD
Загальний розмір даних в байтах
4
bNumlnterfaces
BYTE
Кількість інтерфейсів конфігурації
5
bConfigurationValue
BYTE
Значення для установки заданої конфігурації
6
iConfiguration
BYTE
Індекс дескриптора рядка конфігурації
7
bmAttributes
BYTE
Характеристики конфігурації: біти «0-4» - резерв; біт 5 - ознака пробудження пристрою по зовнішньому сигналу; біт 6 - джерело живлення, біт 7 - резерв.
8
MaxPower
BYTE
Код потужності, яку споживає пристрій
.
Кожна конфігурація описується одним стандартним дескриптором. Розмір стандартного дескриптора конфігурації завжди становить 9 байт, а код типу дескриптора має значення "2". За запитом "Отримати Стандартний дескриптор конфігурації" пристрій видає не тільки дескриптор конфігурації, а й усі наявні дескриптори інтерфейсів та кінцевих точок.
Ідентифікація USB-пристроїв
В рамках системи аналізу потоків даних користувачів з / на USB-пристроїв було реалізовано алгоритм ідентифікації пристроїв, за допомогою якого можна визначити параметри та характеристики пристроїв, які підключені до шини USB робочої станції. Алгоритм ідентифікації пристроїв зображений на рисунку 3.
Рисунок 3 – Алгоритм ідентифікації USB-пристроїв
Реалізована програма виявляє хост-контролери, які встановлені на робочій станції, знаходить хаби та їх порти, потім сканує їх на наявність підключених пристроїв. Якщо пристрій знайдено, то формуються запити на отримання стандартних дескрипторів пристроїв. Спочатку виконується отримання інформації дескриптора пристрою, потім відправляється запит на дескриптор конфігурації. Розмір дескриптора конфігурації завжди становить 9 байт, а код типу дескриптора має значення "2". За запитом "Отримати стандартний дескриптор конфігурації" кожен пристрій видає не тільки дескриптор конфігурації, а й усі наявні дескриптори інтерфейсів та кінцевих точок. Тому, якщо з якоїсь причини не можна отримати дескриптор конфігурації, інформація дескрипторів рядки та кінцевої точки інтерфейсу буде недоступною. Програма є частиною системи, тому реалізація виконана у вигляді консольного додатку. Результати роботи програми представлені на рисунку 4.
Рисунок 4 – Результати роботи програми
Алгоритм забезпечення інформаційної безпеки на базі інтерфейсу USB
Кожен користувач сучасного персонального комп'ютера має можливість зберігати та передавати інформацію за допомогою USB-накопичувачів (флеш-пам'ять). Вартість таких пристроїв на комп'ютерному ринку становить близько 10 доларів в залежності від ємності. У зв'язку з досить низькою вартістю, а також досить гнучким і зручним використанням флеш-пам'яті більшість користувачів та працівників підприємств вибирають саме цей спосіб збереження та передачі інформації. З точки зору корпоративної безпеки та забезпечення конфіденційності внутрішніх даних часто необхідно вести контроль внутрішньокорпоративних інформаційних потоків. Тому пропонується опис алгоритму спостереження за робочими станціями співробітників будь-якої організації чи підприємства. Кінцевою метою роботи алгоритму є контроль інформації, яка переміщається співробітниками між жорсткими дисками робочих станцій та зовнішніми USB-носіями. Пропонований алгоритм спостереження реалізується програмою-розвідником, яка буде відслідковувати роботу всіх накопичувачів, що підключаються до робочих станцій співробітників через шину USB (рисунок 5).
Рисунок 5 – Принцип взаємодії програм-розвідників з контролерами шини USB і комп'ютером адміністратора
Як видно з рисунку 5, програма-розвідник структурно складається з двох частин - клієнтської і серверної, які взаємодіють одна з одною по локальній мережі.
Клієнтська частина запускається на локальній робочій станції співробітника і виконує такі функції:
1. Автозапуск програми-розвідника при старті операційної системи.
2. Визначення типів USB-пристроїв,що підключаються, а також групи параметрів, що характеризують пристрій (виробник, модель, серійний номер).
3. Контроль запитів на читання / запис інформації, можливість виокремлення заданої інформації на ім'я процесу або файлу, масці або вмісту.
4. Визначення MAC та і IP-адреси робочої станції.
5. Передача зібраної інформації на сервер, обсяг пакета інформації налаштовується.
6. Функціонування в прихованому режимі (у вигляді служби).
Серверна частина програми-розвідника запускається на робочій станції адміністратора і виконуються наступні основні функції.
1. Перевірка працездатності та повне віддалене управління всіма програмами-клієнтами.
2. Збір та накопичення інформації від програм-клієнтів.
3. Пакетне налагодження всіх підключених клієнтів.
4. Надання користувальницького інтерфейсу до накопиченої інформації.
- В результаті аналізу архітектури та взаємодії компонентів USB було запропоновано алгоритм забезпечення інформаційної безпеки на базі інтерфейсу USB, а також викладено загальний принцип роботи програми-розвідника. У рамках запропонованої системи реалізована підпрограма ідентифікації USB-пристроїв відповідно до його дескрипторів. Отримана інформація, яка дозволяє однозначно ідентифікувати конкретний USB-пристрій, в разі необхідності може бути збережена на сервері. Реалізована підпрограма є лише частиною розроблюваної системи.
- Реалізація запропонованого алгоритму може бути корисна в громадських, приватних чи державних підприємствах як для забезпечення контролю конфіденційності даних всередині комп'ютерної системи підприємства, так і для запобігання витоків корпоративної інформації за межі підприємства.
1. Агуров П. В. Интерфейс USB. Практика использования и программирования. – СПб: БХВ-Петербург,2004. – 576 с.
2. Гук М. Шины PCI, USB и FireWire. – ЗАО Издательский дом "Питер", 2005.– 544с.
3. Интересное о USB [электронный ресурс]. – Режим доступа: http://hi-tech.mail.ru/articles/item/1896/.
4. Комиссарова В. Программирование драйверов для Windows. –БХВ-Петербург, 2007 – 256 с.
5. Лапин А. Интерфейсы. Выбор и реализация. – Техносфераг, 2005 – 168 с.
6. Магда Ю. Ассемблер. Разработка и оптимизация Windows-приложений. – БХВ-Петербург, 2003 –540 с.
7. Мюллер C. Модернизация и ремонт ПК (глава 15 – Последовательный, параллельный и другие интерфейсы ввода/вывода – USB) = Upgrading and Repairing PCs. – 17 изд. – М.: "Вильямс", 2007. – С. 1016-1026.
8. Уолтер О. Использование microsoft windows driver model. – Питер, 2007 – 768 с.
9. Хульцебош Ю. USB в электронике. – BHV-СПб, 2011. – 224 с.
10. Anderson D. Universal Serial Bus System Architecture [электронный ресурс]. – Режим доступа: http://interface.centraltreasure.com/files/pdf/Hardware_USB_ System_Architecture_pdf.pdf.