СИСТЕМА И СПОСОБ ДЛЯ ОГРАНИЧЕНИЯ ЗАПРОСОВ ДОСТУПА Российский патент 2018 года по МПК H04L29/06 H04L29/08 G06F21/00 

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

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Изобретение относится к системе для ограничения запросов доступа из сети и ее соответствующему способу.

УРОВЕНЬ ТЕХНИКИ

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

Из предшествующего уровня техники известно, что имеется решение для обеспечения защиты от лавинной рассылки ICMP/TCP/UDP путем обнаружения TCP-пакетов на основе технологии очистки потоков, что достигается путем повторной передачи TCP/UDP-пакетов. Но известное решение является эффективным только для пакетов с уровня TCP/UDP и бесполезно для предотвращения лавинной рассылки HTTP с прикладного уровня, требуемого для дешифрования, который является седьмым уровнем в Эталонной Модели Взаимодействия Открытых Систем (OSI).

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

В соответствии с изобретением, сеть представляет собой Интернет, а запрос доступа представляет собой запрос НТТР из Интернета.

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Варианты осуществления изобретения подробно описываются далее со ссылкой на чертежи, на которых:

фиг. 1 представляет собой структурную диаграмму системы для ограничения запросов доступа в соответствии с изобретением;

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

фиг. 3 представляет собой блок-диаграмму примера состава сумматора в соответствии с изобретением.

ПОДРОБНОЕ ОПИСАНИЕ

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

Запрос доступа, такой как запрос НТТР, по меньшей мере, содержит следующие поля данных: доменное имя (хост) адресата, доступ к которому осуществляется пользователем, отправляющим запрос; универсальный идентификатор ресурса (uri), запрашиваемый пользователем; идентификатор пользователя (uid); IP-адрес клиента (cip) и тому подобное.

В соответствии с изобретением, в изобретении предлагается система для ограничения запросов доступа из сети, причем, система содержит балансировщик нагрузки, агрегатор и сумматор.

Балансировщик нагрузки принимает запрос доступа из сети, интерпретирует каждый из принимаемых запросов доступа в UDP-сообщение и передает UDP-сообщение в агрегатор.

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

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

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

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

На фиг. 1 изображена система 100 в соответствии с одним из вариантов осуществления изобретения, при этом система 100 содержит следующие три модуля:

балансировщик 101 нагрузки,

агрегатор 102, и

сумматор 103.

Балансировщик 101 нагрузки принимает запросы доступа из сети, например, запрос НТТР из Интернета, интерпретирует каждый из принимаемых запросов доступа в UDP-сообщение и передает UDP-сообщение в агрегатор 102.

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

Агрегатор 102 может содержать множество блоков агрегации. Множество блоков агрегации может увеличиваться независимо, то есть, каждый из блоков агрегации развертывается и эксплуатируется независимо, и, соответственно, блоки агрегации не влияют друг на друга и не зависят друг от друга. Если вычислительная мощность текущего агрегатора не может удовлетворять требованиям, целесообразно добавлять ресурсы сервера, благодаря чему развертываются новые блоки агрегации. Это может лучше удовлетворять требованиям к более высокому потоку трафика.

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

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

Каждый блок агрегации анализирует и накапливает принимаемые UDP-сообщения в соответствии с предопределенным правилом или условием, таким как предопределенная комбинация полей данных и предопределенный временной интервал. Каждое UDP-сообщение содержит информацию о запросе HTTP-доступа от пользователя, такую как доменное имя (хост) адресата, доступ к которому осуществляется пользователем, универсальный идентификатор ресурса (uri), запрашиваемый пользователем, идентификатор пользователя (uid) и IP-адрес клиента (cip). Блок агрегации подсчитывает число запросов доступа, имеющих одно и то же доменное имя адресата (один и тот же хост) и один и тот же источник (один и тот же uid, один и тот же cip) для получения посредством этого числа запросов доступа от источника.

Число запросов доступа в единицу времени от источника может быть получено в соответствии с числом принятых запросов доступа от источника в течение определенного периода (например, последних 60 секунд или последних 5 минут). Например, значение опросов в секунду (QPS), относящееся к источнику, может быть получено путем деления общего числа принятых запросов доступа от источника в течение определенного периода на длительность периода.

Затем блок агрегации отправляет последние статистические данные, относящиеся к запросам доступа, формируемым в блоке агрегации, в сумматор 103 в соответствии с запросом от сумматора 103.

Сумматор 103 может запрашивать «статистические данные» от агрегатора или каждого из блоков агрегации через предопределенные интервалы времени, например, каждые 10 секунд, и такой запрос, например, может быть выполнен в форме НТТР.

После того, как блок агрегации агрегатора принимает запрос от сумматора 103, он выстраивает последние статистические данные, относящиеся к формируемым посредством этого запросам доступа, в ответное сообщение, такое как ответное сообщение в форме НТТР, и отправляет ответное сообщение, содержащее последние статистические данные, в сумматор 103.

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

В соответствии с одним из вариантов осуществления изобретения, запись черного списка в черном списке может содержать следующие четыре параметра:

доменное имя адресата (хост),

идентификатор пользователя источника (uid),

IP-адрес клиента источника (cip), и

действие обработки (действие).

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

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

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

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

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

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

Балансировщик 101 нагрузки является фактическим исполнителем «действия обработки», задаваемого каждой записью в черном списке.

Конечно, белый список не обязательно сохраняется в сумматоре 103, а может также сохраняться, например, в балансировщике 101 нагрузки.

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

В соответствии с изобретением, балансировщик 101 нагрузки выполняет следующую обработку для каждого запроса доступа из сети в соответствии с черным списком и белым списком:

когда запрос доступа согласуется с белым списком или не согласуется с черным списком, запрос доступа пропускается, а соответствующее UDP-сообщение выстраивается и отправляется в агрегатор (поскольку только такой пропущенный трафик в действительности направляется в соответствующий внутренний сервер, агрегатору необходимо продолжать вычисление «статистических данных» таких запросов доступа); и

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

На фиг. 2 изображен способ ограничения запросов доступа из сети балансировщиком нагрузки в соответствии с изобретением.

На этапе S11 балансировщик нагрузки принимает запрос доступа из сети и интерпретирует принятый запрос доступа в UDP-сообщение.

На этапе S12 UDP-сообщение передается в агрегатор.

Затем балансировщик нагрузки определяет действие обработки по принятому запросу доступа в соответствии с текущим белым списком и текущим черным списком в балансировщике нагрузки, причем, черный список задает действия обработки по некоторым запросам доступа.

На этапе S13 балансировщик нагрузки принимает решение, согласуется ли запрос доступа с белым списком. Если это так, осуществляется переход к этапу S14, то есть, запрос доступа пропускается и отправляется в соответствующий внутренний сервер для последующего процесса. В противном случае процесс переходит к этапу S15.

На этапе S15 балансировщик нагрузки принимает решение, согласуется ли запрос доступа с черным списком. Если это не так, осуществляется переход к этапу S14, то есть, запрос доступа пропускается и отправляется в соответствующий внутренний сервер для последующего процесса. В противном случае процесс переходит к этапу S16.

На этапе S16 балансировщик нагрузки обрабатывает запрос доступа в соответствии с действием обработки, задаваемым согласованной записью в черном списке.

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

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

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

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

компонент приема для приема UDP-сообщения, отправляемого балансировщиком нагрузки, причем, UDP-сообщение формируется балансировщиком нагрузки, интерпретирующим запрос доступа из сети;

компонент вычисления, который накапливает принимаемые UDP-сообщения в соответствии с предопределенной комбинацией полей данных и предопределенной длительностью таким образом, чтобы сформировать статистические данные; и

компонент передачи, который отправляет текущие статистические данные в сумматор в соответствии с запросом от сумматора.

Для каждого запроса НТТР из сети он может интерпретироваться только балансировщиком 101 нагрузки в UDP-сообщение и передаваться в блок агрегации в кластере блоков агрегации агрегатора 102. Каждый блок агрегации накапливает число запросов доступа в соответствии с предопределенным условием, например, в соответствии с комбинацией конкретных полей данных, таких как идентификатор пользователя (userid), IP-адрес и универсальный идентификатор ресурса (uri) (то есть, комбинацией конкретных значений ​​, содержащихся в этих конкретных полях данных) в UDP-сообщении, и конкретную длительность.

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

Комбинация полей данных может представлять собой одно или более из следующего:

userid+ip+uri;

userid+uri;

ip+uri.

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

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

Подробный процесс вычисления статистики трафика одним блоком агрегации представляет собой следующее:

после того, как запущен процесс накопления, когда принято первое UDP-сообщение с комбинацией тех или иных полей данных, инициализируется соответствующая вариация, текущее время приема «первого UDP-сообщения» используется в качестве реального времени начала вычислений, число (total_count) запросов доступа устанавливается равным 1, время (start_time) начала устанавливается равным текущему времени, а величина продолжительности (lasting_length) времени устанавливается равной 0:

total_count=1;

start_time=время (NULL);

lasting_length=0.

При последующем вычислении накопления lasting_length представляет собой величину продолжительности времени от времени (start_time) начала вычисления до текущего времени (current_time).

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

(1) когда время приема сообщения попадает в первый предопределенный период от start_time (реального времени начала вычисления), число запросов доступа (total_count) постепенно увеличивается на 1, величина продолжительности времени представляет собой разность между текущим временем и start_time (если исходить из того, что предопределенная длительность установлена равной 60 секундам, то один час делится на 60 периодов с предопределенной длительностью, а «первый предопределенный период» в соответствии с этим относится к первому периоду величиной 60 секунд от реального времени начала вычисления);

(2) когда время приема сообщения попадает во второй предопределенный период непосредственно после первого предопределенного периода, start_time (реальное время начала вычисления) будет обновляться, причем, время приема сообщения используется в качестве конца нового периода с величиной, равной предопределенной длительности, при этом время начала нового периода (т.е., время, получаемое путем вычитания предопределенной длительности с времени приема сообщения) отмечается как реальное время начала вычисления; затем параметр total_count (т.е., число запросов доступа) обновляется сначала вычислением QPS для первого периода, умножением QPS на длительность нового периода, частично перекрывающего первый период, а затем постепенным приращением результата на 1; при этом величина длительности времени обновляется на предопределенную длительность; и

(3) когда время приема сообщения попадает в период после второго периода, текущее время приема устанавливается равным реальному времени начала вычисления, число запросов доступа сбрасывается на 1, величина длительности времени равна 0, то есть, такой случай рассматривается как инициализация, а затем трафик будет вычисляться повторно.

Если принять предопределенную длительность величиной 60 секунд в качестве примера, соответствующие псевдокоды алгоритма будут иметь следующий вид:

diff=current_time - start_time;

if (diff < 60 * X) { # когда время приема попадает в первый период

total_count ++; lasting_length=diff;

} else if (diff > 2 * 60 * X) { # когда время приема попадает в период после второго периода времени

total_count=1;

start_time=current_time;

lasting_length=0;

} else { # когда время приема попадает во второй период времени

start_time=current_time - 60 * x;

total_count=total_count-total_count/60/X * (diff - 60 * X)+1;

lasting_length=60 * X;

}

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

Обработка суммирования сумматора 103 и формирование черного списка подробно описываются ниже.

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

Конструкция и конкретный принцип работы сумматора 103 изображены на фиг. 3.

Сумматор 103 содержит компонент 1031 приема, компонент 1032 формирования, компонент 1033 прослушивания, конфигурационный файл 1036 и базу 1037 данных.

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

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

Указанные предопределенные комбинации полей данных могут представлять собой userid+ip+uri, ip+uri, userid+uri и так далее.

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

Когда число запросов с некоторой комбинацией полей данных превышает пороговое значение черного списка, относящееся к комбинации полей данных, предопределенной в конфигурацинном файле, например, 0,5 QPS (запроса в секунду), userid или ip добавляется в черный список, чтобы создать текущий черный список.

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

Кроме того, терминал 200 контроля системы может непосредственно получать данные из базы 1037 данных посредством HTTP-протокола, то есть, данные могут непосредственно экспортироваться в формате JSONS без использования сумматора 103.

Компонент 1033 прослушивания сумматора 103 используется для предоставления черного списка в балансировщик 101 нагрузки. Когда балансировщик 101 нагрузки инициирует запрос, компонент 1033 прослушивания получает текущий черный список и отправляет текущий черный список в балансировщик 101 нагрузки вместе с белым списком.

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

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

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

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ОГРАНИЧЕНИЯ ПАКЕТНЫХ ЗАПРОСОВ УСЛУГИ 2016
  • Ли Вэйци
RU2678643C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРОЦЕССА ДЕМОНСТРАЦИИ СЕТЕВЫХ ДАННЫХ 2015
  • Ло Цзиньсун
RU2679729C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ПЛАНИРОВАНИЯ WEB-ОБХОДЧИКОВ В СООТВЕТСТВИИ С ПОИСКОМ ПО КЛЮЧЕВЫМ СЛОВАМ 2015
  • Ляо Яохуа
  • Ли Сяовэй
RU2645266C1
Способ и устройство для быстрой обработки заказа 2018
  • Гао Линьцзе
RU2753450C1
СПОСОБ И СИСТЕМА ДЛЯ УВЕЛИЧЕНИЯ СКОРОСТИ ЗАГРУЗКИ СТРАНИЦЫ 2016
  • Лэй Нин
RU2691838C2
СПОСОБ И УСТРОЙСТВО ДЛЯ СОХРАНЕНИЯ ДАННЫХ С ВЫСОКОЙ СТЕПЕНЬЮ МНОГОПОТОЧНОСТИ 2016
  • Лань Цзянь
RU2666245C1
СПОСОБ И УСТРОЙСТВО ДЛЯ СРАВНЕНИЯ СХОЖИХ ЭЛЕМЕНТОВ ВЫСОКОРАЗМЕРНЫХ ПРИЗНАКОВ ИЗОБРАЖЕНИЙ 2016
  • Линь Сидун
  • Моу Чуань
RU2686590C1
СПОСОБ И СИСТЕМА ЗАГРУЗКИ ВЕБ-СТРАНИЦ 2015
  • Ян Пэн
RU2668734C1
Система и способ обработки заметки скриншотного типа для потокового документа 2017
  • Цзян Тенань
  • Луо Цин
RU2732892C2
Способ и устройство для онлайн-предпросмотра документа 2017
  • Ван Жуйбо
RU2729053C1

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

Реферат патента 2018 года СИСТЕМА И СПОСОБ ДЛЯ ОГРАНИЧЕНИЯ ЗАПРОСОВ ДОСТУПА

Группа изобретений относится к системе и способу для ограничения запросов доступа. Технический результат – обеспечение защиты доступа сети. Для этого в системе балансировщик нагрузки принимает запрос доступа, интерпретирует принятый запрос доступа в UDP-сообщение и передает UDP-сообщение в агрегатор; агрегатор накапливает принятое UDP-сообщение в соответствии с предопределенной комбинацией полей данных и предопределенной длительностью таким образом, чтобы сформировать статистические данные, и отправляет статистические данные в сумматор в ответ на запрос от сумматора; сумматор запрашивает статистические данные от агрегатора в соответствии с предопределенным временным интервалом запроса, принимает статистические данные от агрегатора, формирует черный список для запросов доступа в соответствии с принимаемыми статистическими данными и предопределенным правилом и отправляет черный список в балансировщик нагрузки в ответ на запрос от балансировщика нагрузки. Балансировщик нагрузки определяет действие обработки по каждому из принимаемых запросов доступа в соответствии с текущим черным списком. 2 н. и 10 з.п. ф-лы, 3 ил.

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

1. Система для ограничения запросов доступа, причем система содержит балансировщик нагрузки, агрегатор и сумматор, в которой

балансировщик нагрузки выполнен с возможностью приема каждого запроса доступа из сети, интерпретации принятого запроса доступа в UDP-сообщение и передачи UDP-сообщения в агрегатор;

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

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

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

2. Система по п. 1, в которой статистические данные включают в себя число UDP-сообщений, содержащих предопределенную комбинацию полей данных, накопленных в течение предопределенной длительности.

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

сумматор принимает статистические данные от множества блоков агрегации соответственно и формирует суммарные статистические данные, и

черный список формируется на основе суммарных статистических данных и предопределенного правила.

4. Система по п. 1, в которой

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

балансировщик нагрузки определяет для каждого из принимаемых запросов доступа действие обработки по запросу доступа следующим образом:

когда запрос доступа согласуется с одной из записей в белом списке или не согласуется ни с одной из записей в черном списке, запрос доступа пропускается, и

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

5. Система по п. 4, в которой предопределенный белый список в балансировщике нагрузки получается из сумматора вместе с черным списком.

6. Система по п. 1, в которой действие обработки, задаваемое в черном списке, включает в себя одно из следующего: перехват, переадресация и задержка.

7. Способ ограничения запросов доступа, причем, способ включает в себя следующее:

балансировщик нагрузки принимает каждый запрос доступа из сети, интерпретирует принимаемый запрос доступа в UDP-сообщение и передает UDP-сообщение в агрегатор; и

балансировщик нагрузки определяет действие обработки по принимаемому запросу доcтупа в соответствии с текущим черным списком, причем черный список задает действие обработки, выполняемое по каждому из одного или более конкретных запросов доступа;

причем

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

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

8. Способ по п. 7, в котором статистические данные включают в себя число UDP-сообщений, содержащих предопределенную комбинацию полей данных, накопленных в течение предопределенной длительности.

9. Способ по п. 7, в котором

агрегатор содержит множество блоков агрегации, работающих независимо друг от друга, балансировщик нагрузки передает каждое UDP-сообщение в один из множества блоков агрегации, и каждый из множества блоков агрегации выполняет накопление соответственно,

сумматор принимает статистические данные от множества блоков агрегации соответственно и формирует суммарные статистические данные, и

черный список формируется на основе суммарных статистических данных и предопределенного правила.

10. Способ по п. 7, в котором

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

балансировщик нагрузки определяет для каждого из принимаемых запросов доступа действие обработки по запросу доступа следующим образом:

когда запрос доступа согласуется с одной из записей в белом списке или не согласуется ни с одной из записей в черном списке, запрос доступа пропускается, и

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

11. Способ по п. 10, в котором предопределенный белый список в балансировщике нагрузки получается из сумматора вместе с черным списком.

12. Способ по п. 7, в котором действие обработки, задаваемое в черном списке, включает в себя одно из следующего: перехват, переадресация и задержка.

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

Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
US 7478429 B2, 13.01.2009
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
Способ получения тонкой базы 1960
  • Курносов А.И.
  • Сидоров Ю.И.
  • Сущик А.С.
SU133954A1

RU 2 666 289 C1

Авторы

Вэн Чжи

Сяо Сысин

Даты

2018-09-06Публикация

2016-01-08Подача