СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ БОТОВ И ЗАЩИТЫ ОТ НИХ Российский патент 2020 года по МПК G06F21/56 

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

ОБЛАСТЬ ТЕХНИКИ

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

[0002] Боты - это специальные программы, выполняющие автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.

[0003] Под интеллектуальным ботом в контексте данной заявки понимается программа/устройство, которая/ое выполняет заданные действия на веб-сайте (веб-странице) или на смартфоне, имитируя поведение человека.

[0004] В качестве пример будет рассмотрен скрепер (bot-scraper) - разновидность интеллектуального бота, который предназначен для автоматического сбора контента, например, информации о номенклатуре товаров и расценок на них.

[0005] Веб-скрепинг используется для целевого поиска, а также в качестве компонента разработок, используемых для веб- индексации, веб-майнинга и интеллектуального анализа данных, онлайн-мониторинга изменения цен и сравнения цен, для наблюдения за конкуренцией, сбора данных, которые могут быть чьей-то собственностью, в том числе и персональных (пример использования веб-скрепинга современными компаниями можно найти по ссылке: https://hightech.fm/2018/08/02/scraper).

[0006] В качестве примера защищаемого сайта может рассматриваться интернет-витрина торговой сети, содержащая большое количество товарных позиций, каждая из которых имеет поля «Название», «Артикул», «Цена». При этом торговая сеть не заинтересована в том, чтобы конкуренты могли автоматически получать с интернет-витрины информацию обо всей номенклатуре товарных позиций и соответствующих расценках. Конкуренты, в свою очередь, могут использовать боты-скреперы, чтобы такую информацию получить.

[0007] Как правило, бывает трудно определить, что активность на сайте вызвана действиями интеллектуального бота (в частности скрепера), так как в настоящее время подобные боты достаточно хорошо маскируют свои действия под действия реальных пользователей (см., например, бота http://botzilla.ru/).

[0008] Предлагаемое решение позволяет уверенно различать действия живых посетителей и интеллектуальных ботов, а также имеется возможность выявлять из них легитимных ботов (например, бота, индексирующего страницы, «crawler» от Google).

[0009] Одним из известных методов выявления интеллектуальных ботов основывается на анализе файлов куки (cookie) - это строки данных, которые хранятся непосредственно в браузере. Они являются частью HTTP-протокола, определенного в спецификации RFC 6265. Во время посещения веб-сайта на компьютере создается временный файл куки (cookie), в котором, например, сохраняется идентификатор сессии, что избавляет пользователя от необходимости повторного ввода учетных данных при переходе на другую страницу.

[0010] Это решение предназначено, чтобы усовершенствовать подход, основанный на анализе файлов куки.

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

[0011] Широко известный способ обнаружения интеллектуальных ботов, в частности скреперов, подразумевает использование куки (cookie), порождаемой сайтом при открытии сессии (то есть при первом обращении посетителя к странице), и дальнейшей проверки наличия этой куки во всех запросах к последующим страницам.

[0012] Скреперы, в свою очередь, обходят такую защиту, получая куку при первом заходе на сайт (что «выглядит» для сайта как визит человека-посетителя), а затем подставляя эту куку во все остальные запросы к сайту, выполняемые уже без браузера.

[0013] Из уровня техники известно решение, направленное на решение описанной выше проблемы (см. патент US 9906514 В1 от 27.02.18, «Resisting anonymous scraping»). В описанном в патенте способ содержит: в компьютерной системе, поддерживающей веб-сайт, установление первого соединения с клиентским устройством; определение того, что во время установления первого соединения связи не был принят сигнал, который идентифицирует клиентское устройство или пользователя клиентского устройства; в ответ на определение того, что не был принят сигнал, который идентифицирует клиентское устройство или пользователя клиентского устройства, передавая клиентскому устройству во время первого соединения связи токен, сконфигурированный для идентификации клиентского устройства или пользователя клиентского устройства, причем токен сконфигурирован для возврата в компьютерную систему, когда устанавливается последующее соединение между клиентским устройством и компьютерной системой; в компьютерной системе, после разрыва первого соединения связи, устанавливают второе соединение связи с клиентским устройством; определение того, что токен не был получен от клиентского устройства во время установления второго соединения связи; и в ответ на определение того, что токен не был получен во время установления второго коммуникационного соединения, активируя один или несколько методов, которые позволяют противодействовать соскабливанию веб-сайта. Причем токен представляет собой файл куки; и токен, если он получен во время установления второго соединения связи, является сигналом, который идентифицирует клиентское устройство или пользователя клиентского устройства.

[0014] Из уровня техники также известно решение (см. патент US 9420049 В1 от 16.07.16, «Client side human user indicator»). В описанном в патенте способе происходит прием устройством управления сетевым трафиком запроса от устройства веб-клиента на получение веб-контента от устройства веб-сервера; размещение устройством диспетчера сетевого трафика языкового сценария на стороне клиента в ответ на запрос, полученный от устройства веб-сервера и подлежащий отправке на устройство веб-клиента, причем языковой запрос на стороне клиента содержит прослушиватель событий для обнаружения человеческой деятельности на устройстве веб-клиента и флаг доступа для указания, когда устройству веб-клиента предоставляется доступ к устройству веб-сервера; прием устройством управления сетевым трафиком собранной информации из языкового запроса на стороне клиента; анализ вычислительным устройством управления сетевым трафиком собранной информации, чтобы определить, когда обнаружен индикатор человеческой деятельности, связанный с устройством веб-клиента; и отправку устройством диспетчера сетевого трафика последующего принятого запроса на устройство веб-сервера и установку флага доступа, чтобы указать, что устройству веб-клиента предоставлен доступ к устройству веб-сервера для предварительно определенного числа последующих принятых запросов из Интернета.

[0015] Из уровня техники известно еще одно решение (см. патент US 10270792 В2 от 23.04.19, «Methods for detecting malicious smart bots to improve network security and devices thereof»). В описанном в патенте способе происходит обнаружение вредоносных интеллектуальных ботов для повышения безопасности сети на основе: отправки веб-страницы одному из клиентских устройств в ответ на запрос на веб-ресурса, полученный с одного из клиентских устройств, причем веб-страница содержит внедренный код на стороне клиента для анализа свойств, который сконфигурирован для получения и возврата данных свойств для веб-браузера, указанного в заголовке пользовательского агента запроса; ответ, включающий возвращенные данные о свойствах, принимается от одного из клиентских устройств, причем возвращенные данные о свойствах сравниваются с ожидаемыми данными о свойствах для веб-браузера, указанными в заголовке пользовательского агента запроса, при этом оценка основывается, по меньшей мере, частично на сравнении и при этом определяется, когда оценка превышает установленный порог. Далее веб-ресурс извлекается и предоставляется одному из клиентских устройств, когда определение указывает, что оценка превышает установленный порог.

[0016] Известные из уровня техники решения отличаются от описанного в данном документе решения тем, что: в результате анализа ответа известные из уровня техники решения выставляют серверную куки на домен, на основании которого потом пропускают или останавливают запросы или же повторно посылают на контрольную страницу. Недостатком такого подхода является то, что он не защищает от копирования используемой куки из браузера и ее повторного использования ботом. Стоит отметить, что дополнительное отличие от решения US 10270792 В2 состоит в том, что в рассматриваемом прототипе не генерируется одноразовая кука прямо в браузере клиента без обращения к серверной части для ее генерации.

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

[0018] Настоящие изобретение создано для решения части выявленных при анализе выше проблем предшествующего уровня техники.

РАСКРЫТИЕ (СУЩНОСТЬ) ИЗОБРЕТЕНИЯ

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

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

[0021] Данный технический результат достигается за счет предложенного способа обнаружения вредоносных интеллектуальных ботов, реализованного системой обнаружения вредоносных интеллектуальных ботов, причем способ содержит этапы, на которых:

[0022] в ответ на запрос загрузки веб-страницы с контентом, полученный на клиентском устройстве, проверка прокси-сервером наличия серверной и/или клиентской кук;

[0023] отправка прокси-сервером контрольной веб-страницы, содержащей ссылку на загрузку Java-Script-модуля (JSM) в случае отсутствия или некорректности серверной и/или клиентской кук;

[0024] загрузка JSM модуля на клиентском устройстве, отправка им запроса к устройству анализа данных для получения серверной куки и на основе этого дальнейшая генерация клиентской куки;

[0025] отправка запроса на загрузку веб-страницы, причем в запрос включены серверная и клиентская куки;

[0026] проверка прокси-сервером наличия серверной и клиентской куки,

[0027] причем если куки легитимны, то определение события запроса загрузки первой веб-страницы как действий пользователя и предоставление веб-сервером контента запрошенной клиентским устройством веб-страницы,

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

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

[0030] в ответ на запрос загрузки веб-страницы с контентом, полученный на клиентском устройстве, проверку прокси-сервером наличия серверной и/или клиентской кук;

[0031] отправку прокси-сервером контрольной веб-страницы, содержащей ссылку на загрузку Java-Script-модуля (JSM) в случае отсутствия или некорректности серверной и/или клиентской кук;

[0032] загрузку JSM модуля на клиентском устройстве, отправку им запросу к устройству анализа данных для получения серверной куки и на основе этого дальнейшая генерация клиентской куки;

[0033] отправку запроса на загрузку веб-страницы, причем в запрос включены серверная и клиентская куки;

проверку прокси-сервером наличия серверной и клиентской куки,

[0034] причем если куки легитимны, то определять событие запроса загрузки первой веб-страницы как действие пользователя и предоставлять веб-сервер контента запрошенную клиентским устройством веб-страницу,

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

[0036] В одном частном варианте заявленного решения JSM модуль может храниться как на устройстве анализа данных, так и на веб-сервере контента.

[0037] В одном частном варианте заявленного решения JSM модуль может генерироваться динамически.

[0038] В одном частном варианте заявленного решения для шифрования серверной куки используется любой алгоритм шифрования..

[0039] В одном частном варианте заявленного решения клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве.

[0040] В одном частном варианте заявленного решения клиентская кука является одноразовой.

[0041] В одном частном варианте заявленного решения кука, генерируемая на клиентском устройстве, обновляется каждый раз при целевом запросе с клиентского устройства к веб-серверу приложений.

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

[0043] В одном частном варианте заявленного решения дополнительно содержащий этапы, на которых, в ответ на запрос загрузки второй веб-страницы с контентом:

[0044] генерация JSM второй клиентской куки;

[0045] отправка JSM запроса на загрузку второй веб-страницы, причем в запрос включены серверная и вторая клиентская куки;

[0046] проверка прокси-сервером наличия серверной и второй клиентской куки,

[0047] причем если куки легитимны, то определение события запроса загрузки второй веб-страницы как действий пользователя и предоставление запрошенной клиентским устройством второй веб-страницы.

[0048] В одном частном варианте заявленного решения вторая клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве.

[0049] В одном частном варианте заявленного решения вторая клиентская кука, генерируемая на клиентском устройстве, является одноразовой.

[0050] В одном частном варианте заявленного решения дополнительно содержащий этапы, на которых, в ответ на запрос загрузки второй веб-страницы с контентом:

[0051] отправка запроса на загрузку второй веб-страницы, причем в запрос включены серверная и/или вторая клиентская куки;

[0052] проверка прокси-сервером наличия серверной и второй клиентской куки,

[0053] причем если куки нелегитимны, то определение события запроса загрузки второй веб-страницы как действий вредоносных интеллектуальных ботов, и отправка на клиентское устройство первой куки и контрольной веб-страницы.

[0054] В одном частном варианте заявленного решения серверная кука обновляется каждый раз при запросе к устройству анализа данных.

[0055] В одном частном варианте заявленного решения запросы к устройству анализа данных в сетевом трафике приходят раз в заданный промежуток времени.

[0056] В одном частном варианте заявленного решения к ответным действиям относятся по меньшей мере: перенаправление на страницу входа на веб-сайт; показ данных, отличающихся от реальных данных, доступных легитимным пользователям; отображение кода 404 веб-страницы, предоставление доступа к отдельным частям сайта, не требующим защиты, занесение определенного вредоносного адреса IP в черный список.

[0057] В одном частном варианте заявленного решения JSM модуль генерируется динамически для разных сессий работы с веб-ресурсом для защиты от раскрытия функции генерации клиентской куки на основе серверной куки.

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

[0057] Фиг. 1 иллюстрирует примерный вариант реализации системы обнаружения интеллектуальных ботов в сетевом трафике

[0058] Фиг. 2 иллюстрирует примерный вариант реализации системы обнаружения вредоносных интеллектуальных ботов, при которой прокси-сервер встроен в веб-сервер контента

[0059] Фиг. 3 иллюстрирует этапы способа обнаружения интеллектуальных ботов в сетевом трафике в системе обнаружения интеллектуальных ботов

[0060] Фиг. 4 иллюстрирует блок-схему этапов способа обнаружения вредоносных интеллектуальных ботов в сетевом трафике

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

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

[0062] Настоящее изобретение, как предполагается, не является ограниченным показанными вариантами осуществления, но должно соответствовать самым широким возможным рамкам, совместимым с принципами и признаками, описанными в настоящем документе.

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

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

[0065] На фиг.1 представлен примерный вариант реализации клиент-серверной архитектуры системы обнаружения интеллектуальных ботов в сетевом трафике.

[0066] Предполагаемое клиент-серверное решение по фиг.1 содержит следующие функциональные блоки.

[0067] Пользователей веб-сайта и/или приложений/служб, подключающихся к системе через клиентские устройства (110), которые могут представлять собой стационарные устройства (например, настольный компьютер, рабочая станция, или устройство IoT) и/или мобильные устройства (например, смартфон, планшетный компьютер, ноутбук), для взаимодействия с клиентскими приложениями, такими как браузер или приложение, разработанное для доступа к какой-нибудь системе/услуге.

[0068] Клиентские устройства (110) подключаются к системе через прямые каналы и/или одну или несколько сетей или других общих каналов, которые могут включать в себя Интернет, интрасети и/или другие сети, и могут включать в себя проводные и/или беспроводные линии связи.

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

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

[0071] Причем стоит отметить, что приведенная в описываемом решении схема эффективна для выявления как шел-ботов (shell bots), которые производят прямые вызовы к API веб-сервера контента (120), имитирующие действия пользователя на сайте, так и для выявления более умных ботов, которые воспроизводят действия в браузерном окружении клиентского устройства (PhantomJS, Selenium, etc.) или же гибридных версий ботов.

[0072] Кроме того, по меньшей мере один сервер контента (120) соединен с устройством анализа данных (130), представляющим собой по меньшей мере один бэкенд сервер, и прокси-сервером (131) с целью предоставления возможности проверки, поступающих на веб-сервер контента (120) запросов от пользовательского устройства (110) для последующего разграничения доступа к веб-сайту для интеллектуальных ботов и реальных пользователей. Стоит отметить, что прокси-сервер (131) является устройством контроля доступа и может быть реализован как на отдельном физическом устройстве, подключенном к сети, так и на веб-сервере контента (см. фиг 2) или на устройстве анализа данных сетевого трафика (130).

[0073] Каждое из серверных устройств системы обнаружения вредоносных интеллектуальных ботов в этом примере включает в себя один или несколько процессоров, память и интерфейс связи, которые соединены вместе шиной или другим каналом связи, хотя могут быть использованы другие типы сетевых устройств. Серверные устройства обрабатывают запросы, принятые от клиентских устройств через сеть связи, например, в соответствии с протоколом RFC приложения на основе HTTP. Различные приложения могут работать на серверных устройствах (120) и передавать данные (например, файлы или веб-страницы) на клиентские устройства через прокси-сервер (131) в ответ на запросы от клиентских устройств (110). Серверные устройства могут быть аппаратными или программными, или могут представлять систему с несколькими серверами в пуле, которая может включать в себя внутренние или внешние сети.

[0074] Хотя серверные устройства показаны как отдельные устройства, одно или несколько действий каждого из серверных устройств могут быть распределены по одному или нескольким различным сетевым вычислительным устройствам, которые вместе составляют одно или несколько серверных устройств. Кроме того, серверные устройства не ограничены конкретной конфигурацией. Таким образом, серверные устройства могут содержать множество сетевых вычислительных устройств, которые работают с использованием подхода «главный / подчиненный», посредством чего одно из сетевых вычислительных устройств серверных устройств управлять и/или иным образом координировать операции других сетевых вычислительных устройств. Серверные устройства могут работать, например, как множество сетевых вычислительных устройств в кластерной архитектуре, одноранговой архитектуре, виртуальных машинах или в облачной архитектуре.

[0075] Функциональные возможности, приписываемые в данном документе системе, могут распределяться между ее компонентами альтернативным способом, например, путем слияния или дальнейшего разделения функций одного или нескольких компонентов, или могут распределяться среди другой совокупности компонентов. Кроме того, хотя он изображен как отдельные и отдельные аппаратные компоненты (например, компьютерные серверы) на фиг.1, один или несколько пользователей (110) и веб-сервера(-ов) контента (120) могут альтернативно быть реализованы как отдельные программные модули, выполняющиеся на одном или нескольких компьютерных серверах. Таким образом, хотя только один вариант конкретного компонента системы может быть проиллюстрирован на фиг.1, следует понимать, что могут быть использованы другие комбинации компонентов, входящих в систему.

[0076] Таким образом, фиг.3 представляет собой проиллюстрированный пример последовательности операций, демонстрирующий способ обнаружения вредоносных интеллектуальных ботов. В других вариантах осуществления одна или несколько проиллюстрированных операций могут быть опущены, повторены и/или выполнены в другом порядке. Соответственно, конкретное расположение этапов, показанное на фиг.3, не следует истолковывать как ограничение объема вариантов осуществления.

[0077] На этапе 202 пользователь перемещается по браузеру (или другому сопоставимому приложению), работающему на электронном устройстве пользователя (110) с целью посещения веб сайта, хранящегося на веб-сервере контента (120) и отправляет запрос загрузки первой веб-страницы с контентом.

[0078] Обычно при входе на сайт сервер отсылает в ответ HTTP-заголовок <Set-Cookie> для того, чтобы, например, установить куки со специальным уникальным идентификатором сессии («session identifier»). Во время следующего запроса к этому же домену браузер посылает на сервер HTTP-заголовок <Cookie> и таким образом понимает, кто сделал запрос. Также можем получить доступ к куки непосредственно из браузера, используя свойство <document.cookie>.

[0079] Стоит отметить, что этап 202 может иметь дополнительный шаг (этап 202.1), на котором на прокси-сервере (131) и устройстве анализа данных (130) проверяется URI по следующим параметрам: содержится ли этот URI в белом списке (статические ресурсы (картинки, js, и т.д); адрес передачи кук и передачи информации; детект (то есть запрос распознан). На основе выполненной проверки принимается решение о дальнейших действиях, то есть если проверка пройдена успешно, то запрос источника пропускается, т.к. источник - легальный бот (whitebot), если проверка не пройдена, то способ переходит к этапу 204.

[0080] Далее, на этапе 204 в ответ на запрос загрузки первой веб-страницы с контентом, полученный от пользователя на клиентском устройстве (110) происходит проверка прокси-сервером (131) наличия куки, полученного от устройства пользователя (110).

[0081] Если принято куки, которое указывает, что пользователь, запрашивающий веб-страницу, вряд ли является вредоносным интеллектуальным ботом, способ переходит к операции 214; в противном случае, если кук нет или они имеют не правильный формат (т.е. не декодируются), способ продолжается на этапе 206.

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

[0083] Кроме того, под запросом загрузки в контексте данной заявки может также пониматься AJAX-запрос на получение данных, совершение каких-либо действий, при которых страница не будет перегружаться, а также иные действия в одностраничных веб-приложениях (Single Page Application, SPA) и т.п.

[0084] На этапе 206 прокси-сервер (131), определив, что клиентские куки в запросе отсутствуют и/или невалидны, возвращает контрольную страницу, содержащую ссылку на загрузку Java-Script-модуля (JSM).

[0085] Стоит отметить, что контрольная страница может быть или страницей, не содержащей контента, или приветственной страницей сайта, или любой другой страницей, которую веб-сайт может предоставить в ответ на первый запрос загрузки, не потерпев при этом значительного ущерба.

[0086] Кроме того, в частных вариантах реализации JSM модуль может храниться как на веб-сервере контента (120), так и на устройстве анализа данных (130).

[0087] Кроме того, в дополнительных вариантах осуществления устройство анализа данных (130) может генерировать веб-страницу, вводить исходный код на стороне клиента для дальнейшего анализа поведения клиента (JSM-модуль). Таким образом, JSM-модуль также может дополнительно получать информацию о веб-браузере, о поддержке определенных API, функций HTML5 или CSS и др.

[0088] Стоит отметить, что JSM модуль содержит внедренный код для обновления клиентской куки при каждом AJAX запросе браузера на клиентской стороне (110).

[0089] После выполнения JSM-модуля в веб-браузере клиентского устройства (110) устройство анализа данных (130) может принимать информацию о возможностях клиентского окружения клиента (110) и генерировать на основе принятой информации вердикт, содержащийся в серверной куки.

[0090] Следовательно, полученные данные являются основой для анализа, является ли источник сетевого трафика реальным браузером клиентского устройства (110) или эмулированным браузером, связанным с вредоносным интеллектуальным ботом.

[0091] При этом стоит отметить, что устройство анализа данных (130) содержит базу данных, в которой хранятся записи о стандартных характеристиках для различных типов и/или версий веб-браузеров (например, на основе user agent). Например, Google Chrome поддерживает масштабирование CSS, события указателя, редакторы метода ввода, события указателя и API редактора метода ввода, вибрации API, Anchor API, но не поддерживает API геймпада, Push API. Кроме того, в частном варианте осуществления подобная база данных может подключаться от стороннего производителя.

[0092] Соответственно устройство анализа данных (130) может сравнивать задекларированные возможности, о которых известно в базе данных или сторонних источниках с данными, возвращенными от клиентского окружения. При этом устройство анализа данных добавляет информацию о трафике в <header> пересылаемого user info.

[0093] Стоит отметить, что JSM модуль, после выполнения в браузере клиентского устройства (110) выполняет запросы к устройству анализа данных (130). Такие запросы приходят не реже, чем заданный промежуток времени <alive timeout>, например, такое время может составлять порядка 45 секунд.

[0094] Далее на этапе 208 клиентское устройство (110) загружает JSM модуль, который генерирует первую уникальную клиентскую куку, причем первая уникальная клиентская кука (fgssc) генерируется JSM модуль на основе первой уникальной серверной куки и информации о клиентском окружении (fgssc(gssc)).

[0095] Стоит отметить, что серверная кука (gssc) генерируется при каждом запросе к устройству анализа данных (130). Также серверная кука (gssc) генерируется с использованием криптостойкого алгоритма, что не позволяет ее подделать и посмотреть на клиентском устройстве. Внутри серверной куки (gssc) заложено время генерации и вердикт (user info), причем вердикт - это указание на дальнейшее действие: блокировать или нет, а также если да, то почему.

[0096] Кроме того, стоит отметить, что запрос на получение кук (и передача необходимой информации об окружении пользователя) идет на URI, который заранее включен в «белый список» и пропускается всегда.

[0097] В одном из частных вариантов реализации заявленного изобретения генерация клиентской куки подразумевает использование так же счетчика, который позволит между клиентскими куками выстроить последовательность их генерации для исключения случаев, в которых вредоносные интеллектуальные смогут научиться генерировать необходимые куки. Так, генерируется одноразовая кука на каждый запрос, при этом в ней присутствует инкрементальный идентификатор, например, если прокси-сервер для проверки получает куку с id=n, а далее приходит кука с id<n, то даже если эту куку (одноразовую) еще ни разу не использовали, то все равно она уже считается устаревшей. Описанный процесс фильтрации ухудшает возможность генерации id вперед и параллельных запросов, даже если алгоритм генерации станет известен.

[0098] Кроме того, стоит отметить, что для компенсации угрозы рассекречивания функции генерации клиентской куки (fgssc), JSM модуль может генерироваться динамически, т.е для разных клиентских устройств загружается разная версия JSM модуля, причем прокси сервер должен это учитывать. Такой подход позволит избежать масштабирования атаки за счет реверс-инжиниринга одной из версий JSM модуля.

[0099] Стоит отметить, что сгенерированная первая клиентская кука (fgssc(gssc)) является одноразовой. Кроме того, стоит отметить, что клиентская кука обновляется каждый раз при целевом запросе с клиентского устройства к веб-серверу контента, причем под целевым запросом понимается загрузка страницы, выгрузка страницы, любые AJAX-запросы и д.р.

[0100] После способ переходит на этап 210, на котором JSM модуль на клиентском устройстве (110) отправляет запрос на загрузку первой веб-страницы, причем в запрос включены серверная и первая клиентская куки.

[0101] Далее описываемый способ возвращается к выполнению этапов 202.1 и 204, на которых прокси сервер (131) проверяет наличие серверной и второй клиентской куки и классифицирует произошедшее событие загрузки страницы (этап 214). Дополнительно стоит отметить, что прокси-сервер (131) может расшифровывать серверную куку и на основе вынесенного вердикта устройства анализа данных (130) принимать решения о блокировки запросов к веб-серверу контента (120).

[0102] В первом случае, если куки легитимны, то событие запроса загрузки веб-страницы определяется как действия пользователя и далее веб-сервер (120) предоставляет запрошенную клиентским устройством (110) веб-страницу (216).

[0103] Во втором случае, если куки нелегитимны и/или внутри серверной куки (gssc) содержится негативный вердикт, то событие запроса загрузки веб-страницы определяется как действия вредоносных интеллектуальных ботов (в частности, например, бота-скрепера), и далее на этапе (218) прокси-сервер (131) отправляет на клиентское устройство (110) контрольную веб-страницу, блокирует запрос, а веб-сервер (130) перенаправляет на страницу с капчей или принимает иные ответные действия (этап 220).

[0104] В частных вариантах реализации, к ответным действиям в качестве примера, но не ограничиваясь, относится перенаправление на страницу входа на веб-сайт; показ данных, отличающихся от реальных данных, доступных легитимным пользователям; отображение кода 404 веб-страницы, предоставление доступа к отдельным частям сайта, не требующим защиты, занесение определенного вредоносного адреса IP в черный список.

[0105] В частных вариантах реализации описанный способ может выполняться в режиме маркировки, то есть проходить этапы 202-210, а далее переходить к этапу (220), на котором на веб-сервере контента (120) принимается решение о дальнейших действиях в ответ на полученный запрос.

[0106] Также существует возможность создания «белых списков» (white list), настраиваемых на прокси-сервере (131) по запросу пользователей, причем упомянутый белый список содержит адреса IP и/или запросы, которые следует пропускать при любых обстоятельствах.

[0107] Кроме того, в частных вариантах реализации может предполагаться обеспечение защиты конкретной(ых) страниц(ы) веб-сайта, и/или защита конкретных элементов страницы веб-сайта.

[0108] В частном варианте реализации, на клиентском устройстве уже могут быть сохранены куки, которые были использованы в прошлом сеансе пользователя. В подобных случаях способ начинает работу на этапе 202 и этот запрос анализируется прокси-сервером, если куки отсутствуют и/или они невалидны, то прокси-сервер отправляет контрольную страницу и далее переходит на этапы 206-210 (см. фиг.4).

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

[0110] Когда из браузера поступает запрос на загрузку другой веб-страницы с контентом, то событие запроса загрузки другой веб-страницы могло произойти в двух случаях: (а) когда человек кликнул по ссылке на имеющейся у него странице, либо (в) когда бот-скрепер сформировал новый запрос, содержащий одну или обе ранее полученных куки.

[0111] В случае (а) происходит следующее. В ответ на запрос загрузки второй веб-страницы с контентом: генерация JSM модулем на клиентском устройстве (110) второй клиентской куки; отправка браузером на клиентском устройстве (110) запроса на загрузку другой веб-страницы, причем в запрос включены серверная и вторая клиентская куки (302); проверка прокси-сервером (131) наличия первой серверной и второй клиентской (304) куки, причем если представленные куки легитимны, то определение события запроса загрузки второй веб-страницы как действий пользователя и предоставление запрошенной клиентским устройством второй веб-страницы (306).

[0112] При этом вторая клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве, а также является временной.

[0113] В случае (в) происходит следующее: на этапе 402 отправляется запрос на загрузку другой веб-страницы, причем в запрос включены первая и/или вторая клиентские куки (фиг.2); проверка прокси-сервером (131) наличия серверной и второй клиентской куки, причем если куки нелегитимны, то определение события запроса загрузки второй веб-страницы как действий вредоносных интеллектуальных ботов, и отправка на клиентское устройство первой куки и контрольной веб-страницы (этап 404).

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

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

[0116] Стоит отметить, что в некоторых вариантах реализации система обнаружения вредоносных интеллектуальных ботов может выводить подробный отчет о событиях системы, в который могут входить, например, следующие данные: дата, время, название события, тип активности (бот/не бот), если бот, то почему и др.

[0117] Среда, в которой выполняются один или несколько вариантов осуществления, описанных выше, может включать в себя компьютер общего назначения или устройство специального назначения, такое как портативный компьютер, планшет, ноутбук или устройство связи. Некоторые подробности таких устройств (например, процессор, память, хранилище данных, облачное хранилище данных, дисплей и т.д.) могут быть опущены для ясности. Компонент, такой как процессор или память, которому приписываются одна или несколько задач или функций, может быть общим компонентом, временно сконфигурированным для выполнения указанной задачи или функции, или может быть конкретным компонентом, изготовленным для выполнения задачи или функции. Используемый здесь термин «процессор» относится к одной или нескольким электронным схемам, устройствам, микросхемам, ядрам обработки и/или другим компонентам, сконфигурированным для обработки данных и/или кода компьютерной программы.

[0118] Структуры данных и программный код, описанные в этом подробном описании, обычно хранятся на постоянном машиночитаемом носителе данных, которым может быть любое устройство или носитель, который может хранить код и/или данные для использования компьютерной системой. Постоянные машиночитаемые носители включают в себя, но не ограничиваются этим, энергозависимую память; энергонезависимая память; электрические, магнитные и оптические запоминающие устройства, такие как дисководы, магнитная лента, компакт-диски (компакт-диски) и DVD-диски (цифровые универсальные диски или цифровые видеодиски), твердотельные накопители и/или другие постоянные считываемые компьютером носители в настоящее время известный или разработанный позднее.

[0119] Способы и процессы, описанные в подробном описании, могут быть воплощены в виде кода и/или данных, которые могут храниться на постоянном машиночитаемом носителе данных, как описано выше. Когда процессор или компьютерная система считывает и выполняет код и манипулирует данными, хранящимися на носителе, процессор или компьютерная система выполняет методы и процессы, воплощенные в виде структур кода и данных и хранящиеся на носителе.

[0120] Кроме того, способы и процессы могут быть запрограммированы в аппаратные модули, такие как, но не ограничиваясь этим, микросхемы интегральных микросхем для конкретных приложений (ASIC), программируемые пользователем вентильные матрицы (FPGA) и другие программируемые логические устройства, известные в настоящее время или разработанные в дальнейшем, когда такой аппаратный модуль активирован, он выполняет методы и обработку, включенные в модуль.

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

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

название год авторы номер документа
Способ и система для динамической глобальной идентификации окружения пользователя 2020
  • Батенёв Александр Викторович
  • Крылов Павел Владимирович
RU2751436C1
СИСТЕМА И СПОСОБЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТЕВОГО МОШЕННИЧЕСТВА 2017
  • Дамьян Алин-Октавиан
RU2744671C2
БРОКЕР И ПРОКСИ ОБЕСПЕЧЕНИЯ БЕЗОПАСТНОСТИ ОБЛАЧНЫХ УСЛУГ 2014
  • Коэм Авирам
  • Мойси Лиран
  • Люттвак Ами
  • Резник Рой
  • Вишнепольски Грег
RU2679549C2
Способ и система предотвращения вредоносных автоматизированных атак 2020
  • Золотарев Виталий Геннадьевич
  • Барабанов Антон Алексеевич
  • Лексунин Олег Александрович
RU2740027C1
Способ и система предотвращения вредоносных автоматизированных атак 2021
  • Золотарев Виталий Геннадьевич
  • Барабанов Антон Алексеевич
  • Лексунин Олег Александрович
RU2768567C1
СПОСОБ ОЦЕНКИ СЕТЕВОЙ АТАКИ, СПОСОБ БЕЗОПАСНОЙ ПЕРЕДАЧИ ДАННЫХ СЕТИ И СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО 2016
  • Линь, Юйфэй
RU2685994C1
СПОСОБ, СИСТЕМА И УСТРОЙСТВО ДЛЯ ФИЛЬТРАЦИИ РЕКЛАМНЫХ ОБЪЯВЛЕНИЙ ВЕБ-СТРАНИЦ НА МОБИЛЬНОМ ТЕРМИНАЛЕ 2013
  • Жуань Шудун
  • Чжан Кай
  • Сюй Юй
RU2614572C2
Система и способ оценки опасности веб-сайтов 2015
  • Михальский Олег Олегович
  • Балепин Иван Владимирович
RU2622870C2
Система и способ внешнего контроля поверхности кибератаки 2021
  • Бобак Тим Джон Оскар
  • Волков Дмитрий Александрович
RU2778635C1
СИСТЕМА И СПОСОБ ПРОВЕРКИ ВЕБ-РЕСУРСОВ НА НАЛИЧИЕ ВРЕДОНОСНЫХ КОМПОНЕНТ 2010
  • Зайцев Олег Владимирович
  • Денисов Виталий Игоревич
RU2446459C1

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

Реферат патента 2020 года СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ БОТОВ И ЗАЩИТЫ ОТ НИХ

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении обнаружения вредоносных интеллектуальных ботов. Способ обнаружения вредоносных интеллектуальных ботов, в котором осуществляется, в ответ на запрос загрузки веб-страницы с контентом, полученный на клиентском устройстве, проверка прокси-сервером наличия серверной и/или клиентской куки; отправка прокси-сервером контрольной веб-страницы, содержащей ссылку на загрузку Java-Script-модуля (JSM) в случае отсутствия или некорректности серверной и/или клиентской кук; загрузка JSM модуля на клиентском устройстве, отправка им запроса к устройству анализа данных для получения серверной куки и на основе этого дальнейшая генерация клиентской куки; отправка запроса на загрузку веб-страницы, включающего серверную и клиентскую куки; проверка прокси-сервером наличия серверной и клиентской куки, и если куки легитимны, то определение события запроса загрузки первой веб-страницы как действий пользователя и предоставление веб-сервером контента запрошенной клиентским устройством веб-страницы, и если куки нелегитимны, то определение события запроса загрузки первой веб-страницы как действий вредоносных интеллектуальных ботов, отправка на клиентское устройство контрольной веб-страницы, блокировка запроса и совершение ответных действий. 2 н. и 28 з.п. ф-лы, 4 ил.

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

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

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

отправка прокси-сервером контрольной веб-страницы, содержащей ссылку на загрузку Java-Script-модуля (JSM) в случае отсутствия или некорректности серверной и/или клиентской кук;

загрузка JSM модуля на клиентском устройстве, отправка им запроса к устройству анализа данных для получения серверной куки и на основе этого дальнейшая генерация клиентской куки;

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

проверка прокси-сервером наличия серверной и клиентской куки,

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

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

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

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

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

5. Способ по п. 1, в котором клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве.

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

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

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

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

генерация JSM второй клиентской куки;

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

проверка прокси-сервером наличия серверной и второй клиентской куки,

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

10. Способ по п. 9, в котором вторая клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве.

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

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

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

проверка прокси-сервером наличия серверной и второй клиентской куки,

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

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

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

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

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

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

отправку прокси-сервером контрольной веб-страницы, содержащей ссылку на загрузку Java-Script-модуля (JSM) в случае отсутствия или некорректности серверной и/или клиентской кук;

загрузку JSM модуля на клиентском устройстве, отправку им запросу к устройству анализа данных для получения серверной куки и на основе этого дальнейшая генерация клиентской куки;

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

проверку прокси-сервером наличия серверной и клиентской куки,

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

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

17. Система по п. 16, в которой JSM модуль может храниться как на устройстве анализа данных, так и на веб-сервере контента.

18. Система по п. 16, в котором JSM модуль может генерироваться динамически.

19. Система по п. 16, в которой для шифрования серверной куки используется алгоритм шифрования.

20. Система по п. 16, в которой клиентская кука генерируется на основе серверной куки и информации о клиентском устройстве.

21. Система по п. 16, в которой клиентская кука является одноразовой.

22. Система по п. 16, в которой кука, генерируемая на клиентском устройстве, обновляется каждый раз при целевом запросе с клиентского устройства к веб-серверу приложений.

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

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

генерацию JSM второй клиентской куки;

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

проверку прокси-сервером наличия серверной и второй клиентской куки,

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

25. Система по п. 24, в которой вторая клиенсткая кука генерируется на основе серверной куки и информации о клиентском устройстве.

26. Система по п. 24, в которой вторая клиентская кука, генерируемая на клиентском устройстве, является одноразовой.

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

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

проверку прокси-сервером наличия серверной и второй клиентской куки,

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

28. Система по п. 16, в которой серверная кука обновляется кажный раз при запросе к устройству анализа данных.

29. Система по п. 16, в которой запросы к устройству анализа данных в сетевом трафике приходят раз в заданный промежуток времени.

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

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

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

US 10270792 B1, 23.04.2019
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
US 10326789 B1, 18.06.2019
US 9906514 B1, 27.02.2018
ПРИБОР ДЛЯ ГЛАЖЕНИЯ, СОДЕРЖАЩИЙ УТЮГ И ПОРТАТИВНУЮ ПОДСТАВКУ 2005
  • Дюжеле Бернар
  • Мэтр Паскаль
  • Джероро Амар
RU2383671C2
RU 2015132628 A, 15.02.2017.

RU 2 738 337 C1

Авторы

Крылов Павел Владимирович

Батенёв Александр Викторович

Даты

2020-12-11Публикация

2020-04-30Подача