Способ построения сетей передачи данных с повышенным уровнем защиты от ddоs-атак

Иллюстрации

Показать все

Изобретение относится к организации работы публичных компьютерных сетей, обеспечивающих взаимодействие терминального устройства со стороны клиента и сервера (модель клиент-сервер) с повышенной устойчивостью к сетевым атакам DDoS. Технический результат - снижение влияния атакующих сетей на работоспособность сетевых ресурсов путем несемантической фильтрации входящего трафика. Способ построения сетей передачи данных с повышенным уровнем защиты от DDоS-атак, заключающийся в создании шлюзовых сетей для несемантической фильтрации трафика, при этом шлюзовая сеть является промежуточным звеном между пользовательскими терминалами и защищаемыми серверами, блокирующая трафик от неавторизованных пользователей. Она строится с применением программно-конфигурируемой архитектуры с балансировкой внутренней нагрузки и состоит из управляемых коммутаторов, серверов верификации сетевых пакетов, контроллера сети и сервера аутентификации. 5 ил.

Реферат

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

Известен способ взаимодействия клиент-сервер, позволяющий снизить эффективность DDoS-атак (Distributed Denial of Service), описанный в патенте РФ № 2496136 «Способ взаимодействия терминального устройства клиента с сервером по сети Интернет с повышенным уровнем защиты от DDоS-атак и система для реализации способа» и основанный на принципе смены сетевых адресов клиента и сервера по заранее договоренному расписанию в процессе передачи данных. Согласно описанию способа в процессе передачи данных сервер меняет свой сетевой адрес в определенные моменты времени согласно расписанию. Клиенту также известно расписание смены адресов и он шлет пакеты данных, предназначающиеся серверу в соответствии с ним. Смена сетевых адресов сервера происходит в рамках заранее отведенного набора (пула) адресов. Таким образом? для клиента, знающего расписание смены адресов, передача данных происходит без потери пакетов. Для клиентов, которым расписание неизвестно, передача пакетов без потерь становится невозможной, т.к. им не известен текущий адрес сервера. Применение данного способа может быть эффективно в целях противодействия DDoS-атакам. В процессе атаки атакующим клиентам не известно расписание смены адресов сервера и пакеты, посылаемые ими в большом количестве, не достигают цели. К недостаткам данного способа относится то, что данный способ подразумевает создание специфичного оборудования, которое устанавливается на стороне клиента и сервера, что многократно затрудняет процесс внедрения способа и делает процесс доступа клиентов к сетевым ресурсам непрозрачным.

Известен способ, описанный в заявке на патент США № 20100031315 «Systems and methods for protecting against denial of service attacks», предлагающий решение на уровне пользовательского приложения. Согласно описанию изобретения алгоритм защиты включает в себя несколько этапов. На первом этапе клиентский терминал отправляет запрос на защищаемый сервер. Сервер генерирует запрос подтверждения работы и отправляет его обратно клиентскому терминалу. На втором этапе полученный запрос используется для генерации нового URL, на который отправляется второй запрос. Защищаемый сервер на основании посланного запроса доказательства работы и полученного ответа вырабатывает некоторое числовое значение. При попадании этого значения в заданные пороговые значения второму запросу присваивается приоритет обслуживания. Далее запрос обрабатывается защищаемым сервером. Таким образом, предлагаемый способ основан на применении несемантического фильтра, использующего в качестве критерия фильтрации генерируемый приоритет для клиентских запросов. К недостаткам данного способа относится то, что обслуживание запросов от клиентов и присваивание приоритетов осуществляются одним сервером, на котором стоит верификационный фильтр. Данный способ защиты не может блокировать DDoS-атаки, направленные на истощение вычислительных ресурсов сервера.

Известен способ, описанный в заявке на патент США №20100235632 «PROTECTING AGAINST DENIAL OF SERVICE ATTACKS USING TRUST, QUALITY OF SERVICE, PERSONALIZATION, AND HIDE PORT MESSAGE», в рамках которого предлагается решение, основанное на получении оценки уровня доверия клиенту от третьей стороны. Для этого предлагается использовать дополнительный сервер, предназначенный для обработки криптографически защищенных токенов, определяющих уровень доверия клиентского терминала. Процесс проверки и изменения уровня доступа осуществляется с помощью специального скрипта JavaScript. Данные, передаваемые скриптом, используются сервером для принятия решения о предоставлении клиенту доступа к защищаемому сетевому ресурсу. К недостаткам данного способа относится низкая прозрачность метода, т.к. процессы передачи скрипта, его выполнения и передачи результатов на сторону сервера производятся на высоком уровне взаимодействия и не защищены от подмены. Данное техническое решение также реализует защиту от DDoS-атак на уровне прикладного протокола и не затрагивают уровень передачи IP пакетов.

Известен способ, описанный в заявке на патент США № 20110283367 «SECURING A COMMUNICATION PROTOCOL AGAINST ATTACKS», в котором предлагается использовать два последовательных сегмента, через которые осуществляется передача данных. В процессе передачи пакетов производится их верификация путем сравнения ключей текущего и последующего сегментов. В случае появления сетевых пакетов из нелегальных сегментов их передача блокируется. Описанное выше решение применяет дополнительные средства, позволяющие отличать пакеты атакующих ботов от пакетов, идущих от клиентов на уровне приложений, но не обеспечивает устойчивости системы по отношению к атакам на IP-адрес сервера «грубой силы» (т.е. с большой интенсивностью).

Наиболее близким к заявляемому техническому решению по технической сущности и достигаемому техническому результату является один из вариантов исполнения системы, реализующей описанный способ, в качестве терминального устройства клиента может выступать маршрутизатор 2, блок 8 может быть встроен в маршрутизатор 2 со стороны клиента, а блок 9 - в маршрутизатор 4 со стороны сервера. Алгоритмы работы блоков 8 и 9 могут быть реализованы аппаратным и/или программным путем. Описанный способ принят за прототип изобретения.

К недостаткам прототипа относятся:

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

2. Прототип затруднительно внедрять в реальных условиях, т.к. необходимо размещение маршрутизаторов, включающих блоки 8 и 9 как со стороны сервера, так и со стороны клиента.

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

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

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

Структурная схема предлагаемой транзитной сети представлена на фиг.1 и состоит из барьерных модулей 1, модулей верификации пакетов 2, блока управления 3 и модуля аутентификации 4. Целью данной сети является защита сетевых сервисов 5 путем фильтрации атакующего трафика, приходящего от ботов 6, и транзит трафика от легитимных пользователей 7 через внешнюю сеть передачи данных 8. Транзитная сеть является промежуточным звеном передачи пакетов между пользовательскими терминалами и защищаемыми серверами. При этом реальный IP-адрес защищаемого сервера известен только серверам верификации пакетов, а клиентским терминалам известны только адреса барьерных коммутаторов.

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

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

Управление таблицами маршрутизации пакетов между барьерными коммутаторами и серверами верификации осуществляется управляющим блоком. Он выполняет следующие задачи:

1. Реализация логики маршрутизации пакетов между барьерными модулями и модулями верификации.

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

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

4. Инициализация сети, распределение и перераспределение адресов между коммутаторами.

Принцип работы транзитной сети заключается в следующем. Пользовательский терминал 7 шлет сетевой пакет одному из барьерных модулей 1. Среди правил маршрутизации барьерного модуля отсутствуют наборы правил для обработки пакетов от данного пользовательского терминала и он отсылает заголовок пакета управляющему блоку 2. Сам пакет сохраняется на барьерном модуле в ожидании управляющих воздействий от управляющего блока. Последний принимает пакет и, опираясь на статистику о загрузке модулей верификации и барьерных модулей, генерирует правило маршрутизации 3, согласно которому все пакеты, приходящие от пользовательского терминала 4, будут перенаправляться модулю верификации 5. Данное правило по каналу передачи управляющих воздействий передается коммутатору 1. После чего барьерный модуль отправляет пакет, ожидающий в кэше, модулю верификации 5. Модуль верификации принимает пакет и проводит анализ его легитимности. В случае успешной верификации пакет передается защищаемому серверу 6, в противном случае он удаляется. Защищаемый сервер получает сетевой пакет и отправляет на него ответ, посылая его модулю верификации 5, который, не проводя никаких действия, перенаправляет пакет барьерному модулю 1. Барьерной модуль, получив ответный пакет от сервера верификации, отправляет его пользователю 7.

Рассмотренная архитектура транзитной сети удовлетворяет всем современным требованиям с точки зрения масштабируемости и наращиваемости и позволяет:

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

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

3. Повысить гибкость и отказоусточивость транзитной сети.

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

5. Добиться независимости от аппаратного обеспечения, т.к. вся специфичная логика выносится за пределы аппаратных платформ и реализуется программно.

Заявляемый способ построения транзитных сетей может быть реализован на основе программно-конфигурируемой сети передачи данных, представленной на фиг.2. В нее входят коммутаторы 9, серверы верификации 10, контроллер сети 11, сервер аутентификации 12, защищаемый сервер 13. Передача пакетов осуществляется через сеть 14 от клиентов 15.

Важной особенностью заявляемого решения является использование в качестве блока балансировки нагрузки контроллера программно-конфигурируемых сетей, целью которого является управление маршрутами внутри транзитной сети. Структура контроллера представлена на фиг.3 и включает в себя следующие блоки: блок сбора статистики 16, блок управления присутствием 17, блок генерации правил маршрутизации 18, блок переопределения адресов 19 и коммутационный блок 20. Балансировка нагрузки осуществляется на основании статистики загрузки, которая собирается блоком 16 путем опроса барьерных коммутаторов 21 и серверов верификации 22 через равные заданные промежутки времени. Статистические данные, получаемые контроллером от барьерных коммутаторов, представляют собой значения счетчика входящих пакетов, а от серверов верификации - общая загрузка процессора и расход оперативной памяти. На основании этих данных, следуют стратегии равномерного распределения нагрузки, блок 18 генерирует правила маршрутизации и пересылает их на барьерные коммутаторы 21. Блок управления присутствием 17 отвечает за отслеживание появления новых коммутаторов и серверов верификации в транзитной сети и перевод в «спящий» режим простаивающих серверов верификации. Блок реализует стратегию максимального использования ресурсов, смысл которой заключается в уплотнении задач верификации пакетов на серверах верификации 22 и выведения из процесса простаивающего оборудования. Решение о переводе в «спящий» режим производится на основании статистики, получаемой от блока 16. Блок переназначения адреса 19 используется при инициализации сети и отвечает за отправку барьерным коммутаторам команд на изменение своего IP-адреса.

Коммутаторы, играющие роль барьерных модулей, представляют собой управляемые коммутаторы, поддерживающие протокол управления OpenFlow 1.3 (фиг.4) и содержат в своем составе репозиторий правил маршрутизации 23, блок управления пакетами 24, блок обработки команд 25, блок переназначения адреса 26. Основная задача коммутаторов заключается в распределении входящих пакетов на основании правил, содержащихся в репозитории правил маршрутизации 23. Блок обработки команд 25 является центральным в структуре коммутатора и предназначен для обработки управляющих команд от контроллера 27. От контроллера могут поступать два типа управляющих команд: команды добавления правил маршрутизации и команды переназначения адреса. Команды добавления правил маршрутизации содержат правила маршрутизации, которые помещаются в репозиторий 23. Каждое правило маршрутизации представляет собой структуру, содержащую IP-адрес пользовательского терминала и IP-адрес сервера верификации, и используется блоком управления пакетами 24 при перенаправлении пакета от клиентского терминала 28 к серверу верификации 29. Команды переназначения адреса блоком обработки команд 25 передаются блоку переназначения адреса 26, который изменяет IP-адрес коммутатора во внешней сети, что позволяет перенести часть нагрузки на аппаратный уровень, блокируя приходящие пакеты с ложным адресом.

Согласно изобретению функции модуля верификации должен выполнять сервер верификации, представляющий собой выделенный физический сервер многопоточной обработки пакетов. Архитектура сервера верификации приведена на фиг.5 и включает в себя внешний сетевой интерфейс 30, очередь входящих пакетов 31, многопоточный блок верификации 32, включающий в себя множество ядер верификации 33, блок переопределения адресов 34, очередь отправки пакетов 35, внутренний сетевой интерфейс 36, таблицу разрешенных IP-адресов 37 и таблицу пользовательских сессий 38, модуль сбора статистики 39. Сервер верификации является сетевым шлюзом, т.к. интерфейсы 30 и 36 принадлежат разным подсетям с различными наборами IP-адресов и масками. Принцип работы сервера верификации следующий: приходящий в транзитную сеть пакет перенаправляется барьерным коммутатором на внешний сетевой интерфейс 30 и ставится в очередь входящих пакетов 31. Пришедший пакет в качестве IP-адреса отправителя имеет сетевой адрес пославшего его пользовательского терминала, а в качестве IP-адреса назначения - сетевой адрес получившего его барьерного коммутатора 40. Пакеты из очереди выбираются последовательно и распределяются между ядрами верификации. Ядра верификации используют таблицы разрешенных адресов 37 и пользовательских сессий 38. Если пакет прошел процедуру верификации и признан легитимным, то он передается блоку переопределения адресов 34, который меняет IP-адрес отправителя на IP-адрес сетевого интерфейса 36, а IP-адрес получателя на адрес защищаемого сервера 41. Далее пакет ставится в очередь исходящих сообщений 35 и отправляется через интерфейс 36 защищаемому серверу 41. Последний посылает ответный пакет, который приходит в сетевой интерфейс 36 и сразу направляется в блок переопределения адресов 34, где его IP-адрес получателя меняется на сетевой адрес пользовательского терминала, а IP-адрес отправителя меняется на сетевой адрес коммутатора 40, от которого пришел первоначальный пакет. После этого пакет через сетевой интерфейс 30 передается барьерному коммутатору 40 и далее пользовательскому терминалу. Вся информация о входящих пакетах собирается модулем статистики 39, который передает ее по запросу от контроллера сети 42.

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

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

2. Перенести неспецифичную логику верификации пакетов на отдельные физические серверы, что позволяет повысить пропускную способность сети.

3. Повысить гибкость и отказоустойчивость защищающего кластера.

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

5. Добиться независимости от аппаратного обеспечения, т.к. вся специфичная логика выносится за пределы аппаратных платформ и реализуется программно.

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