RU2790635C1 - Способ фильтрации части пакетов в сетевой сессии - Google Patents

Способ фильтрации части пакетов в сетевой сессии Download PDF

Info

Publication number
RU2790635C1
RU2790635C1 RU2022116665A RU2022116665A RU2790635C1 RU 2790635 C1 RU2790635 C1 RU 2790635C1 RU 2022116665 A RU2022116665 A RU 2022116665A RU 2022116665 A RU2022116665 A RU 2022116665A RU 2790635 C1 RU2790635 C1 RU 2790635C1
Authority
RU
Russia
Prior art keywords
packet
session
tcp
received
information
Prior art date
Application number
RU2022116665A
Other languages
English (en)
Inventor
Александр Александрович Шабалов
Михаил Викторович Бадин
Алексей Михайлович Михайлов
Сергей Алексеевич Плотко
Original Assignee
Акционерное общество "Научно-производственное предприятие " Цифровые решения"
Filing date
Publication date
Application filed by Акционерное общество "Научно-производственное предприятие " Цифровые решения" filed Critical Акционерное общество "Научно-производственное предприятие " Цифровые решения"
Application granted granted Critical
Publication of RU2790635C1 publication Critical patent/RU2790635C1/ru

Links

Images

Abstract

Изобретение относится к области обработки сетевого трафика. Техническим результатом изобретения является обеспечение фильтрации пакетов для TCP/UDP-сессии в устройствах предварительной обработки. В способе на основе IP-адресов и TCP/UDP-портов принятого пакета рассчитывается HASH-сумма. В ячейке RAM-памяти, адрес которой равен полученной HASH-сумме, выполняется поиск информации об уже принятом пакете с такой же HASH-суммой, принадлежащего к той же сессии. По результатам сравнения счетчика принятых пакетов TCP-сессии и анализа наличия флагов SYN или FIN в TCP-заголовке, или времени, когда был принят последний пакет сессии, используемого для учета времени в UDP-сессиях, принимается решение о передаче пакета в выходной интерфейс или его удалении. 3 ил.

Description

Область техники
Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам высокоскоростного поиска и отслеживания TCP/UDP-сессий в высоконагруженных сетях, может быть использовано в устройствах предварительной обработки для систем глубокого анализа сетевого трафика, поддерживающих стек протоколов TCP/UDP/IP. Заявляемый способ направлен на обеспечение функции фильтрации части пакетов, принадлежащих к сессиям протоколов TCP/UDP, и может быть применен в устройствах предварительной обработки сетевого трафика.
Уровень техники
Известен способ динамической фильтрации пакетов с использованием отслеживания сессий патент JP 4162210 B2, H04L12/66, 24.12.2004, «Dynamic packet filter using session tracking», его недостатком является невозможность избирательной фильтрации пакетов сессии.
Техническим результатом предложенного изобретения является обеспечение передачи начальных и завершающих пакетов TCP/UDP-сессии и фильтрации остальных пакетов сессии.
Поставленный технический результат достигается тем, что предложен способ фильтрации части пакетов в сетевой сессии, заключающийся в динамической фильтрации пакетов с использованием отслеживания TCP/UDP-сессий, где пакет после приема передается в блок анализа пакета, в котором выполняется выделение из пакета IP и TCP/UDP-заголовков и формирование на их основе дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор – в буфер дескрипторов и затем передается в блок расчета HASH, в котором на основе полей заголовков пакета, включающих IP-адреса получателя и отправителя, TCP/UDP-порты получателя и отправителя, рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа, в одной ячейке RAM-памяти содержатся записи с информацией о четырех сессиях для случаев, когда несколько TCP/UDP-сессий могут иметь одинаковое значение HASH-суммы, при этом указанная информация включает в себя IP-адрес получателя, IP-адрес отправителя, TCP/UDP-порт получателя, TCP/UDP-порт отправителя, время, когда был принят последний пакет сессии, счетчик количества принятых пакетов сессии, затем блок отслеживания сессий проверяет в ячейке RAM-памяти, адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора пакета, если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется инкремент (увеличение значения) счетчика количества принятых пакетов сессии и сравнение счетчика с настраиваемым значением, задающим порог, после которого пакеты сессии удаляются, если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флаг FIN в TCP-заголовке или время превысило установленное значение для UDP-сессий, то принимается решение об удалении пакета, которое передается в блок удаления пакетов, если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти заносится информация о текущем пакете, если информация не совпадает, то аналогичным образом проверяются остальные три записи, в случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти, после чего блок удаления пакетов при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера, в противном случае передает пакет в выходной интерфейс.
Пороговое значение количества пакетов TCP-сессии и пороговое значение времени UDP-сессии, после достижения которых пакеты сессии удаляются при соблюдении вышеуказанных условий, может записываться заранее оператором через несвязанный с сетью конфигурационный интерфейс, первоначально при настройке (инициализации) устройства и не меняются в течение всего времени его работы. Пороговое значение количества пакетов TCP-сессии находится в диапазоне от 1 до 63, пороговое значение времени UDP-сессии находится в диапазоне от 10 мс до 30 с. Пороговые значения задаются оператором в зависимости от характера сетевого трафика, организационных, эксплуатационных требований.
Проведенный анализ уровня техники позволяет определить, что предложенное техническое решение является новым и имеет изобретательский уровень, а возможность его использования в промышленности определяет его как промышленно применимое.
Эти и другие аспекты станут очевидными и будут объяснены со ссылками на чертеж и вариант осуществления, описанный в дальнейшем.
Изобретение поясняется следующими графическими материалами:
Фиг. 1 – схема, иллюстрирующая функциональные блоки, реализующие предложенный способ фильтрации части пакетов в сетевой сессии.
Фиг. 2 – схема, иллюстрирующая структуру дескриптора.
Фиг. 3 – схема, иллюстрирующая структуру хранения в памяти информации о сессиях.
Осуществление изобретения
Предложенный способ отслеживания сессий позволяет сохранять в памяти результат обработки пакетов и применять его для обработки последующих пакетов данной сессии. Сессия пакетов – набор пакетов, имеющих одинаковые адреса отправителя и получателя, порты отправителя и получателя и протокол (IP и TCP/UDP-заголовков). При этом формат IP-пакета более подробно описан в спецификации RFC 791 «Internet Protocol DARPA Internet Program Protocol Specification», сентябрь 1981. Протокол TCP описывается в спецификации RFC 793 «Transmission Control Protocol», сентябрь 1980, протокол UDP описан в спецификации RFC 768 «User Datagram Protocol», август 1980.
Флаг SYN обозначает начало соединения и синхронизирует порядковые номера. Первый отправленный пакет должен иметь установленным этот флаг.
Флаг FIN сообщает, что все пакеты были отправлены, и соединение можно завершить. Позволяет контролировать порядок сообщений, как порт источника, так и порт назначения будут поддерживать свой уникальный порядковый номер для отправляемых сообщений.
Для достижения поставленного технического результата выполняются следующие операции:
Оператором на этапе инициализации устройства через несвязанный с сетью конфигурационный интерфейс задается пороговое значение количества пакетов TCP сессии и пороговое значение времени UDP сессии, после достижения которых пакеты сессии удаляются. Данные пороговые значения остаются неизменным до тех пор, пока не будут изменены оператором.
Прием пакета через входной интерфейс (101), после приема пакета выполняется анализ и выделение заголовков пакета. Для этого пакет передается в блок анализа пакета (102), в котором выполняется выделение из пакета IP и TCP/UDP-заголовков. Пакет сохраняется в пакетном буфере (103) до момента принятия решения о наборе действий, выполняемых над пакетом. На основе информации о пакете и его заголовков формируется дескриптор пакета, показанный на фиг.2, который сохраняется в отдельный буфер дескрипторов (104). Информация включает в себя IP-адрес получателя (201), IP-адрес отправителя (202), порт получателя (203), порт отправителя (204), время, когда был принят последний пакет сессии (205) и счетчик количества принятых пакетов сессии (206).
Дескриптор передается в блок расчета HASH (105), в котором на основе полей заголовков пакета (IP-адресов и TCP/UDP-портов получателя и отправителя) рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа. Так можно выполнять побитовую логическую операцию «исключающее ИЛИ» (XOR) над соответствующими битами IP-адреса получателя (32 бит), IP-адреса отправителя (32 бит), порта получателя (16 бит), порта отправителя (16 бит) и отправлять результаты операции побитового «исключающее ИЛИ» (XOR) и генерировать HASH-сумму, имеющую Y-биты, где Y является положительным целым числом, например, для указанного примера 10 бит. В алгоритме счетчика с аутентификацией Галуа (GCM) входные блоки вектора байт нумеруются последовательно, номер блока кодируется блочным алгоритмом. Выход функции шифрования используется в операции XOR (исключающее ИЛИ) с открытым текстом для получения HASH-суммы. Схема представляет собой потоковый шифр, поэтому использование уникального вектора байт гарантирует получение уникальной HASH-суммы.
Для обработки в случае, когда несколько TCP/UDP-сессий имеют одинаковое значение HASH-суммы, в одной ячейке RAM-памяти (107) может содержатся запись с информацией о четырех сессиях. Информация включает в себя IP-адрес получателя (201), IP-адрес отправителя (202), порт получателя (203), порт отправителя (204), время, когда был принят последний пакет сессии (205), используемого для учета времени в UDP-сессиях, в случае превышения которого считается, что сессия закрыта, и счетчик количества принятых пакетов сессии (206). Установлено, что при хранении информации о четырех сессиях вероятность коллизии ничтожно мала. В одной ячейке RAM-памяти (107) содержатся записи с информацией о четырёх сессиях (HASH №1, HASH №2, HASH №3, HASH №4), где адрес ячейки равняется HASH-сумме, как показано на фиг.3. Таким образом, для разрешения коллизий, возникающих при отслеживании сессии с одинаковым значением HASH-суммы, наличие записей о четырех сессиях является необходимым и достаточным.
Блок отслеживания сессий (106) проверяет в ячейке RAM-памяти (107), адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора полученного пакета. Если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется инкремент счетчика количества принятых пакетов сессии (206) и сравнение счетчика с задаваемым оператором настраиваемым значением, задающим порог, после которого пакеты сессии удаляются. Если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флага FIN в TCP-заголовке или время превысило установленное значение для UDP-сессий, то принимается решение об удалении пакета, которое передается в блок удаления пакетов (108). Если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти (107) заносится информация о текущем пакете. Если информация не совпадает, то аналогичным образом проверяются остальные три записи. В случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти (107).
Блок удаления пакетов (108) при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера (103), если решение об удалении пакета не принято, то пакет передается в выходной интерфейс (109).
В предпочтительном варианте осуществления изобретения вышеуказанные логические блоки: блок анализа пакета (102), блок расчета HASH (105), блок отслеживания сессий (106), блок удаления пакетов (108), могут быть реализованы или выполнены на базе перепрограммируемой логической интегральной схемы (ПЛИС) или сверхбольшой интегральной схемы (СБИС). Блоки могут быть реализованы конечным автоматом и несколькими регистрами с соответствующей внутренней логикой и реализуется автоматически, например, из представленного XML-описания сетевого протокола, они управляются микрокодом, хранящимся в встроенной памяти. Специалисту очевидно, что вышеуказанные логические блоки, схемы обработки могут быть выполнены с помощью элемента памяти, который записывает обрабатываемые данные и процессора обработки, в качестве которых могут применяться процессор общего назначения, машиночитаемый носитель, конечный автомат или другое аппаратно-программируемое логическое устройство, дискретный логический элемент или транзисторная логика или любого их сочетания, чтобы выполнять описанные выше функции.
В качестве конфигурационного интерфейса для настройки, в зависимости от элементной базы, может быть использован стандартный цифровой интерфейс, например, PCIe, PCI, SPI и т.д.
Предложенный способ отслеживания сессий в сетевом трафике ориентирован на применение в устройствах на базе ПЛИС или СБИС, например, в брокерах сетевых пакетов (NPB), которые работают на уровне пакетов, где правила распределения и агрегации трафика в брокерах сетевых пакетов полностью определяются настройками. В NPB нет стандартов построения таблиц пересылки (MAC-таблиц) и протоколов обмена с другими коммутаторами (типа STP), а поэтому диапазон возможных пользовательских настроек и интерпретируемых полей в них гораздо шире. Брокер может равномерно распределить трафик из одного или нескольких входных портов на заданный диапазон выходных портов с функцией равномерной нагрузки по выходу. Также можно задать правила на копирование, фильтрацию, классификацию, дедупликацию и модификацию трафика к разным группам входных портов NPB, а также применять последовательно друг за другом в самом устройстве. ПЛИС или СБИС может быть запрограммирована для выполнения предложенного способа и размещена в любом месте компьютерной сети центра обработки данных или NPB.
Предложенный по изобретению способ отслеживания сессий в сетевом трафике может выполняться посредством одной или нескольких компьютерных программ, содержащих код компьютерной программы или порции программного обеспечения, исполняющиеся на компьютере или процессоре. Компьютерная программа содержит элементы кода компьютерной программы или порции программного кода, которые побуждают компьютер выполнять предложенный способ.
Варианты осуществления изобретения не являются исчерпывающими и приведены только с целью пояснения и подтверждения промышленной применимости, и специалисты в данной области техники способны создавать альтернативные варианты его осуществления без отрыва от объема формулы, но в пределах сущности изобретения, отраженной в описании.

Claims (1)

  1. Способ фильтрации части пакетов в сетевой сессии, заключающийся в динамической фильтрации пакетов с использованием отслеживания сессий, отличающийся тем, что принятый пакет передается в блок анализа пакета, в котором выполняется выделение из пакета IP и TCP/UDP-заголовков и формирование на их основе дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор в буфер дескрипторов, и затем передается в блок расчета HASH, в котором на основе полей заголовков пакета, включающих IP-адреса получателя и отправителя, TCP/UDP-порты получателя и отправителя, рассчитывается HASH-сумма по алгоритму счетчика с аутентификацией Галуа, при этом в одной ячейке RAM-памяти содержатся записи с информацией о четырех сессиях для случаев, когда несколько сессий могут иметь одинаковое значение HASH-суммы, при этом информация включает в себя IP-адрес получателя, IP-адрес отправителя, TCP/UDP-порты получателя и отправителя, время, когда был принят последний пакет сессии, счетчик количества принятых пакетов сессии, затем блок отслеживания сессий проверяет в ячейке RAM-памяти, адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора пакета, если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и выполняется увеличение значения счетчика количества принятых пакетов сессии и сравнение значения счетчика с настраиваемым значением, задающим порог, после которого пакеты сессии удаляются, если счетчик количества принятых пакетов сессии превысил порог и пакет не содержит флага FIN в TCP-заголовке или время превысило установленное значение для UDP-заголовков, то принимается решение об удалении пакета, которое передается в блок удаления пакетов, если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора сессии и в ячейку RAM-памяти заносится информация о текущем пакете, если информация не совпадает, то аналогичным образом проверяются остальные три записи, в случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти, после чего блок удаления пакетов при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера, в противном случае передает пакет в выходной интерфейс.
RU2022116665A 2022-06-21 Способ фильтрации части пакетов в сетевой сессии RU2790635C1 (ru)

Publications (1)

Publication Number Publication Date
RU2790635C1 true RU2790635C1 (ru) 2023-02-28

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US20060191003A1 (en) * 2005-02-18 2006-08-24 Sae-Woong Bahk Method of improving security performance in stateful inspection of TCP connections
US7831822B2 (en) * 2006-06-23 2010-11-09 Electronics And Telecommunications Research Institute Real-time stateful packet inspection method and apparatus
US20120147744A1 (en) * 2010-12-14 2012-06-14 Verizon Patent And Licensing, Inc. Time and data rate policing
KR101449627B1 (ko) * 2013-02-14 2014-10-13 주식회사 시큐아이 비정상 세션 탐지 방법 및 장치
RU2679227C1 (ru) * 2018-04-05 2019-02-06 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ работы межсетевого экрана

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US20060191003A1 (en) * 2005-02-18 2006-08-24 Sae-Woong Bahk Method of improving security performance in stateful inspection of TCP connections
US7831822B2 (en) * 2006-06-23 2010-11-09 Electronics And Telecommunications Research Institute Real-time stateful packet inspection method and apparatus
US20120147744A1 (en) * 2010-12-14 2012-06-14 Verizon Patent And Licensing, Inc. Time and data rate policing
KR101449627B1 (ko) * 2013-02-14 2014-10-13 주식회사 시큐아이 비정상 세션 탐지 방법 및 장치
RU2679227C1 (ru) * 2018-04-05 2019-02-06 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ работы межсетевого экрана

Similar Documents

Publication Publication Date Title
WO2017114175A1 (zh) 防御分布式拒绝服务攻击的方法、装置、客户端及设备
US10742722B2 (en) Server load balancing
US6654701B2 (en) Method and apparatus for measuring protocol performance in a data communication network
CN112673595B (zh) 用于使用具有包括动态报头的数据包的流高速缓存的方法和系统
US9596300B2 (en) Technologies for processing data packets in batches
US20060190613A1 (en) Method, program and system for efficiently hashing packet keys into a firewall connection table
JP4962394B2 (ja) パケット転送制御装置およびパケット転送制御方法
JP2002271396A (ja) ネットワーク・データ・パケット分類及び逆多重化
US20140115686A1 (en) Method for Managing Connections in Firewalls
EP2916516A1 (en) Packet processing method and apparatus
JP4263718B2 (ja) 通信処理装置及び通信処理方法
RU2790635C1 (ru) Способ фильтрации части пакетов в сетевой сессии
CN111385228B (zh) 一种基于openflow交换机端口混淆的移动目标防御方法
WO2010121249A2 (en) Methods, systems, and computer readable media for performing flow compilation packet processing
CN115190056B (zh) 一种可编排的流量协议识别与解析方法、装置及设备
CN111224964A (zh) 访问控制方法及设备
WO2004019561A1 (ja) イーサネット(r)におけるフレーム転送方法及びノード
RU2786178C1 (ru) Способ отслеживания сессий в сетевом трафике
RU2779135C1 (ru) Способ динамической фильтрации сетевых пакетов по принадлежности к сессии
RU2807656C1 (ru) Способ балансировки с сохранением целостности потоков данных
RU2778462C1 (ru) Способ отслеживания фрагментов пакетов в сетевом трафике
CN111683036B (zh) 数据存储方法、装置以及报文识别方法和装置
CN113411341A (zh) 一种数据处理方法、装置、设备及可读存储介质
RU2795295C1 (ru) Способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации
RU2786629C1 (ru) Способ обеспечения идентичности балансировки для двунаправленного потока данных сетевой сессии