взлом

Реферат за темою випускної роботи

     

    Вступ

Шина 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 вказана група дескрипторів, які повинні видаватися пристроями 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).

<mp gif animator,295k,loop 4, 5 slides>

Рисунок 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.

 

на початок