Способ защиты вычислительных сетей



Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей
Способ защиты вычислительных сетей

Владельцы патента RU 2682432:

Федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации (RU)

Изобретение относится к вычислительной технике. Технический результат заключается в повышении реалистичности функционирования имитируемых IP-адресов вычислительной сети и повышении результативности защиты за счет устранения демаскирующих признаков средств защиты вычислительной сети. Способ защиты вычислительных сетей предназначен для использования в системах обнаружения атак с целью оперативного выявления и противодействия несанкционированным воздействиям в вычислительных сетях, в частности в сети передачи данных типа «Internet», основанных на семействе коммуникационных протоколов TCP/IP. Это обеспечивается путем включения в заголовок ответного TCP-пакета сообщений служебного поля «опции» и избирательным копированием в него содержимого из заголовка входящего TCP-пакета сообщений, чем достигается реалистичная имитация ложных абонентов и сеансов связи и низкая вероятность обнаружения нарушителем факта использования средств защиты и идентификации их характеристик. 2 з.п. ф-лы, 8 ил.

 

Изобретение относится к электросвязи и может быть использовано в системах обнаружения атак с целью оперативного выявления и противодействия несанкционированным воздействиям в вычислительных сетях, в частности, в сети передачи данных типа «Internet», основанных на семействе коммуникационных протоколов TCP/IP {Transmission Control Protocol / Internet Protocol) и описанных в книге Олифер В., Олифер Н. Компьютерные Сети. Принципы, технологии, протоколы: Учебник для вузов. 5-е изд. - СПб.: Питер, 2016. - 992 с: ил.

Известен «Способ защиты вычислительной сети» по патенту РФ №2422892, класс G06F 21/20 (2006.01), заявл. 13.04.2010. Известный способ включает следующую последовательность действий. Устанавливают в каналах связи защищаемой вычислительной сети шлюз-компьютер с межсетевым экраном. Формируют базу параметров легитимных пакетов и блокируют поступающие из открытой сети пакеты на период установления легитимности. Запоминают адрес получателя, анализируют поступающие из открытой сети пакеты, для чего сравнивают их параметры с заранее сформированной базой параметров легитимных пакетов. После завершения анализа формируют ICMP-квитанцию, в которой адрес отправителя заменяют на ранее запомненный адрес получателя. Отправляют ее не легитимному отправителю.

Недостатком данного способа является относительно низкая защищенность от несанкционированных воздействий, признаками наличия которых являются несанкционированные информационные потоки (ИП). Это обусловлено тем, что при определении факта наличия несанкционированного ИП в вычислительных сетях блокируется передача пакета сообщений, что является недостаточным для защиты вычислительных сетей от несанкционированных воздействий. Реализация указанного подхода к защите вынуждает нарушителя далее воздействовать на вычислительные сети и (или) менять стратегию воздействия.

Известен «Способ (варианты) защиты вычислительных сетей» по патенту РФ №2307392, класс G06 F21/00, опубл. 27.09.2007. Известный способ включает следующую последовательность действий. Предварительно задают N≥1 опорных идентификаторов санкционированных ИП, содержащих адреса отправителей и получателей пакетов сообщений, принимают из канала связи пакет сообщений, выделяют из заголовка принятого пакета сообщений идентификатор ИП, сравнивают выделенный идентификатор с предварительно заданными опорными идентификаторами санкционированных ИП и при их совпадении передают пакет сообщений получателю, а при их несовпадении сравнивают адрес отправителя, указанный в идентификаторе принятого пакета сообщений с адресами отправителей, указанными в опорных идентификаторах санкционированных ИП, задают Р≥1 ложных адресов абонентов вычислительной сети и время задержки отправки пакетов сообщений tзад. В случае совпадения адреса отправителя в принятом пакете сообщений с одним из адресов отправителей опорных идентификаторов санкционированных ИП сравнивают адрес получателя в принятом пакете сообщений с адресами получателей опорных идентификаторов санкционированных ИП. При несовпадении адреса получателя в принятом пакете сообщений с адресами получателей опорных идентификаторов санкционированных ИП дополнительно сравнивают адрес получателя в принятом пакете сообщений с предварительно заданными ложными адресами абонентов вычислительной сети. В случае несовпадения адреса получателя в принятом пакете сообщений с предварительно заданными ложными адресами абонентов блокируют передачу пакета сообщений. А при несовпадении адреса отправителя в принятом пакете сообщений с одним из адресов отправителей опорных идентификаторов санкционированных ИП или совпадении адреса получателя в принятом пакете сообщений с адресами получателей опорных идентификаторов санкционированных ИП, или его совпадении с предварительно заданными ложными адресами абонентов вычислительной сети формируют ответный пакет сообщений, а затем, через заданное время задержки отправки пакетов сообщений tзад снижают скорость передачи сформированного пакета сообщений. Передают его отправителю, после чего принимают из канала связи очередной пакет сообщений. Для идентификации протокола взаимодействия выделяют идентификатор типа протокола взаимодействия и сравнивают его с эталонами идентификаторов типа протокола взаимодействия. Для снижения скорости передачи сформированного пакета сообщений фрагментируют пакет сообщений, передают пакет сообщений через заданное время задержки отправки пакетов сообщений tзад.

Недостатками данного способа являются относительно низкая результативность защиты вычислительных сетей и узкая область применения способа защиты. Низкая результативность защиты обусловлена тем, что в прототипе увеличение интенсивности несанкционированных информационных потоков и сохранение заданного времени задержки отправки ответных пакетов сообщений отправителю приведет к перегрузке вычислительной сети. Узкая область применения обусловлена тем, что для реализации способа защиты скорость информационного обмена с отправителем несанкционированных информационных потоков снижают только со стороны вычислительной сети, то есть в одностороннем порядке, и не учитывают возможность отправителя разорвать соединение.

Наиболее близким по своей технической сущности к заявленному, является способ защиты вычислительных сетей, описанный, например, в книге Grimes, R.A. Honeypots for Windows // Apress. 2005. 424 p. на стр. 191-192. Известный способ включает следующую последовательность действий. Предварительно задают Р≥1 неиспользуемых IP-адресов сетевых устройств вычислительной сети из всего количества IP-адресов вычислительной сети. Подключают сетевые устройства к вычислительной сети. Принимают TCP-пакет сообщений к неиспользуемому IP-адресу сетевого устройства вычислительной сети. После этого формируют служебные поля заголовка ответного TCP-пакета сообщений, для чего записывают в служебное поле «размер окна» ответного TCP-пакета сообщений значение Wнач равное 10 байт. Затем направляют отправителю ответные ТСР-пакеты сообщений с Wнач равным 10 байт и принимают очередной ТСР-пакет сообщений. Далее устанавливают в служебное поле «размер окна» заголовка ответного ТСР-пакета сообщений значение Wуд равное 0 байт и формируют ответные ТСР-пакеты сообщений с Wуд равным 0 байт. Направляют отправителю ответные ТСР-пакеты сообщений с Wуд равным 0 байт, а для блокирования попыток разорвать соединение со стороны отправителя ТСР-пакетов сообщений игнорируют все входящие ТСР-пакеты сообщений до истечения тайм-аута соединения.

Известный способ-прототип обеспечивает более высокую защищенность вычислительных сетей от несанкционированных воздействий по сравнению с аналогами за счет введения в заблуждение нарушителя относительно структуры вычислительных сетей путем имитации доступности всего массива IP-адресов вычислительной сети, обеспечивая тем самым максимальную вероятность перенаправления нарушителя на ресурс-ловушку, и за счет удержания в двухстороннем порядке соединения с отправителем пакетов сообщений, обеспечивая тем самым увеличение дискомфорта у нарушителя и выигрыш по времени, необходимый для реализации ответных мер.

Недостатками способа-прототипа является относительно низкая реалистичность функционирования имитируемых IP-адресов вычислительной сети и относительно низкая результативность защиты, обусловленные тем, что в прототипе не управляют параметрами служебного поля «опции» заголовка ответного TCP-пакета сообщений, что демаскирует наличие средств защиты и приводит к возможности идентификации нарушителем их характеристик.

Целью заявленного технического решения является разработка способа защиты вычислительных сетей, обеспечивающего повышение реалистичности функционирования имитируемых IP-адресов вычислительной сети и повышение результативности защиты за счет устранения демаскирующих признаков средств защиты вычислительной сети, что обеспечивают включением в заголовок ответного TCP-пакета сообщений служебного поля «опции» и избирательным копированием в него содержимого из заголовка входящего TCP-пакета сообщений, чем достигают реалистичную имитацию ложных абонентов и сеансов связи и низкую вероятность обнаружения нарушителем факта использования средств защиты и идентификации их характеристик.

Поставленная цель достигается тем, что в известном способе защиты вычислительных сетей предварительно задают Р≥1 неиспользуемых IP-адресов сетевых устройств вычислительной сети из всего количества IP-адресов вычислительной сети. Затем подключают сетевые устройства к вычислительной сети и принимают TCP-пакет сообщений к неиспользуемому IP-адресу сетевого устройства вычислительной сети. После этого формируют служебные поля заголовка ответного TCP-пакета сообщений, для чего записывают в служебное поле «размер окна» заголовка ответного TCP-пакета сообщений значение Wнач равное 10 байт. Направляют отправителю ответные ТСР-пакеты сообщений с Wнач равным 10 байт и принимают очередной ТСР-пакет сообщений. Далее устанавливают в служебное поле «размер окна» заголовка ответного ТСР-пакета сообщений значение W равное 0 байт и формируют ответные ТСР-пакеты сообщений с W равным 0 байт. После этого направляют отправителю ответные ТСР-пакеты сообщений с W равным 0 байт, а для блокирования попыток разорвать соединение со стороны отправителя ТСР-пакетов сообщений игнорируют все входящие ТСР-пакеты сообщений до истечения тайм-аута соединения. В предварительно заданные исходные данные дополнительно задают множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» заголовка ТСР-пакета сообщений с установленным флагом ACK {MACK}={NOP, EOL, SACK, Timestamp}, множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом SYN {MSYN}={NOP, EOL, SACK, Timestamp, MSS, Wsopt, SACK-Permitted), а также множество переменных для хранения запрещенных эталонов значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом ACK {MUN}={MSS, Wsopt, SACK-Permitted}. Затем предварительно задают величину LSL служебных полей заголовка TCP-пакета сообщений и устанавливают ее значение равным 20 байтам. Также предварительно задают счетчик IC величины служебного поля «опции» заголовка TCP-пакета сообщений, текущее значение которого принимают равным нулю. После этого предварительно задают массив памяти MR={kind, length, data} для хранения значений сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений и массив памяти MHlen для хранения считанного из принятого TCP-пакета сообщений значения служебного поля Hlen, определяющего величину заголовка принятого TCP-пакета сообщений. Далее предварительно задают переменную LF для хранения значения величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, первоначальное значение переменной LF принимают равным сумме значений IC и LSL. После приема TCP-пакета сообщений считывают значение служебного поля Hlen из заголовка принятого TCP-пакета сообщений и запоминают его значение в массиве памяти MHlen. Далее сравнивают значение величины Hlen со значением величины LSL служебных полей заголовка TCP-пакета сообщений, и в случае если Hlen=LSL, то переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений. В ином случае, если Hlen>LSL, вычисляют значение LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, где LOPT=Hlen-LSL. После этого считывают значения служебных полей Flags из заголовка принятого TCP-пакета сообщений. Если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита SYN равным единице, то считывают значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений и сравнивают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MSYN}. В случае если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MSYN}, то увеличивают текущее значение счетчика IC на единицу и запоминают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR. После этого сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений и если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений. Далее переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, а в случае, если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают его со значениями переменных NOP и EOL множества {MSYN}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}, и в случае совпадения значения сегмента kind со значениями переменных MSS или Wsopt множества {MSYN} считывают значение сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. После этого увеличивают текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. Затем запоминают значения сегментов kind, length, data полей опций MSS или Wsopt заголовка принятого TCP-пакета сообщений в массив памяти MR и сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В случае, если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений. В ином случае, если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают его со значениями переменных NOP и EOL множества {MSYN}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменной Timestamp множества {MSYN}. В случае совпадения значения сегмента kind со значением переменной Timestamp множества {MSYN} считывают значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и вычисляют значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений. Затем увеличивают текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и запоминают считанное значение сегментов kind, length и вычисленное значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR. Далее сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае, если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений. После этого переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений и в случае, если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений. Затем сравнивают его со значениями переменных NOP и EOL множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменной Timestamp множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных SACK и SACK-Permitted множества {MSYN}. После этого, в случае совпадения значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN} запоминание значений сегментов kind и length служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают. Затем переходят к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В противном случае, то есть при несовпадении значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN} увеличивают текущее значение счетчика IC на величину значений считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений. После этого запоминают значения считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR и сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В случае, если IC-LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений. Если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита ACK равным единице, то считывают значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений и сравнивают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MACK}. В случае, если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MACK} то увеличивают текущее значение счетчика IC на единицу и запоминают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR. Затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В случае, если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений. В ином случае, если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MACK}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменной Timestamp множества {MACK}, и в случае совпадения значения сегмента kind со значением переменной Timestamp множества {MACK} считывают значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и вычисляют значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений. После этого увеличивают текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и запоминают считанное значение сегментов kind, length и вычисленное значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR. Затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений и в случае, если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений. В случае, если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MACK}, и в случае их несовпадения сравнивают значение сегмента kind со значением переменной Timestamp множества {MACK}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменных SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN}. В случае совпадения значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN} запоминание значений сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают. После этого переходят к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В противном случае, то есть при несовпадении значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN} увеличивают текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. Далее запоминают значения сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR, а затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений. В случае, если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений.

Для нормализации величины заголовка TCP-пакета сообщений вычисляют значение LF величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, где LF=IC+LSL. Затем вычисляют остаток от деления значения LF на четыре, и если остаток от деления LF на четыре не равен нулю, то есть LF mod 4≠0, то увеличивают значение счетчика IC на единицу. После этого запоминают значение сегмента kind поля опции NOP в массив памяти MR и вновь вычисляют значение LF и его остаток от деления на четыре. В противном случае, то есть если остаток от деления значения LF на четыре равен нулю, то есть LF mod 4=0, то записывают в служебное поле «опции» заголовка формируемого TCP-пакета сообщений значения сегментов из массива памяти MR.

Для вычисления значения сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений считывают значение хронометра и записывают его в четырехбайтовое поле временных меток Tsval, а затем считывают значение четырехбайтового поля временных меток Tsval последней принятой опции Timestamp и записывают его в четырехбайтовое поле временных меток TSecr.

Благодаря новой совокупности существенных признаков в заявленном способе обеспечивается повышение реалистичности функционирования имитируемых IP-адресов вычислительной сети и повышение результативности защиты за счет устранения демаскирующих признаков средств защиты вычислительной сети, что обеспечивают включением в заголовок ответного TCP-пакета сообщений служебного поля «опции» и избирательным копированием в него содержимого из заголовка входящего TCP-пакета сообщений, чем достигают реалистичную имитацию ложных абонентов и сеансов связи и низкую вероятность обнаружения нарушителем факта использования средств защиты и идентификации их характеристик.

Заявленные объекты изобретения поясняются чертежами, на которых показаны:

фиг. 1 - структура заголовка TCP-пакета сообщений;

фиг. 2 - пример, иллюстрирующий защиту вычислительной сети с применением сетевой «ловушки»;

фиг. 3 - блок-схема последовательности действий, реализующих заявленный способ;

фиг. 4 - наиболее используемые опции заголовка TCP-пакетов сообщений;

фиг. 5 - заголовки TCP-пакетов сообщений;

фиг. 6 - структура опций заголовков TCP-пакетов сообщений;

фиг. 7 - вывод результатов эксперимента по оценке результативности заявленного способа на первом этапе тестирования;

фиг. 8 - вывод результатов эксперимента по оценке результативности заявленного способа на втором этапе тестирования.

Реализация заявленного способа объясняется следующим образом. Известно, что в настоящее время достаточно большое количество компьютерных атак носит разведывательный характер с целью получения информации о структуре и топологии вычислительной сети, являющейся объектом атаки, а также об используемых средствах защиты вычислительной сети. Одними из средств сетевой защиты, функционирующих с применением обманных сетевых стратегий, направленных на создание у нарушителя иллюзий уязвимых целей или способствующих видимости более сложной инфраструктуры, чем существует на самом деле, являются сетевые «приманки» {honeypots), описанные, например, в книге Provos, N., Holz, Т, Virtual Honeypots: From Botnet Tracking to Intrusion Detection // Addison Wesley, 2007. 480 p. Более совершенные способы сетевого обмана включают в себя не только предоставление противнику правдоподобной цели, но и так называемые проактивные меры защиты, такие как, например, удержание в двухстороннем порядке соединения с отправителем пакетов сообщений, что вызывает «истощение» ресурсов отправителя пакетов сообщений для поддержания состояния соединения, замедляет процесс автоматического сканирования атакуемой вычислительной сети и, как результат, накладывает ограничение на используемый нарушителем вычислительный ресурс, что приводит к невозможности осуществлять сетевой информационный обмен. Рассмотренные способы проактивной защиты реализованы в виде инструментальных средств сетевого обмана, так называемых сетевых «ловушек» {network tarpits), которые описаны, например, в книге Andres, S., Kenyon, В. Birkolz, Е. Security Sage's Guide to Hardening the Network Infrastructure // Sungress Publishing, 2004. 608 p., на стр. 414-416.

В свою очередь, нарушителями информационной безопасности также активно разрабатываются и совершенствуются средства снижения результативности сетевых «ловушек», реализующие следующие способы их компрометации: детектирование уникальных идентификаторов (демаскирующих признаков) сетевых «ловушек»; детальный анализ сетевого трафика поступающего с сетевых «ловушек». Таким демаскирующим признаком сетевой «ловушки», реализованной в способе-прототипе, является отсутствие служебного поля опций (величина служебного поля опций равна нулю) в ответном пакете сообщений, что демаскирует наличие и возможности средств защиты. Служебное поле опций фиг. 1, это одно из служебных полей заголовка TCP-пакета сообщений, является необязательным, имеет переменную длину и может вообще отсутствовать. Служебное поле опций используется для решения вспомогательных задач, например для согласования максимального размера сегмента, и описано, например, в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413).

В качестве средств компрометации сетевых «ловушек», использующих обнаружение отсутствия служебного поля опций в ответных пакетах сообщений нарушителем применяются как широкоизвестные утилиты такие, как анализатор трафика Wireshark описанный, например в (Abbhinav, Singh. Instant Wireshark Starter. Pakt Publishing, UK 69 p. ISBN 978-1-84969-564-0), так и специализированные средства компрометации средств проактивной защиты вычислительных сетей, такие как Degreaser, (см., например, https://github.com/lancealt/degreaser).

Таким образом, возникает противоречие между результативностью защиты вычислительных сетей и возможностями нарушителей по определению структуры вычислительных сетей и идентификации характеристик средств защиты, имеющих демаскирующие признаки. На устранение указанного противоречия направлен заявленный способ.

Заявленный способ реализуют следующим образом. В общем случае (фиг. 2) вычислительная сеть представляет собой совокупность корреспондентов 101, 102, 106, 107, являющихся источниками и получателями сетевого трафика, периферийного и коммуникационного оборудования 104, 109, ретранслирующего сетевой трафик корреспондентов, объединенного физическими линиями (каналами) связи 103, 1010, соединяющих п узлов вычислительной сети в единую инфраструктуру, в том числе с использованием сети передачи данных типа «Internet» 105. При этом пространство IP-адресов сетевых устройств занято корреспондентами вычислительной сети не полностью: корреспонденты K1, K2, K3, выделенные на фиг. 2 в совокупность 101, подключены к вычислительной сети. Тогда как корреспонденты K4, K5, … Kn, выделенные на фиг. 2 в совокупность 102 (иконки ПЭВМ на фиг. 2 изображены пунктиром), не подключены к вычислительной сети, то есть IP-адреса корреспондентами K4, K5, … Kn, не заняты (не используются).

Для защиты вычислительной сети и введения в заблуждение нарушителя относительно структуры вычислительной сети, на одном из выделенных компьютеров 107 вычислительной сети устанавливают сетевую «ловушку», осуществляющую перехват запросов к неиспользуемому IP-адресу сетевого устройства совокупности 102 вычислительной сети, посредством анализатора пакетов 108. После перехвата запросов осуществляют отправление пакета сообщений отправителю пакетов сообщений и последующее удержание с ним соединения в двухстороннем порядке.

На фиг. 3а и 3б представлена блок-схема последовательности действий, реализующих заявленный способ защиты вычислительных сетей, в которой приняты следующие обозначения:

{MACK} - множество переменных для хранения эталонных значений сегмента kind поля опций заголовка TCP-пакета сообщений с установленным флагом ACK, где {MACK}={NOP, EOL, SACK, Timestamp};

{MSYN} - множество переменных для хранения эталонных значений сегмента kind поля опций заголовка TCP-пакета сообщений с установленным флагом SYN, где {MSYN}={NOP, EOL, SACK, Timestamp, MSS, Wsopt, SACK-Permitted};

{MUN} - множество переменных для хранения запрещенных эталонов значений сегмента kind поля опций заголовка TCP-пакета сообщений с установленным флагом ACK, где {MUN}={MSS, Wsopt, SACK-Permitted};

LSL - величина служебных полей заголовка TCP-пакета сообщений, значение которой установлено равным 20 байтам;

IC - счетчик величины поля опций заголовка TCP-пакета сообщений, текущее значение которого принимают равным нулю;

MR - массив памяти для хранения значений сегментов поля опций заголовка принятого TCP-пакета сообщений, где MR={kind, length, data};

MHlen - массив памяти для хранения считанного из принятого TCP-пакета сообщений значения служебного поля Hlen, определяющего величину заголовка принятого TCP-пакета сообщений;

LF - переменную для хранения значения величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, где первоначальное значение переменной LF принимают равным сумме значений IC и LSL;

Wнач - начальное значение служебного поля «размер окна» для формирования заголовка ответного TCP-пакета сообщений;

W - устанавливаемое значение служебного поля «размер окна» в заголовке ответного TCP-пакета сообщений для удержания соединения с отправителем пакетов сообщений.

Для снижения вероятности идентификации характеристик средств защиты в заявленном способе обеспечивают устранение демаскирующих признаков сетевой «ловушки», заключающихся в формировании ответного TCP-пакета сообщений с отсутствующим у него в заголовке служебным полем «опции» (величина служебного поля «опции» равна нулю). Для этого записывают в заголовок ответных ТСР-пакетов сообщений служебное поле «опции», путем избирательного копирования содержимого служебного поля «опции» из входящего TCP-пакета сообщений и его записи в ответный ТСР-пакет сообщений, обеспечивая тем самым реалистичность функционирования защищаемой вычислительной сети.

Применение поддержки служебного поля «опции» в ответном ТСР-пакете сообщений достигают тем, что в предварительно заданные исходные данные дополнительно задают (см. блок 1 на фиг. 3а) множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» TCP-пакета сообщений с установленным флагом ACK {MACK}={NOP, EOL, SACK, Timestamp}.

Также предварительно задают (см. блок 1 на фиг. 3а) множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом SYN {MSYN}={NOP, EOL, SACK, Timestamp, MSS, Wsopt, SACK-Permitted}. Заданные переменные соответствуют наиболее используемым опциям TCP-пакета сообщений с установленным флагом SYN (фиг. 4), так, например, типовые заголовки для ОС Linux и TCP ACK пакетов сообщений в ОС Solaris представлены на (фиг. 5а и 5б).

Затем предварительно задают (см. блок 1 на фиг. 3а) множество переменных для хранения запрещенных эталонов значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом ACK {MUN}={MSS, Wsopt, SACK-Permitted}. Переменные из множества MUN являются нехарактерными для сегментов ACK и могут появляться только в сегментах SYN, что описано в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413). Введение множества {MUN} обусловлено тем, что злоумышленник, используя специализированные утилиты для сборки пакетов, например, такие как scapy, (см., например, http://www.secdev.org/projects/scapy/) может сформировать такой TCP ACK пакет сообщений как, например, представлен на (фиг. 5в), содержащий TCP-опции, характерные только для TCP SYN пакетов (MSS, Wsopt, SACK-Permitted). Поэтому простое копирование всего служебного поля «опции» из заголовка принятого пакета сообщений в формируемый ответный пакет сообщений, содержащий нехарактерные для TCP ACK пакета сообщений TCP-опции, приведет к однозначной компрометации средств проактивной защиты вычислительных сетей.

Далее предварительно задают (см. блок 1 на фиг. 3а) величину LSL служебных полей заголовка TCP-пакета сообщений и устанавливают ее значение равным 20 байтам. Значение величины LSL соответствует величине стандартного заголовка TCP-пакета сообщений, не включающего служебного поля «опции», которое, в свою очередь может занимать не более 40 байт, что описано в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413).

Также задают (см. блок 1 на фиг. 3а) счетчик 1с величины служебного поля «опции» заголовка TCP-пакета сообщений, текущее значение которого принимают равным нулю и массив памяти MR={kind, length, data} для хранения значений сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений.

Далее предварительно задают (см. блок 1 на фиг. 3а) массив памяти MHlen для хранения считанного из принятого TCP-пакета сообщений значения служебного поля Hlen фиг. 1, определяющего величину заголовка принятого TCP-пакета сообщений, описанного, например, в книге Куроуз Д., Росс К. Компьютерные сети: Нисходящий подход / Джеймс Куроуз, Кит Росс. - 6-е изд. - Москва: Издательство «Э», 2016. - 912 с. на стр. 272-273 и переменную LF (см. блок 1 на фиг. 3а) для хранения значения величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений. Первоначальное значение переменной LF принимают равным сумме значений IC и LSL.

После приема пакета сообщений (см. блок 2 на фиг. 3а) считывают значение служебного поля Hlen из заголовка принятого TCP-пакета сообщений (см. блок 3 на фиг. 3а) и запоминают (см. блок 4 на фиг. 3а) его значение в массиве памяти MHlen. Затем сравнивают (см. блок 5 на фиг. 3а) значение величины Hlen со значением величины LSL служебных полей заголовка TCP-пакета сообщений.

В случае если Hlen=LSL, переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений (см. блок 40 на фиг. 3б). Это говорит о том, что входящий TCP-пакет сообщений пакет сообщений не содержит служебного поля «опции» (величина служебного поля «опции» равна нулю байт), следовательно принятие мер по сокрытию демаскирующего признака с отсутствием в заголовке ответного TCP-пакета сообщений служебного поля «опции» не требуется.

В ином случае, если Hlen>LSL, что говорит о наличии в заголовке ответного TCP-пакета сообщений служебного поля «опции» и необходимости избирательного копирования содержимого служебного поля «опции» в заголовок ответного TCP-пакета сообщений, вычисляют (см. блок 6 на фиг. 3а) значение LOPT величины поля опций заголовка принятого TCP-пакета сообщений, где LOPT=Hlen-LSL.

После этого считывают (см. блок 7 на фиг. 3а) значения служебных полей Flags из заголовка принятого TCP-пакета сообщений и если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита SYN равным единице (см. блок 8 на фиг. 3а), то считывают (см. блок 9 на фиг. 3а) значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений. Считанное значение бита SYN, равное единице, позволяет определить множество наиболее используемых опций (фиг. 4) в служебного поля «опции» заголовка принятого TCP-пакета сообщений, т.к. при установленном значении бита ACK равного единице набор TCP-опций в служебном поле «опции» заголовка будет другим (для пакетов ACK является нехарактерным присутствие опций MSS, Wsopt, SACK-Permitted в служебном поле «опции» заголовка принятого TCP-пакета сообщений, что однозначно скомпрометирует средства проактивной защиты вычислительной сети). Затем сравнивают (см. блок 10 на фиг. 3а) значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MSYN}.

В случае если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MSYN}, то увеличивают (см. блок 11 на фиг. 3а) текущее значение счетчика IC на единицу. TCP-опции типа 0 и 1 - End of Option List (EOL) и No-Operation (NOP) соответственно, занимают один октет и являются однобайтными. Остальные TCP-опции, например, SACK, Timestamp, Maximum Segment Size (MSS) и др. являются многобайтными. Многобайтные опции имеют 1-октетное поле типа (kind), за которым следует октет размера (length) и поле данных (data), размерности и структура наиболее часто используемых опций TCP-пакета сообщений представлены на фиг. 6 и описаны в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413).

Затем запоминают (см. блок 12 на фиг. 3а) значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR. После этого сравнивают (см. блок 13 на фиг. 3а) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае, если IC=LOPT, то нормализуют (см. блоки 14, 15, 16, 17 на фиг. 3а) величину заголовка TCP-пакета сообщений. Необходимость нормализации обусловлена требованиями по выравниванию величины заголовка TCP-пакета сообщений по четырехоктетной границе для исключения обработки пакетов сообщений с заголовком нестандартной длины. Для выравнивания следующей опции по границе слова используют опцию No-Operation (NOP), которая может включаться между другими опциями заголовка, или в конце него, как показано на фиг. 5г и описано, например, в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413).

Далее переходят к формированию (см. блок 40 на фиг. 3б) служебных полей заголовка ответного TCP-пакета сообщений. В случае, если IC≠LOPT, то вновь считывают (см. блок 9 на фиг. 3а) значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают (см. блок 10 на фиг. 4) его со значениями переменных NOP и EOL множества {MSYN}.

В случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS (см. блок 18 на фиг. 3а) и Wsopt (см. блок 19 на фиг. 3а) множества {MSYN} и в случае совпадения значения сегмента kind со значениями переменных MSS или Wsopt множества {MSYN} считывают (см. блок 20 на фиг. 3а) значение сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. Затем увеличивают (см. блок 11 на фиг. 3а) текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. После этого запоминают (см. блок 12 на фиг. 3а) значения сегментов kind, length, data полей опций MSS или Wsopt заголовка принятого TCP-пакета сообщений в массив памяти MR

Затем сравнивают (см. блок 13 на фиг. 3а) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений и в случае, если IC=LOPT, то нормализуют (см. блоки 14, 15, 16, 17 на фиг. 3а) величину заголовка TCP-пакета сообщений, после чего переходят к формированию (см. блок 40 на фиг. 3б) служебных полей заголовка ответного TCP-пакета сообщений.

В ином случае, если IC≠LOPT вновь считывают (см. блок 9 на фиг. 3а) значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают (см. блок 10 на фиг. 3а) его со значениями переменных NOP и EOL множества {MSYN}. В случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS (см. блок 18 на фиг. 3а) и Wsopt (см. блок 19 на фиг. 3а) множества {MSYN}, и в случае их несовпадения сравнивают (см. блок 21 на фиг. 3а) значение сегмента kind со значениями переменной Timestamp множества {MSYN}.

В случае совпадения значения сегмента kind со значением переменной Timestamp множества {MSYN} считывают (см. блок 22 на фиг. 3а) значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и вычисляют (см. блок 23 на фиг. 3а) значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений. Для исключения компрометации средства защиты в заявленном способе защиты вычислительных сетей опция Timestamp не копируется из служебного поля «опции» заголовка принимаемого TCP-пакета сообщений. Опция Timestamp состоит из двух четырехбайтовых полей временных меток Tsval и TSecr (фиг. 6). Поле Timestamp Value (TSval) содержит текущее значение временной метки передавшего опцию модуля TCP. Поле Timestamp Echo Reply (TSecr) содержит временную метку, переданную удаленным модулем TCP, что описано в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc4413). Для вычисления значения сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений считывают значение хронометра временных меток (виртуальных часов «timestamp clock») и записывают его в четырехбайтовое поле временных меток Tsval, а затем считывают значение четырехбайтового поля временных меток Tsval последней принятой опции Timestamp и записывают его в четырехбайтовое поле временных меток TSecr, что описано, например, в технических спецификациях (RFC, Request for Comments) сети Интернет (см., например, https://tools.ietf.org/html/rfc1323).

Далее увеличивают (см. блок 11 на фиг. 3а) текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и запоминают (см. блок 12 на фиг. 3а) считанное значение сегментов kind, length и вычисленное значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR.

После этого сравнивают (см. блок 13 на фиг. 3а) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае, если IC=LOPT то нормализуют (см. блоки 14, 15, 16, 17 на фиг. 3а) величину заголовка TCP-пакета сообщений и переходят (см. блок 40 на фиг. 3б) к формированию служебных полей заголовка ответного TCP-пакета сообщений.

В ином случае, если IC≠LOPT, вновь считывают (см. блок 9 на фиг. 3а) значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают (см. блок 10 на фиг. 3а) его со значениями переменных NOP и EOL множества {MSYN}. В случае их несовпадения, сравнивают значение сегмента kind со значениями переменных MSS (см. блок 18 на фиг. 3а) и Wsopt (см. блок 19 на фиг. 3а) множества {MSYN} и в случае их несовпадения сравнивают (см. блок 21 на фиг. 3а) значение сегмента kind со значениями переменной Timestamp множества {MSYN}. После этого, в случае их несовпадения, сравнивают (см. блок 24 на фиг. 3а) значение сегмента kind со значениями переменных SACK и SACK-Permitted множества {MSYN}.

В случае совпадения значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN} запоминание значений сегментов kind и length служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают (см. блок 25 на фиг. 3а). После этого переходят (см. блок 13 на фиг. 3а) к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В противном случае, то есть при несовпадении значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN}, увеличивают (см. блок 11 на фиг. 3а) текущее значение счетчика IC на величину значений считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений и запоминают (см. блок 12 на фиг. 3а) значения считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR. Далее сравнивают (см. блок 13 на фиг. 3а) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В случае, если IC=LOPT, то нормализуют (см. блоки 14, 15, 16, 17 на фиг. 3а) величину заголовка TCP-пакета сообщений. После этого переходят (см. блок 40 на фиг. 3б) к формированию служебных полей заголовка ответного TCP-пакета сообщений.

Если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита ACK равным единице, то считывают (см. блок 26 на фиг. 3б) значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений. После чего сравнивают (см. блок 27 на фиг. 3б) значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MACK} и если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MACK} то увеличивают (см. блок 28 на фиг. 3б) текущее значение счетчика IC на единицу. Затем запоминают (см. блок 29 на фиг. 3б) значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR и сравнивают (см. блок 30 на фиг. 3б) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В случае, если IC=LOPT, то нормализуют (см. блоки 31, 32, 33, 34 на фиг. 3б) величину заголовка TCP-пакета сообщений и переходят (см. блок 40 на фиг. 3б) к формированию служебных полей заголовка ответного TCP-пакета сообщений.

В другом случае, то есть если IC≠LOPT, то вновь считывают (см. блок 26 на фиг. 3б) значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают (см. блок 27 на фиг. 3б) его со значениями переменных NOP и EOL множества {MACK}. Иначе, в случае их несовпадения, сравнивают (см. блок 35 на фиг. 3б) значение сегмента kind со значениями переменной Timestamp множества {MACK}. Далее, в случае совпадения значения сегмента kind со значением переменной Timestamp множества {MACK}, считывают (см. блок 36 на фиг. 3б) значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и вычисляют (см. блок 37 на фиг. 3б) значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений. После этого увеличивают (см. блок 28 на фиг. 3б) текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений и запоминают (см. блок 29 на фиг. 3б) считанное значение сегментов kind, length и вычисленное значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR. Далее сравнивают (см. блок 30 на фиг. 3б) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В случае, если IC=LOPT нормализуют (см. блоки 31, 32, 33, 34 на фиг. 3б) величину заголовка TCP-пакета сообщений, после чего переходят (см. блок 40 на фиг. 3б) к формированию служебных полей заголовка ответного TCP-пакета сообщений.

Иначе, в случае, если IC≠LOPT, то вновь считывают (см. блок 26 на фиг. 3б) значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают (см. блок 27 на фиг. 3б) его со значениями переменных NOP и EOL множества {MACK}. Далее, в случае их несовпадения сравнивают (см. блок 35 на фиг. 3б) значение сегмента kind со значением переменной Timestamp множества {MACK}. В случае их несовпадения сравнивают (см. блок 38 на фиг. 3б) значение сегмента kind со значениями переменных SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN}. После этого, в случае совпадения значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN}, запоминание значений сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают (см. блок 39 на фиг. 3б). Затем переходят (см. блок 30 на фиг. 3б) к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В противном случае, то есть при несовпадении значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN} увеличивают (см. блок 28 на фиг. 3б) текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений. После этого запоминают (см. блок 29 на фиг. 3б) значения сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR и сравнивают (см. блок 30 на фиг. 3б) текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений.

В случае, если IC=LOPT, то нормализуют (см. блоки 31, 32, 33, 34 на фиг. 3б) величину заголовка TCP-пакета сообщений и переходят (см. блок 40 на фиг. 3б) к формированию служебных полей заголовка ответного TCP-пакета сообщений.

Далее формируют ответный пакет сообщений, для чего записывают (см. блок 40 на фиг. 3б) в служебное поле «опции» значения сегментов из массива памяти MR, а также записывают (см. блок 41 на фиг. 3б) в поле «размер окна» ТСР-заголовка ответного пакета сообщений значения Wнач равное 10 байт. После этого направляют (см. блок 42 на фиг. 3б) отправителю ответные ТСР-пакеты сообщений с Wнач равным 10 байт и сформированным служебным полем «опции» с записанными значениями сегментов из массива памяти MR.

Затем принимают (см. блок 43 на фиг. 3б) очередной пакет сообщений и устанавливают (см. блок 44 на фиг. 3б) в поле «размер окна» заголовка ответного пакета W=0, после чего формируют (см. блок 45 на фиг. 3б) ответные пакеты с W=0 и направляют (см. блок 46 на фиг. 3б) отправителю ответные пакеты с W=0. Для блокирования попыток разорвать соединение со стороны отправителя пакетов сообщений игнорируют (см. блок 47 на фиг. 3б) все входящие пакеты сообщений, до тех пор, пока не истечет тайм-аут соединения.

Для нормализации величины заголовка TCP-пакета сообщений вычисляют (см. блок 31 на фиг. 3б) значение LF величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, где LF=IC+LSL. Затем вычисляют остаток от деления значения LF на четыре, и в случае если остаток от деления LF на четыре не равен нулю, то есть LF mod 4≠0, то увеличивают (см. блок 33 на фиг. 3б) значение счетчика IC на единицу и запоминают (см. блок 34 на фиг. 3б) значение сегмента kind поля опции NOP в массиве памяти MR. После этого вновь вычисляют (см. блок 31 на фиг. 3б) значение LF и его остаток от деления на четыре. В случае если остаток от деления значения LF на четыре равен нулю, то есть LF mod 4=0, записывают (см. блок 40 на фиг. 3б) в служебное поле «опции» заголовка формируемого TCP-пакета сообщений значения сегментов из массива памяти MR.

Для вычисления значения сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений считывают значение хронометра временных меток и записывают его в четырехбайтовое поле временных меток Tsval, а затем считывают значение четырехбайтового поля временных меток Tsval последней принятой опции Timestamp и записывают его в четырехбайтовое поле временных меток TSecr.

Результативность сформулированного технического результата была проверена путем программной реализации заявленного способа и проведения натурного эксперимента. Суть эксперимента - сравнение результативности обнаружения сетевой «ловушки», реализованной в способе-прототипе, с результативностью обнаружения сетевой «ловушки» при программной реализации заявленного способа. Для идентификации сетевой «ловушки», то есть для идентификации характеристик средств защиты в процессе эксперимента применен перехват из сетевого трафика ответов на запросы с использованием специализированного программного обеспечения Degreaser.

В процессе работы для определения, является ли узел сетевой «ловушкой» (Tarpit) или нет, Degreaser проверяет наличие служебного поля «опции» в ответных TCP-пакетах сообщений. На фиг. 7 представлен вывод результатов работы Degreaser, сканирующего подсеть, в которой запущены сетевые «ловушки» (Tarpit), реализованные в способе-прототипе (первый этап тестирования).

Degreaser определяет, что узлы, отвечающие TCP-пакетами сообщений, в которых отсутствует служебное поле «опции», являются сетевыми «ловушками» (Tarpit). В столбце TCP Options отображается, какие ТСР-опции присутствовали в ответных TCP-пакетах сообщений на ТСР-запросы, направляемые Degreaser, каждому из исследуемых узлов. Далее, на фиг. 8, отображен вывод работы Degreaser (второй этап тестирования), когда сканируют подсеть, в которой запущены сетевые «ловушки» (Tarpit) при программной реализации заявленного способа защиты.

Как показано на фиг. 8, в столбце TCP Options отображены ТСР-опции Maximum Segment Size (М), Window Scale Option (W), SACK (S) и Timestamp (T). Специализированное программное обеспечение Degreaser теперь не в состоянии определить, что ответы от данных узлов отправляют сетевые «ловушки» (Tarpit). Представленные результаты тестирования могут быть использованы и при сравнительной оценке информационных систем на предмет их потенциальной устойчивости к деструктивным воздействиям.

Таким образом, в заявленном способе достигается достижение сформулированной цели, заключающейся в повышении реалистичности функционирования имитируемых IP-адресов вычислительной сети и повышении результативности защиты за счет устранения демаскирующих признаков средств защиты вычислительной сети, что обеспечивают включением в заголовок ответного TCP-пакета сообщений служебного поля «опции» и избирательным копированием в него содержимого из заголовка входящего TCP-пакета сообщений, чем достигают реалистичную имитацию ложных абонентов и сеансов связи и низкую вероятность обнаружения нарушителем факта использования средств защиты и идентификации их характеристик.

1. Способ защиты вычислительных сетей, заключающийся в том, что предварительно задают Р≥1 неиспользуемых IP-адресов сетевых устройств вычислительной сети из всего количества IP-адресов вычислительной сети, подключают сетевые устройства к вычислительной сети, принимают TCP-пакет сообщений к неиспользуемому IP-адресу сетевого устройства вычислительной сети, формируют служебные поля заголовка ответного TCP-пакета сообщений, для чего записывают в служебное поле «размер окна» заголовка ответного TCP-пакета сообщений значение Wнач, равное 10 байт, направляют отправителю ответные TCP-пакеты сообщений с Wнач, равным 10 байт, принимают очередной TCP-пакет сообщений, устанавливают в служебное поле «размер окна» заголовка ответного TCP-пакета сообщений значение Wуд, равное 0 байт, формируют ответные TCP-пакеты сообщений с Wуд, равным 0 байт, направляют отправителю ответные TCP-пакеты сообщений с Wуд, равным 0 байт, а для блокирования попыток разорвать соединение со стороны отправителя TCP-пакетов сообщений игнорируют все входящие TCP-пакеты сообщений до истечения тайм-аута соединения, отличающийся тем, что предварительно задают множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом ACK {MACK}={NOP, EOL, SACK, Timestamp}, множество переменных для хранения эталонных значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом SYN {MSYN}={NOP, EOL, SACK, Timestamp, MSS, Wsopt, SACK-Permitted}, множество переменных для хранения запрещенных эталонов значений сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений с установленным флагом ACK {MUN}={MSS, Wsopt, SACK-Permitted}, величину LSL служебных полей заголовка TCP-пакета сообщений и устанавливают ее значение равным 20 байтам, счетчик IC величины служебного поля «опции» заголовка TCP-пакета сообщений, текущее значение которого принимают равным нулю, массив памяти MR={kind, length, data} для хранения значений сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений, массив памяти MHlen для хранения считанного из принятого TCP-пакета сообщений значения служебного поля Hlen, определяющего величину заголовка принятого TCP-пакета сообщений, переменную LF для хранения значения величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, первоначальное значение переменной LF принимают равным сумме значений IC и LSL и после приема TCP-пакета сообщений считывают значение служебного поля Hlen из заголовка принятого TCP-пакета сообщений и запоминают его значение в массиве памяти MHlen, после чего сравнивают значение величины Hlen со значением величины LSL служебных полей заголовка TCP-пакета сообщений, и в случае если Hlen=LSL, то переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, а если Hlen>LSL, то вычисляют значение LOPT величины поля опций заголовка принятого TCP-пакета сообщений, где LOPT=Hlen-LSL, после этого считывают значения служебных полей Flags из заголовка принятого TCP-пакета сообщений, и если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита SYN равным единице, то считывают значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений, сравнивают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MSYN}, и если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MSYN}, то увеличивают текущее значение счетчика IC на единицу и запоминают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR, после чего сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, а в случае если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}, и в случае совпадения значения сегмента kind со значениями переменных MSS или Wsopt множества {MSYN} считывают значение сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений и увеличивают текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений, после чего запоминают значения сегментов kind, length, data полей опций MSS или Wsopt заголовка принятого TCP-пакета сообщений в массив памяти MR, затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебного поля «опции» заголовка ответного TCP-пакета сообщений, в ином случае если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений и сравнивают его со значениями переменных NOP и EOL множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменной Timestamp множества {MSYN}, и в случае совпадения значения сегмента kind со значением переменной Timestamp множества {MSYN} считывают значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений, вычисляют значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений и увеличивают текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений, запоминают считанное значение сегментов kind, length и вычисленное значение сегмента data полей опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR, сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, в случае если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных MSS и Wsopt множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значением переменной Timestamp множества {MSYN}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных SACK и SACK-Permitted множества {MSYN}, в случае совпадения значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN} запоминание значений сегментов kind и length служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают и переходят к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, в противном случае, то есть при несовпадении значения сегмента kind со значениями переменных SACK или SACK-Permitted множества {MSYN}, увеличивают текущее значение счетчика IC на величину значений считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений, запоминают значения считанных сегментов служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR, сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, а если в служебном поле Flags заголовка принятого TCP-пакета сообщений установлено значение бита ACK равным единице, то считывают значение сегмента kind служебного поля «опции» заголовка TCP-пакета сообщений, сравнивают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений со значениями переменных NOP и EOL множества {MACK}, и если значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений равно переменным NOP или EOL множества {MACK}, то увеличивают текущее значение счетчика IC на единицу и запоминают значение считанного сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR, затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, а в случае если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MACK}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменной Timestamp множества {MACK}, и в случае совпадения значения сегмента kind со значением переменной Timestamp множества {MACK} считывают значение сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений, вычисляют значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений и увеличивают текущее значение счетчика IC на величину значения считанного сегмента length поля опции Timestamp заголовка принятого TCP-пакета сообщений, после чего запоминают считанное значение сегментов kind, length и вычисленное значение сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений в массив памяти MR, затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений, в случае если IC≠LOPT, то вновь считывают значение сегмента kind служебного поля «опции» заголовка принятого TCP-пакета сообщений, сравнивают его со значениями переменных NOP и EOL множества {MACK}, и в случае их несовпадения сравнивают значение сегмента kind со значением переменной Timestamp множества {MACK}, и в случае их несовпадения сравнивают значение сегмента kind со значениями переменных SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN}, и в случае совпадения значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN} запоминание значений сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR не осуществляют и значение счетчика IC не увеличивают и переходят к сравнению текущего значения счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, в противном случае, то есть при несовпадении значения сегмента kind со значениями переменной SACK множества {MACK} и переменных MSS, Wsopt, SACK-Permitted множества {MUN}, увеличивают текущее значение счетчика IC на величину значения считанного сегмента length служебного поля «опции» заголовка принятого TCP-пакета сообщений, запоминают значения сегментов kind, length, data служебного поля «опции» заголовка принятого TCP-пакета сообщений в массив памяти MR, затем сравнивают текущее значение счетчика IC со значением LOPT величины служебного поля «опции» заголовка принятого TCP-пакета сообщений, и в случае если IC=LOPT, то нормализуют величину заголовка TCP-пакета сообщений и переходят к формированию служебных полей заголовка ответного TCP-пакета сообщений.

2. Способ по п. 1, отличающийся тем, что для нормализации величины заголовка TCP-пакета сообщений вычисляют значение LF величины заголовка TCP-пакета сообщений, необходимого для формирования корректного ответного TCP-пакета сообщений, где LF=IC+LSL, затем вычисляют остаток от деления значения LF на четыре, и если остаток от деления LF на четыре не равен нулю, то есть LF mod 4≠0, то увеличивают значение счетчика IC на единицу, запоминают значение сегмента kind поля опции NOP в массив памяти MR и вновь вычисляют значение LF и его остаток от деления на четыре, в противном случае, то есть если остаток от деления значения LF на четыре равен нулю, то есть LF mod 4=0, записывают в служебное поле «опции» заголовка формируемого TCP-пакета сообщений значения сегментов из массива памяти MR.

3. Способ по п. 1, отличающийся тем, что для вычисления значения сегмента data поля опции Timestamp заголовка принятого TCP-пакета сообщений считывают значение хронометра временных меток и записывают его в четырехбайтовое поле временных меток Tsval, а затем считывают значение четырехбайтового поля временных меток Tsval последней принятой опции Timestamp и записывают его в четырехбайтовое поле временных меток TSecr.



 

Похожие патенты:

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение аутентификации информации.
Изобретение относится к области передачи изображений по каналам связи с ограниченной полосой пропускания. Технический результат - уменьшение времени передачи изображения по каналу связи за счет уменьшения объема передаваемых сжатых данных.

Изобретение относится к вычислению преобразования данных с использованием зашифрованных представлений значения данных. Технический результат – повышение эффективности защиты от атак системы обработки данных.

Изобретение относится к вычислительной технике. Техническим результатом является повышение результативности защиты и введение в заблуждение нарушителя относительно структуры вычислительной сети за счет снижения вероятности обнаружения нарушителем факта использования средств защиты и идентификации их характеристик, достигаемых путем разделения адресного пространства вычислительной сети на области, обеспечивающие реалистичность функционирования защищаемой вычислительной сети, а также путем формирования множества случайных значений MAC-адресов, соответствующих ложным узлам вычислительной сети.

Изобретение относится к вычислительной технике и может быть использовано для отказоустойчивой параллельной реализации систем булевых функций в средствах криптографической защиты информации.

Изобретение относится к способу обеспечения целостности данных. Техническим результатом является обеспечение целостности данных и восстановления целостности данных при их возможном изменении в условиях преднамеренных воздействий злоумышленника.

Изобретение относится к компилятору, способу и вычислительному устройству для выполнения программ. Технический результат заключается в повышении защищенности вычислительных систем.

Изобретение относится к области мониторинга сети. Технический результат – повышение точности определения присутствия неавторизованной передачи сообщения без потери свойства функционирования в реальном времени.

Изобретение относится к области формирования и использования производного ключа на основе изображения. Технический результат заключается в обеспечении защищенной передачи данных.

Изобретение относится к способу запрашивания операции, устройству для его реализации и способу авторизации операции. Технический результат заключается в обеспечении безопасной работы операционных систем.

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение аутентификации информации.

Изобретение относится к области беспроводной связи. Технический результат заключается в обеспечении одновременной передачи данных посредством первой и второй беспроводной связи.

Изобретение относится к устройствам оборудования пользователя (UE) и машиночитаемому носителю данных. Технический результат заключается в обеспечении управления связью устройства оборудования пользователя с сетью.

Изобретение относится к области вычислительной техники коммуникационной связи. Технический результат заключается в обеспечении аутентификации пользователя посредством машиночитаемого кода, который кодирует идентификатор сеанса.

Изобретение относится к области информкоммуникаций и, более конкретно, к маскированию структуры сети связи для повышения скрытности связи, своевременности доставки пакетов сообщений принимающим абонентам и снижения перегрузки абонентов сети маскирующими сообщениями в распределенных сетях связи, построенных на основе сети передачи данных общего пользования типа «Internet».

Изобретение относится к отрасли обработки и хранения данных. Технический результат – сокращение периода времени оператору для устранения неисправности сети.

Группа изобретений относится к области отображения информации. Технический результат заключается в обеспечении возможности получения диалекта, соответствующего информации о местоположении и отображении пользовательского интерфейса, включающего вариант действия, выбранный в соответствии с полученным диалектом.

Изобретение относится к системе беспроводной пристыковки, пристыковываемому устройству, хосту и способам беспроводной пристыковки. Технический результат заключается в обеспечении беспроводной пристыковки.

Группа изобретений относится к средствам управления ресурсами в системе виртуализации сетевых функций. Технический результат – уменьшение времени обработки, требуемого для выполнения операции управления ресурсами в виртуализированной сети.

Изобретение относится к области вычислительной техники приема и передачи данных. Технический результат заключается в повышении эффективности передачи данных, и исключения бездействия и потери ресурсов канала передачи данных.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении защищенности узлов сети связи от СиП КР.
Наверх