СПОСОБ И УСТРОЙСТВО ДЛЯ МАНИПУЛИРОВАНИЯ СЕТЕВЫМ ТРАФИКОМ
METHOD AND DEVICE FOR NETWORK TRAFFIC MANIPULATION

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к способу и устройству для отслеживания и манипулирования сетевым трафиком и, в частности, для инсталляции приложений на удаленных терминалах.
УРОВЕНЬ ТЕХНИКИ
Во многих случаях полезно иметь возможность инсталляции приложений на объединенных в сеть удаленных терминалах, или модификации приложений, которые были загружены и инсталлированы из сети, даже прозрачно для пользователей таких терминалов. Рассмотрим, например, инсталляцию устройств управления, выполненных с возможностью осуществления отслеживания и уведомления об операциях, которые выполняются на терминале, в частности в контексте законного перехвата действий или вставки настроенного рекламного контента в приложения, загружаемые пользователем.
Для этой цели известны устройства, которые позволяют на лету модифицировать сетевой трафик: эти устройства основаны на методах внедрения кода. Эти методы позволяют перехватывать и модифицировать пакеты данных в пути по сети во время загрузки со стороны пользователя, который использует терминал, на который он желает инсталлировать приложение, как правило, упоминаемый как целевой терминал.
В общем, устройства, которые выполняют внедрение кода, являются устройствами связи, которые функционируют в поточном режиме: другими словами, трафик физически проходит через устройство связи, поступая через сетевой порт и исходя из другого порта. Одна сторона осуществляет связь с терминалом, или клиентом, а другая сторона осуществляет связь с сервером, с которым соединен пользователь. При прохождении трафика через устройство связи, устройство связи может модифицировать его контент, добавляя данные, которые необходимы для инсталляции требуемого приложения.
Тем не менее, устройства известного уровня техники имеют недостатки: в частности, требование, которое ограничивает их использование, состоит в необходимости физического размещения оборудования в середине линии связи. В некоторых случаях фактически невозможно реализовать разрыв кабеля для размещения устройства связи, чтобы сетевой трафик проходил через него. В других случаях данное функционирование, несмотря на то, что размещение возможно, требует разработки очень сложной архитектуры, в особенности если устройство связи должно быть вставлено в сеть Поставщика Услуг Интернет: в данном случае, по сути, необходимо гарантировать надежность и избыточность устройства связи в случае сбоя, поскольку нежелательно, чтобы при возникновении сбоя в устройстве связи происходили перебои в предоставлении сетевой услуги для целевого объекта.
Применительно к сети Интернет, другой недостаток возникает из того факта, что, в общем, точкой, в которой располагаются эти устройства связи, является восходящая линия связи поставщика, т.е. точка, через которую проходят все соединения заданной DSLAM в направлении сети Интернет. Эти линии связи группируют соединения сотен пользователей, и, соответственно, используемая полоса пропускания очень велика. Соответственно, поточное устройство связи, размещенное в данной точке, должно обладать такими характеристиками, которые гарантируют очень высокую производительность с тем, чтобы гарантировать то, что весь трафик проходит через него беспрепятственно, не ухудшая производительность. В самом деле, из-за производительности, которая должна гарантироваться, не столько применительно к модифицируемым соединениям, сколько применительно ко всем прочим соединениям, которые точно не подвергаются модификациям, стоимость этого оборудования очень высока.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Целью настоящего изобретения является разработка способа и устройства для манипуляции сетевым трафиком, которые выполнены с возможностью преодоления ограничений, накладываемых описанным выше известным уровнем техники.
В рамках данной цели задачей изобретения является предоставление устройства и способа для отслеживания сетевого трафика и для внедрения кода в сетевой трафик, не требуя того, чтобы упомянутый трафик физически проходил через устройство.
Другой задачей изобретения является предоставление устройства и способа, которые могут функционировать выборочно только в отношении соединений, которые должны быть модифицированы.
Другой задачей изобретения является предоставление операций по внедрению кода для конкретных целевых объектов, эффективно, рационально и прозрачно для упомянутых целевых объектов.
Другой задачей изобретения является предоставление устройства, которое является высоконадежным, относительно простым в обеспечении и реализуемым по конкурентным ценам.
Данная цель, как впрочем, и эти и прочие задачи, которые станут здесь более очевидны, достигается посредством способа для манипуляции трафиком данных, который относится к целевому объекту, соединенному с сетью передачи данных, чьи элементы осуществляют связь по протоколу HTTP, содержащего этапы, на которых:
пассивно перехватывают, со стороны устройства манипуляции трафиком, которое содержит устройство-посредник, первый HTTP запрос, который происходит от упомянутого целевого объекта, при этом упомянутый первый HTTP запрос содержит первый домен, который связан с сервером, и запрашиваемый ресурс; отправляют, со стороны устройства манипуляции, первый HTTP ответ, который относится к упомянутому первому HTTP запросу, при этом упомянутый первый HTTP ответ содержит инструкции перенаправления, которые в свою очередь содержат второй домен; пассивно перехватывают, со стороны устройства манипуляции, DNS запрос к DNS серверу, который происходит от целевого объекта, при этом DNS запрос содержит запрос на интерпретацию второго домена в виде IP-адреса; отправляют, со стороны устройства манипуляции, DNS ответ, относящийся к DNS запросу, содержащий интерпретацию второго домена в виде IP-адреса устройства-посредника; принимают, на стороне устройства-посредника, второй HTTP запрос, который происходит от целевого объекта, при этом второй HTTP запрос содержит второй домен и запрашиваемый ресурс; отправляют, со стороны устройства-посредника, третий HTTP запрос к серверу, при этом третий HTTP запрос содержит первый домен и запрашиваемый ресурс; принимают, со стороны устройства-посредника, второй HTTP ответ, происходящий от сервера, и который относится к третьему HTTP запросу, при этом второй HTTP ответ содержит запрашиваемый ресурс; модифицируют, со стороны устройства-посредника, запрашиваемый ресурс; отправляют, со стороны устройства-посредника, третий HTTP ответ целевому объекту, при этом третий HTTP ответ содержит модифицированный ресурс.
Преимущественно, второй домен, отправляемый в ответе на первый HTTP запрос, является фиктивным субдоменом первого домена.
Предназначенная цель и задачи так же решаются посредством устройства для манипуляции трафиком данных, который относится к целевому объекту, соединенному с сетью передачи данных, чьи элементы осуществляют связь посредством HTTP протокола, содержащего: устройство перенаправления, которое выполнено с возможностью соединения с сетью передачи данных посредством множества интерфейсов прослушивания и интерфейса отправки пакетов; устройство-посредник, которое выполнено с возможностью соединения с сетью передачи данных посредством интерфейса HTTP соединения, интерфейса приема пакетов и интерфейса внедрения пакетов; при этом устройство перенаправления выполнено с возможностью отслеживания, посредством упомянутых интерфейсов прослушивания, сетевого трафика с тем, чтобы идентифицировать в сетевом трафике, по меньшей мере, один пакет данных, связанный с целевым объектом, и перенаправления, посредством интерфейса отправки пакетов, упомянутого, по меньшей мере, одного пакета данных, связанного с целевым объектом к устройству-посреднику, причем устройство-посредник в свою очередь выполнено с возможностью отправки, посредством интерфейса HTTP соединения, HTTP запроса к элементам сети передачи данных, причем HTTP запрос основан на контенте пакета данных, связанного с целевым объектом, и отправки, посредством интерфейса внедрения пакетов данных целевому объекту, которые основаны на данных, принятых в ответ на HTTP запрос.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Дополнительные отличительные признаки и преимущества изобретения станут более очевидны из описания предпочтительного, но не исключительного, варианта осуществления способа и системы в соответствии с изобретением, иллюстрируемых в качестве не накладывающего ограничений примера, в сопроводительных чертежах, в которых:
Фиг. 1 является структурной схемой примерного варианта осуществления интерфейса между устройством манипуляции трафиком в соответствии с изобретением и сетью Интернет;
Фиг. 2 является структурной схемой примерной архитектуры устройства манипуляции трафиком в соответствии с изобретением;
Фиг. 3 является блок-схемой последовательности операций примерного варианта осуществления способа для манипуляции сетевым трафиком в соответствии с изобретением.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Фиг. 1 является схематичным видом части сети Интернет и возможного места размещения устройства манипуляции трафиком в соответствии с изобретением на компоновочной схеме.
На чертеже показано множество клиентов 20, в числе которых конкретный клиент, именуемый целевым объектом 20', а также показаны коммутатор 40 доступа, устройство 50 в соответствии с изобретением, типовой сервер 60 и DNS сервер 70.
Клиентом 20 (или целевым объектом 20') является любое устройство, выполненное с возможностью доступа к сети Интернет, например, персональный компьютер или интеллектуальный телефон. В предпочтительном варианте осуществления клиенты 20 получают доступ к сети посредством поставщика услуг Интернет (ISP).
Поставщик имеет один или более коммутаторов 40 доступа, т.е. известные сетевые устройства, которые группируют соединения восходящей линии связи множества пользователей и которые выполнены с возможностью выборочной переадресации по нисходящей линии связи пакетов, принятых по отношению к соответствующим выходным портам. Коммутатор 40 доступа в целом управляет большим количеством соединений и вследствие этого высоким трафиком данных.
В обычных условиях коммутатор 40 доступа соединен с сетью 80 Интернет, с которой, в качестве примера, также соединен сервер 60 и DNS сервер 70.
Сервер 60, в предпочтительном варианте осуществления, является известным типом web-сервера, т.е. компьютером, выполненным с возможностью обслуживания запросов от клиентов, отправленных посредством HTTP протокола; запросы могут содержать файлы любого типа, от web-страниц для исполняемых файлов.
DNS сервер 70 является сервером известного типа, который выполнен с возможностью интерпретации доменных имен в IP адреса и наоборот.
Наконец, устройство манипуляции трафиком в соответствии с изобретением или выбирающее устройство 50 связи является устройством, размещенным между коммутатором 40 доступа и сетью Интернет. В предпочтительном варианте осуществления устройство 50 манипуляции трафиком в соответствии с изобретением размещено в непосредственной близости от коммутатора 40 доступа, который относится к целевому объекту 20', трафик которого нуждается в манипулировании, по причинам, которые станут более очевидны в дальнейшем. Устройство 50 манипуляции трафиком в соответствии с изобретением содержит функциональные возможности устройства связи пассивного типа, т.е. устройство связи, которое выполнено с возможностью отслеживания сетевого трафика без физического прохождения упомянутого трафика через устройство, что более подробно будет описано далее со ссылкой на Фигуру 2.
Фиг. 2 является структурной схемой, которая иллюстрирует возможный вариант осуществления устройства 50 манипуляции трафиком в соответствии с изобретением на Фиг. 1.
Устройство 50 манипуляции трафиком в соответствии с изобретением содержит два основных компонента: устройство 90 перенаправления и устройство-посредник 100.
Устройство 90 перенаправления является сетевым устройством, которое содержит один или более сетевые интерфейсы, известные как интерфейсы 110 прослушивания, которые отслеживают трафик восходящей линии связи, который происходит от коммутатора 40 доступа; эти интерфейсы используют методы прослушивания, т.е. методики для пассивного перехвата и декодирования пакетов данных на пути. Устройство 90 перенаправления дополнительно содержит дополнительный сетевой интерфейс, интерфейс 120 отправки пакетов, посредством которого устройство 90 перенаправления отправляет устройству-посреднику 100 адаптированный выбор отслеживаемых пакетов, в соответствии с критерием, который будет более подробно описан ниже.
Устройство-посредник 100 является сетевым устройством, которое содержит интерфейс 120' приема пакетов, посредством которого устройство-посредник 100 принимает пакеты с маршрутом, который изменен устройством 90 перенаправления. Устройство-посредник 100 дополнительно содержит интерфейс 130 HTTP соединения, посредством которого осуществляется HTTP связь между устройством-посредником 100 и удаленными серверами, например с сервером 60 и с DNS сервером 70. В заключение устройство-посредник 100 содержит интерфейс 140 внедрения пакетов, посредством которого целевому объекту 20' отправляются модифицированные пакеты данных. В предпочтительном варианте осуществления интерфейс 120' приема пакетов и интерфейс 140 внедрения пакетов совпадают.
Следует отметить, что устройство 90 перенаправления и устройство-посредник 100 не соединены друг с другом; в предпочтительном варианте осуществления они инсталлированы на одной и той же машине, однако в альтернативных вариантах осуществления они могут размещаться в разных точках сети.
Устройство функционирует следующим образом: устройство 90 перенаправления, посредством интерфейсов 100 прослушивания, отслеживает трафик, идентифицирует пакеты, которые происходят от целевого объекта 20', и идентифицирует HTTP соединение, которое должно быть модифицировано. Как только было идентифицировано отдельное HTTP соединение, которое должно быть модифицировано, устройство 90 перенаправления отводит упомянутое соединение к устройству-посреднику 100 посредством интерфейса 120 отправки пакетов. Таким образом, целевой объект 20' соединяется с устройством-посредником 100, которое соединяется с сервером, который указывается HTTP соединением, с которого должны быть загружены данные.
При загрузке данных устройство-посредник 100 модифицирует упомянутые данные в направлении потока и в режиме «на лету» и отправляет их целевому объекту 20' посредством интерфейса 140 внедрения пакетов. Таким образом, результат, с точки зрения целевого объекта 20', что касается адресованного сети запроса загрузки, точно такой же, какой мог бы быть получен, если бы файл загружался непосредственно с сервера, от которого происходят данные.
Далее со ссылкой на Фиг. 3 описан возможный вариант осуществления способа, используемого для реализации описанного выше функционирования.
Фиг. 3 иллюстрирует этапы осуществления связи между целевым объектом 20', устройством-посредником 100, сервером 60 и DNS сервером 70, которые описаны на Фиг. 1 и 2.
Способ начинается с этапа 1, на котором целевой объект 20' отправляет серверу 60 HTTP запрос; в качестве примера, упомянутый запрос может быть запросом типа GET в отношении ресурса, именуемого «resource.exe», который размещается на сайте, с доменным именем www.example.com, т.е. доменным именем сервера 60. Как описано ранее, данный запрос идентифицируется посредством известных методов прослушивания или пассивного перехвата, посредством устройства 90 перенаправления. На этапе прослушивания обнаруживаются и сохраняются номера SEQ и ACK протокола TCP, которые относятся к действующему соединению; на этапе 2 HTTP запрос достигает удаленного сервера 60; на этапе 3 устройство-посредник 100 отправляет целевому объекту 20' ответ HTTP, который относится к отправленному запросу, который таким образом принимается целевым объектом 20', как если бы он был отправлен сервером 60.
Данный этап может выполняться посредством использования методов для имитации адреса источника, которые известны в соответствующей области техники, и которые используют номера SEQ и ACK протокола TCP, полученные на этапе 1. HTTP ответ, отправленный устройством-посредником 100, является перенаправлением адреса, отправленного в запросе, как правило полученного посредством возврата кода статуса «302 Найден»; более того, перенаправление выполняется к несуществующему хосту, который предпочтительно отличается тем, что имеет вид субдомена для домена, отправленного в запросе. Например, субдомен может быть типа «xyz.www.example.com». Таким образом, целевой объект 20' будет уверен, что ресурс перемещен в субдомен основного сервера, как это обычно происходит, и будет рассматривать источник как доверенный. Так же важно, что «xyz» не является действующим субдоменом, по причинам, которые будут прояснены на этапе 6. Данный домен вставляется, как известно, в заголовок «местоположение» HTTP ответа. На этапе 4 сервер 60 отвечает независимо на запрос, отправленный целевым объектом 20' на этапе 1, как правило, с помощью HTTP ответа, который содержит код статуса «200 OK». Тем не менее, поскольку целевой объект 20' уже принял ответ на запрос этапа 1 в TCP потоке (т.е. ответ, отправленный устройством-посредником 100 на этапе 3), то на этапе 5 ответ сервера отклоняется как дубликат.
Следует отметить, что способ предусматривает, что этап 3 должен выполняться обязательно перед этапом 4, т.е., что ответ, отправленный устройством-посредником 100, должен достигнуть целевого объекта 20' раньше ответа, отправленного сервером 60, таким образом, что последний, а не ответ устройства-посредника 100 отклоняется целевым объектом 20' как дубликат. Как известно специалисту в соответствующей области, данная ситуация, как правило, не является детерминированной, в том смысле, что это два независимых и конкурентных действия, и вследствие этого ответ сервера 60 может поступить ранее ответа устройства-посредника 100. Тем не менее, поскольку, как показано со ссылкой на Фиг. 1, устройство 50 в соответствии с изобретением размещается как можно ближе к целевому объекту 20', то это гарантирует, что время кругового обращения пакетов в направлении удаленного сервера 60 продолжительнее времени кругового обращения от целевого объекта 20' к устройству 50; другими словами, применительно к соответствующему местоположению устройства 50 в соответствии с изобретением, гарантируется, что устройство-посредник 100 всегда побеждает в так называемом состязании над удаленными серверами.
Затем способ продолжается на этапе 6, на котором целевой объект 20' отправляет DNS запрос DNS серверу 70 для интерпретации (несуществующего) имени хоста, принятого на этапе 3. Чтобы способ в соответствии с изобретением был успешным, данный этап должен фактически вызывать запрос к DNS серверу 70, а не, например, интерпретацию доменного имени с помощью локально найденной информации. По этой причине необходимо, как указано на этапе 3, чтобы субдомен, принятый целевым объектом 20' на этапе 3, был недействительным: если субдомен, к которому перенаправляется целевой объект 20', был бы действительным, то он уже мог бы находиться в кэше целевого объекта 20' благодаря механизмам упреждающей выборки DNS, реализуемым в браузерах последнего поколения.
DNS запрос, отправленный на этапе 6, так же прослушивается устройством 50 в соответствии с изобретением аналогично тому, что происходит на этапе 1, и, на основании этого, на этапе 7 устройство-посредник 100 отправляет целевому объекту 20' DNS ответ на DNS запрос на этапе 6, который отличается тем, что содержит связь между несуществующим доменом и IP адресом устройства-посредника 100.
На этапе 8 DNS сервер 70 отправляет DNS ответ, который относится к запросу на этапе 6, как правило, ответ, который указывает на то, что домен не существует («NX несуществующий домен»). Тем не менее, как происходит на этапе 5, в данном случае на этапе 9 ответ отклоняется, так как ответ на тот же самый запрос уже был принят на этапе 7. В данной ситуации так же, как уже рассматривалось в отношении этапов 3 и 4, корректное функционирование способа предусматривает, что этап 7 должен обязательно выполняться перед этапом 8, т.е. устройство-посредник 100 должно всегда выигрывать состязание у DNS сервера 70, и в данном случае это так же гарантируется местоположением устройства 50 в соответствии с изобретением.
На этапе 10 целевой объект 20' выполняет тот же HTTP запрос, что и на этапе 1, но используя IP адрес, принятый на этапе 7, т.е. IP адрес устройства-посредника 100; затем устройство-посредник 100 выполняет легальный HTTP запрос к исходному серверу 60, например запрос ресурса «resource.exe» этапа 1.
В ответ на данный запрос на этапе 12 сервер 60 отправляет запрошенные данные устройству-посреднику 100; по мере загрузки данных, на этапах 13 и 14, устройство-посредник 100 соответственно модифицирует упомянутые данные и отправляет модифицированные данные целевому объекту 20'. В заключение способа, целевой объект 20' будет иметь соответственно загруженный ресурс, названный «resource.exe», который он будет рассматривать как тот, что запрошен на этапе 1, однако вместо этого, который был модифицирован устройством-посредником 100.
Как известно, посредством соответствующей модификации ресурса так же можно гарантировать то, что его исполнение вызывает инсталляцию программного обеспечения, которое не соотносится с ним, тихо и прозрачно.
На практике было установлено, что способ и устройство в соответствии с изобретением полностью достигают поставленной цели. На практике было установлено, что задуманные таким образом устройство и способ позволяют преодолеть ограничения по качеству известного уровня техники, поскольку сетевой трафик физически не проходит через устройство.
Более того, способ в соответствии с изобретением задуман таким образом, чтобы отводить только соединения, которые должны быть фактически модифицированы, и так, что не требуется вновь отправлять принятые пакеты; благодаря этим отличительным признакам, производительность, которая требуется для того, чтобы гарантировать то, что поток трафика не понижается, ниже в сравнении с той, что требуется в известном уровне техники, с преимущественным влиянием на цену.
В заключение не требуется чрезвычайно сложной и стойкой к сбоям архитектуры, поскольку сбой в устройстве в соответствии с изобретением повлечет за собой только сбой в отслеживании целевых объектов, не оказывая никакого влияния на сетевую инфраструктуру.
Созданная таким образом система восприимчива к различным модификациям и вариациям, все из которых находятся в рамках объема концепции изобретения; при этом все детали могут быть дополнительно замещены другими технически эквивалентными элементами.
Вследствие этого, объем охраны формулы изобретения не должен ограничиваться иллюстрациями или предпочтительными вариантами осуществления, показанными в описании в качестве примера, а наоборот, формула изобретения должна включать в себя все отличительные признаки патентоспособной новизны, которая присуща настоящему изобретению, включая все отличительные признаки, которые будут рассматриваться как эквиваленты специалистом в соответствующей области.
Там, где технические признаки, упоминаемые в любом пункте формулы изобретения, сопровождаются цифровыми обозначениями, эти цифровые обозначения были включены с единственной целью, которая состоит в повышении доступности формулы изобретения, и соответственно такие цифровые обозначения не накладывают каких-либо ограничений на интерпретацию каждого элемента, указанного в качестве примера такими цифровыми обозначениями.