взлом

Реферат по теме выпускной работы

     

    Введение

 Шина 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 Мбит/с). Появившийся в 2010 году стандарт USB 3.0 все еще не входит в стандартное оснащение современных чипсетов и пока не получил широкого распространения. Стандарт 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]. Далее рассмотрим основные из них.
  • Дескриптор устройства. Стандартный дескриптор устройства (tandard 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.

 

в начало