close

Вход

Забыли?

вход по аккаунту

Рожкова Лидия Олеговна. Разработка программного средства контроля подключения USB-накопителей

код для вставки
АННОТАЦИЯ
ВКР 68 с., 25 рис., 3 табл., 15 источников, 1 прил.
ИНФОРМАЦИОННАЯ
БЛОКИРОВКА
USB,
БЕЗОПАСНОСТЬ,
КОНТРОЛЬ
USB-НОСИТЕЛИ,
ПОДКЛЮЧЕНИЙ,
УТЕЧКИ
ИНФОРМАЦИИ, АДМИНИСТРИРОВАНИЕ
Выпускная
квалификационная
работа
посвящена
разработке
программного средства контроля подключений USB-носителей.
В первой главе была рассмотрена проблема утечек данных на
предприятиях, а также выявлены особенности интерфейса USB и проведен
сравнительный анализ существующих средств контроля подключений USBносителей информации.
Во второй главе было проведено моделирование разрабатываемого ПС,
разработана общая архитектура и построены функциональные схемы.
В третьей главе на основании созданных моделей было проведено
проектирование ПС, разработана структура программы и ее основные
алгоритмы.
В
четвертой
главе
представлены
особенности
реализации
программного средства контроля подключений USB-носителей информации,
приведены примеры его работы, а также проведено исследование собранных
с помощью программы данных о подключаемых устройствах.
3
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
5
1 АНАЛИЗ ЗАДАЧИ ОБЕСПЕЧЕНИЯ КОНТРОЛЯ ПОДКЛЮЧЕНИЙ USBУСТРОЙСТВ
7
1.1 Анализ внутренних угроз утечки информации через USB-носители
7
1.2 Анализ технологии предотвращения утечек информации через USB-порты в
операционной системе Windows
9
1.3 Анализ существующих средств контроля и управления доступом к USBпортам
19
1.4 Требования, предъявляемые к разрабатываемому программному средству
контроля подключения USB-накопителей
27
2. МОДЕЛИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯ USB-НАКОПИТЕЛЕЙ
30
2.1 Архитектура ПС контроля подключения USB-накопителей
30
2.2 Разработка функциональной модели средства контроля
32
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯ USB-НАКОПИТЕЛЕЙ
41
3.1 Общая структура ПС
41
3.2 Проектирование основных классов ПС
42
3.3 Разработка модели коммуникаций
45
3.4 Основные алгоритмы ПС
48
4 РЕАЛИЗАЦИЯ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯ USB-НАКОПИТЕЛЕЙ
54
4.2 Особенности реализации программного средства контроля подключения
USB-накопителей
54
4
4.3 Разработка пользовательского интерфейса ПС контроля подключения USBнакопителей
55
4.4 Сбор и исследование данных о подключаемых устройствах
58
ЗАКЛЮЧЕНИЕ
67
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
68
ПРИЛОЖЕНИЕ А - ЛИСТИНГ ПРОГРАММЫ
70
УДОСТОВЕРЯЮЩИЙ ЛИСТ
79
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКАДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
80
5
ВВЕДЕНИЕ
Одной из задач
информационных технологий является обеспечение
безопасного обмена большими объемами рабочей и служебной информации.
Вследствие этого одной из проблем, стоящей перед службой безопасности
организации, является решение вопросов, связанных с контролем действий
пользователей по использованию личных и служебных USB-флеш накопителей
информации.
Основными причинами утечки информации являются несоблюдение
персоналом правил эксплуатации АС, ошибки в проектировании АС и систем
защиты АС, ведение противостоящей стороной технической и агентурной
разведок.Поэтому одной из важных проблем является вопрос, связанный с
осуществлением
контроля
действий
пользователей
по
использованию
информационных ресурсов, размещенных на мобильных носителях.
Актуальность этой проблемы объясняется повсеместным распространением
USB-носителей,
залогом
распространенность,
чему
простота
стали
в
его
неоспоримые
использовании,
пропускная
преимущества:
способность,
обеспечение питания, миниатюрные размеры.Все эти факторы затрудняют
контроль их использования.
Использование незарегистрированных USB-флеш накопителей информации
для хранения и накопления служебной информации при их использовании для
данных целей может нанести ущерб системе, в которой используются, т.к. данные
устройства, не прошедшие проверочные мероприятия, могут реализовывать
недекларированные возможности, вложенные в них производителями или же
злоумышленниками.
Для выполнения мероприятий по обеспечению безопасного подключения
различных переносных носителей информации создаются и существуют
программные средства контроля подключений. Они разрабатываются множеством
производителей и с различным функционалом. Данные программные средства
используется как отдельными пользователями, так и организациями. Но в органах
6
государственной охраны данные программные средства для возможности
использования в системах, обрабатывающих служебную и конфиденциальную
информацию,
должны
пройти
проверку
на
наличие
недекларированных
возможностей. В связи с этим возникает потребность в разработке программного
средства контроля USB-носителей информации.
7
1 АНАЛИЗ ЗАДАЧИ ОБЕСПЕЧЕНИЯ КОНТРОЛЯ ПОДКЛЮЧЕНИЙ
USB-УСТРОЙСТВ
1.1Анализ внутренних угроз утечки информации через USB-носители
В настоящее время подключения несанкционированных устройств или
любых мобильных носителей информации к сертифицированным средствам
вычислительной
техники
могут
представлять
собой
серьезную
угрозу
безопасности сети, поэтому оперативное обнаружение и блокирование таких
подключений является необходимой функцией любой системы защиты.
Прежде
программного
чем
разрабатывать
средства
контроля
и
поддерживать
подключений
функционирование
USB-флеш
накопителей,
необходимо определить требования, предъявляемые к программным средствам,
направленным
на
предотвращение
возможных
угроз
информационной
безопасности.
В качестве актива выступает информация, хранимая в рабочей станции
(ПЭВМ). Основными предпосылками к утечке информации через переносные
накопители являются следующие факторы:
а) неэффективное управление паролями доступа к компьютеру (легко
определяемые пароли, хранение в незашифрованном виде, недостаточно частая
замена паролей);
б) неправильное присвоение прав доступа пользователям;
в) наличие вредоносного ПО на съемном USB-флеш накопителе.[4]
Руководящим документом «Концепция защиты средств вычислительной
техники и автоматизированных систем от несанкционированного доступа к
информации» от 30.03.1992 в качестве нарушителя рассматривается субъект,
имеющий доступ к работе со штатными средствами АС и средств вычислительной
техники
(СВТ).
Нарушители,
в
указанном
руководящем
документе,
классифицируются по уровню возможностей, предоставляемых им штатными
средствами АС и СВТ, подразделяются на четыре уровня, показанных в таблице 1.
8
Таблица 1 –Характеристика нарушителя
Уровень нарушителя
Первый уровень
Возможности нарушителя
Запуск задач (программ) из фиксированного набора,
реализующих заранее предусмотренные функции по
обработке информации
Второй уровень
Создания и запуска собственных программ с новыми
функциями по обработке информации
Третий уровень
Управления
функционированием
АС,
то
есть
воздействием на базовое программное обеспечение
системы и на состав и конфигурацию ее оборудования
Четвертый уровень
Весь объем возможностей лиц, осуществляющих
проектирование, реализацию и ремонт технических
средств АС, вплоть до включения в состав СВТ
собственных
технических
средств
с
новыми
функциями по обработке информации
Возможными нарушителями могут быть:
а) внутренние субъекты, имеющие доступ к работе со штатными
средствами АС и СВТ – обслуживающий персонал (системный администратор,
сотрудники обеспечения ИБ);
б) пользователи ОГВ;
в) посторонние
лица,
находящиеся
по
различным
причинам
в
непосредственной близости от источника информации (рабочей станции, ПЭВМ).[8]
Основной угрозой является нарушение конфиденциальности, посредством
НСД к рабочей станции и кражи информации (утечки информации по портам)
методом копирования ее на переносные USB-накопители. Утечка может быть
намеренной или непреднамеренной. Практика показывает, что большая часть
ставших известными утечек (порядка 3/4) происходит не в результате злого
умысла, а из-за ошибок, невнимательности, небрежности работников. Остальная
часть связана с преднамеренными действиями.
9
1.2 Анализ технологии предотвращения утечек информации через USBпорты в операционной системе Windows
DLP-система (англ.DataLeakPrevention)
– технология предотвращения
утечек конфиденциальной информации из информационной системы вовне, а
также технические устройства (программные или программно-аппаратные) для
обеспечения предотвращения утечек.
DLP-системы строятся на анализе потоков данных, пересекающих периметр
защищаемой информационной системы. При детектировании в этом потоке
конфиденциальной информации срабатывает активная компонента системы, и
передача сообщения (пакета, потока, сессии) блокируется.
Необходимость защиты от внутренних угроз была очевидна на всех этапах
развития средств информационной безопасности (ИБ). Однако первоначально
внешние угрозы считались более опасными. В последние годы на внутренние
угрозы стали обращать больше внимания, и популярность DLP-систем возросла.
Необходимость их использования стала упоминаться в стандартах и нормативных
документах. Специализированные технические средства для защиты от внутренних
угроз стали массово выпускаться только после 2000 года.
Распознавание
конфиденциальной
информации
в
DLP-системах
производится двумя способами: анализом формальных признаков (например,
грифа документа, специально введѐнных меток, сравнением хэш-функции) и
анализом контента. Первый способ позволяет избежать ложных срабатываний
(ошибок второго рода), но зато требует предварительной классификации
документов, внедрения меток, сбора сигнатур и т.д. Пропуски конфиденциальной
информации (ошибки первого рода) при этом методе вполне вероятны, если
конфиденциальный документ не подвергся предварительной классификации.
Второй способ даѐт ложные срабатывания, зато позволяет выявить пересылку
конфиденциальной информации не только среди грифованных документов. В
качественных DLP-системах оба способа сочетаются.
В состав DLP-систем входят компоненты (модули) сетевого уровня и
компоненты уровня хоста. Сетевые компоненты мониторинга контролируют
10
трафик, пересекающий границы информационной системы. Обычно они
установлены на прокси-серверах, серверах электронной почты, а также в виде
отдельных серверов мониторинга. Компоненты мониторинга уровня хоста
устанавливаются обычно на ПЭВМ и контролируют такие каналы, как запись
информации на компакт-диски, флэш-накопители и т.п. Хостовые компоненты
мониторинга также стараются отслеживать изменение сетевых настроек,
инсталляцию программ для туннелирования, стеганографии и другие возможные
методы для обхода контроля. Помимо компонентов мониторинга обоих указанных
типов DLP-система должна иметь подсистему централизованного управления.
Основной задачей DLP-систем является мониторинг и предотвращение
передачи конфиденциальной информации за пределы АС.
Кроме основной задачи перед DLP-системой могут стоять и вторичные
задачи:
 архивирование пересылаемых сообщений на случай возможных в
будущем расследований инцидентов;
 предотвращение передачи вовне не только конфиденциальной, но и
другой нежелательной информации (спама, излишних объѐмов данных и т.п.);
 предотвращение передачи нежелательной информации не только
изнутри наружу, но и снаружи вовнутрь информационной системы;
 предотвращение использования работниками информационных ресурсов
в личных целях;
 оптимизация загрузки каналов, экономия трафика;
 контроль присутствия работников на рабочем месте.
Как следует из анализа DLP-систем, их основой является подсистема
мониторинга,
в
которой
наибольшее
распространение
получил
USBинтерфейс.[12]
USB (англ. UniversalSerialBus) – «универсальная последовательная шина» –
последовательный
интерфейс передачи
данных
для
среднескоростных
низкоскоростных периферийных устройств в вычислительной технике.
и
11
Мобильные носители информации с интерфейсом USB представляют собой
накопители информации, использующие флеш-память для хранения данных и
подключаемые к компьютеру или иной компьютерной системе через различные
типы разъѐмов USB.
Носители типа USB-накопителей имеют малые размеры и получили
большую популярность еще в 2000-е годы из-за компактности, лѐгкости,
возможности перезаписывания файлов и большого объѐма памяти (от 32 МБ до
256 ГБ и выше). Основное назначение USB-накопителей – хранение, перенос и
обмен данными, резервное копирование, загрузка операционных систем и др.
Преимущества использования USB-интерфейса:
 малый вес накопителя (меньше 60 г.), бесшумность работы и
портативность (размер в среднем около 5 см.);
 распространенность портов для подключения;
 более устойчивы к механическим воздействиям (вибрации и ударам) по
сравнению с НЖМД;
 работоспособность в широком диапазоне температур;
 высокая плотность записи (значительно выше, чем у CD или DVD).
 огромный объем;
 возможность поддержки USB 3.0;
 подключение к любым операционным системам;
 огромное число циклов перезаписи;
 высокие скорости записи и чтения;
 отсутствие подвижных частей;
 не подвержены воздействию царапин и пыли.
Информация о USB-накопителях в операционной системе хранится в
реестре. MicrosoftWindows для идентификации USB-накопителя использует
уникальный идентификатор завода-изготовителя (Vendoridentification, VID) и
уникальный
идентификатор
проставляются
продукта
производителем
(Productidentification,
USB-накопителя
и
в
PID),
которые
дальнейшем
не
12
меняются.[14] Уникальный идентификатор USB-накопителя можно узнать,
подключив USB-накопитель и открыв его свойства в диспетчере устройств.
Пример информации о USB-накопителе:
«USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0\5B8213
003402&0».
где: USBSTOR – типустройства; DISK&VEN_KINGSTON – производитель
(вданномслучае –фирма «Kingston»); PROD_DATATRAVELER_2.0 – модель
(вданномслучае«Datatraveler
2.0»);
5N8524006547
–
серийныйномерUSB-
накопителя; &0 – указательнаконецстроки.
Для того чтобы удалить информацию о ранее подключаемом USBнакопителе достаточно удалить сведения из следующих разделов реестра:
HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{53f56547-b6bf11d0-94f2-00a0c91efb8b};
HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{a5dcbR50-653011d2-901f-00c04fb9547d};
HKLM\SYSTEM\CurrentControlSet\Enum\USB;
HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR.
Если при подключении USB-носителя к компьютеру операционная система
не находит информации подключаемого USB-носителя в реестре, то происходит
его регистрация. Для регистрации используются следующие файлы операционной
системы:
«%SystemRoot%\Inf\usbstor.inf»
«%SystemRoot%\Inf\usbstor.PNF»
При удалении выше указанных файлов подключенные USB-носители не
перестанут определяться в ОС.
Разработкой
спецификациями
USB
занимается
международная
некоммерческая организация USB ImplementersForum (USB-IF).[10]
Для подключения периферийных устройств к шине USB используется
экранированный четырѐхпроводный кабель, представленный на рисунке 1, при
этом два провода (витая пара) в дифференциальном включении используются для
13
приѐма и передачи данных, а два провода – для питания периферийного
устройства.
Рисунок 1 –Разъемы USB: тип А (слева), тип В (справа)
Благодаря встроенным линиям питания USB позволяет подключать
периферийные устройства без собственного источника питания (максимальная
сила тока, потребляемого устройством по линиям питания шины USB, не должна
превышать 500 мА).
К одному контроллеру шины USB можно подсоединить до 127 устройств по
топологии «звезда», в том числе и концентраторы. На одной шине USB может
быть до 127 устройств и до 5 уровней каскадирования хабов, не считая корневого.
В настоящее время широко используются устройства, выполненные в
соответствии со спецификацией USB 2.0. Ведѐтся внедрение в использование
устройств спецификации USB 3.0.
Кабели USB ориентированы, то есть имеют физически разные наконечники
«к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со
встроенным в корпус наконечником «к хосту». Возможно и неразъѐмное
встраивание кабеля в устройство, как в мышь (стандарт запрещает это для
устройств full и highspeed, но производители его нарушают). Кроме этого,
существуют (хотя и запрещены стандартом) и пассивные USB удлинители,
имеющие разъѐмы «от хоста» и «к хосту».
14
Шина строго ориентирована, имеет понятие «главное устройство» (хост, он
же USB контроллер, обычно встроен в микросхему южного моста на материнской
плате) и «периферийные устройства». Шина имеет древовидную топологию,
поскольку периферийным устройством может быть разветвитель (hub), в свою
очередь имеющий несколько нисходящих разъемов «от хоста». Разветвитель есть
сложное электронное устройство, пассивных разветвителей не бывает.
Соединение 2 компьютеров – или 2 периферийных устройств — пассивным
USB кабелем невозможно. Существуют активные USB кабели для соединения 2
компьютеров, но они включают в себя сложную электронику, эмулирующую
Ethernet адаптер, и требуют установки драйверов с обеих сторон.
Устройства могут быть запитаны от шины, но могут и требовать внешний
источник питания. Поддерживается и дежурный режим для устройств и
разветвителей по команде с шины со снятием основного питания при сохранении
дежурного питания и включением по команде с шины.
USB поддерживает «горячее» подключение и отключение устройств.
При первом подключении USB-устройство автоматически обнаруживается
операционной системой, после чего она осуществляет поиск нужного драйвера.
При этом действует правило: чем новее версия используемой операционной
системы,
тем
выше
вероятность
того,
что
пользователю
не
придется
устанавливать драйвер самостоятельно. К примеру, Windows автоматически
распознают флэш-накопители, кард-ридеры и внешние жесткие диски и
регистрируют их в качестве съемных дисков. Необходимые для этих устройств
драйверы входят в дистрибутив Windows и всегда находятся «под рукой» у
системы.
Активной стороной шины всегда является контроллер, передача пакета
данных от устройства к контроллеру реализована как короткий вопрос
контроллера и длинный, содержащий данные, ответ устройства. Расписание
движения пакетов для каждого периода шины создается совместным усилием
аппаратуры контроллера и программное обеспечение (далее - ПО) драйвера, для
этого многие контроллеры используют достаточно сложный алгоритм.
15
Спецификация 1.0 регламентировала два типа разъѐмов: A – на стороне
контроллера или концентратора USB и B – на стороне периферийного устройства.
Впоследствии были разработаны миниатюрные разъѐмы для применения USB в
переносных и мобильных устройствах, получившие название Mini-USB. Эта
версия миниатюрных разъѐмов, называемых Micro-USB, была представлена USB
ImplementersForum 4 января 2007 года.
Размеры разъѐмов представлены на рисунке 2.
а)
б)
в)
г)
Рисунок2 – Разъемы USBа)USB Тип A – 4×12 мм, б)USB Тип B – 7×8 мм, в) USB
mini A – 4×7 мм и г) USB mini B – 2×7 мм
Существуют также разъѐмы типа Mini-AB и Micro-AB, с которыми
соединяются соответствующие коннекторы как типа A, так и типа B.
В отличие от других стандартных типов разъѐмов, USB-A удачно сочетает
долговечность и механическую прочность, несмотря на отсутствие винтовой
затяжки.
Однако
уменьшенные
варианты
разъѐмов,
имеющие
тонкие
16
пластмассовые выступы, высоко выступающие из подложки гнезда, плохо
переносят частое смыкание-размыкание и требуют более бережного обращения.
Хотя пиковая пропускная способность USB 2.0 составляет 480 Мбит/с (60
Мбайт/с), на практике обеспечить пропускную способность, близкую к пиковой,
не удаѐтся (~33,5 Мбайт/сек на практике). Это объясняется достаточно большими
задержками шины USB между запросом на передачу данных и собственно
началом передачи. Например, шина FireWire хотя и обладает меньшей пиковой
пропускной способностью 400 Мбит/с, что на 10 Мбайт/с меньше, чем у USB 2.0,
в реальности позволяет обеспечить большую пропускную способность для
обмена данными с жѐсткими дисками и другими устройствами хранения
информации. В связи с этим разнообразные мобильные накопители уже давно
«упираются» в недостаточную практическую пропускную способность USB 2.0.
Спецификацией USB 3.0 предусмотрен режим SuperSpeed со скоростью
передачи данных до 5 Гбит/с (640 Мбайт/с), то есть более чем в 10 раз
превышающей ту, что предусмотрена спецификацией USB 2.0. Но при всех
различиях (коих немало) сохраняется обратная совместимость USB 3.0 c USB 2.0.
То есть в спецификации USB 3.0, кроме режима SuperSpeed, оставлены и режимы
Hi-Speed, Full-Speed и Low-Speed. Кроме того, разъемы USB 3.0 совместимы с
разъемами USB 2.0. Это означает, что все периферийные устройства с
интерфейсом USB 2.0 можно будет подключать к шине USB 3.0.
а) Разъем USB 3.0 типа A (представлен на рисунке 3).
Рисунок3 – Разъем USB 3.0 типа A
Совместимость разъема USB 3.0 типа A с разъемом USB 2.0 типа A
достигается за счет того, что все контакты, присутствующие в разъеме USB 2.0
17
типа A, есть и в разъеме USB 3.0 типа A, но в последний добавлены и новые
контакты.
б) Разъем USB 3.0 типа B (представлен на рисунке 4).
Рисунок 4 – Разъем USB 3.0 типа B
Всего в разъеме USB 3.0 типа B, представленном на рисунке 8, имеется
девять контактов. Их расположение, естественно, отличается от расположения
контактов в разъеме USB 3.0 типа A, однако соответствие номеров контактов и их
назначение точно такое же.
в) Разъем USB 3.0 Powered-B. По своему формфактору полностью
совместим с разъемом USB 3.0 типа B, но отличается от него наличием двух
дополнительных контактов питания (DPWR и DGND) и двух дополнительных
проводов
в
USB-кабеле,
что
позволяет
запитывать
USB-адаптеры
без
необходимости подключения их к сети.В гнездовой разъем USB 3.0 Powered-B
можно вставлять штепсельный разъем USB 3.0 Powered-B, разъем USB 3.0 типа B
и USB 2.0 типа B. Всего в разъеме USB 3.0 Powered-B имеется 11 контактов.
г) Разъем USB 3.0 Micro-B. Ориентирован на использование в портативных
устройствах, таких как мобильные телефоны, коммуникаторы и т.д. Он совместим
с разъемом USB 2.0 Micro-B, то есть в гнездовой разъем USB 3.0 Micro-B, кроме
штепсельного разъема USB 3.0 Micro-B, можно также вставлять штепсельный
разъем USB 2.0 Micro-B. Он представлен на рисунке 5.
18
Рисунок5 – Разъем USB 3.0 Micro-B
Всего в разъеме USB 3.0 Micro-B имеется десять контактов. Кроме
стандартных контактов VBUS, D-, D+, GND, SSTX-, SSTX+, GND_DRAIN, SSRXи SSRX+, есть еще один специфический контакт ID, предназначенный для
идентификации режима OTG.
д) Разъем USB 3.0 Micro-AB будет использоваться только в устройствах,
поддерживающих стандарт OTG (On-The-Go) (собственно, как и разъем USB 2.0
Micro-AB). В гнездовой разъем USB 3.0 Micro-AB можно будет вставлять
штепсельные разъемы USB 3.0 Micro-B, USB 3.0 Micro-A, USB 2.0 Micro-B и USB
2.0 Micro-A. А вот гнездовой разъем USB 2.0 Micro-AB будет совместим только со
штепсельными разъемами USB 2.0 Micro-B и USB 2.0 Micro-A.
Чтобы гарантировать надѐжную передачу данных,интерфейс USB 3.0
использует кодирование 8/10 бит, знакомое нам, например, по Serial ATA. Один
байт (8 бит) передаѐтся с помощью 10-битного кодирования, что улучшает
надѐжность передачи в ущерб пропускной способности. Поэтому переход с битов
на байты осуществляется с соотношением 10:1 вместо 8:1. Преимущество разъема
USB 3.0 наглядно представлено на рисунке 6.
19
Рисунок 6 – Сравнение пропускной способности USB 1.x – 3.0 и конкурентов
С использованием съемных USB-флеш накопителей возникает проблема
внутренней угрозы утечки информации, т.е. в силу геометрических и технических
характеристик съемных носителей их можно незаметно пронести на территорию
организации и нарушить установленные регламенты сбора, обработки, передачи и
хранения информации.
Проблема внутренних угроз информационной безопасности стоит на первом
месте относительно внешних, в связи с чем возрастает актуальность применения
мониторинга
и
контроля
несанкционированных
подключений
USB-флеш
накопителей информации в автоматизированной системе.
1.3 Анализ существующих средств контроля и управления доступом к
USB-портам
Перемещение
локальной
сети
информации
компании
через
является
границы
охраняемого
наибольшей
проблемой
периметра
службы
информационной безопасности. С каждым годом актуальность этой проблемы
только растет, а еѐ решение становится все более необходимым. За последнее
время резко увеличилось число всевозможных USB-устройств, которые могут
использоваться в качестве накопителей. При этом объем информации, который
может быть записан с помощью таких устройств, уже догнал объем винчестеров.
20
Сегодня USB-диски с объемом в 4 Гб уже давно не редкость, объем жестких
дисков переносных MP3 плейеров превысил 80Гб, а ведь кроме этого есть еще и
фотоаппараты, мобильные телефоны, КПК с большим объемом памяти и т.д.
Объем рынка таких устройств показывает экспоненциальный рост: физические
размеры все меньше и меньше, а производительность и объем все больше и
больше.
Постоянно увеличиваются инвестиции в межсетевые экраны, используются
все новые и более надежные алгоритмы шифрования, другие средства и
технологии контроля для защиты данных от хищения через Интернет. Однако не
стоит забывать, что большинство хищений сегодня происходит по вине
собственных сотрудников, которые посредством использования различных типов
USB-устройств скачивают конфиденциальную информацию. Все технологии по
защите вашей сети от внешних злоумышленников не могут воспрепятствовать
обиженным сотрудникам, которые вполне могут использовать USB-устройства
для загрузки злонамеренного ПО в сеть компании или для хищения информации
из этой сети.
Все вышеперечисленное привело к тому, что был разработан целый класс
программного
обеспечения
для
контроля
сменных
носителей.
ТипичнымипримерамиданногоПОявляютсяUSBDEViceKILLer,
ZLOCK,
USBManager, USBLock, InfoWatchEndPointSecurity,DeviceLock.
Рассмотрим их функциональные назначения:
а) USB DEViceKILLerпредназначена длявыборочного удаления USBустройство из списка реестра, кроме того она может очистить историю открытия
документов в MicrosoftOffice. Достоинством данной программы является
возможность автоматического отслеживания в списке реестра записей про USBустройства,
которое
были
удалены
вручную.
Недостатком
является
невозможность создания разрешенных и/или запрещенных списков USBносителей, а также отсутствие документов подтверждающих отсутствие НДВ.
б) Программа
Zlockпредназначена
для
предотвращения
утечки
конфиденциальной информации через периферийные устройства за счет гибкой
21
настройки политик доступа, анализа содержимого в передаваемых файлах,
блокирования несанкционированного копирования документов и действий
пользователей в случае выявления нарушений политик безопасности.
Эта программа позволяет разграничить доступ к следующим устройствам:
-
USB-устройства (flash-накопители, цифровые камеры и аудиоплееры,
карманные компьютеры и т. д.);
-
локальные и сетевые принтеры;
-
внутренние устройства (контроллеры Wi-Fi, Bluetooth, IrDA, сетевые
карты и модемы, FDD-, CD- и DVD-дисководы, жесткие диски);
-
порты LPT, COM и IEEE 1394;
-
устройства, имеющие символическое имя.
Кроме этого программа Zlock позволяет выполнять:
-
контентный анализ передаваемой информации;
-
удаленное управление;
-
взаимодействие с ActiveDirectory;
-
теневое копирование передаваемых данных в защищенное хранилище на
локальной машине;
-
введение журнала событий;
-
контроль целостности файлов, хранящихся на съемном носителе
информации.
Ключевым достоинством данной программы является наличие сертификата
ФСТЭК, который соответствует третьему уровню контроля по отсутствию НДВ и
имеет оценочный уровень доверия «4» в соответствии с требованиями
руководящего документа «Безопасность информационных технологий. Критерии
оценки безопасности информационных технологий».
Недостатком
этой
программы
является
отсутствие
дополнительных
сведений для аутентификации пользователей.
в) Программа USB Manager служит помощником администратору в
управлении подключаемыми USB-устройствами. Она имеет функции полного
выключения и включения USB-портов для принтеров, сканерови flash-
22
накопителей. Программа используется для разграничения доступа пользователей
работающих на одном персональном компьютере, а также для блокировки USBпортовс помощью паролей.Кроме этого имеется возможность клиент-серверного
взаимодействия через два модуля.
USB ManagerServer:
-
получение информации с удаленных персональных компьютеров (ПК)
об используемых USB-портах;
-
отключение USB-портов по типам подключаемых устройств;
-
создание списка удаленных ПК;
-
возможность создания краткого описания по каждому подключению.
USB ManagerClient:
-
управление USB-портами на данном ПК;
-
установка пароля подключения к ПК серверной части USBManager, а
также на панель настроек клиентской части;
-
получение информации по состоянию USB-портов на данном ПК.
Достоинством этой программы является то, что возможно удаленное
централизованное управление доступомк USB-портам, а недостатками ее
стоимость и отсутствие проверки на недекларируемые возможности.
г) USB Lock поставляетсякомпанией ASI (Advanced Systems International).
Купить его или скачать пробную версию можно в интернете. Лицензия на одну
рабочую станцию стоит 15 долларов, на 10 компьютеров – 170 долларов, на 20 ПК
– 340 долларов и на 40 – 630 долларов.
Программа USB Lock поддерживает линейку OSWindows. Отличительной
особенностью являются очень малые требования к ресурсам защищаемой рабочей
станции.Продукт в состоянии предотвратить неавторизованный доступ ко всем
USB-накопителям,
приводам
компакт-дисков
и
дисководу.
При
этом
функционирование таких USB-устройств, как мыши, принтеры, камеры и т.д. не
нарушается. Программа представляет собой сервис, работающий в системе
Windows на уровне локальной системы. Другими словами, решение «USB Lock»
может быть запущено на компьютере даже без привилегий администратора.
23
Помимо возможностей централизованной настройки правил продукт
позволяет защитить доступ к внешним устройствам с помощью пароля. В этом
случае от пользователя потребуется ввести ключевое слово, чтобы снять
информацию с рабочей станции. Такая возможность пригодится в небольших
локальных сетях и на малых предприятиях.
Администратор «USB Lock» может собирать информацию об активности
пользователей прямо в свою центральную консоль управления. Он также может
вмешиваться в работу сотрудников, например, отключить заданное USBустройство по собственному усмотрению или защитить доступ к нему паролем. В
плане взаимодействия с конкретным пользователем программа «USB Lock»
наиболее понятная пользователю, так как позволяет выводить сообщения,
объясняющие служащему, что его действия противоречат политике безопасности
и он должен немедленно прекратить запрещенную операцию, например,
отключить USB-накопитель.
Вдобавок к функциональности по предотвращению утечек программа
позволяет защищать отдельные папки. Это можно сделать прямо в режиме
Drag&Drop. Уже защищенная папка меняет свою иконку на специально
предусмотренную в «USB Lock». Для доступа к ней необходимо обладать либо
соответствующими
правами,
либо
знать
пароль.
К
сожалению,
такая
функциональность вряд ли может быть востребована в корпоративной среде, где
все политики задаются централизованно. Администратор просто не в состоянии
воспользоваться режимом Drag&Drop, столь популярным среди домашних
пользователей.
Наконец,
еще
одной
возможностью«USB
Lock»
является
защита
компьютера на тот период времени, когда пользователю надо отойти от него. В
этом случае программа может оставить все то же расположение рабочих окон на
экране, но для возобновления операций потребуется ввести пароль. В принципе,
практически эта же функциональность реализована стандартными средствами
Windows, но ее избыточное присутствие в конкретном продукте ИТ-безопасности
может оказаться полезным.
24
Следует отметить, что возможность развертывания USB Lock без
привилегий администратора по логике вещей предполагает и возможность
отключения этого сервиса опять же без полномочий администратора.
д) Программное обеспечение InfoWatchEndPointSecurity – это система
защиты информации на компьютерах и съемных носителях, предотвращающая
потерю важных данных и несанкционированные действия сотрудников. Ключевые
возможности
продукта
обеспечение
InfoWatchEndPointSecurity
составляют
единую концепцию CAFE (Control, Audit, Filter, Encryprtion): Контроль
использования и разграничение прав доступа работников к внешним устройствам.
InfoWatchEndPointSecurity (Audit) – автоматический мониторинг нежелательных
действий
сотрудников.В
журнале
событий
InfoWatchEndPointSecurity
отображаются действия каждого сотрудника: кто и когда выполнял те или иные
операции, используя съемные устройства, телефоны, Wi-Fi сети, сетевые папки,
облачные
хранилища
(чтение,
копирование,
создание
или
удаление).
InfoWatchEndPointSecurity (ApplicationControl) – инструмент управления запуском
приложений.
Решение
позволяет
управлять
запуском
приложений
и
контролировать доступ к ним сотрудников с помощью разрешенного (белого) или
запрещенного (черного) списков.
Сертификаты: Лицензии ФСБ № 0006393 и № 0006394, Лицензии ФСТЭК
№004773 и №004772, Сертификат ФСТЭК №3306.
е) DeviceLockпоставляется компанией «SmartLine». Купить его или скачать
пробную версию можно в интернете. Лицензия на одну рабочую станцию стоит
1,3 тыс. рублей, на 200 компьютеров – 94 тыс. руб., на 2 тыс. ПК – 280 тыс. руб.
Кроме
доступа
к
USB-портам,
продукт
позволяет
контролировать
дисководы, приводы компакт-дисков, порты IrDA, FireWire, LPT, COM и
беспроводные сети Wi-Fi и Bluetooth. Продукт DeviceLock позволяет назначать
права доступа для пользователей и групп пользователей с помощью системы
удаленного управления, позволяющей обеспечивать централизованный доступ ко
всем агентам, которые развернуты на рабочих станциях.
Решение обладает рядом отличительных особенностей, среди которых:
25
возможность контролировать доступ в зависимости от времени и дня недели;
режим «только чтение» для работы со сменными носителями, жесткими дисками
и CD; возможность полностью заблокировать доступ к USB-порту за
исключением заранее авторизованных устройств; средства защиты дисков от
случайного или преднамеренного форматирования; управление доступом через
групповые политики в домене ActiveDirectory и протоколирование обращения
пользователей к устройствам. Стоит отдельно отметить, что различные версии
DeviceLock умеют работать на рабочих станциях под управлением всего
семействаWindows.
Продукт позволяет предотвратить утечку конфиденциальной информации
через коммуникационные каналы рабочей станции. Для этого подходит, например,
режим «только чтение». Однако при этом пользователь будет не в состоянии
переписать на внешний носитель любые сведения (несекретные файлы:
презентации, маркетинговые и рекламные документы и т.д.). Другимисловами,
обесценивается часть положительного функционала персонального компьютера.
DeviceLock получилсертификат №2164 ФСТЭК России. Этот сертификат
удостоверяет, что программное средство соответствует требованиям руководящего
документа "Защита от несанкционированного доступа к информации. Часть 1.
Программное обеспечение средств защиты информации. Классификация по
уровню контроля отсутствия недекларированныхвозможностей" (Гостехкомиссия
России, 1999 г.)[1] - по 4 уровню контроля НДВ, а также программный комплекс
DeviceLock 6.3. Версия 1.0, имеет оценочный уровень доверия «2» в соответствии
с требованиями руководящего документа "Безопасность информационных
технологий. Критерии оценки безопасности информационных технологий" и
может использоваться вАС не всех классов защищенности.
Недостатком DeviceLock является невозможность эффективного контроля
над ноутбуками. Заметим, что мобильные компьютеры созданы специально для
того, чтобы пользователь имел в своем распоряжении все коммуникационные и
вычислительные возможности вне зависимости от внешней инфраструктуры.
Однако продукт DeviceLock не умеет отличать конфиденциальные данные от
26
публичных материалов, поэтому его использование на ноутбуках может привести
к изоляции мобильной рабочей станции, которой для связи с ИТ-инфраструктурой
останется лишь Ethernet-соединение.[13]
Обобщенная сравнительная характеристика программных средств контроля
USB-носителей по частным показателям эффективности представлена в таблице
2.
Таблица 2 – Сравнительная характеристика возможностей программных средств
контроля USB-носителей
Программа
USB
DEV
ice
Возможности
1
1. Сертификат
Zlock
USB
Manager Lock
количество
журнала
4.Парольная
защита
Lock
InfoWatch
EndPoint
Security
2
3
4
5
6
7
–
+
–
–
+
+
92
6000
640
5700
800
5100
0
0
0
компьютеров)
3. Ведение
Device
KILLer
2. Стоимость
(1 лицензии на
USB
199800 266400
319680
–
+
+
+
+
+
–
+
+
+
+
+
–
+
+
+
+
+
5.Формирование
«черных/белых»
списков
27
Продолжение таблицы 2
1
2
3
4
5
6
7
–
–
–
–
–
–
+
+
+
+
+
+
6.Использование
дополнительных
сведений для
аутентификации
пользователей
7.Определение
устройств по
уникальному
серийному
номеру
Из анализа программных средств контроля USB-носителей следует, что
наиболее приемлемы для контроля съемных USB-носителей программные
средства Zlock и DeviceLock. В программе DeviceLock в качестве недостатка
выступает стоимость продукта и отсутствие дополнительных сведений для
аутентификации пользователей, а в Zlock в качестве недостатка выступает только
лишь отсутствие дополнительных сведений для аутентификации пользователей.
В соответствии с проведенным анализом возникает потребность к
разработке собственного ПС контроля USB-носителей информации, так как
существующие
аналоги
ПС
контроля
USB-носителей
не
полностью
удовлетворяют требованиям заказчика. Для разработки ПС необходимо составить
требования, предъявляемые к ПС контроля USB-носителей информации, которые
представлены в следующем разделе.
1.4 Требования, предъявляемые к разрабатываемому программному
средствуконтроля подключения USB-накопителей
Так как разрабатываемое программное средство предназначено для работы с
конфиденциальной информацией, то в соответствии с руководящим документом
28
«Защита от несанкционированного доступа к информации. Часть1. Программное
обеспечение средств защиты информации. Классификация по уровню контроля
отсутствия недекларированных возможностей» разрабатываемая программа
должна
соответствоватьтребованиям,
предъявляемым
к
4
уровнюконтроляотсутствия НДВ:
– спецификация (ГОСТ 19.202-78), содержащая сведения о составе ПО и
документации на него;
– описание программы (ГОСТ 19.402-78)[2], содержащее основные сведения
о составе (с указанием контрольных сумм файлов, входящих в состав ПО),
логической структуре и среде функционирования ПО, а также описание методов,
приемов и правил эксплуатации средств технологического оснащения при
создании ПО;
– контроль полноты и отсутствия избыточности исходных текстов;
– описание применения (ГОСТ 19.502-78)[2], содержащее сведения о
назначении ПО, области применения, применяемых методах, классе решаемых
задач, ограничениях при применении, минимальной конфигурации технических
средств, среде функционирования и порядке работы;
– тексты программ, входящих в состав ПО (ГОСТ 19.401-78)[2];
– контроль исходного состояния ПО;
– контроль
соответствия
исходных
текстов
ПО
его
объектному
(загрузочному) коду.
Помимо требований к уровню контроля отсутствия НДВк программному
обеспечению заказчикомпредъявляются следующие требования:
– работа в фоновом режиме;
– парольная защита при запуске программы;
– формирование «черных» и «белых» списков;
– в соответствии с реализуемой политикой безопасности необходимо
разграничивать доступ к USB-носителю;
– ведение журнала аудита;
29
– использование
дополнительных
сведений
для
аутентификации
пользователей;
– определение устройств по уникальному серийному номеру.
Для сравнения разрабатываемого ПС с существующими аналогами
необходимо ввести ряд показателей, по которым можно характеризовать ПС:
а) защищенность:
-
защищенный информационный обмен;
-
защита базы данных;
-
парольная защита;
-
регистрация и учет;
б) стоимость;
в) архитектура;
г) сертификат.
В данной главе было приведено обоснование применения съемных USBфлеш накопителей, была проанализирована технология предотвращения утечек.
Также представлен анализ внутренних угроз и анализ существующих средств
контроля
съемных
USB-носителей
информации.
Поскольку
все
выше
перечисленные программные средства, кроме Zlockи DeviceLock, являются
продуктом сторонних производителей и исходный код ни в одном источнике
информации не опубликован, то не представляется возможным провести полную
проверку данных средств на наличие программных закладок. Следовательно,
описанные программы запрещено использовать в ведомственных ЛВС, а Zlockи
DeviceLock имеют сертификаты отсутствия недекларированных возможностей
третьего и четвертого уровней соответственно, ноне удовлетворяют требованию
заказчика на возможность присвоения каждому USB-носителю дополнительных
идентификационных данных. Исходя из этого с учетом возможностей программ
сторонних производителей и
требований
заказчика
необходимаразработка
программного средства контроля съемных USB-носителей информации, в
соответствие с требованиями поставленной задачи и руководящими документами.
30
2. МОДЕЛИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯ USB-НАКОПИТЕЛЕЙ
2.1 Архитектура ПС контроля подключения USB-накопителей
В
условиях
использования
программного
средства
на
машинах,
обрабатывающих конфиденциальную и несекретную информацию, сетевое
взаимодействие
по
типу
клиент-серверного
нежелательно,
вследствие
возникновения дополнительных возможных деструктивных факторов и угроз
информации,
что
требует
безопасности.
Вследствие
выполнения
этого
дополнительных
задач
проверки
взаимодействие между программами на
клиентских ЭВМ и программой на ЭВМ администратора реализация будет
организована путем использования доверенного носителя, содержащего в себе
базу данных разрешенных и носителей и получающего данную базу с ЭВМ
администратора безопасности. В результате приходим к выводу, что необходимо
реализовать программное средство, которое не зависит от наличия сетевого
взаимодействия,
так
как
существуют
подразделения
информационной
безопасности, сотрудники которых и будут заниматься обслуживанием и
администрированием данного программного обеспечения.
Разрабатываемое
программное
средство
предназначено
для
контроляподключений USB-флеш накопителей информации на отдельных ПЭВМ.
Программа имеет архитектуру, представленную на рисунке 7. В данном случае
существует один дистрибутив программного средства, но при функционировании
на
ЭВМ
администратора
существует
возможность
входа
в
режим
администрирования при знании пароля, в отличие от ЭВМ пользователей.
Основным требованием, предъявляемым к разрабатываемому средству,
является контроль действий персонала по подключению USB накопителей и
разграничение таковых подключений, а также блокировка незарегистрированных
USB
накопителей. Кроме
того,
должна
быть
реализована
возможность
отображения всех без исключения подключенных USB-флеш накопителей
информации в течение срока работы программы.
31
ПЭВМ
Администратора
Доверенный
носитель
администратора
ПЭВМ
ПЭВМ
Пользователя Пользователя
ПЭВМ
Пользователя
Рисунок 7 –Схема распространения базы разрешенных накопителей на
защищенные ПЭВМ
Для данной архитектуры разрабатываемого средства контроля можно
сформулировать следующие требования:
а) организация обмена базой разрешенных носителей между программами,
установленными у пользователей, и программой, используемой администратором;
б) возможность входа в главное окно программы только администратором
безопасности путем ввода пароля для идентификации;
в) возможность создания базы данных зарегистрированных USB-носителей
администратором безопасности;
г) возможность поиска в базе данных по необходимым параметрам;
д) функционирование программы в фоновом режиме;
е) вывод
информации
обо
всех
подключениях
USB-носителей
с
возможностью просмотра конкретно выбранного клиента;
ж) возможность блокирования незарегистрированных USB накопителей.
Для снижения вероятности деактивации клиентской части программного
обеспечения, необходимо обеспечить максимально скрытое ее функционирование
32
на контролируемых машинах и защиту от возможного прекращения ее
функционирования.
Система контроля обеспечивает удобный и интуитивно понятный интерфейс
для быстрого освоения и легкого управления.
Ограничения, накладываемые при функционировании системы контроля,
следующие:
а) рабочая станция работает под управлением операционной системы
Windows;
б) наличие компонентов MicrosoftFramework 4.0 и выше;
в) пользователи в системе работают под своими учетными записями с
ограниченными правами, контролирующий процесс – с правами администратора.
2.2 Разработка функциональной модели средства контроля
Для разработки основных схем проекта, в том числе функциональной
схемы,
была
выбрана
нотация
UML
(англ. UnifiedModelingLanguage —
унифицированный язык моделирования). UML является языком широкого
профиля, это распространенный стандарт графического описания объектных
моделей в области системного проектирования, моделирования бизнес-процессов
и отображения организационных структур. Он используется, в основном, для
программных систем.
Первая
диаграмма,
разработанная
по
этой
нотации
–
диаграмма
деятельности, которая описывает основные правила последовательности действий
и переходы между ними. Диаграмма деятельности системы представлена на
рисунке 8.
33
Запрос на ввод
учетных данных
Подсоединение
накопителя
Идентификация
Отказано в
доступе
Блокировка устройства
Вход подтвержден
Идентификаторы
не найдены
Идентификаторы
найдены
Просмотр списка
разрешенных устройств
Запрет на
подключение накопителя
Подключение накопителя
Редактирование базы
разрешенных устройств
Запись в файл
учета подключений
Накопитель
отсоединен
Закрытие
программы
Рисунок 8 – Функциональная модель ПС
Рассмотрим
порядок
и
основные
этапы
функционирования
разрабатываемого программного средства.
На этапе запуска программное средство получает полный монопольный
доступ к управлению подключениями USB-накопителей, который происходит
сразу после загрузки операционной системы рабочей станции.При попытке
подключенияUSB-накопителя,
происходит
поиск
по
идентификационной
информации в базе данных, если таковая есть. В случае, если идентификаторы
накопителя найдены в базе, программное средство разрешает обнаруженный
накопитель подключить к системе, разблокирует его, иWindowsполучает
возможность его использовать. Если записи в базе данных о найденном
34
носителенет, происходит безопасное отсоединение подключаемого устройства.
При
каждом
подключении
и
отключении
USB-накопителей
информация
автоматически заносится в журнал аудита. В программе предусмотрена
возможность замены пароля.
На серверной части ПС администратору необходимо внести информацию о
зарегистрированных USB-устройствах в базу данных. При необходимости
системный администратор может посмотреть журналы аудита на всех клиентских
рабочих станциях, редактировать списки доверенных накопителей в базе данных,
производить поиск по параметрам в базе данных нужной информации.Более
подробно
это
описывает
диаграмма
вариантов
использования
представленная на рисунке 9.
Рисунок 9–Функциональная схема ПС
системы,
35
Пользователи системы (акторы) могут быть двух видов – «рядовой»
пользователь, контактирующий только с клиентской частью программы (версией
для
рабочих
станций),
и
администратор,
использующий
расширенный
функционал и управляющий базой данных. Для пользователясо стандартным
уровнем доступа представлены следующие прецеденты:
а) физическое подключение накопителя (включает в себя прецедент
«Блокирование устройства» - после того, как с контроллера поступит сигнал о
подключении устройства, система блокирует его работу, тем самым предотвращая
использование);
б) проверка устройства (программа проверяет наличие устройства в списке
разрешенных);
в) работа с устройством (по результатам проверки устройство либо
подключается к системе, либо отключается после запрета на работу; также
производится соответствующая запись в журнал подключений, где сохраняются
идентификаторы устройства, а также данные о времени подключения и
сопутствующая информация).
В целом, клиентская часть программы функционирует фактически скрыто
от
пользователя
и
проявляет
себя
только
запретом
на
подключение
несанкционированных устройств. Это необходимо для повышения уровня
безопасности, сводя к минимуму возможности отключения программы или других
способов, которыми пользователь может помешать ее работе (случайно или
преднамеренно).
Диаграмма
последовательностей,
более
подробно
описывающая
функционирование клиентской части программы, представлена на рисунке 10.
36
Рисунок 10 – Схема функционирования клиентской части программы
Что касается серверной части программы, то для актора«администратор»
доступны следующие прецеденты,кроме описанных выше:
а) Идентификация. Программа запрашивает у пользователя пароль для
входа в систему, после ввода которого (при условии правильности пароля)
открывается окно, предоставляющее доступ к возможностям администратора;
б) Работа с базой разрешенных устройств. После входа в систему
администратор
имеет
возможность
просматривать
и
редактировать
базу
37
разрешенных устройств, а также осуществлять поиск по ней;
в) Вывод журнала аудита. Программа может предоставить для просмотра
журнал подключений носителей за определенный срок;
г) Сохранение
отчета.
Администратору
предоставлена
возможность
сохранять журнал в виде отдельного файла в текстовом формате.
Более подробно работа серверной части программы представлена с
помощью диаграммы последовательности, представленной на рисунке 11.
Рисунок 11 – Схема функционирования серверной части программы
38
Чтобы более конкретно отобразить алгоритм работы и состояния системы,
была составлена также диаграмма состояний. На ней отображены основные
состояния, в которых находятся объекты программы во время ее работы, а также
переходы между ними.
Рисунок 12 – Диаграмма состояний системы
Состояние (state) – ситуация в жизненном цикле объекта, во время которой
он удовлетворяет некоторому условию, выполняет определенную деятельность
или ожидает какого-то события. Состояние объекта определяется значениями
некоторых его атрибутов и присутствием или отсутствием связей с другими
объектами. Представленная диаграмма включает следующие состояния:
а) Начальное состояние (запуск);
б) Ожидание – приостановка работы программы в ожидании последующих
действий
пользователя.
Завершается
при
событиях,
инициированных
39
пользователем;
в) Инициализация – проверка учетных данных при входе в учетную запись
администратора. Завершается входом уучетную запись либо отказом в доступе;
г) Блокировка устройства – блокирование подключенного накопителя для
дальнейшей проверки. Завершается успешным считыванием идентификаторов
устройства;
д) Проверка накопителя – проверка базы разрешенных устройств на
наличие считанных идентификаторов. Завершается при успешном считывании
двух видов идентификаторов устройства;
е) Работа с устройством – подключение устройства к операционной
системе. Завершается предоставлением пользователю доступа к данным,
размещенным на носителе;
ж) Сессия
–
функционирование
одноименного
объекта
программы,
хранящего в себе информацию о каждом подключенном устройстве. Сессия
создается с подключением устройства и завершается с его отключением, сохраняя
сопутствующие подключению данные;
з) Отказ в подключении – запрет на работу с устройством и его отключение
от системы. Завершается соответствующим уведомлением для пользователя;
и) Закрытие сессии – завершение работы одноименного объекта. После
закрытия сессии информация о ней сохраняется в журнале подключений;
к) Просмотр
списка
разрешенных
устройств
–
предоставление
администратору базы разрешенных к подключению устройств. В окне работы с
базой предоставляется возможность ее редактирования, а также поиска по
записям;
л) Запрос на подтверждение – ожидание подтверждения пользователя на
удаление записи в базе. Выход из состояния происходит, как только пользователь
нажмет на кнопку подтверждения;
м) Удаление устройства – удаление выбранной записи из базы разрешенных
устройств. После удаления отображаемый список записей обновляется в
соответствии с внесенными изменениями;
40
н) Добавление устройства– добавление устройства в базу разрешенных
устройств вручную или путем выбора из списка сессий. После удаления
отображаемый список записей обновляется в соответствии с внесенными
изменениями;
о) Конечное состояние (завершение работы).
Таким образом, была описана архитектура средства контроля USBносителей, определены требования для разрабатываемого средства и ограничения,
накладываемые при функционировании системы контроля. Также разработаны
структурная и функциональная схемы программного средства, определено
назначение и порядок взаимодействия его основных элементов, составлены
диаграммы последовательностей и состояний программного средства контроля
съемных USB-носителей информации.
41
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯUSB-НАКОПИТЕЛЕЙ
3.1 Общая структура ПС
Общая структура программного средства контроля подключения носителей
представлена
в
Она применяется
виде
для
диаграммы
представления
развертывания
общей
(deployment
конфигурации
и
diagram).
топологии
распределенной программной системы и отображает размещения компонентов по
отдельным узлам системы.
В результате формулирования требований к разрабатываемой системе и
моделирования архитектуры и основных алгоритмов была разработана модель
развертывания
ПС
средства
контроля
подключения
представленная на рисунке 13.
Рисунок 13 – Структура ПС
USB-носителей,
42
На диаграмме представлены все основные функциональные модули ПС, а
также их взаимодействие между собой.
Проверка
устройств
и
получение
идентификаторов
происходит
с
использованием обращений к реестру и к программе контроллера USB(с
помощью функций WinAPI). Контроллер USBне является непосредственной
частью системы, однако через него происходит работа с устройством, поэтому для
отображения логики работы системы он присутствует на диаграмме. Блок
«Прошивка устройства» также участвует в работе программы как источник
данных (уникальные идентификаторы устройства, на использовании которых
основана работа программы, хранятся именно в ней). Серверная и клиентская
части имеют по экземпляру БД,которые синхронизируются в момент обновления
базы администратором. Модуль авторизации, необходимый для получения
доступа
к
функционалу
администратора,
обращается
к
блоку
«Криптографический модуль» для проверки пароля с помощью хэш-функции.
3.2 Проектирование основных классов ПС
В соответствии с описанной выше общей структурой программного
средства были спроектированы его основные классы. Диаграмма классов ПС
представлена на рисунке 14.
43
Рисунок 14 – Диаграмма классов ПС
Разрабатываемое программное средство включает в себя 5 основных
классов:
а) Пользователь
–
это
класс,
который
содержит
данные
о
всех
зарегистрированных пользователях системы. В каждом экземпляре класса, кроме
личной информации, содержится уникальный идентификатор пользователя ID и
прикрепленный файл с его фотографией.Экземпляры данного класса можно
добавить или удалить; все остальные действия по редактированию значений
атрибутов данного класса производятся методами других классов;
б) Администратор
-
класс,
содержащий
учетные
данные
и
ID
администраторов. Он использует объекты класса «Пользователь», обращаясь к
ним через атрибут «ID». Для экземпляра класса реализован
пароль»;
метод «Сменить
44
в) Устройство - это класс, который отвечает за работу с внешним
накопителем.
Экземпляры
класса
содержат
идентификаторы
каждого
подключенного устройства, а также атрибуты «Состояние» и «Статус»
логического типа. Первый из них отображает, подключено ли устройство, а второй
– доступно ли устройство для работы, иначе говоря, разрешено ли для
подключения
администратором
(находится
в
списке
разрешенных).
Соответственно, для каждого устройства можно изменить значения этих
атрибутов с помощью соответствующих методов;
г) Разрешенное устройство – содержит данные об устройствах, которые
внесены в базу данных как разрешенные к подключению. Кроме уникальных
идентификаторов самого устройства, класс включает такие атрибуты, как
идентификаторы ответственного пользователя и администратора, разрешившего
доступ к устройству. Что касается методов, то кроме добавления и удаления
экземпляров и редактирования их атрибутов, метод «Подключить» является
наиболее важным, поскольку именно он допускает устройство к работе после
проверки и реализует подключение носителя к системе;
д) Сессия
–
под
сессией
понимается
один
сеанс
работы
с
подключеннымустройством. Этот класс отвечает за хранение информации обо
всей последовательности работы с носителем, от подключения до отключения, и
использует для этого в том числе атрибуты классов «Пользователь» и
«Устройство» - статус и идентификаторы устройства, а также данные об
ответственном (в случае, если устройство найдено в базе). Объект класса
создается при физическом подключении носителя к ПК и завершает свою работу
после его отключения, после чего сохраняется в виде записи журнала
подключений;
е) Журнал – один из основных элементов базы данных, в котором хранится
информация обо всех когда-либо подключавшихся к данному ПК USB-носителях
(срок
хранения
информации
определяется
администратором).На
каждом
клиентском ПК обычно создается по одному экземпляру этого класса. При
необходимости у администратора есть возможность сохранить журнал в виде
45
текстового файла или сгенерировать формализованный отчет для предоставления
службе безопасности. Также администратор может очистить журнал, но запись об
этом будет сохранена в новом журнале, который создастся автоматически.
3.3 Разработка модели коммуникаций
На рисунке 15 представлена диаграмма коммуникации клиентской части
программного средства,описывающая функционал, доступный администратору
программы.
Рисунок 15 – Схема взаимодействия функциональных блоков«клиентской»части
ПС
46
Стоит обратить внимание, что на диаграмме отображено взаимодействие
функциональных блоков системы в случае успешного прохождения пользователем
авторизации. В противном случае (ввод неверного пароля) система выдаст
соответствующее сообщение, и программа повторит запрос. На рисунке 16
представлена диаграмма коммуникации программного стредства.
Рисунок 16 – Схема взаимодействия функциональных блоков«серверной»части
системы
В диаграмме коммуникации используются следующие обозначения:
1) А1 - запуск модуля авторизации (инициирован модулем управления);
2) А2 - вывести форму для авторизации. Модуль авторизации отправляет
модулю визуализации (интерфейса) директиву на отображение экранной формы с
полями для ввода учетных данных пользователя;
3) А3 - передача учетных данных (логина и пароля) из модуля
визуализации в модуль авторизации;
4) А4 - передача учетных данных в криптографический модуль для
вычисления хэш-функции и проверки соответствия ключа;
47
5) А5
-
результат
сравнения
ключа
пароля
и
ключа
функции
(«Идентично»/»Не идентично»);
6) А6 - сообщение о результате проверки в модуль управления. Результатом
работы модуля авторизации будет сообщение, пройдена ли идентификация
пользователя;
7) А7 - вывести сообщение о результате проверки. Модуль авторизации
передает результат проверки в графический модуль для отображения сообщений
пользователю;
8) А8 - отобразить интерфейс администратора. В случае, если пароль был
верным,
откроется
окно,
предоставляющее
возможности
администратора
программы;
9) А9 - запрос к модулю управления на просмотр данных из базы,
инициируется пользователем через графический интерфейс. Обычно это открытие
журнала, сессии или другого объекта базы данных;
10) А10 - запрос на расшифровку базы от модуля управления к
криптографическому модулю;
11) А11 - расшифровать БД. В результате дешифровки криптографическим
модулем база данных преобразовывается к виду, удобному для работы с
пользователем;
12) А12 - БД передает запрашиваемые данные в модуль интерфейса для
визуализации;
13) А13 - зашифровать БД. После отображения данных база снова
зашифровывается, чтобы у сторонних программ не было возможности ее открыть;
14) А14 - запрос от модуля визуализации к модулю управления на изменение
данных пользователя. Инициируется пользователем с помощью графического
интерфейса и отображает попытку администратора редактировать данные в базе
(добавить, удалить или изменить атрибуты объектов);
15) А15 - запрос подтверждения от модуля управления. Отображается
модулем визуализации в виде формы, содержащей запрос с возможностью
48
подтверждения или отклонения (например, «Вы уверены, что хотите удалить
запись?»);
16) А16 – подтверждение. Если пользователь подтвердил, что его целью
является изменение содержимого БД, то программа переходит к работе с ней. В
противном случае форма подтверждения закрывается, а изначальный запрос
игнорируется;
17) А11 - см. п.11;
18) А18 – передача новых данных (введенных пользователем в поля
соответствующей формы) из модуля визуализации в базу;
19) А19 – подтверждение успешного обновления данных от БД в модуль
управления;
20) А12 – отправка нового (измененного пользователем) варианта данных из
БД для визуализации (см. п.12);
21) А13 – см.п.13.
3.4 Основные алгоритмы ПС
После рассмотрения взаимодействия модулей программы были разработаны
алгоритмы их функционирования. На рисунках ниже представлены общие
алгоритмы функционирования модулей управления клиентской и серверной
частей программы, а также описан алгоритм работы криптографического модуля
подсистемы безопасности.
Модуль управления клиентской части программы при выполнении
некоторых блоков (например, при шифровании базы данных или блокировке
устройства) обращается к подсистеме безопасности, модулю визуализации и
другим
частям
программы.
Алгоритм
работы
клиентской
части
ПС,
представленный на рисунке 17, не ориентирован на работу с пользователем,
поскольку программа функционирует скрыто (в фоновом режиме).
49
Рисунок 17 – Схема алгоритма модуля управления «клиентской» части программы
Что касается серверной части программы, то модуль управления использует
подсистему визуализации для отображения форм программы. Администратор
после прохождения авторизации получает возможность просматривать и изменять
параметры объектов (устройств, пользователей, записей журнала). Все эти
50
действия, поскольку являются по сути редактированием данных в базе,
объединены блоком «Редактирование данных» и представлены на рисунке 18.
Рисунок 18 – Алгоритм работы модуля управления «серверной» части ПС
51
При
запуске
программное
средство
загружает
базу
данных
из
зашифрованного файла на жестком диске и автоматически расшифровывает. При
выключении компьютера программа завершает свою работу, при этом перед
закрытием шифрует базу данных и сохраняет в тот же файл. В криптографическом
модуле реализован алгоритм шифрования/расшифровывания «Магма» в режиме
простой замены, представленный на рисунке 19.
Рисунок 19 – Схема алгоритма шифрования «Магма»
На данной схеме приведены следующие обозначения:
а) N1, N2, N3, N4 – накопители объемом 32 бита;
52
б) N5 и N6, — 32-разрядные накопители с постоянными заполнениями C2 и
C1;
в) КЗУ – ключевое запоминающее устройство объемом 256 бит, состоящее
из восьми накопителей по 32 разряда каждый (X0, X1, X2, X3, X4, X5, X6, X7);
г) СМ2 – 32-разрядный сумматор по модулю 2;
д) СМ1, СМ3 – сумматоры по модулю 232 разрядностью 32 бита;
е) СМ4 – сумматор по модулю (232-1);
ж) СМ5 – сумматор по модулю 2 без ограничения на разрядность (в данном
алгоритме используется разрядность 64 бита);
з) К – блок подстановки с восемью узлами замены (K1, K2, K3, K4, K5, K6, K7,
K8), объем памяти каждого из которых составляет 64 бита;
и) R – 11-ти битный регистр циклического сдвига влево.
Шифрование
данных
представляет
собой
приведенную
ниже
последовательность действий:
1) Подлежащие шифрованию данные разбиваются на блоки по (каждый
блок включает 64 бита);
2) Первый блок вводится в накопители N1 и N2. При этом биты вводятся в
накопитель таким образом, что первый бит открытой информации попадает в
первый разряд накопителя N1, ..., 32-й — в 32-й разряд накопителя N1, 33-й — в
первый разряд накопителя N2 и так далее (пока 64-й бит открытой информации не
будет введен в 32-й разряд накопителя N2);
3) В КЗУ вводится ключ длиной 256 бит:Каждый блок разбивается на две
части (два подблока, «левый» и «правый»);
4) Исходное заполнение правого блока записывается в левый блок на
выходе;
5) Над правым блоком производится криптографическое преобразование с
применением ключевых данных;
6) Левый (исходный) и правый (преобразованный) блоки складываются в
сумматоре по модулю 2;nак повторяется несколько раз;
53
7) Производится зашифрование открытых данных в режиме простой
замены (в 32 цикла):
8) В первом цикле содержимое регистра N1 суммируется с заполнением X0
из КЗУ по модулю 232 в сумматоре СМ1;
9) В блоке подстановки K производится замена 32 бит информации,
поступившей из сумматоре СМ1;
10) В регистре сдвига R осуществляется циклический сдвиг на 11 в сторону
старшего разряда;
11) Информация с регистра сдвига R и накопителя N2 суммируется по
модулю 2 в сумматоре СМ2;
12) Старое заполнение накопителя N1 переписывается в накопитель N2;
13) Результат с выхода сумматора СМ2 переписывается в накопитель N1.[15]
Последующие циклы аналогичны первому, с тем лишь отличием, что во 2-м
цикле вводится ключ X1, в 8-м — X7, в 9-м — X0 и так далее в том же порядке до
24 цикла. С 25 по 32 цикл ключ вводится в обратном порядке: X7 — в 25-м, X0 —
в 32-м.
После 32-го цикла в N1 информация сохраняется, а результат с выхода
сумматора СМ2 переписывается в N2.Заполнение N1 и N2 и есть первый блок
зашифрованных данных.Следующие блоки зашифровываются аналогично.
Расшифровывание
осуществляется
по
тому
же
алгоритму,
что
и
зашифровывание, только на вход накопителей N1 и N2 поступают уже
зашифрованные данные, разбитые на блоки по 64 бита. Также важным отличием
является то, что в прямом порядке (с X0 по X7) ключ вводится только в первых 8
циклах РПЗ, в остальных — в обратном (с X7 по X0). После прохождения 32
циклов в накопителях N1 и N2 содержатся блоки открытых данных.
54
4 РЕАЛИЗАЦИЯ ПРОГРАММНОГО СРЕДСТВА КОНТРОЛЯ
ПОДКЛЮЧЕНИЯUSB-НАКОПИТЕЛЕЙ
4.1 Выбор и обоснование среды программирования
Для создания программного продукта был выбран язык PYTHON. Данный
язык программирования является динамически типизированным, поддерживает
удобные высокоуровневые структуры данных.
Имеет
следующие
достоинства:
поддерживает
такие
парадигмы
программирования как структурное, объектно-ориентированное, функциональное,
императивное и аспектно-ориентированное
программирование. Обеспечивает
модульность.
Синтаксис ядра PYTHONминималистичен. В то же время стандартная
библиотека включает большой объем полезных функций.
Позволяет полностью реализовать функционал поставленной задачи.
4.2 Особенности реализации программного средства контроля
подключения USB-накопителей
Разработанное
программное
средство
представлено
в
виде
одного
приложения, которое работает и у пользователя и у администратора безопасности,
исполняемый файл имеет название «Secure_USB». Размер исполняемого файла–
254Кб. К аппаратно-программному обеспечению ПК предъявляются следующие
требования:
-
конфигурация вычислительной системы: не ниже ПЭВМ на базе
процессора IntelCore 2 duo;
-
операционная система WindowsXP/Vista/7/8, 64MbRAM, 8MbVRAM, а
также не менее 100 Mb свободного пространства на жестком диске;
-
компонент MicrosoftFramework версии 4.0 и выше.
Для установки программного средства достаточно запуститьпрограмму
Secure_USB.exe на ПЭВМ. Как показано на рисунке 20, при первом запуске
программа заносится в ―системный трей‖.
55
Рисунок 19– Внесение программы в ―системный трей‖(два рисунка)
При
первоначальном
запуске
программы
происходит
получение
монопольных прав на подключения USB-флеш носителей, запись в автозапуск.
Также в комплекте с самой программой идет файл базы разрешенных USB-флеш
накопителей,
созданный
администратором
для
соответствующей
группы
компьютеров или компьютера. Данный файлзашифрован и хранится в постоянной
памяти ПЭВМ на жестком диске. На этом установка программы завершена.
Программное средство функционирует в фоновом режиме, автоматически
прописывает себя в автозагрузку в реестре и загружает базу данных из
зашифрованного файла на жестком диске и автоматически расшифровывает. При
выключении компьютера программа завершает свою работу, при этом перед
закрытием шифрует базу данных и сохраняет в тот же файл. Все USB-флеш
накопители, подключенные к ПЭВМ во время работы программы, автоматически
заносятся в файл учета подключенных накопителей.
Программа защищена от НСД парольной защитой. Для входа в программу
необходимо ввести последовательность символов, составляющих пароль.
4.3 Разработка пользовательского интерфейса ПС контроля
подключения USB-накопителей
Программа имеет удобный и интуитивно понятный интерфейс. Экранные
формы реализованы
в виде стандартных окон. Разработанное программное
обеспечение позволяет выполнить просмотр и сбор информации о подключенных
USB-устройствах,
подключения
а
также
USB-устройств,
семейства Windows.
осуществить
работающего
контроль
под
несанкционированного
операционной
системой
56
При успешном выполнении процедуры аутентификации появляется главное
окно программы, представленное на рисунке 20.
Рисунок 20 –Главное окно программы
В главном окне программы можно существует возможность добавлять и
удалять сведения о USB-флеш носителях из базы разрешенных носителей,
просматривать
журнал
подключенных
в
какое-либо
время
USB-флеш
накопителей, представленном на рисунке 21, и идентификационную информацию
о подключенных носителях в текущий момент времени.
При установке маркера в пункте «Администрирование» администратор
получает
возможность
редактирования
базы
разрешенных
USB-флеш
накопителей: подключенные в данный момент накопители он может добавить в
список разрешенных, существующие записи о разрешенных к подключению
накопителях может удалить по необходимости.
Рисунок 21 – Пример работы программы
57
При регистрации нового USB-флеш накопителя в базе данных его
идентификационные данные вносятся в общий список всех зарегистрированных
накопителей.
Также при добавлении информации о USB-носителе автоматически в базу
данных заносится информация о модели USB-носителя, уникальном серийном
номере, идентификационного номера производителя (VID), идентификационного
номера продукта (PID) и объема памяти USB-носителя.
При сообщении пользователя администратору о потере или поломке
зарегистрированного USB-носителя, администратор может удалить информацию о
USB-носителе путем нажатия кнопки «Удалить». При удалении вся информация
ранее прописанная в реестр ПЭВМ удаляется.
Еще одной возможностью программы является то, что администратору
доступна возможность менять пароль при входе в программу после прохождения
парольной аутентификации.
При необходимости можно обновлять базу данных самостоятельно.
Необходимо используя разрешенный носитель скопировать у администратора
безопасности базу разрешенных носителей для данной ПЭВМ, и поместить в
папку с программой.
При необходимости можно посмотреть, кто и когда подключал USB-флеш
накопители. Для этого существует прокручиваемое окно в правой части окна
режима администрирования.В журнале аудита, представленном на рисунке 22,
можно посмотреть, когда и во сколько был подключен USB-носитель, определить
модель и уникальный серийный номер USB-накопителя и если USB-носитель
зарегистрирован в базе данных, то можно определить пользователя этого USBносителя.
58
Рисунок 22–Журнал аудита
При необходимости
администратор клиентских рабочих станций имеет
возможность изменять пароль, при проверке и администрировании клиентских
ПЭВМ. Окно смены пароля представлено на рисунке 23.
Рисунок 23– Окно смены пароля
При появлении окна смены пароля необходимо ввести новый пароль и ниже
в окне подтвердить повторить парольную комбинацию для недопущения
случайной ошибки при вводе нового пароля.
4.4 Сбор и исследование данных о подключаемых устройствах
В ходе создания программного средства необходимо провести исследование,
59
где проводится поиск всех мест, куда записывается какая-либо информация о
подключенных USB-устройствах к компьютеру.
Для этого необходимо создать лабораторный стенд, представленный на
рисунке 24, который будет включать в себя следующие программные продукты:
 Oracle VM VirtualBox;
 Windows XP SP2;
 SysTracer;
 USBOblivion;
 USBDeview.
Рисунок24 – Лабораторныйстенд
OracleVMVirtualBox
программныйпродуктвиртуализациидляоперационныхсистемMicrosoftWindows,
–
60
Linux, FreeBSD, MacOSXидругих.
SysTracer – программа, которая позволяет анализировать все изменения в
операционной
среде
Windows,
которые происходят из-за
установленных
программ. Анализ происходит путем сравнения сделанных заранее снимков
системы.SysTracer сканирует систему на предмет:
–
изменений файлов и папок в системе;
–
изменений в записях реестра;
–
установленных программ;
–
изменений системных служб;
–
изменений системных драйверов;
–
изменений запущенных процессов;
–
изменений загруженных DLL.
Утилита USBOblivion предназначена для стирания следов подключения
USB-дисков из систем семейства Windows.
USBDeview позволяет обнаруживать подключенные к системе USBустройства, просматривать всевозможную информацию о них, а так же удалять
следы USB-устройств из системы.
В процессе исследования будут рассмотрены следующие устройства,
популярные у пользователей Windows:
–
USB-накопитель с flash памятью Apacer;
–
переносной ЖД с интерфейсом USBSeagate;
–
мобильный телефон HTCOneV;
–
музыкальный плеер SAMSUNGYP-Q1.
При проведении исследования будут последовательно создаваться два
снимка ОС с помощью программы SysTracer для последующего сравнения их
друг с другом на предмет каких-либо изменений. Между первым и вторым
действием к ОС будет подключаться USB-устройство.Работа стенда представлена
на рисунке 25.
61
Рисунок 25 – Снимки ОС с помощью программы SysTracer
Основные характеристики USB-устройства:
а) имя;
б) тип устройства;
в) серийный номер;
г) дата последнего подключения устройства;
д) дата первого подключения;
е) класс USB-устройства.
USB-накопитель с flash памятью Apacer имеет следующие характеристики:
а) USB FLASH DRIVE;
б) Mass Storage;
в) 07082630E01B6347;
г) 02.03.2016 20:00:24;
62
д) 03.01.2016 22:08:53;
е) 08.
Класс USB-устройства позволяет определить тип устройства, как показано
в таблице 3.
Таблица 3 – Показатели USB-устройства
Код
Название
Примеры использования / примечание
00h
N/A
Не задано
01h
Audio
Звуковая карта, MIDI
02h
Communication Device (CDC)
Модем, Сетевая карта, COM-порт
03h
Human Interface Device (HID)
Клавиатура, Мышь, Джойстик
05h
Physical Interface Device (PID) Джойстик с поддержкой Force feedback
06h
Image
Веб-камера, Сканер
07h
Printer
Принтер
08h
Mass Storage Device (MSD)
USB-накопитель, карта памяти,
кардридер, цифровая фотокамера
09h
USB hub
USB-хаб
0Ah
CDC Data
Используется совместно с классом CDC
0Bh
Smart Card Reader (CCID)
Считыватель смарт-карт
0Dh
Content security
Биометрический сканер
0Eh
Video Device Class
Веб-камера
0Fh
Personal Healthcare
Индикатор пульса, медицинское
оборудование
DCh
Diagnostic Device
Используется для проверки
совместимости с USB
E0h
Wireless Controller
Bluetooth-адаптер
EFh
Miscellaneous
ActiveSync-устройства
FEh
Application-specific
IrDA-устройства, режим обновления
прошивки (DFU)
FFh
Vendor-specific
На усмотрение производителя
63
Анализ списка изменений этих параметров позволил определить следующие
места записи информации о подключенном USB-устройстве (примеры):
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasse
s\{53f56307-b6bf-11d0-94f200a0c91efb8b}\##?#USBSTOR#Disk&Ven_&Prod_USB_FLASH_DRIVE&Rev_PM
AP#07082630E01B6347&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasse
s\{a5dcbf10-6530-11d2-901f00c04fb951ed}\##?#USB#Vid_1005&Pid_b113#07082630E01B6347#{a5dcbf106530-11d2-901f-00c04fb951ed}\#\;
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBST
OR\Enum\.
При анализе полученных данных видно, что родительским разделом у всех
адресов значений является ControlSet. Этот раздел содержит информацию о
конфигурации системы, такую как драйверы устройств и службы. После
установки системы Windows обычно создаются три экземпляра ControlSet:
а) ControlSet001содержит информацию о последней конфигурации с
которой была загружена система;
б) ControlSet002содержит
информацию
о
последней
удачной
конфигурацией с которой была загружена система;
в) CurrentControlSetявляется
указателем
на
один
из
разделов
ControlSetXXX.
Так же сохранена информация о точках монтирования (примеры):
 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\??\Volume{d278ffe
4-df18-11e5-b925-8b76070cf176};
 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\??\Volume{d278ffe
4-df18-11e5-b925-8b76070cf176};
 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\??\Volume{d278ffe
4-df18-11e5-b925-8b76070cf176};
64
Переносной жесткий диск с интерфейсом USBSeagateимеет следующие
характеристики:
а) USB FLASH DRIVE;
б) Mass Storage;
в) 201210SK1498092#0002;
г) 02.03.2016 20:00:24;
д) 03.01.2016 22:08:53;
е) 08.
Анализ списка изменений этих параметров позволил определить следующие
места записи информации о подключенном USB-устройстве (примеры):

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClas
ses\{53f56307-b6bf-11d0-94f200a0c91efb8b}\##?#USBSTOR#Disk&Ven_&Prod_USB_FLASH_DRIVE&Rev_PM
AP#201210SK1498092#0002&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\;

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Device
Classes\{a5dcbf10-6530-11d2-901f00c04fb951ed}\##?#USB#Vid_1005&Pid_b113#201210SK1498092#0002#{a5dcbf106530-11d2-901f-00c04fb951ed}\#\;

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBST
OR\Disk&Ven_&Prod_USB_FLASH_DRIVE&Rev_PMAP\201210SK1498092#0002
&0\LogConf\;

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\
Enum\;
Мобильный телефон HTCOneV с flash памятью имеет следующие
характеристики:
а) Unknown либо Vendor Specific;
б) Mass Storage;
в) SH296TV00097;
г) 02.03.2016 20:00:24;
65
д) 03.01.2016 22:08:53;
е) 00 (либо ff).
Анализ списка изменений этих параметров позволил определить следующие
места записи информации о подключенном USB-устройстве (примеры):
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasse
s\{53f56307-b6bf-11d0-94f20a0c91efb8b}\##?#USBSTOR#Disk&Ven_&Prod_USB_FLASH_DRIVE&Rev_PMA
P#SH296TV00097&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\#\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\Vid_1005
&Pid_b113\SH296TV00097\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBST
OR\Enum\.
Музыкальный плеер SAMSUNGYP-Q1с flash памятью имеет следующие
характеристики:
а) Q1;
б) Mass Storage;
в) 20B4AC9C004240397613D521F0022F16;
г) 02.03.2016 20:00:24;
д) 03.01.2016 22:08:53;
е) 08.
Анализ списка изменений этих параметров позволил определить следующие
места записи информации о подключенном USB-устройстве (примеры):
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasse
s\{53f56307-b6bf-11d0-94f200a0c91efb8b}\##?#USBSTOR#Disk&Ven_&Prod_USB_FLASH_DRIVE&Rev_PM
AP#20B4AC9C004240397613D521F0022F16&0#{53f56307-b6bf-11d0-94f200a0c91efb8b}\#\;
66
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\Vid_1005
&Pid_b113\20B4AC9C004240397613D521F0022F16\Control\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Dis
k&Ven_&Prod_USB_FLASH_DRIVE&Rev_PMAP\20B4AC9C004240397613D521F
0022F16&0\Device Parameters\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Dis
k&Ven_&Prod_USB_FLASH_DRIVE&Rev_PMAP\20B4AC9C004240397613D521F
0022F16&0\Device Parameters\MediaChangeNotification\;
 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Dis
k&Ven_&Prod_USB_FLASH_DRIVE&Rev_PMAP\20B4AC9C004240397613D521F
0022F16&0\LogConf\;
Также следует отметить, что во всех экспериментах изменения коснулись не
только реестра Windows. Также были изменены следующие файлы:
 C:\WINDOWS\system32\DRIVERS\USBSTOR.SYS;
 С:\windows\system32\usbmon.dll;
 C:\WINDOWS\setupapi.log;
 C:\WINDOWS\inf\INFCACHE.1.
67
ЗАКЛЮЧЕНИЕ
Для решения задач выпускной квалификационной работы был проведен
анализособенностей архитектуры, функционирования и возможностей ныне
существующих средств контроля съемных USB-флеш накопителей информации, а
также была обоснована необходимость создания нового средства контроля.
Решены следующие задачи:
 разработаны
требования,
предъявляемые
к
разрабатываемому
программному средству контроля;
 разработаны структурная и функциональная схемы средства контроля;
 разработаны алгоритмы функционирования клиентской и серверной
частей программы;
 разработана и отлажена программная реализация средства контроля;
 выполнено описание разработанного программного средства;
 приведено руководство по установке и работе с программой.
В
результате
накопителей
разработано
информации,
средство
контроля
функционирующей
на
съемных
ПЭВМ
USB-флеш
с
ОС
WindowsXP/Vista/7/8.
Полученные результаты могут применяться для дальнейшего исследованияи
усовершенствования средств контроля и мониторинга действий пользователей
компьютерной сети.
68
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Гостехкомиссия России. Сборник руководящих документов по защите
информации от несанкционированного доступа – М.: ФСТЭК, 1997. – 128 с.
2. Государственные стандарты (ГОСТ Р ИСО/МЭК 15408, ГОСТ Р 51624–
00 «Защита информации в автоматизированных системах в защищенном
исполнении. Общие требования»);
3. Нестеров С.А. Основы информационной безопасности / С.А. Нестеров –
М.: 2016.
4. Запечников, С.В. Информационная безопасность открытых систем, том
1 Угрозы, уязвимости, атаки и подходы к защите / С.В. Запечников, Н.Г.
Милославская, А.И. Толстой, Д.В. Ушаков.  М.: Горячая линия Телеком, 2016.
536 с.
5. Мельников, В.В. Защита информации в КС / В.В. Мельников. – М.:
Академия, 2008г.  156 с.
6. Мюллер, М. Совершенствование технологий защиты / М. Мюллер – М.:
PCWEEK/ Русское издание, 1997.  129 с.
7. Низамутдинов,М.Ф. Тактика защиты автоматизированных систем / М.Ф.
Низамутдинов.  СПб.: БХВ-Петербург, 2005.  432 с.
8. Гостехкомиссия
несанкционированного
России.
доступа
Руководящий
к
информации.
документ
«Защита
Часть
Программное
1.
от
обеспечение средств защиты информации. Классификация по уровню контроля
отсутствия недекларированных возможностей»-М.: ФСТЭК, 1999.
9. Сердюк, В.А. Ахиллесова пята информационных систем / В.А. Сердюк.
– М.: BYTE, 2004.  с. 19-22.
10. Скотт Мюллер. Модернизация и ремонт ПК // Upgrading and Repairing
PCs. — 17 изд. — М.: «Вильямс», 2007. — с. 1016—1026.
11. Фленов, М.Е. Автоматизированные системы. / М.Е. Фленов. СПб.: БХВПетербург, 2008.  288с.
69
12. Предотвращение утечек информации (DPL) // Википедия [Электронный
ресурс].
–
2017.
–
Режим
доступа:
https://ru.wikipedia.org/wiki/Предотвращение_утечек_информации.- Дата доступа:
18.11.2017
13. Обзор «Средства защиты информации и бизнеса» // Cnews (Аналитика)
[Электронный
ресурс].
–
2017.
–
Режим
доступа:
http://www.cnews.ru/reviews/free/security2007/articles/outflow.shtml. - Дата доступа:
02.09.2017
14. Универсальная последовательная шина (USB) // Программирование,
компьютеры и кибернетика [Электронный ресурс]. – 2017. – Режим доступа:
https://revolution.allbest.ru/programming/00235528_0.html.
-
Дата
доступа:
29.08.2017
15. ГОСТ 28147-89 (Часть 1. Введение и общие принципы) //Хабр
(Информационная безопасность) [Электронный ресурс]. – 2018. – Режим доступа:
https://habr.com/post/80967/ - Дата доступа: 15.04.2018
70
ПРИЛОЖЕНИЕ А
(обязательное)
ЛИСТИНГ ПРОГРАММЫ
# -*- coding: utf-8 -*# Form implementation generated from reading ui file 'usbMain_l.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
import os
import usbView
import sqlite3
import add_usb
import show_inf
import about
import edit_db
import config
global global_path
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.mainwindow = MainWindow
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1238, 778)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
71
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8(global_path + "\usb_drive.png")),
QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.tableWidget = QtGui.QTableWidget(self.centralwidget)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(9)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(4, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(5, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(6, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(7, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(8, item)
self.tableWidget.horizontalHeader().setDefaultSectionSize(180)
self.tableWidget.horizontalHeader().setMinimumSectionSize(180)
self.horizontalLayout.addWidget(self.tableWidget)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1238, 20))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menu = QtGui.QMenu(self.menubar)
self.menu.setObjectName(_fromUtf8("menu"))
self.menu_2 = QtGui.QMenu(self.menubar)
self.menu_2.setObjectName(_fromUtf8("menu_2"))
self.menu_3 = QtGui.QMenu(self.menubar)
self.menu_3.setObjectName(_fromUtf8("menu_3"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.action = QtGui.QAction(MainWindow)
self.action.triggered.connect(self.set_table)
self.action.setObjectName(_fromUtf8("action"))
self.action_3 = QtGui.QAction(MainWindow)
self.action_3.setObjectName(_fromUtf8("action_3"))
self.action_3.triggered.connect(self.open_config)
self.action_4 = QtGui.QAction(MainWindow)
self.action_4.triggered.connect(self.mainwindow.close)
self.action_4.setObjectName(_fromUtf8("action_4"))
72
self.action_5 = QtGui.QAction(MainWindow)
self.action_5.setObjectName(_fromUtf8("action_5"))
self.action_5.triggered.connect(self.edit_db)
self.action_6 = QtGui.QAction(MainWindow)
self.action_6.setObjectName(_fromUtf8("action_6"))
self.action_6.triggered.connect(self.start_info)
self.action_7 = QtGui.QAction(MainWindow)
self.action_7.setObjectName(_fromUtf8("action_7"))
self.action_7.triggered.connect(self.about)
self.menu.addAction(self.action)
self.menu.addSeparator()
self.menu.addAction(self.action_3)
self.menu.addAction(self.action_4)
self.menu_2.addAction(self.action_5)
self.menu_3.addAction(self.action_6)
self.menu_3.addAction(self.action_7)
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_2.menuAction())
self.menubar.addAction(self.menu_3.menuAction())
self.tableWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.tableWidget.customContextMenuRequested.connect(self.on_context_menu)
self.context_menu_reg = QtGui.QMenu()
self.context_menu_reg.addAction(u"Просмотринформации")
self.context_menu_reg.addSeparator()
self.context_menu_reg.addAction(u"УдалитьизБД")
self.context_menu_reg.addAction(u"УдалитьизОС")
# self.context_menu_unreg.setMinimumHeight(300)
# self.context_menu_unreg.setMinimumWidth(300)
self.context_menu_unreg = QtGui.QMenu()
self.context_menu_unreg.addAction(u"ДобавитьвБД")
self.context_menu_unreg.addAction(u"УдалитьизОС")
# self.context_menu_unreg.setMinimumHeight(300)
# self.context_menu_unreg.setMinimumWidth(300)
self.set_table()
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def on_context_menu(self, point):
if self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 4).text() != u"":
action = self.context_menu_reg.exec_(self.tableWidget.mapToGlobal(point))
else:
action = self.context_menu_unreg.exec_(self.tableWidget.mapToGlobal(point))
if action:
73
if str(action.text().toUtf8()) == "Просмотринформации":
self.show_dev(self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 3).text())
elif str(action.text().toUtf8()) == "УдалитьизБД":
self.del_device(self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 3).text())
elif str(action.text().toUtf8()) == "УдалитьизОС":
self.delete_dev_os(self.tableWidget.item(self.tableWidget.selectedItems()[0].row(),
3).text())
elif str(action.text().toUtf8()) == "ДобавитьвБД":
self.open_add_usb(self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 3).text(),
self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 0).text(),
self.tableWidget.item(self.tableWidget.selectedItems()[0].row(), 1).text())
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow",
"Детекторнесанкционированногодоступа USB носителей", None))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Наименованиеустройства", None))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Фирма, модельустройства", None))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Объемпамятиустройства", None))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Заводскойсерийныйномер", None))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("MainWindow", "Учетныйномер", None))
item = self.tableWidget.horizontalHeaderItem(5)
item.setText(_translate("MainWindow", "Грифсекретностиносителя", None))
item = self.tableWidget.horizontalHeaderItem(6)
item.setText(_translate("MainWindow", "Ответственный", None))
item = self.tableWidget.horizontalHeaderItem(7)
item.setText(_translate("MainWindow", "Первоеподключение", None))
item = self.tableWidget.horizontalHeaderItem(8)
item.setText(_translate("MainWindow", "Последнееподключение", None))
self.menu.setTitle(_translate("MainWindow", "Файл", None))
self.menu_2.setTitle(_translate("MainWindow", "БД", None))
self.menu_3.setTitle(_translate("MainWindow", "Помощь", None))
self.action.setText(_translate("MainWindow", "Обновить", None))
self.action_3.setText(_translate("MainWindow", "Настройки", None))
self.action_4.setText(_translate("MainWindow", "Выход", None))
self.action_5.setText(_translate("MainWindow", "РедакторБД", None))
self.action_6.setText(_translate("MainWindow", "Справка", None))
self.action_7.setText(_translate("MainWindow", "Опрограмме", None))
def start_info(self):
os.startfile(global_path + '\\inf\\index.html')
def set_table(self):
for i in range(self.tableWidget.rowCount()):
self.tableWidget.removeRow(0)
74
db = DB(global_path)
db.open_db()
list_dev_db = db.read_db()
list_dev_local = usbView.get_list_usb_local()
db.close_db()
flag = QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsDragEnabled | QtCore.Qt.ItemIsEnabled
for dev_local in list_dev_local:
for dev_db in list_dev_db:
if dev_local.serial_number == dev_db[4]:
break
else:
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
self.tableWidget.setItem(row_position, 0, QtGui.QTableWidgetItem(dev_local.type_dev))
self.tableWidget.item(row_position, 0).setFlags(flag)
self.tableWidget.item(row_position, 0).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 1, QtGui.QTableWidgetItem(dev_local.name))
self.tableWidget.item(row_position, 1).setFlags(flag)
self.tableWidget.item(row_position, 1).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 2, QtGui.QTableWidgetItem(""))
self.tableWidget.item(row_position, 2).setFlags(flag)
self.tableWidget.item(row_position, 2).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 3,
QtGui.QTableWidgetItem(dev_local.serial_number))
self.tableWidget.item(row_position, 3).setFlags(flag)
self.tableWidget.item(row_position, 3).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 4, QtGui.QTableWidgetItem(""))
self.tableWidget.item(row_position, 4).setFlags(flag)
self.tableWidget.item(row_position, 4).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 5, QtGui.QTableWidgetItem(""))
self.tableWidget.item(row_position, 5).setFlags(flag)
self.tableWidget.item(row_position, 5).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 6, QtGui.QTableWidgetItem(""))
self.tableWidget.item(row_position, 6).setFlags(flag)
self.tableWidget.item(row_position, 6).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 7,
QtGui.QTableWidgetItem(str(dev_local.date_created)))
self.tableWidget.item(row_position, 7).setFlags(flag)
self.tableWidget.item(row_position, 7).setBackgroundColor(QtGui.QColor(255, 167, 169))
self.tableWidget.setItem(row_position, 8,
QtGui.QTableWidgetItem(str(dev_local.date_last)))
self.tableWidget.item(row_position, 8).setFlags(flag)
self.tableWidget.item(row_position, 8).setBackgroundColor(QtGui.QColor(255, 167, 169))
continue
# совпаденияесть
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
75
self.tableWidget.setItem(row_position, 0, QtGui.QTableWidgetItem(dev_db[1]))
self.tableWidget.item(row_position, 0).setFlags(flag)
self.tableWidget.item(row_position, 0).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 1, QtGui.QTableWidgetItem(dev_db[2]))
self.tableWidget.item(row_position, 1).setFlags(flag)
self.tableWidget.item(row_position, 1).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 2, QtGui.QTableWidgetItem(dev_db[3]))
self.tableWidget.item(row_position, 2).setFlags(flag)
self.tableWidget.item(row_position, 2).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 3, QtGui.QTableWidgetItem(dev_db[4]))
self.tableWidget.item(row_position, 3).setFlags(flag)
self.tableWidget.item(row_position, 3).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 4, QtGui.QTableWidgetItem(dev_db[5]))
self.tableWidget.item(row_position, 4).setFlags(flag)
self.tableWidget.item(row_position, 4).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 5, QtGui.QTableWidgetItem(dev_db[6]))
self.tableWidget.item(row_position, 5).setFlags(flag)
self.tableWidget.item(row_position, 5).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 6, QtGui.QTableWidgetItem(dev_db[8]))
self.tableWidget.item(row_position, 6).setFlags(flag)
self.tableWidget.item(row_position, 6).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 7,
QtGui.QTableWidgetItem(str(dev_local.date_created)))
self.tableWidget.item(row_position, 7).setFlags(flag)
self.tableWidget.item(row_position, 7).setBackgroundColor(QtGui.QColor(196, 255, 174))
self.tableWidget.setItem(row_position, 8, QtGui.QTableWidgetItem(str(dev_local.date_last)))
self.tableWidget.item(row_position, 8).setFlags(flag)
self.tableWidget.item(row_position, 8).setBackgroundColor(QtGui.QColor(196, 255, 174))
def ex(self):
print "Example!!!!"
def about(self):
Dd = QtGui.QDialog()
dd = about.Ui_Dialog()
dd.setupUi(Dd)
Dd.exec_()
self.set_table()
def edit_db(self):
Dd = QtGui.QDialog()
dd = edit_db.Ui_Dialog()
dd.setupUi(Dd, global_path)
Dd.exec_()
self.set_table()
def del_device(self, serial_number):
reply = QtGui.QMessageBox.question(self.mainwindow, u"ВНИМАНИЕ!!!", u'Выуверены,
чтохотитеудалитьзапись?',
76
QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
db = DB(global_path)
db.open_db()
for i in db.read_db():
if serial_number == i[4]:
db.delete_device(i[0])
db.close_db()
else:
pass
self.set_table()
def show_dev(self, serial_number):
Dd = QtGui.QDialog()
dd = show_inf.Ui_Dialog()
db = DB(global_path)
db.open_db()
for i in db.read_db():
if serial_number == i[4]:
buf = i
break
db.close_db()
dd.setupUi(Dd, buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], global_path)
Dd.exec_()
self.set_table()
def open_add_usb(self, serial_number, name="", type=""):
Dd = QtGui.QDialog()
dd = add_usb.Ui_Dialog()
dd.setupUi(Dd, serial_number, global_path, name, type)
Dd.exec_()
self.set_table()
def open_config(self):
Dd = QtGui.QDialog()
dd = config.Ui_Dialog()
dd.setupUi(Dd, global_path)
Dd.exec_()
self.set_table()
def delete_dev_os(self, serial_number):
usbView.delete_reg(str(serial_number.toUtf8()))
self.set_table()
class DB():
def __init__(self, global_path):
77
self.global_path = global_path
def open_db(self):
fi = open(self.global_path + '\config', 'r')
#fi = open('config', 'r')
fn = fi.read()
if fn == 'data':
fn = self.global_path + '\\' + fn
else:
fn = fn
print fn
fi.close()
self.db = sqlite3.connect(fn)
self.cursor = self.db.cursor()
try:
self.cursor.execute("CREATE TABLE devices(id INTEGER PRIMARY KEY
AUTOINCREMENT,"
"name TEXT,"
"type TEXT,"
"memory TEXT,"
"serial_number TEXT,"
"uchet_number TEXT,"
"grif TEXT,"
"path TEXT,"
"owner TEXT)")
self.db.commit()
except sqlite3.OperationalError:
pass
def close_db(self):
self.db.close()
def add_device(self, name, type, memory, serial_number, uchet_number,
grif, path, owner):
try:
self.cursor.execute("INSERT INTO devices(name, type, memory, serial_number,
uchet_number,"
"grif, path, owner)"
"VALUES(?, ?, ?, ?, ?, ?, ?, ?)", (name, type, memory, serial_number,
uchet_number,
grif, path, owner))
self.db.commit()
except Exception, e:
print "Cant\'t add device " + str(e)
def update_device(self, name, type, memory, serial_number, uchet_number,
grif, path, owner, id_table):
try:
self.cursor.execute("UPDATE devices SET name = ?,"
"type = ?,"
"memory = ?,"
"serial_number = ?,"
78
"uchet_number = ?,"
"grif = ?,"
"path = ?,"
"owner = ?"
"WHERE id = ?",
(name, type, memory, serial_number, uchet_number,
grif, path, owner, id_table
))
self.db.commit()
except Exception, e:
print "Cant\'t update device " + str(e)
def delete_device(self, id_table):
try:
self.cursor.execute("DELETE FROM devices WHERE id=?", (str(id_table),))
self.db.commit()
except Exception, e:
print "Cant\'t delete device " + str(e)
def read_db(self):
try:
return [i for i in self.cursor.execute("SELECT * FROM devices")]
except Exception, e:
print "Cant\'t read device " + str(e)
if __name__ == "__main__":
try:
import sys
app = QtGui.QApplication(sys.argv)
a = sys.argv[0].decode('cp1251').split('\\')[:-1]
global global_path
global_path = '\\'.join(a)
print "GP " + global_path
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
except Exception, e:
print e
open(global_path + '/log_main.txt', 'w').write(str(e))
80
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
группы атрибутов
атрибута
1. Описание
Обозначение документа
документа
(идентификатор(ы)
файла(ов))
Наименование документа
2. Даты и время
3. Создатели
4. Внешние
ссылки
5. Защита
6. Характеристики
содержания
Характеристики документа
на электронном носителе
\Презентация_ВКР_Рожкова.
ppt
Демонстрационные плакаты к
выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный
материал, отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование документа Операционная система
Windows 7,
MicrosoftPowerPoint 2010
Дата и время копирования 21.06.2018
документа
Дата создания документа 07.06.2018
Дата утверждения
22.06.2018
документа
Автор
Рожкова Л.О.
Изготовитель
Рожкова Л.О.
Ссылки на другие
Удостоверяющий лист
документы
№ 165179
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
Объем информации
2519928 Б
документа
81
7. Структура
документа(ов)
Наименование плаката
(слайда) №1
Наименование плаката
(слайда) №2
Наименование плаката
(слайда) №3
Наименование плаката
(слайда) №4
Наименование плаката
(слайда) №5
Наименование плаката
(слайда) №6
Наименование плаката
(слайда) №7
Наименование плаката
(слайда) №8
Наименование плаката
(слайда) №9
Наименование плаката
(слайда) №10
Наименование плаката
(слайда) №11
Титульный лист
Постановка проблемы
Характеристики аналогов
Требования к программному
средству
Общая схема работы системы
Модель функционирования
подсистемы пользователя
Структура системы
Основные классы
Схема взаимодействия
функциональных блоков
подсистемы пользователя
Алгоритм шифрования
«Магма»
Пример экранной формы
программного средства
1/--страниц
Пожаловаться на содержимое документа