Способ фильтрации части пакетов в сетевой сессии Российский патент 2023 года по МПК H04L65/1066 H04L47/00 H04L47/10 

Описание патента на изобретение RU2790635C1

Область техники

Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам высокоскоростного поиска и отслеживания 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.

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

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

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

название год авторы номер документа
Способ динамической фильтрации сетевых пакетов по принадлежности к сессии 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2779135C1
Способ отслеживания сессий в сетевом трафике 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2786178C1
Способ отслеживания фрагментов пакетов в сетевом трафике 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2778462C1
Способ балансировки с сохранением целостности потоков данных 2023
  • Попенко Павел Иванович
RU2807656C1
Способ определения дублирующихся пакетов в потоке сетевого трафика 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2790636C1
Способ обеспечения идентичности балансировки для двунаправленного потока данных сетевой сессии 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2786629C1
Способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации 2022
  • Бадин Михаил Викторович
  • Михайлов Алексей Михайлович
  • Плотко Сергей Алексеевич
RU2795295C1
СПОСОБ ОБНАРУЖЕНИЯ КОМПЬЮТЕРНЫХ АТАК В ИНФОРМАЦИОННО-ТЕЛЕКОММУНИКАЦИОННОЙ СЕТИ 2013
  • Дементьев Владислав Евгеньевич
  • Васюков Дмитрий Юрьевич
  • Коцыняк Михаил Антонович
  • Коцыняк Михаил Михайлович
  • Лаута Александр Сергеевич
  • Лаута Олег Сергеевич
RU2531878C1
УСТРОЙСТВО ОБНАРУЖЕНИЯ УДАЛЕННЫХ КОМПЬЮТЕРНЫХ АТАК 2014
  • Васюков Дмитрий Юрьевич
  • Коцыняк Михаил Антонович
  • Коцыняк Михаил Михайлович
  • Лаута Олег Сергеевич
  • Лаута Александр Сергеевич
RU2540838C1
СПОСОБ УПРАВЛЕНИЯ СОЕДИНЕНИЯМИ В МЕЖСЕТЕВОМ ЭКРАНЕ 2012
  • Иванов Александр Вячеславович
RU2517411C1

Иллюстрации к изобретению RU 2 790 635 C1

Реферат патента 2023 года Способ фильтрации части пакетов в сетевой сессии

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

Формула изобретения RU 2 790 635 C1

Способ фильтрации части пакетов в сетевой сессии, заключающийся в динамической фильтрации пакетов с использованием отслеживания сессий, отличающийся тем, что принятый пакет передается в блок анализа пакета, в котором выполняется выделение из пакета 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-памяти, после чего блок удаления пакетов при наличии решения об удалении выполняет операцию удаления пакета из пакетного буфера, в противном случае передает пакет в выходной интерфейс.

Документы, цитированные в отчете о поиске Патент 2023 года RU2790635C1

US 7831822 B2, 09.11.2010
US 6816455 B2, 09.11.2004
US 20120147744 A1, 14.06.2012
US 20060191003 A1, 24.08.2006
KR 101449627 B1, 13.10.2014
Способ работы межсетевого экрана 2018
  • Оладько Алексей Юрьевич
RU2679227C1

RU 2 790 635 C1

Авторы

Шабалов Александр Александрович

Бадин Михаил Викторович

Михайлов Алексей Михайлович

Плотко Сергей Алексеевич

Даты

2023-02-28Публикация

2022-06-21Подача