Диплом: Управление комплексной автоматизацией технологических процессов и производств на предприятии ООО «АЙТИ»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
65
Рисунок 6 – Схема работы сниффера
И чтобы сам сниффер мог перехватывать все пакеты, проходящие сквозь
сетевой адаптер, драйвер последнего должен иметь поддержку режима работы
«promiscuousmode» (беспорядочный режим). Только в таком режиме
функционирования сетевого адаптера сниффер может перехватывать все
пакеты. Подобный режим работы сетевого адаптера сразу становится активным
по факту запуска сниффера или выбирается вручную необходимыми
настройками сниффера.
Весь перехваченный трафик отправляется на декодер пакетов, который
определяет и расщепляет пакеты по нескольким уровням иерархии. В
зависимости от доступных возможностей отдельногосниффера, вся собранная
информация о пакетах в итоге может дополнительно исследоваться и
фильтроваться.
Максимальную опасность снифферы имели тогда, когда данные
передавалась по сети без какого-либо шифрования, а ЛВС были созданы на базе
66
хабов (концентраторов). Но те времена навсегда ушли, и сегодня применение
снифферов для выявления доступа к секретным данным — задача не самая
простая.
А дело в том, что в процессе реализации ЛВС на основе концентраторов
есть некая совокупная передачи данных (сетевой кабель), и все узлы сети
передают пакеты, борясь за доступ к этой среде (рис. 2), а сам пакет,
отправляемый одним узлом сети, пересылается на все порты концентратора и в
таком случае данный пакет прослушивается всеми узлами сети, но принимает
его тот единственны узел, для которого он был адресован. И в том случае, если
на одном из узлов сети уде имеется сниффер, то он также перехватывает и все
сетевые пакеты, относящиеся к указанному сегменту сети (сети, которую
образует концентратор).
Рисунок 7 При использовании концентраторов сниффер способен
перехватывать все пакеты сетевого сегмента
Коммутаторы (switch) являются более интеллектуальными
устройствами, чем широковещательные концентраторы, и изолируют сетевой
трафик. Коммутатор знает адреса устройств, подключенных к каждому порту, и
передает пакеты только между нужными портами. Это позволяет разгрузить
другие порты, не передавая на них каждый пакет, как это делает концентратор.
Таким образом, посланный неким узлом сети пакет передается только на тот
порт коммутатора, к которому подключен получатель пакета, а все остальные
узлы сети не имеют возможности обнаружить данный пакет (рис. 3.4).
67
Рисунок 8При использовании коммутаторов сниффер способен
перехватывать только входящие и исходящие пакеты одного узла
сети
Поэтому если сеть построена на основе коммутатора, то сниффер,
установленный на одном из компьютеров сети, способен перехватывать только
те пакеты, которыми обменивается данный компьютер с другими узлами сети.
В результате, чтобы иметь возможность перехватывать пакеты, которыми
интересующий злоумышленника компьютер или сервер обменивается с
остальными узлами сети, необходимо установить сниффер именно на этом
компьютере (сервере), что на самом деле не так-то просто. Правда, следует
иметь в виду, что некоторые пакетные снифферы запускаются из командной
строки и могут не иметь графического интерфейса. Такиеснифферы, в
принципе, можно устанавливать и запускать удаленно и незаметно для
пользователя.
Кроме того, необходимо также иметь в виду, что, хотя коммутаторы
изолируют сетевой трафик, все управляемые коммутаторы имеют функцию
перенаправления или зеркалирования портов. То есть порт коммутатора можно
настроить таким образом, чтобы на него дублировались все пакеты,
приходящие на другие порты коммутатора. Если в этом случае к такому порту
подключен компьютер с пакетнымсниффером, то он может перехватывать все
пакеты, которыми обмениваются компьютеры в данном сетевом сегменте.
Однако, как правило, возможность конфигурирования коммутатора доступна
68
только сетевому администратору. Это, конечно, не означает, что он не может
быть злоумышленником, но у сетевого администратора существует множество
других способов контролировать всех пользователей локальной сети, и вряд ли
он будет следить за вами столь изощренным способом.
Другая причина, по которой снифферы перестали быть настолько
опасными, как раньше, заключается в том, что в настоящее время наиболее
важные данные передаются в зашифрованном виде. Открытые,
незашифрованные службы быстро исчезают из Интернета. К примеру, при
посещении web-сайтов все чаще используется протокол SSL
(SecureSocketsLayer); вместо открытогоFTP используется SFTP (SecureFTP), а
для других служб, которые не применяют шифрование по умолчанию, все чаще
используются виртуальные частные сети (VPN).
Итак, те, кто беспокоится о возможности злонамеренного применения
пакетныхснифферов, должны иметь в виду следующее. Во-первых, чтобы
представлять серьезную угрозу для вашей сети, снифферы должны находиться
внутри самой сети. Во-вторых, сегодняшние стандарты шифрования
чрезвычайно затрудняют процесс перехвата конфиденциальной информации.
Поэтому в настоящее время пакетныеснифферы постепенно утрачивают свою
актуальность в качестве инструментов хакеров, но в то же время остаются
действенным и мощным средством для диагностирования сетей. Более того,
снифферы могут с успехом использоваться не только для диагностики и
локализации сетевых проблем, но и для аудита сетевой безопасности. В
частности, применение пакетных анализаторов позволяет обнаружить
несанкционированный трафик, обнаружить и идентифицировать
несанкционированное программное обеспечение, идентифицировать
неиспользуемые протоколы для удаления их из сети, осуществлять генерацию
трафика для испытания на вторжение (penetrationtest) с целью проверки
системы защиты, работать с системами обнаружения вторжений
(IntrusionDetectionSystem, IDS).
69
3.2.Реализация DLP системы
Перед запуском процесса захвата пакетов нам необходимо выбрать
устройство, с которого будет производиться захват. Устройство описывается
классом «LivePacketDevice». После этого для выбранного устройства создается
коммуникатор (объект класса «PacketCommunicator») – это объект, который
выполняет захват пакетов. Объекты данного класса имеют ряд методов,
которые выполняют захват: «ReceivePackets» – выполняет захват пакетов,
«ReceiveStatistics» - выполняет захват статистики получаемых пакетов.
Перечисленные метод являются блокирующими (они блокируют поток, в
котором они запускаются и принимают пакеты до тех пор, пока не будет
вызван метод «Break» коммуникатора) и потому метод захвата пакетов
запускается в методе «DoWork» компонента «BackgroundWorker» (фоновый
поток). Методы «ReceivePackets» в качестве параметра принимает процедуру
обратного вызова, в теле которой и выполняется анализ пакета и его
сохранение в базе данных. Анализ пакетов выполняет класс «PacketManager».
Основной метод класса «AddPacket» - он выполняет сохранение пакета в базе
данных и запускает процедуру поиска данных в файлах заданных каталогов.
Поиск по двоичным данным защищаемых файлов выполняет объект класса
«DataScanner», который принимает содержимое пакета и проверяет вхождения
содержимого в сигнатуры защищаемых файлов.
За обновление статистики и списка захваченных пакетов отвечает
таймер который располагается на главной форме приложение (класс
«MainForm»).
Все данные захваченных пакетов сохраняются в базу данных SQLite.
70
Рисунок 9 – Схема базы данных
Рисунок 10Диаграмма классов приложения
71
Класс «MainForm»
Класс главной формы приложения. Является основой всего приложения
и служит основной точкой пользовательского интерфейса приложения.
Таблица 12
Основные поля класса
Поле класса
Описание
private PacketCommunicatorpacketCommunicator
Коммуникатор для захвата
пакетов
private PacketCommunicatorstatisticCommunicator
Коммуникатор для захвата
статистики
private PacketManagerpacketManager
Менеджер пакетов
(выполняет их разбор,
анализ и сохранение в БД)
private SnifferSettingFormsnifferSettingForm
Позволяет пользователю
выбирать параметры захвата
пакетов
private
BackgroundWorkerpacketReceiverBackgroundWorker
Фоновый поток для захвата
пакетов
private
BackgroundWorkerstatisticReceiverBackgroundWorker
Фоновый поток для захвата
статистики
private PacketViewerFormpacketViewerForm
Форма для просмотра
подробной информации
пакета
privatelongAcceptedPackets
Количество принятых
пакетов
privatelongAcceptedBytes
Размер принятых пакетов в
байтах
private LivePacketDeviceselectedDevice
Выбранное сетевое
устройство, с которого
будет производиться захват
private boolmustBeRefresh
Флаг, который сообщает
обработчику таймера о том,
что необходимо обновить
таблицу принятых пакетов и
статистику приема
private Timer mainTimer
Таймер, который выполняет
обновление таблицы
принятых пакетов и
статистики приема
Таблица 13
Основные методы класса
Метод класса
Описание
publicMainForm()
Конструктор класса
private void SetFormState(bool Value)
Метод
активирует/деактивирует
пользовательский интерфейс
в зависимости от того,
запущен или же нет процесс
72
захвата пакетов
private void HandlePacket(Packet P)
Процедура обратного вызова
для захвата пакетов
private void
HandleStatistics(PacketSampleStatistics statistics)
Процедура обратного вызова
для захвата статистики
private void
statisticReceiverBackgroundWorker_DoWork(object
sender, DoWorkEventArgs e)
Процедура фонового потока
для захвата статистики
private void
packetReceiverBackgroundWorker_DoWork(object
sender, DoWorkEventArgs e)
Процедура фонового потока
для захвата пакетов
private void mainTimer_Tick(object sender,
EventArgs e)
Процедура таймера
private void startToolStripButton_Click(object
sender, EventArgs e)
Процедура запуска процесса
захвата
private void stopToolStripButton_Click(object
sender, EventArgs e)
Процедура остановки
процесса захвата
private void refreshToolStripButton_Click(object
sender, EventArgs e)
Процедура обновления
таблицы захваченных
пакетов
private void viewToolStripButton_Click(object
sender, EventArgs e)
Просмотр детальных
сведений содержимого
пакета
private void directoryToolStripButton_Click(object
sender, EventArgs e)
Форма редактирования
директорий защищаемых
файлов
Класс «PacketManager»
Класс, выполняющий разбор, анализ и сохранение захваченных пакетов.
Активно взаимодействует с базой данных. Основной метод класса – это
«AddPacket».
Таблица 14
Основные поля класса
Поле класса
Описание
privateintCounter;
Счетчик пакетов. Служит для
генерации идентификатора пакета.
private DataScannerdataScanner;
Компонент, выполняющий поиск
содержимого пакета по бинарным
файлам, хранящимся в указанных
пользователем каталогах.
Таблица 15
Основные методы класса
Метод класса
Описание
publicPacketManager()
Конструктор класса
publicvoidLoadDirectories()
Загрузка директорий, выбранных
73
пользователем
privatestaticintGetLastId()
Генерация идентификатора для
нового пакета
publicvoidDeleteAll()
Метод, выполняющий очистку базы
данных (удаляет все накопленные
пакеты)
public void SavePacketToFile(int Id, Packet
P)
Метод записи пакета в файл
public void SaveDatagramToFile(int Id,
Datagram D, string Postfix)
Метод сохранения дейтаграммы в
файл
public intAddPacket(Packet P)
Метод разбора, анализа и
сохранения пакета в БД
Класс «DataScanner»
Класс, реализующий поиск содержимого пакета по бинарным файлам,
хранящимся в указанных пользователем каталогах.
Таблица 16
Основные поля класса
Поле класса
Описание
public List<DataScannerDirectory>
Directories
Перечень директорий, в которых
будет производиться поиск
Таблица 17
Основные методы класса
Метод класса
Описание
public List<string> Search(ref byte[]
Expression)
Метод поиска содержимого пакета в
файлах указанных директорий
private
List<string>SearchInDirectory(string
Path, ref byte[] Expression,
boolBrowseDirectories)
Поиск содержимого пакета в
конкретной директории
private boolSearchInFile(string
FileName, ref byte[] Expression)
Поиск содержимого пакета в файле
private boolBinarySearch(ref byte[] self,
ref byte[] candidate)
Метод, реализующий поиск по
бинарному содержимому
private boolIsMatch(ref byte[] array, int
position, ref byte[] candidate)
Метод поиска вхождений бинарного
выражения в последовательность байт
файла
Для запуска программы необходимо установить «WinPcap_4_1_3.exe»
74
Для компилирования в исходников в VisualStudio 2010 необходимо
установить «sqlite-netFx40-setup-bundle-x86-2010-1.0.101.0.exe» (для запуска
программы установка не требуется).
Все необходимые файлы находятся в папке «ПО».
Запускаем приложение «WindowsFormsApplication.exe» (папка
«Проект»)
Рисунок 11– Запуск проекта
Настраиваем папки, в которых будут находиться защищаемые файлы (не
выбирайте папки, в которых находится много файлов или файлы больших
объемов, т.к. это может привести зависанию программы).

Смотрите также:

Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)
Анализ деловой активности организации как инструмент повышения эффективности ее деятельности (на примере Косинского районного потребительского общества)