- Bitbucket

advertisement
Оглавление
1. Системные требования ............................................................................. 3
2. Установка и удаление ............................................................................... 4
2.1. Установка ............................................................................................ 4
2.1.1. База данных ................................................................................. 4
2.1.2. LogUSBService ............................................................................ 4
2.2 Удаление .............................................................................................. 5
2.1.1. LogUSBService ............................................................................ 5
3. Документация пользователя .................................................................... 6
3.1. LogUSBService ................................................................................... 6
3.1.1. Описание ...................................................................................... 6
3.1.2. Управление .................................................................................. 6
3.2. LogUSBInstaller .................................................................................. 6
3.2.1. Описание ...................................................................................... 6
3.2.2. Управление .................................................................................. 7
3.3. LogUSB Viewer................................................................................... 8
3.3.1. Описание ...................................................................................... 8
3.3.2. Управление .................................................................................. 9
4. Документация разработчика .................................................................. 11
4.1. LogUSBService ................................................................................. 12
4.2.1. Класс LogUSBService ............................................................... 13
4.2.2. Класс SingleAudit ...................................................................... 13
4.2.3. Класс ManageDB ....................................................................... 14
4.2. LogUSBInstaller ................................................................................ 14
4.3.1. ManageInstaller........................................................................... 14
4.3.2. ManageService ............................................................................ 15
4.3. LogUSB Viewer................................................................................. 15
4.3.1. View ............................................................................................ 16
4.3.2. ViewModel.................................................................................. 16
4.3.3. Model .......................................................................................... 16
4.3.4. Common ...................................................................................... 16
1. СИСТЕМНЫЕ ТРЕБОВАНИЯ
Для LogUSBInstaller (далее LUI) и LogUSBService (далее LUS)
требуется .NET Framework 2.0 и выше. LogUSB Viewer (далее LUV) требует
.NET Framework 4.5 и выше.
Для работы LogUSBService нужна включенная политика «Аудит
доступа к объектам». Достаточно параметра безопасности «Успех».
Для запуска LogUSBInstaller требуется наличие учетной записи
администратора.
Желательно наличие Microsoft SQL Server, с созданной базой данных,
содержащей 2 таблицы. Скрипт создания таблиц идет в комплекте. В случае
отсутсвия базы данных использование LUV возможно только в режиме
просмотра локального файла лога.
Для обнаружения нарушений в LUV требуется список допустимых
устройств из программы «DeviceLock» и/или список сетевых компьютеров.
2. УСТАНОВКА И УДАЛЕНИЕ
2.1. Установка
2.1.1. БАЗА ДАННЫХ
1. Создать базу данных через SQL Server Management Studio или
через SQL запрос.
2. Создать
пользователя
для
БД
или
дать
права
уже
существующему.
3. Выполнить для данной БД скрипт «create table.sql» идущий
вместе с проектом.
2.1.2. LOGUSBSERVICE
Если требуется изменить название службы, данные для подключения к
БД и т.д., то для начала нужно изменить соответствующие поля в исходных
файлах
и
перекомпилировать
проект.
Подробнее
в
документации
разработчика.
1. Подготовить
машину
в
соответствие
с
системными
требованиями.
2. Запустить на клиентской машине LUI c правами администратора
c параметром «install» указав путь до исполняемого файла
службы (рис. 2.1).
Рис. 2.1 Установка службы
2.2 Удаление
2.1.1. LOGUSBSERVICE
Запустить на клиентской машине LUI c правами администратора c
параметром «uninstall».
3. ДОКУМЕНТАЦИЯ ПОЛЬЗОВАТЕЛЯ
3.1. LogUSBService
3.1.1. ОПИСАНИЕ
Приложение выполнено в виде службы. Умеет подстраиваться под
текущую версию операционной системы. Запускается вместе с Windows и
производит переодический опрос журнала аудита на предмет подключения
usb-хранилищ. Если журнал аудита содержит такие записи, то приложение
собирает требуемую информацию и сохраняет ее.
Если доступно подключение к серверу базы данных, то собранную
информацию приложение выгружает в базу данных. Если же сервер
недоступен, то собранная информация сохраняется в файл. Имя файла и его
расположение, имя службы, частота проверок, настройки доступа к базе
данных содержатся в исходном коде приложения. Для изменения этих
данных обратитесь к документации разработчика.
Дополнительно, LUS ведет журнал проверок компьютера, который
также записывается либо в базу данных (при ее наличие), либо в локальный
файл.
3.1.2. УПРАВЛЕНИЕ
Как любая служба Windows, LUS можно управлять через оснастку
«Службы» консоли управления (ММС). Имя службы и имя исполняемого
файла задается в исходном коде приложения. Для изменения этих данных
обратитесь к документации разработчика.
LUS также может управляться через LUI. Подробнее в разделе 3.2.2.
3.2. LogUSBInstaller
3.2.1. ОПИСАНИЕ
Приложение отвечает за установку и управление LUS. При установке,
приложение копирует исполняемый файл в конечную директорию из
директории указанной в качестве параметров командной строки. Выставляет
нужные права на отслеживаемые объекты, устаналивает службу и чистит
следы, которые остаются при установке и удаление.
Конечная директория, имя службы и имя исполняемого файла задается
в исходном коде приложения. Для изменения этих данных обратитесь к
документации разработчика.
3.2.2. УПРАВЛЕНИЕ
LUI
требуется
запускать
только
с
правами
администратора.
Взаимодействие с установщиком возможно только через параметры
командной строки (рис. 3.1).
Рис. 3.1. Управление установщиком
Установщик имеет 4 управляющие команды:
1. install <путь_до_директории_с_исполняемым_файлом>;
2. uninstall;
3. start;
4. stop.
Первые две отвечают за установку и удаление службы. Остальные за
управление службой.
3.3. LogUSB Viewer
3.3.1. ОПИСАНИЕ
Приложение имеет графический интерфейс и предназначено для
просмотра и управления логом, который содержится в базе данных. Также
есть возможность просмотра локального файла лога. Приложение состоит из
следующих элементов (рис. 3.2).
Рис. 3.2. Главное окно приложения
В
верхней
части
приложения
(рис.
3.2-1)
находятся
кнопки,
отвечающие за обновление текущего типа данных и открытия окна настроек.
Далее идут вкладки с двумя видами логов (рис. 3.2-2), таблица (рис. 3.2-3) с
записями из базы данных, кнопки очистки таблицы, открытия локального
файла и выбора типа отображаемых данных (рис. 3.2-4). В нижней части
приложения находится статус-бар (рис. 3.2-5), который отображает версии
баз допустимых устройств и сетевых компьютеров.
Панель настроек имеет следующий вид (рис. 2.3).
Рис. 3.3. Панель настроек
В этой панеле устаналиваются основные настройки, которые требуются
для подключения к базе данных. Также имеются два поля, где указываются
пути до файлов с базами устройств и компьютеров.
3.3.2. УПРАВЛЕНИЕ
При первом запуске возникнет ошибка подключения к базе данных.
Поэтому требуется заполнить настройки (кнопка рис. 3.2-1), и сохранить
настройки соответствующей кнопкой. Последующие запуски уже не будут
требовать повторного ввода данных и приложение будет сразу отображать
данные из базы данных.
Вкладки (рис. 3.2-2) позволяют переключать тип отображаемого лога,
который отображается в таблице (рис. 3.2-3).
Таблица имеет возможность копирования ее строк и сортировки по
различным столбцам. Изначально производится сортировка по первому
столбцу, который отвечает за время.
Для очистки таблицы или открытия локального файла логов есть
соответствующие кнопки (рис. 3.2-4).
Для выбора типа отображаемой информации, т.е. либо это весь лог,
либо некоторая выборка существует раскрывающийся список (рис. 3.2-4).
Выборка происходит один раз (при первом выборе данного пункта) и
сохраняется в оперативной памяти. Для повторной выборки требуется
нажатие кнопки обновления (рис. 3.2-1).
Для отслеживания версии баз
допустимых устройств и сетевых
компьютеров в статус-баре (рис. 3.2-5) отображается время последнего
редактирования того или иного файла. Для выбора этих файлов, в настройках
есть отдельные поля, где присутствуют кнопки открытия окна «Проводник».
Кнопка обновления (рис. 3.2-1) явялется универсальной и имеет
зависимость от открытой вкладки и выбранного типа данных. Т.е. в случае
выбора вкладки «Общий лог» (рис. 3.2-2) и типа данных «Весь лог» (рис. 3.24) произойдет обновление таблицы (рис. 3.2-3) из базы данных. Если будет
выбран тип данных «Нарушения», то произойдет сверка текущей таблицы со
списком допустимых устройств и в таблице отобразятся все факты
нарушения и т.д. Действия данной кнопки не распространяется при октрытие
локального файла логов.
4. ДОКУМЕНТАЦИЯ РАЗРАБОТЧИКА
Рис. 4.1 Схема работы службы
Работа комплекса приложений полностью основана на стандартных
средствах операционной системы Windows. В случае соблюдения пунктов
раздела 1 и успешной работы приложения LUI в операционной системе
отслеживаемого компьютера будет установлена служба, будет включена
политика
«Аудит
доступа
к
объектам»
и
раздел
ресстра
«SYSTEM\CurrentControlSet\Enum\USBSTOR» будут установлены правила
аудита для пользователя «Система» (рис. 4.2).
Рис. 4.2. Настройки аудита для раздела «USBSTOR»
Таким образом последовательность работы можно описать следующим
образом (рис. 4.1). Когда пользователь вставляет usb-хранилище в
компьютер,
то
операционная
система
обращается
к
разделу
«SYSTEM\CurrentControlSet\Enum\USBSTOR». Данное обращение можно
отследить через журнал аудита, где содержится полный перечь требуемой
информации: время, тип устройства, уникальный идентификатор устройства,
имя компьютера. LUS переодически опрашивает журнал аудита и извлекает
оттуда нужную информацию. Для уже идет сохранения либо в базу данных,
либо в локальный файл.
4.1. LogUSBService
Приложение имеет классическую архитектуру службы Windows (класс
ServiceBase).
Точкой входа, минуя функцию «Main» является класс LogUSBService.
Здесь происходит вызов класса SingleAudit. В SingleAudit уже используется
класс ManageDB. В свойствах данного проекта указывается конечное имя
исполняемого файла и дополнительная ифнормация, которая идет вместе со
сборкой (файл AssemblyInfo.cs).
Имя сервиса и его описание указывается в классах ProjectInstaller и
LogUSBService. За это отвечают поля «ServiceName», «DisplayName» и
«Description». Данные поля можно менять как через свойства объектов
установщика, так и непосредственно в файлах ProjectInstaller.Designer.cs и
LogUSBService.Designer.cs.
4.2.1. КЛАСС LOGUSBSERVICE
В конструктуре класса указывается пути для выходных файлов и
определяются, в зависимости от установленной ОС, какие коды сообщений
журнала нужны для сбора лога.
Сбор лога выполняется через определенные промежутки времени, по
таймеру, время которого выставляется в конструктуре класса «Timer» в
методе «DoWork».
Изначально установлен интервал в 6 часов.
Сбор лога разбивается на два этапа: получение результатов и выгрузка
их. Вызовы соответствующих методов происходят в методе «CallBack».
4.2.2. КЛАСС SINGLEAUDIT
Класс
выполнен
с
использованием
паттерна
«Одиночка».
В
конструктуре выставляются коды нужных сообщений для Windows 7.
Имеется ряд методов с приставкой «Set», через которые можно
установить те или параметры.
Основными
методами
является
«GetNewSecurityEvent»
и
«UploadResult».
Метод GetNewSecurityEvent отвечает за получение новых записей
журнала, выборку требуемых записей и добавления их в коллекцию
«_logList». В коллекции хранятся объекты структуры следующего вида:
private struct Device
{
public string MachineName;
public string NameDevice;
public DateTime Time;
public string UID;
}
После добавления записей в коллекцию, происходит очистка коллекции от
повторов (метод DeleteDublicate) и чистка журнала безопасности.
Метод UploadResult выгружает заполненную коллекцию в базу данных
через класс «ManageDB». Если отсутствует подключение к серверу базы
данных (GetState вернуло false), то происходит выгрузка коллекции в файлы
по путям _usbLogPath и _checkLogPath.
4.2.3. КЛАСС MANAGEDB
Класс отвечает за подключение к базе данных и выгрузка данных.
Строка подключения содержится в константе «ConnectionString».
4.2. LogUSBInstaller
Точкой входа является функция «Main», где в зависимости от
переданных
параметров
запускается
один
из
методов
классов
«ManageInstaller» и «ManageService».
4.3.1. MANAGEINSTALLER
Через методы класса производится установка и удаление сервиса.
Основными методами являются «Install» и «Uninstall».
В методе «Install» происходит копирование исполняемого файла из
директории, путь которой указан в качестве параметра командной строки в
директорию «ServiceFilePath», установка прав доступа для учетной записи
«Администратор» и установка правил аудита. После чего происходит
установка службы через встроенную утилиту «Installutil.exe».
В методе «Uninstall» происходит удаление службы из системы через
встроенную утилиту «Installutil.exe», удаление исполняемого файла и чистка
мусора.
4.3.2. MANAGESERVICE
Класса отвечает за запуск и остановку службы и содержит
соответствующие одноменные методы.
4.3. LogUSB Viewer
Приложение с графическим интерфейсом, основанное на графической
подсистеме WPF с использованием классов MahApps.Metro. Программа
построенна в соответствие с паттерном MVVM, поэтому имеет разделение на
3 части: представление, модель и модель-представление (рис. 4.3).
Рис. 4.3. Структура приложения в соответствие с паттерном MVVM
4.3.1. VIEW
На данном логическом уровне находится графическое представление
приложения. Сам дизайн написан на языке разметки XAML.
В
«MainWindow.xaml»
содержится
общий
графический
каркас
приложения: статус-бар, выдвигающиеся панель настроек, функциональные
кнопки и две вкладки.
Каждой вкладке соответствует пользовательский элемент управления
«UsbLogView» и «CheckLogView» соответственно.
«UsbLogView» содержит таблицу и кнопки очистки и открытия
локального файла.
«CheckLogView» также содержит таблицу и кнопку очистки.
4.3.2. VIEWMODEL
Этот логический уровень содержит функциональное наполнение для
представлений, а также связывает бизнес-логику, которая находится на
уровне
модели
с
представлением.
Количество
и
названия
классов
между
модель-
соответствует набору представлений.
Для
передачи
сообщений
(вызов
функций)
представлениями используется система сообщений MvvmLight.Messaging.
4.3.3. MODEL
В этом логическом уровне находится набор классов «DBContext»,
обеспечивающие работу с базой данных через ORM
Entity Framework и
класс «SingleConnection», в котором содержится метод для генерации строки
подключения к базе данных.
4.3.4. COMMON
Здесь
располагаются
вспомогательные
классы,
а
именно
реализации системы команд паттерна MVVM: обычная и ассинхронная.
две
Download