Рубрика:
Карьера/Образование /
Кафедра
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСАНДР РОМАНЕНКОВ, Московский авиационный институт (национальный исследовательский университет), доцент
Комплекс для анализа сетевого трафика
В данной работе детально рассматриваются основные программно-аппаратные средства защиты информации: межсетевой экран и система обнаружения/предотвращения вторжений, а также предназначение, сферы использования, принципы работы и их классификация
В практической части создается программа «Анализатор сетевого трафика», которая показывает реализацию основных принципов данных средств и использования сетевых протоколов.
Одним из важнейших требований безопасности является подотчетность. Возможность фиксировать деятельность субъектов системы, а затем ассоциировать их с индивидуальными идентификаторами пользователей позволяет выявлять нарушения безопасности и определять ответственных за эти нарушения.
Для обеспечения свойства подотчетности в компьютерных сетях используются различные программно-аппаратные средства, способные анализировать состояние и параметры элементов системы. К таким средствам относятся подсистемы аудита и регистрации ОС, межсетевые экраны, системы обнаружения и предотвращения вторжений, антивирусные системы, сетевые мониторы.
В рамках обеспечения подотчетности решаются следующие задачи:
- Формирование правил отбора подлежащих регистрации событий. Эту задачу выполняет администратор сети. Как правило, к числу таких событий относят попытки успешного и неуспешного логического выхода в систему, запуска программ, доступа к защищаемым ресурсам, попытки изменения атрибутов объектов и полномочий пользователей и др.
- Селективная регистрация событий в журнале регистрации событий, называемая также протоколированием или журнализацией. Журнал – это совокупность хронологически упорядоченных записей о событиях, отобранных для регистрации. Нарушители могут сделать попытку «стереть следы» своей преступной деятельности, поэтому данные журнала регистрации должны быть надежно защищены от модификации и разрушения неавторизованными субъектами.
- Анализ накопленной информации – аудит. Аудит – по своей природе является реактивным (а не проактивным) действием – т.е. записи становятся достоянием специалиста по безопасности уже по прошествии некоторого времени после того, как эти события произошли. В тех случаях, когда анализ информации о событиях проводится в реальном времени, мы имеем дело с системами обнаружения и предупреждения вторжений – они позволяют пресечь атаку раньше, чем она нанесет большой ущерб.
Аудит – это набор процедур учета и анализа всех событий, представляющих потенциальную угрозу для безопасности системы. Аудит позволяет «шпионить» за выбранными объектами и выдавать сообщения тревоги, когда, например, какой-либо рядовой пользователь попытается прочитать или модифицировать системный файл. Если кто-то пытается выполнить действия, выбранные системой безопасности для мониторинга, то система аудита пишет сообщение в журнал регистрации, идентифицируя пользователя.
Системный менеджер может готовить отчеты безопасности, которые содержат информацию из журнала регистрации. Для «сверхбезопасных» систем предусматриваются аудио- и видеосигналы тревоги, устанавливаемые на машинах администраторов, отвечающих за безопасность. Аудиту должны подлежать не только события, инициированные пользователями, но и действия администраторов сети, которые тоже должны быть подотчетны наравне со всеми. Поэтому время от времени аудит должен проводиться сторонними организациями.
При реализации аудита в больших сложных системах, состоящих из множества подсистем, иногда необходимо собственными средствами протоколировать событий, иногда необходимо проложить специальные усилия по «синхронизации» журналов регистрации. В частности, поскольку в разных частях большой системы одни и те же объекты могут иметь разные имена и, напротив, разные объекты – одинаковые имена, администраторам, возможно, придется принять специальное соглашение об однозначном именовании объектов.
Записи журнала регистрации событий могут использоваться и с целью расследования какого-либо уже произошедшего инцидента с помощью реконструкции последовательности событий. Однако анализ может оказаться трудной задачей уже при продолжительности периода наблюдений в несколько дней. Даже самые простые журналы событий содержат такое огромное количество сведений, что их практически невозможно анализировать «вручную», без специальных средств.
Для обработки и анализа данных журнала регистрации могут быть использованы следующие средства:
- Средства предварительной обработки данных аудита, предназначенные для сжатия информации журнала регистрации за счет удаления из него малоинформативных записей, которые только создают ненужный «шум».
- Средства выявления аномальных ситуаций, которые используют один из самых эффективных приемов распознавания нарушений. Он заключается в том, что постоянно отслеживаются среднестатистические значения параметров системы, которые сравниваются с их текущими значениями. Например, факт входа в систему в часы, нетипичные для режима работы какого-либо сотрудника, уже является поводом для выдачи предупреждения администратору.
- Средства распознавания атак по их сигнатурам, т.е. по характерным признакам атаки, выражающимся в виде специфического фрагмента кода, нетипичного поведении, аномально частого обращения к какому-либо сетевому порту компьютера. Атака детектируется сравнением последовательности событий в реальной системе с той, которая содержится в сигнатуре.
Рассмотрим информацию о межсетевом экране. Это устройство, предназначенное для ведения мониторинга входящего и исходящего сетевого трафика. Имеет правила безопасности, на основе которых принимает решение пропустить илиблокировать трафик. Межсетевые экраны выполняют роль первой линии защиты сетей. Они ставят барьер между защищенными сетями, которым можно доверять, и ненадежными сетями, такими как интернет.
Межсетевые экраны могут быть использованы для выполнения следующих задач:
- Для защиты служб, сервисов и устройств внутренней сети от нежелательного трафика из внешней сети.
- Для запрещения и контроля доступа устройств внутренней сети к сервисам внешней сети.
- Для замены адресов (NAT), что дает возможность использовать во внутренней сети несколько частных IP-адресов и один внешний IP-адрес.
Принцип работы межсетевого экрана определяется следующим образом. Пусть имеется две группы информационных систем. Межсетевой экран выполняет ограничение доступа клиентов из одной группы к серверам другой группы иконтролирует трафик между двумя группами (см. рис. 1).
Рисунок 1. Экран как средство разграничения доступа
Фильтрация происходит на основе разбора правил фильтрации, содержащих условия и действия, которые нужно произвести: отбросить пакет данных, передать следующему в списке правилу для продолжения разбора или обработать пакеты и вернуть результат отправителю (см. рис. 2).
Рисунок 2. Экран как последовательность фильтров
Каждое правило запрещает или разрешает передачу данных определенного типа между отправителем и получателем.
Скрытный режим работы межсетевого экрана является одним из основных методов защиты информации. Скрытность работы обеспечивается отсутствием IP-адресов и MAC-адресов. Их отсутствие позволяет противостоять атакам, основанным на использовании адресной информации.
Основные особенности скрытного режима межсетевого экрана:
- отсутствие логических и физических адресов на интерфейсах;
- интерфейсы, подключаемые к защищаемым сегментам сети, работают в режиме приема и обработки всего трафика, передаваемого в данных сегментах;
- в пакете, прошедшем обработку и передаваемом на любой из выходных интерфейсов, не изменяются заголовки протоколов и прикладные данные.
Применение скрытного режима функционирования позволяет использовать средства защиты в существующих сетях без изменения политики маршрутизации.
Существует несколько видов классификации межсетевых экранов.
Одним из признаков межсетевого экрана служит способ его реализации:
- программный – межсетевой экран реализован как программная система, работающая под управлением универсальной ОС;
- аппаратный – межсетевой экран реализован как набор дополнительных функций фильтрации маршрутизатора;
- программно-аппаратный – межсетевой экран включает как программную систему, так и специализированный сервер, операционная система которого и аппаратура имеют конфигурацию и настройки, оптимизированные для работы межсетевого экрана. Чаще всего в качестве такой специализированной платформы используется универсальная ОС с набором специфических настроек, обеспечивающих максимальный уровень безопасности, а также сервер, сертифицированный для работы с программным обеспечением межсетевого экрана
По типу защищаемого объекта различают:
- сегментные,
- встраиваемые,
- персональные.
Межсетевые экраны также различают по масштабу защищаемой сети:
- персональный межсетевой экран – защищающий один компьютер пользователя или же его домашнюю сеть;
- межсетевой экран масштаба группы или отдела;
- корпоративный межсетевой экран – защищает периметр сети кампуса.
Классификация межсетевых экранов по функциональным признакам делит их на типы в зависимости:
- от способа фильтрации – здесь различаются межсетевые экраны без запоминания состояния и межсетевые экраны с запоминанием состояния;
- от того, на каком уровне модели OSI они анализируют и фильтруют трафик, по этому признаку различают межсетевые экраны сетевого, сеансового и прикладного уровней.
Режим работы межсетевого экрана обычно связан с уровнем модели OSI, на котором он работает. Так, межсетевые экраны, работающие на сеансовом и прикладном уровнях, чаще относятся к разряду межсетевых экранов с запоминанием состояния, а более простые межсетевые экраны сетевого уровня – без запоминания.
- Межсетевые экраны без запоминания состояния выполняют фильтрацию на основе статических правил, при этом не отслеживаются состояния соединений.
- Межсетевые экраны с запоминанием состояния принимают решения динамически с учетом текущего состояния сеанса и его предыстории.
Наиболее употребительной характеристикой межсетевого экрана является уровень протоколов, на котором он работает.
К межсетевым экранам канального уровня могут быть условно отнесены управляемые коммутаторы, обладающие расширенным набором функций, в том числе возможностью фильтрации кадров канального уровня на основе задаваемых администратором списков доступа.
Межсетевые экраны сетевого уровня решают задачу фильтрации пакетов по IP- адресам, а также по значению поля «протоколов верхнего уровня» – в пакет сетевого уровня могут быть вложены сообщения протоколов TCP, UDP, ICMP и др.
Межсетевые экраны сеансового уровня отслеживают состояние соединений за счет запоминания состояний сеансов протоколов. Прежде всего имеется в виду состояние сеанса протокола TCP, его начальной трехшаговой процедуры установления соединения. Отслеживания состояний соединений заключается в том, что сетевой экран проверяет, насколько соответствует последовательность обмена сообщениями контролируемому протоколу.
Сетевые экраны прикладного уровня способны интерпретировать, анализировать и контролировать содержимое сообщений, которыми обмениваются приложения. К этому уровню относят прокси-серверы. Они также работают на основе фильтрации с запоминанием состояния, но анализируют состояния не только протоколов нижних уровней вплоть до транспортного, но и прикладного уровня, таких как SSH, HTTP, FTP, SQL.
Особым типом межсетевого экрана этого уровня является прокси-сервер, который перехватывает запросы клиентов к внешним серверам с тем, чтобы потом отправить их от своего имени. Этот тип сетевых экранов обеспечивает самый высокий уровень защиты, хотя и имеет свои недостатки, например требует больших вычислительных затрат. Кроме того, прокси-серверы могут скрывать адрес «доверившегося» ему клиента, что снижает эффективность других средств защиты.
Принцип работы межсетевого экрана основан на контроле приходящего трафика. Существуют следующие способы контроля трафика между разными частями сети:
- Фильтрация пакетов – состоит из правил межсетевого экрана. Если пакет удовлетворяет правилам, то он проходит через фильтр, если нет – отбрасывается.
- Proxy-сервер – между частями сети устанавливается proxy-сервер, через который должен проходить весь входящий и исходящий трафик.
- Stateful inspection – инспектирование входящего трафика. Под инспекцией понимаются анализ отдельной части и сопоставление с образцом из базы данных. Этот способ обеспечивает наибольшую производительность работы межсетевого экрана и наименьшие задержки.
Межсетевой экран позволяет настраивать фильтры, отвечающие за пропуск трафика по следующим критериям:
- IP-адрес.
- Доменное имя.
- Порт.
- Протокол.
Разберем систему обнаружения вторжения. Обнаружение вторжений – это задача сотрудников, ответственных за информационную безопасность предприятия, для обеспечения защиты или предотвращения атак. Это активный процесс, прикотором происходит детектирование злоумышленника при попытке получить незаконный доступ в систему. В таком случае система оповещает администратора сети о незаконной попытке проникновения. Система обнаружения вторжений IDS предназначена для разграничения авторизованного входа и несанкционированного проникновения, что реализуется гораздо сложнее.
В IDS для обнаружения вторжений применяются несколько правил:
- Правила, основанные на подписи атаки, используют характерную последовательность символов в данных пакета. Чаще всего подписи атак относятся к прикладным протоколам, для обнаружения вторжения на транспортном уровне они менее пригодны. Для эффективности работы IDS должен иметь обширную постоянно пополняемую базу данных подписей атак.
- Правила, основанные на анализе протоколов, контролируют логику работы протокола и фиксируют отклонения от него. Так, каждый протокол обладает специфической логикой, а IDS обычно имеет библиотеку программных модулей, каждый из которых может выполнять анализ поведения определенного протокола. Реализация правил анализа протоколов требует большого быстродействия IDS, в противном случае процедура обнаружения вторжений может значительно замедлиться и IDS перестанет быть системой реального времени.
- Правила, основанные на статистических аномалиях трафика, проверяют такие характеристики трафика, как наиболее используемые сессии и наиболее используемые данные. В принципе любая статистика активности пользователей корпоративной сети может использоваться для этой цели.
Функциональная архитектура IDS включает в себя:
- источники данных для сетевой IDS – маршрутизаторы, коммутаторы и хосты локальной сети, то есть все элементы сети, которые передают, генерируют и принимают трафик;
- датчик – копирует пакеты, циркулирующие в сети, и передает их анализатору для выявления подозрительной активности. Датчик может представлять собой отдельный компьютер, подключенный к зеркалированному порту коммутатора, или же имеет доступ к пакетам, буферизуемым в его интерфейсах. Датчик может осуществлять первичную фильтрацию пакетов, отбирая только те пакеты, которые удовлетворяют некоторым очевидным критериям, например направленные к публичным веб-сервисам, которые атакуются наиболее часто;
- анализатор – является мозгом IDS, он получает данные от датчиков и проверяет их на наличие угроз и подозрительной активности в сети. Анализатор работает на основе правил, составленных администратором системы безопасности предприятия в соответствии с политикой безопасности. При выполнении условия одного из правил анализатор вырабатывает сообщение тревоги и передает его управляющему центру IDS – программной компоненте, которая хранит конфигурацию IDS и поддерживает удобный интерфейс с оператором IDS. Менеджер IDS оповещает оператора IDS о тревоге в виде некоторого уведомления, привлекающего внимание, например текстовой строки на экране смерцающим символом, звукового сигнала, продублированного электронным письмом, и т.п.;
- оператор IDS – на основе данных уведомления принимает решение о реакции сети на подозрительную активность. Это может быть отключение сетевого интерфейса, через который поступает подозрительный трафик, изменение правил межсетевого экрана для блокировки определенных пакетов или же игнорирование уведомления, если оператор считает, что вероятность вторжения очень мала. В любом случае все данные о потенциальном вторжении протоколируются в журнале менеджера и могут быть использованы впоследствии для повторного анализа ситуации.
Описанная выше архитектура является функциональной. В реальной IDS эти функции не обязательно реализуются в отдельных блоках или модулях системы. Перейдем к рассмотрению программы.
Программа «Анализатор сетевого трафика» представляет собой сетевой сниффер, предназначенный для перехвата пакетов по сети (см. рис. 3). Программа может перехватывать пакеты определенных протоколов, таких как IP, TCP, UDP, ICMP, IGMP, GGP, IPv6, ICMPv6.
Рисунок 3. Главное окно программы
Далее рассмотрим ключевые фрагменты кода.
Инициализируем сокеты:
WSADATA wsadata;
WSAStartup(MAKEWORD(2, 2), &wsadata);
Создаем сокет:
SOCKET s = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
Получаем имя локального хоста и информацию о нем:
CHAR szHostName[16];
gethostname(szHostName, sizeof szHostName);
HOSTENT *phe = gethostbyname(szHostName);
SOCKADDR_IN sa;
ZeroMemory(&sa, sizeof sa);
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = ((struct in_addr*)phe->h_addr_list[0])->s_addr;
Привязываем локальный адрес к сокету:
bind(s, (SOCKADDR*)&sa, sizeof SOCKADDR);
Включение режима promiscuous:
DWORD flag = TRUE;
ioctlsocket(s, SIO_RCVALL, &flag);
Заметим, что режим promiscuous включается только при активной системной плате или при выходе в интернет. В общем, он возможен, только когда есть какая-либо Сеть, будь то Internet или LAN. Если вызывать функцию ioctlsocket спараметром SIO_RCVALL на машине без сети, то получится ошибка.
Режим promiscuous включен. Чтобы получить входящие IP-пакеты, нужно постоянно вызывать функцию recv или WSARecv. Необходимо использовать асинхронные сокеты. Впишем следующий вызов функции WSAAsyncSelect в обработчик кнопки Start:
case IDC_BUTTON_START:
CHAR szFileName[_MAX_FNAME];
GetDlgItemText(hwndDlg, IDC_EDIT_LOG_FILENAME, szFileName, _MAX_FNAME);
hLogFile = CreateFile(szFileName, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, 0, 0);
if (hLogFile == INVALID_HANDLE_VALUE) {
//…
} else {
//…
SetFilePointer(hLogFile, 0, NULL, FILE_END);
//…
//Связываем событие FD_READ с окном
WSAAsyncSelect(s, hwndDlg, WM_RECV, FD_READ);
//…
}
break;
Здесь указываем функции, что окну с хендлом hwndDlg нужно отправить сообщение WM_RECV при наступлении события FD_READ для сокета s. Событие FD_READ приходит, когда сокет готов к чтению данных, т.е. когда приходят данные.
Сообщение WM_RECV объявим следующим образом:
#define WM_RECV (WM_USER + 1)
Мы должны предоставить функции recv буффер достаточного размера. В программе он будет равен 64 Кб. Теперь напишем обработчик сообщения WM_RECV:
case WM_RECV:
if (WSAGETSELECTEVENT(lParam) == FD_READ) {
CHAR btBuffer[65536];
//Получаем входящие данные
if (recv(s, btBuffer, sizeof(btBuffer), 0) >= sizeof(IPHeader)) {
IPHeader* hdr = (IPHeader*)btBuffer;
//определяем размер, в сети используется обратный порядок байт
//если не обратный, то придется поменять байты местами.
WORD size = (hdr->iph_length << 8) + (hdr->iph_length >> 8);
if (size >= 60 && size <= 1500) {
//Проверяем протокол
if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_PROTO_ALL) != TRUE) {
if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_PROTO_IP) == TRUE && hdr->iph_protocol == IPPROTO_IP) {
Здесь, помимо приема пакета, в программе реализован фильтр по протоколу.
Заголовок пакета описывается структурой IPHeader.
Теперь посмотрим на получившуюся программу в работе. Для ее тестирования решено использовать подключение к интернету, а также виртуальную локальную сеть. Виртуальную частную сеть удобно использовать, когда нет реальной частной сети, а работу программы необходимо проверить. Смоделируем локальную сеть путем установки на виртуальную машину системы Windows 10. На хост-машине пусть будет Windows 7. После настройки LAN получаем локальную сеть из двух компьютеров.
В примере на рис. 4 показана работа программы в режиме приема пакетов. Происходит фильтрация по протоколам IP, IPv6, TCP и UDP. Также мы записываем в лог-файл IP отправителя, IP получателя, протокол и длину пакета. Указано имя файла для ведения учета: sniff.log, и его размер, в данном случае 68311 байт.
Рисунок 4. Работа программы в статусе приема пакетов
Пример лог-файла:
--Packet begin--
To: 213.180.193.119
From: 192.168.43.189
Protocol: TCP
Packet length: 1460
--Packet end--
--Packet begin--
To: 173.194.122.248
From: 192.168.43.189
Protocol: UDP
Packet length: 875
--Packet end--
|
В примере выше представлена небольшая часть лог-файла, в котором содержится информация о двух пакетах: IP-адреса отправителя и получателя, протокол, размер пакета.
Ниже представлены некоторые реализованные элементы.
//Функция обработки сообщений диалогового окна
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
static HANDLE hLogFile;
static SOCKET s;
static HWND hStartButton;
static HWND hStopButton;
static HWND hIDC_CHECK_PROTO_IPWnd;
static HWND hIDC_CHECK_PROTO_ICMPWnd;
static HWND hIDC_CHECK_PROTO_IGMPWnd;
static HWND hIDC_CHECK_PROTO_GGPWnd;
static HWND hIDC_CHECK_PROTO_TCPWnd;
static HWND hIDC_CHECK_PROTO_PUPWnd;
static HWND hIDC_CHECK_PROTO_UDPWnd;
static HWND hIDC_CHECK_PROTO_IDPWnd;
static HWND hIDC_CHECK_PROTO_IPv6Wnd;
static HWND hIDC_CHECK_PROTO_NDWnd;
static HWND hIDC_CHECK_PROTO_ICLFXBMWnd;
static HWND hIDC_CHECK_PROTO_ICMPv6Wnd;
static HWND hIDC_CHECK_PROTO_ALLWnd;
static HWND hIDC_CHECK_OPTION_LOG_TARGET_IPWnd;
static HWND hIDC_CHECK_OPTION_LOG_SENDER_IPWnd;
static HWND hIDC_CHECK_OPTION_WRITE_PROTO_NAMEWnd;
static HWND hIDC_CHECK_OPTION_WRITE_PACKET_LENWnd;
//Устанавливаем текущую директорию
CHAR szCurDir[MAX_PATH];
GetModuleFileName(NULL, szCurDir, MAX_PATH);
*strrchr(szCurDir, '\\') = 0;
SetCurrentDirectory(szCurDir);
if (IsCurrentUserAdmin() == FALSE) {
MessageBox(0, "У Вас нет прав администратора. Вы не сможете включить promiscuous mode.", "sniff", MB_ICONEXCLAMATION);
}
//Создаем главное окно программы
if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc) != 0) {
MessageBox(0, "Не удается создать главное окно сниффера.", "sniff", MB_ICONERROR);
return 0;
}
return 0;
}
Данная программа может помочь начинающим при изучении практических аспектов компьютерных сетей.
- Бирюков А.А. Информационная безопасность. Защита и нападение. – ДМК Пресс, 2015.
- Олифер В., Олифер Н. Основы компьютерных сетей. – Питер, 2009.
- Олифер В., Олифер Н. Безопасность компьютерных сетей. – Горячая линия – Телеком, 2014.
- Лапонина О.Р. Основы сетевой безопасности. – Интуит, 2014.
- Лапонина О.Р. Межсетевое экранирование. – Интуит, 2007.
Ключевые слова: безопасность, аудит, межсетевой экран, NAT, IDS, IP, TCP, UDP.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|