Курсовая работа: Протоколирование обмена информацией между компьютером и внешним запоминающим USB-устройством
3.2 Интерфейс управляющего приложения. 41
3.3 Тестирование драйвера-фильтра. 42
Заключение. 44
Список литературы и интернет-ресурсов. 45
Введение
При решении широкого круга задач возникает необходимость в получении информации о функционировании какого-либо внешнего устройства компьютера. К категории этих задач можно отнести разработку систем информационной безопасности, что очень актуально в современном мире, где информация является одним из важнейших ресурсов.
Одним из компонентов системы информационной безопасности может быть модуль, выполняющий протоколирование обмена информацией между компьютером и некоторым внешним запоминающим устройством, например USB‑накопителем.
1. Аналитический раздел
1.1 Постановка задачи
В соответствии с заданием на курсовую работу необходимо разработать программный комплекс, обеспечивающий слежение за обменом информацией между компьютером и внешним запоминающим USB‑устройством.
Перечислим требования, предъявляемые к программному комплексу:
· Разрабатываемый комплекс должен отслеживать запросы на чтение и запись, приходящие к устройству;
· От программы не требуется определять, к каким файлам производилось обращение, а лишь то, какие данные считывались и записывались;
· Сохраняемая информация должна обладать структурированностью, таким образом, что при анализе лог-файла можно было определить, передавалась или принималась информация и в каком количестве;
· Программный комплекс не должен приводить к сбоям в работе операционной системы;
· Программа установки должна корректно обрабатывать попытку установки на одно устройство в двух экземплярах.
1.2 Архитектура WindowsNT 5
Архитектура WindowsNT 5 соответствует классическим представлениям о проектировании операционных систем. Наиболее распространены реализации данной ОС для платформы Intelx86 в одно- или многопроцессорных конфигурациях, однако существуют также версии для DECAlpha и MIPS. Данная операционная система использует защищённый режим центрального процессора, реализует механизмы виртуальной памяти и многозадачности.
Исполняемый код в WindowsNT 5 имеет два уровня привилегий: код пользовательского режима и код режима ядра. Уровень привилегий накладывает определённые ограничения: в пользовательском режиме не могут выполняться привилегированные инструкции процессора, не разрешено обращение к защищённым страницам памяти. Эти ограничения накладываются для обеспечения безопасности работы системы. Пользовательское приложение не должно иметь возможность в результате ошибки или преднамеренно вносить изменения в критические таблицы операционной системы или в память других приложений. В частности, такие ограничения запрещают пользовательскому приложению напрямую управлять внешними устройствами, потому что каждое из них является разделяемым ресурсом.
В WindowsNT 5 обеспечение обмена данными и управление доступом к внешнему устройству как к разделяемому ресурсу возлагается на его драйвер. Ввод и вывод в драйверах осуществляется посредством IRP‑пакетов (Input/OutputRequestPacket). Запросы на ввод / вывод, посылаемые приложениями или другими драйверами, обрабатываются драйвером, после чего запрашивающей программе в том же пакете посылается статус завершения операции. Подробнее о пакетах ввода / вывода будет сказано далее, общий же принцип взаимодействия проиллюстрирован на Рис. 1.2.1.
Рис. 1.2.1 Архитектура ввода / вывода WindowsNT 5
Применительно к поставленной задаче, из вышеизложенного следует, что полное протоколирования обмена данными с внешним устройством может быть осуществлено только на уровне драйвера.
Управление внешним устройством в общем случае сводится к заполнению его регистров необходимыми данными. Монопольный доступ драйвера к этим регистрам гарантируется операционной системой. Очевидно, что при данных обстоятельствах требуется, чтобы драйвер устройства выполнялся в режиме ядра.
Обобщённая классификация драйверов WindowsNT 5 может быть представлена следующим образом:
· Драйверы режима ядра:
o Унаследованные драйверы;
o Драйверы файловой системы;
o Видеодрайверы;