RU2653241C1 - Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом - Google Patents
Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом Download PDFInfo
- Publication number
- RU2653241C1 RU2653241C1 RU2017101745A RU2017101745A RU2653241C1 RU 2653241 C1 RU2653241 C1 RU 2653241C1 RU 2017101745 A RU2017101745 A RU 2017101745A RU 2017101745 A RU2017101745 A RU 2017101745A RU 2653241 C1 RU2653241 C1 RU 2653241C1
- Authority
- RU
- Russia
- Prior art keywords
- application
- user agent
- instructions
- request
- data
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 24
- 238000001514 detection method Methods 0.000 abstract description 5
- 239000000126 substance Substances 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 118
- 238000012545 processing Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/144—Detection or countermeasures against botnets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/146—Tracing the source of attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Изобретение относится к области сетевой безопасности. Технический результат заключается в обеспечении обнаружения вредоносной программы, которая вводит случайность в данные пользовательского агента. Энергонезависимый машиночитаемый носитель содержит команды, которые при исполнении вызывают выполнение машиной перехвата с помощью первого устройства запроса данных от второго устройства, при этом запрос выработан приложением и запрос идентифицирует пользовательский агент; и генерирования указания в ответ на определение, что в запросах от приложения идентифицировано заданное пороговое количество различных пользовательских агентов, причем указание указывает, что приложение является потенциально вредоносной программой, при этом заданное пороговое количество зависит от приложения. Технология позволяет связать ведущие приложения и пользовательские агенты в сетевом трафике и обнаружить возможные вредоносные программы, не опираясь на сигнатуры пользовательских агентов. 4 н. и 17 з.п. ф-лы, 7 ил.
Description
Область техники, к которой относится изобретение
Описанные в настоящем документе варианты осуществления изобретения касаются сетевой безопасности и, в частности, касаются технологии обнаружения угроз нулевого дня.
Уровень техники
Ботнеты и вредоносные программы используют поле пользовательского агента в протоколе (HTTP) передачи гипертекста для взаимодействия с сервером управления и контроля. Недавно обнаруженные постоянные угрозы повышенной сложности показали вредоносную программу, которая использует HTTP клиент для сигнализации системам управления и контроля. Иногда пользовательский агент помогает при идентификации с помощью технологий, основанных на сигнатурах, как в случае вредоносного ботнета IKEE.B для iPhone компании Apple. Эта вредоносная программа использует команду HTTP wget с пользовательским агентом.
Авторы вредоносной программы осознали, что системы защиты от вредоносных программ знают об этом использовании поля пользовательского агента, и предприняли контрмеры. В настоящее время ботнеты начали вводить случайность в HTTP передачи для обхода защит от вредоносных программ на основе сигнатур пользовательского агента. Они могут использовать встроенный механизм, который может выработать случайных пользовательских агентов при загрузке вторичной полезной нагрузки. Таким образом, желательно пересмотреть путь обнаружения системой защиты от вредоносных программ передач по управлению и контролю.
Кроме того, даже когда системы вредоносных программ или ботнетов не вводят случайность в идентифицирующую информацию пользовательского агента, обнаружение на основе сигнатур может обнаружить только известные угрозы, которые обладают ранее идентифицированными сигнатурами вредоносных программ. Желательно предложить способ обнаружения вредоносных программ нулевого дня (ранее неизвестных).
Краткое описание чертежей
Фиг. 1 - вид, показывающий таблицу, иллюстрирующую сопоставление ведущего приложения с пользовательскими агентами в соответствии с одним вариантом осуществления изобретения;
фиг. 2 - вид, показывающий схему, иллюстрирующую технологию обнаружения угроз нулевого дня с использованием сопоставления ведущих приложений с пользовательскими агентами в соответствии с одним вариантом осуществления изобретения;
фиг. 3 - вид, показывающий блок-схему, иллюстрирующую технологию анализа пользовательских агентов в соответствии с одним вариантом осуществления изобретения;
фиг. 4 - вид, показывающий структурную схему, иллюстрирующую сетевое устройство в соответствии с одним вариантом осуществления изобретения;
фиг. 5 - вид, показывающий структурную схему, иллюстрирующую вычислительное устройство для использования с технологиями, описанными в настоящем документе, в соответствии с одним вариантом осуществления изобретения;
фиг. 6 - вид, показывающий структурную схему, иллюстрирующую вычислительное устройство для использования с технологиями, описанными в настоящем документе, в соответствии с другим вариантом осуществления изобретения;
фиг. 7 - вид, показывающий структурную схему, иллюстрирующую сеть программируемых устройств в соответствии с одним вариантом осуществления изобретения.
Осуществление изобретения
В приведенном ниже описании для обеспечения глубокого понимания изобретения и для объяснения рассмотрено большое количество конкретных деталей. Тем не менее, специалистам в рассматриваемой области ясно, что настоящее изобретение может быть реализовано без этих конкретных деталей. В других примерах, структура и устройства показаны в форме структурных схем, чтобы не затемнять изобретение. Ссылочные позиции, выраженные числами без нижних индексов или суффиксов, надо понимать как относящиеся к соответствующим ссылочным позициям с любыми нижними индексами и суффиксами. Более того, язык, используемый в этом изобретении, преимущественно выбран с точки зрения четкости и обучения и не мог быть выбран для установления границ или обозначения пределов объекта патентования изобретения, для чего нужна формула изобретения. Ссылки в этом описании на «один вариант осуществления изобретения» или «некоторый вариант осуществления изобретения» означают, что конкретный признак, структура или характеристика, описанная в связи с вариантами осуществления настоящего изобретения, содержится, по меньшей мере, в одном варианте осуществления настоящего изобретения, а несколько ссылок на «один вариант осуществления изобретения» или «некоторый вариант осуществления изобретения» не должны рассматриваться как обязательно относящиеся к одному и тому же варианту осуществления изобретения.
В настоящем документе термин «программируемое устройство» может означать одно программируемое устройство или несколько программируемых устройств, работающих вместе для реализации функции, описанной как функция, реализуемая программируемым устройством. Аналогично, «считываемым машиной носителем» может называться один физический носитель или несколько носителей, которые вместе могут хранить материал, описанный как материал, хранимый на считываемом машиной носителе.
В настоящем документе термин «вредоносная программа» относится к любому программному обеспечению, используемому для нарушения работы программируемого устройства, сбора чувствительной информации или получения доступа к частным системам или сетям. Вредоносные программы включают в себя вирусы (в том числе, черви, «троянские кони» и так далее), программы-вымогатели, программы-шпионы, рекламное программное обеспечение, поддельные антивирусные программы и вредоносные программы любого другого типа.
В настоящем документе термин «приложение» относится к любой исполнимой программе, которая может быть автономным программным обеспечением или может являться компонентом другой программы или может содержаться в другой программе.
В настоящем документе термин «пользовательский агент» относится к текстовой строке, обеспеченной HTTP связью и обычно выработанной HTTP GET, которая запрашивает данные от другой компьютерной системы, при этом HTTP GET определяет поле заголовка запроса пользовательского агента. Строка пользовательского агента содержит информацию о программном обеспечении, которое создало запрос. Это поле может содержать несколько маркеров продуктов и комментариев, идентифицирующих агента и любые подпродукты, которые образуют существенную часть пользовательского агента. По традиции маркеры продуктов перечислены в порядке их значимости для идентификации приложения.
С помощью отслеживания пользовательских агентов, видимых в сети для ведущего процесса/приложения, которое их выработало, можно построить таблицу сопоставления, которая сопоставляет ведущие процессы/приложения и пользовательские агенты. С помощью этого сопоставления становятся возможны несколько сценариев:
Если существует сопоставление ведущего процесса/приложения и пользовательского агента и для ведущего процесса/приложения обнаружен новый пользовательский агент, то это может указывать на эксплойт.
При обновлении существующего ведущего процесса или приложения, обновление может указывать небольшое изменение в поле пользовательского агента. Мы может использовать логическую схему для т ого, чтобы автоматически узнать о новом сопоставлении.
Когда в сети устанавливают новый ведущий процесс или приложение, мы может узнать сопоставление ведущего приложения и пользовательского агента с помощью администратора.
Быстрое изменение сопоставления ведущего процесса и его пользовательского агента может указывать на аномальное поведение. Например, браузер может предоставлять возможность вручную изменять информацию о пользовательском агенте, но это не происходит быстро.
Указанное представляет собой подход к обнаружению вредоносных программ в сети без использования сигнатур. Благодаря созданию сопоставления ведущего процесса/приложения и пользовательского агента, любое отклонение известного сопоставления ведущий процесс-пользовательский агент может считаться аномальным, предоставляющим пользователю-администратору возможность рассмотреть новое сопоставление и отреагировать на атаку вредоносной программы или помочь системе узнать о новом пользовательском агенте для нового или существующего ведущего процесса. Изложенное ниже иллюстрирует технологии узнавания сопоставления ведущего процесса и пользовательского агента и объявления тревоги для возможно вредоносных пользовательских агентов в сети.
На фиг. 1 показана таблица, иллюстрирующая список 100 ведущих приложений и связанных пользовательских агентов в соответствии с одним вариантом осуществления изобретения. Таким образом, например, исполнимый файл (ACRORD32.EXE) программного обеспечения ADOBE® READER® (ADOBE и READER являются зарегистрированными торговыми марками компании Adobe Systems Incorporated) соответствует в этом примере строке «Microsoft-CryptoAPI/6.1» пользовательского агента. Одна и та же строка пользовательского агента может быть связана с несколькими ведущими приложениями. Например, строка пользовательского агента, связанная с Adobe Reader, в этом примере также связана с IEXPLORE.EXE, MAINTENANCESERVICE.EXE, MSIEXEC.EXE, SKYPE.EXE и SVCHOST.EXE. Одно ведущее приложение может быть связано с несколькими строками пользовательских агентов. Например, в примере списка с фиг. 1, приложение SVCHOST.EXE связано со строками «Microsoft NCSI» и «Microsoft-CryptoAPI/6.1» пользовательских агентов. Сопоставление приложений и пользовательских агентов, показанное на фиг. 1, приведено для иллюстрации и только для примера; другие приложения, пользовательские агенты и сопоставления могут быть видны в сетевом устройстве, которое применяет описанные ниже технологии, в зависимости от сетевого трафика, перехватываемого сетевым устройством.
На фиг. 2 показана схема, иллюстрирующая технологию обнаружения угроз нулевого дня с использованием сопоставления ведущих приложений с пользовательскими агентами в соответствии с одним вариантом осуществления изобретения. В этом примере ведущая машина 210 вырабатывает HTTP запрос на сервер 250. Хотя в настоящем документе используются слова «ведущая машина» и «сервер», в эти названия не вкладывается никакого особого значения; каждое устройство может быть программируемым устройством любого типа, способным направлять и принимать сообщения HTTP протокола.
Сетевое устройство 220, соответствующее этому варианту осуществления изобретения, перехватывает трафик сетевого протокола и реализует описанные ниже технологии обнаружения угрозы нулевого дня. Хотя в этом примере сетевое устройство является отдельным устройством, расположенным между ведущей машиной 210 и сервером 250, описанные в настоящем документе технологии могут быть реализованы в виде компонента или модуля, исполняемого или ведущей машиной 210 или сервером 250 или обоими устройствами. В качестве альтернативы описанные ниже функциональные возможности могут быть реализованы в нескольких отдельных устройствах вместо одного сетевого устройства.
На этапе 260, когда приложение, работающее в ведущей машине 210, пытается выполнить HTTP GET с использованием сервера 250, программное обеспечение защиты от вредоносных программ, работающее в ведущей машине 210, предоставляет метаданные, касающиеся желаемого соединения с сервером 230 метаданных сетевого устройства 220. В одном варианте осуществления изобретения метаданные содержат хэш-значение исполнимого файла, пытающегося выполнить HTTP GET, такое как MD5 хэш-значение, а также набор из 5 элементов данных, соответствующих соединению: адрес источника, адрес назначения, порт источника, порт назначения и протокол. Сервер 230 метаданных использует хэш-значение для идентификации приложения, с использованием базы данных, связывающей хэш-значения и идентификационную информацию приложений. Первая часть каждой записи в таблице 100 указывает, что в одном варианте осуществления изобретения идентификационная информация приложения представлена как название исполнимого файла, такое как «ACRORD32.EXE».
Далее, на этапе 262 сервер 230 метаданных предоставляет метаданные на механизм разбора протокола/HTTP прокси-сервер 240, теперь метаданные содержат идентификатор исполнимого файла. Далее механизм 240 разбора протокола помещает информацию метаданных в кэш-память (не показана на фиг. 2). Механизм разбора протокола/HTTP прокси-сервер 240 может быть реализован как отдельные модули или компоненты, отделяющие механизм разбора протокола от механизма HTTP прокси-сервера.
На этапе 264 ведущая машина 210 начинает процедуру установления связи, которая начинает соединение программы (TCP) управления переносом с сервером 250 путем направления SYN пакета. HTTP прокси-сервер 240 принимает SYN пакет и устанавливает связывание, которое соотносит метаданные и соединение до прохождения SYN пакета на сервер 250 на этапе 268. На этапах 270 - 272 осуществляют оставшуюся часть стандартной трехэтапной процедуры установления связи, при этом на этапе 270 сервер 250 направляет пакет SYN + ACK, а на этапе 272 ведущая машина 210 отвечает пакетом ACK с целью завершения установления TCP соединения между ведущей машиной 210 и сервером 250.
На этапе 274 ведущая машина 210 направляет пакет данных с помощью соединения, установленного с сервером 250, при этом указанный пакет данных перехватывает HTTP прокси-сервер и направляет на механизм разборки протокола модуля 240 механизма разборки протокола/HTTP прокси-сервера. На этапе 276 механизм разборки протокола разбирает полезную нагрузку пакета данных с целью получения данных пользовательского агента, расположенных в команде HTTP GET, содержащейся в пакете данных, если указанные данные присутствуют. Ведущее приложение и пользовательский агент вместе предоставляют для анализа в ходе процесса 280, с использованием описанных ниже технологий анализа, при этом пытаются обнаружить на ведущей машине 210 вредоносные программы.
На этапе 292 механизм разборки протокола и HTTP прокси-сервер передают пакет данных на сервер 250, если политики безопасности позволяют такую передачу. В одном варианте осуществления изобретения сетевое устройство 220 выполнено в виде сетевого экрана или устройства системы защиты от вторжения и может содержать политики безопасности, которые не связаны с сопоставлением ведущих приложений и пользовательских агентов и которые могут вынудить сетевое устройство 220 отказать в перенаправлении на сервер 250 пакета данных, направленного на этапе 274. В некоторых вариантах осуществления изобретения процесс 280 анализа также может вызвать отказ в предоставлении возможности направить пакет данных на сервер 250. Далее на этапе 294 сервер 250 отвечает на HTTP GET данными, которые перехвачены механизмом разборки протокола/HTTP прокси-сервером 240 и перенаправлены на ведущую машину 210 на этапе 296.
На фиг. 3 показана блок-схема, иллюстрирующая некоторый вариант осуществления процесса 280 анализа, направленного на анализ данных пользовательского агента. В блоке 310 идентифицируют ведущее приложение. В блоке 320 осуществляют поиск ведущего приложения в кэш-памяти сопоставлений ведущих приложений и пользовательских агентов. В блоке 330 определяют результат этого поиска. Если ведущее приложение не найдено в кэш-памяти сопоставлений ведущих приложений и пользовательских агентов, то в блоке 390 новое ведущее приложение связывают с пользовательским агентом и эту связь сохраняют в кэш-памяти сопоставлений ведущих приложений и пользовательских агентов. Хотя на фиг. 3 ссылаются на кэш-память, может быть использовано запоминающее устройство любого типа для данных ведущих приложений и связанных с ними пользовательскими агентами, в том числе могут быть использованы базы данных любого типа, простые файлы и так далее, которые могут храниться в запоминающем устройстве любой формы, которое содержится в сетевом устройстве 220. Помимо данных ведущих приложений и пользовательских агентов, в кэш-памяти могут храниться любые другие нужные данные, такие как счетчик количества раз наблюдения пары ведущее приложение/пользовательский агент.
Если в кэш-памяти найдено ведущее приложение, то в блоке 340 пользовательский агент, идентифицированный в текущем пакете данных, сравнивают с пользовательским агентом или агентами, связанными с ведущим приложением в кэш-памяти. Если найдено совпадение, то в блоке 360 может быть увеличен счетчик, указывающий сколько раз сетевое устройство 220 сталкивалось с HTTP GET с этой парой ведущее приложение-пользовательский агент. Хотя это не показано на фиг. 3, в некоторых вариантах осуществления изобретения может быть выполнена дополнительная проверка с целью определения, известно ли, что текущее ведущее приложение и пользовательский агент являются вредоносными программами, и в ответ на результат такого определения может быть предпринято некоторое действие.
Если пользовательский агент в текущем пакете данных не совпадает ни с одним ранее связанным пользовательским агентом, то в блоке 350 в кэш-память может быть добавлена новая связь ведущего приложения с пользовательским агентом. Данные пользовательского агента, связанного с ведущим приложением, могут изменяться со временем при обновлении ведущего приложения, таком как новый релиз программного обеспечения. В такой ситуации обычно модифицируют данные пользовательского агента для приложения, часто путем сохранения первой части данных пользовательского агента и изменения второй части, обычно следующей в строке за первой частью. В одном варианте осуществления изобретения может быть обнаружено и указано частичное совпадение информации пользовательского агента. Такое частичное совпадение известного сопоставления приложения, не являющегося вредоносной программой, и пользовательского агента, в целом, рассматривается как обладающее малым риском содержания вредоносной программы.
В одном варианте осуществления изобретения один вариант конфигурации позволяет администратору установить пороговое значение для количества пользовательских агентов, которые могут быть связаны с ведущим приложением, до определения состояния наличия вредоносной программы. В некоторых вариантах осуществления изобретения пороговое значение может быть установлено для отдельных приложений, что позволяет некоторым приложениям обладать другими пороговыми значениями по сравнению с остальными приложениями. В других вариантах осуществления изобретения для всех приложений может быть установлено одно пороговое значение. В еще одних вариантах осуществления изобретения может быть установлено общее пороговое значение, которое применяют как значение по умолчанию для всех приложений из кэш-памяти, но которое можно переписать некоторым пороговым значением для конкретного ведущего приложения. В блоке 370 определяют, превышает ли количество пользовательских агентов, связанных с ведущим приложением, пороговое значение, и если превышает, то в блоке 380 может быть выработано указание на возможное наличие вредоносной программы. Указание может быть любого типа, в том числе может быть флагом, сообщением и так далее. Указание может быть сохранено в месте, доступном для администратора или другой программы, или, при желании, может быть направлено такому администратору или программе. Указание может содержать любые нужные данные, в том числе данные одного или нескольких приложений и пользовательских агентов из текущего пакета данных, а также любую другую информацию, доступную из кэш-памяти или других источников данных.
В некоторых вариантах осуществления изобретения процесс 280 анализа может быть способен вызвать блокировку пакета данных, из которых были извлечены данные HTTP GET пользовательского агента. В других вариантах осуществления изобретения, в блоке 380, в ходе анализа может быть просто выработано указание о возможности вредоносной программы, которая далее может быть обнаружена администратором или другой программой и использована для дальнейшего анализа, включающего в себя запуск сканирования или другой анализ состояния ведущей машины 210 в попытке определить расположение вредоносной программы и возможно удалить вредоносную программу. Указание показывает, что приложение подозрительно и в дальнейшем должно быть проанализировано.
Хотя настоящее изобретение написано в терминах HTTP GET, те же самые технологии могут быть использовано для других протоколов, отличающихся от HTTP, и для других команд, отличных от HTTP GET.
На фиг. 4 показана структурная схема внутренней структуры одного варианта осуществления сетевого устройства 400 (соответствующего сетевому устройству 210 с фиг. 2, соединенному между ведущей машиной 210 и сервером 250), которое может реализовать описанные выше технологии. Компоненты или модули, показанные на фиг. 4, могут быть реализованы с помощью аппаратного обеспечения, аппаратнореализованного программного обеспечения, программного обеспечения или с помощью любого объединения перечисленного. При желании могут содержаться другие компоненты и, при желании, любые компоненты или модули могут быть объединены с любым одним или несколькими другими компонентами или модулями. Расположение компонентов или модулей с фиг. 4 приведено для иллюстрации и для примера и не предназначено для представления любого физического расположения. В настоящем документе термины «компонент» и «модуль» считаются синонимами.
Сервер 405 метаданных соответствует серверу 230 метаданных с фиг. 2. Кэш-память метаданных предоставляет место хранения метаданных, предоставляемых на сервер 405 метаданных, и может быть реализована с использованием любой технологии хранения на постоянной или временной основе, в том числе технологий долговременного хранения. Модуль 415 идентификатора ведущего приложения позволяет осуществлять анализ метаданных с целью определения ведущего приложения, делающего HTTP GET запрос. Механизм 420 разборки протокола используют для разборки HTTP протокола, что позволяет извлечь данные пользовательского агента из HTTP GET запроса. Модуль 425 администрирования и конфигурации позволяет администратору сетевого устройства 400 администрировать сетевое устройство 400, конфигурировать его по желанию, например, устанавливать пороговое значение (значения) для пользовательского агента, описанные выше при рассмотрении блока 370. Другие параметры или значения конфигурации могут быть установлены модулем 425, в том числе варианты конфигурации, определяющие, какой ответ, при необходимости, должен быть выработан при указании на вредоносную программу, при этом указанный ответ может быть установлен в блоке 380.
В одном варианте осуществления изобретения модуль 425 администрирования и конфигурации может позволить администратору заранее загрузить общеизвестные сопоставления в кэш-память сопоставлений ведущих приложений и пользовательских агентов. Аналогично, варианты осуществления изобретения могут позволить администратору модифицировать кэш-память, выполняя желаемые изменения в собранных данных, такие как добавление записей для вновь идентифицированных связей приложений с пользовательскими агентами или обновление записи с целью маркировки связи как указывающей на вредоносную программу.
На фиг. 5 показана структурная схема, иллюстрирующая программируемое устройство 500, которое может быть использовано в сетевом устройстве 210 в соответствии с одним вариантом осуществления изобретения. Программируемое устройство, показанное на фиг. 5, является микропроцессорным программируемым устройством 500, которое содержит первый обрабатывающий элемент 570 и второй обрабатывающий элемент 580. Хотя показаны два обрабатывающих элемента 570 и 580, некоторый вариант осуществления программируемого устройства 500 также может содержать только один такой обрабатывающий элемент.
Программируемое устройство 500 показано как система соединений точка-точка, в которой первый обрабатывающий элемент 570 и второй обрабатывающий элемент 580 связаны с помощью соединения 550 точка-точка. Любое или все соединения, показанные на фиг. 5, могут быть реализованы как многоточечная шина, а не как соединения точка-точка.
Как показано на фиг. 5, каждый из обрабатывающих элементов 570 и 580 может быть многоядерным процессором, содержащим первое и второе ядра (то есть ядра 574а и 574b процессора и ядра 584а и 584b процессора) процессора. Такие ядра 574a, 574b, 584a, 584b могут быть выполнены с возможностью исполнения командного кода, аналогично тому, как описано выше при рассмотрении фиг. 1 - 4. Тем не менее, другие варианты осуществления изобретения могут использовать обрабатывающие элементы, которые, при желании, являются одноядерными процессорами. В вариантах осуществления изобретения с несколькими обрабатывающими элементами 570, 580, каждый обрабатывающий элемент, при желании, может быть реализован с различным количеством ядер.
Каждый обрабатывающий элемент 570, 580 может содержать, по меньшей мере, одну совместно используемую кэш-память 546. Совместно используемая кэш-память 546а, 546b может хранить данные (например, команды), которые используются одним или несколькими компонентами обрабатывающего элемента, такими как ядра 574a, 574b и 584a, 584b, соответственно. Например, совместно используемая кэш-память может локально содержать данные, хранящиеся в памяти 532, 534, с целью более быстрого доступа компонентов обрабатывающих элементов 570, 580. В одном или нескольких вариантах осуществления изобретения совместно используемая кэш-память 546а, 546b может содержать одну или несколько кэш-памятей среднего уровня, такого как уровень 2 (L2), уровень 3 (L3), уровень 4 (L4) или другие уровни кэш-памяти, кэш-память (LLC) последнего уровня или их комбинации.
Хотя для ясности изображения на фиг. 5 показано программируемое устройство с двумя обрабатывающими элементами 570, 580, объем настоящего изобретения этим не ограничен и может присутствовать любое количество обрабатывающих элементов. В качестве альтернативы, один или несколько обрабатывающих элементов 570, 580 могут быть элементом, отличным от процессора, таким как блок (GPU) обработки графики, цифровой сигнальный обрабатывающий блок (DSP), вентильная матрица, программируемая пользователем, или любым другим программируемым обрабатывающим элементом. Обрабатывающий элемент 580 может быть разнородным или ассиметричным относительно обрабатывающего элемента 570. Может присутствовать большое количество различий между обрабатывающими элементами 570, 580 с точки зрения разных мер достоинства, в том числе архитектурных характеристик, микроархитектурных характеристик, тепловых характеристик, характеристик потребления электроэнергии и подобных. Эти различия могут эффективно показывать себя как асимметрия и неоднородность в обрабатывающих элементах 570, 580. В некоторых вариантах осуществления изобретения различные обрабатывающие элементы 570, 580 могут располагаться в одном корпусе кристалла.
Первый обрабатывающий элемент 570 может дополнительно содержать логическую схему 572 (MC) контроллера памяти и соединения 576 и 578 точка-точка (P-P). Аналогично, второй обрабатывающий элемент 580 может содержать МС 582 и соединения 586 и 588 P-P. Как показано на фиг. 5, MC 572 и 582 связывают обрабатывающие элементы 570, 580 с соответствующими памятями, а именно памятью 532 и памятью 534, которые могут быть частями основной памяти, локально прикрепленными к соответствующим процессорам. Хотя логические схемы 572 и 582 MC показаны как встроенные в обрабатывающие элементы 570, 580, в некоторых вариантах осуществления изобретения логическая схема MC может быть дискретной логической схемой, расположенной вне обрабатывающих элементов 570, 580, а не встроенной в них.
Обрабатывающий элемент 570 и обрабатывающий элемент 580 могут быть связаны с подсистемой 590 ввода/вывода с помощью, соответственно, соединений 576, 586 и 584 Р-Р. Как показано на фиг. 5, подсистема 590 ввода/вывода содержит соединения 594 и 598 Р-Р. Более того, подсистема 590 ввода/вывода содержит интерфейс 592 для связи подсистемы 590 ввода/вывода с высокопроизводительным графическим механизмом 538. В одном варианте осуществления изобретения шина 549 может быть использована для связи графического механизма 538 с подсистемой 590 ввода/вывода. В качестве альтернативы соединение 539 точка-точка может связывать эти компоненты.
В свою очередь, подсистема 590 ввода/вывода может быть соединена с первым каналом 516 с помощью интерфейса 596. В одном варианте осуществления изобретения первый канал 516 может быть шиной соединения (PCI) периферийных компонентов или такой шиной, как шина PCI Express, или другой соединительной шиной ввода/вывода, хотя объем настоящего изобретения этим не ограничен.
Как показано на фиг. 5, различные устройства 514 ввода/вывода могут быть связаны с первым каналом 516 вместе с мостом 518, который связывает первый канал 516 и второй канал 510. В одном варианте осуществления изобретения второй канал 520 может быть шиной (LPC) с малым числом контактов. В одном варианте осуществления изобретения различные устройства могут быть связаны со вторым каналом 520, в том числе, например, клавиатура/мышь 512, устройство (устройства) 526 связи (которые, в свою очередь, могут взаимодействовать с компьютерной сетью 503) и блок 528 хранения данных, такой как дисковый привод или другие устройства хранения большой емкости, которые могут содержать код 530. Код 530 может содержать команды для реализации вариантов осуществления одной или нескольких описанных выше технологий. Далее, устройство 524 ввода/вывода звука может быть соединено со второй шиной 520.
Заметим, что возможны другие варианты осуществления изобретения. Например, вместо архитектуры точка-точка с фиг. 5, система может реализовывать многоточечную шину или другую такую топологию связи. Хотя каналы 516 и 520 показаны на фиг. 5 в виде шин, может быть использован канал любого подходящего типа. Также, в качестве альтернативы, элементы с фиг. 5 могут быть разделены с использованием большего или меньшего количества интегральных микросхем по сравнению с количеством, показанным на фиг. 5.
На фиг. 6 показана структурная схема, иллюстрирующая программируемое устройство 600 в соответствии другим вариантом осуществления изобретения. Определенные аспекты фиг. 5 опущены на фиг. 6, чтобы не мешать пониманию других аспектов фиг. 6.
На фиг. 6 показано, что обрабатывающие элементы 670, 680 могут содержать, соответственно, встроенные логические схемы 672 и 682 управления («СL») памятью и вводом/выводом. В некоторых вариантах осуществления изобретения CL 672, 682 могут содержать логическую схему (MC) контроллера памяти, такую как описана выше при рассмотрении фиг. 5. Кроме того, CL 672, 682 также могут содержать логическую схему управления вводом/выводом. На фиг. 6 показано, что не только памяти 632, 634 могут быть связаны с CL 672, 682, но также устройства 644 ввода/вывода также могут быть связаны с логической схемой 672, 682 управления. Существующие устройства 615 ввода/вывода могут быть связаны с подсистемой 690 ввода/вывода с помощью интерфейса 696. Каждый обрабатывающий элемент 670, 680 может содержать несколько ядер процессоров, показанных на фиг. 6, таких как ядра 674A, 674В, 684A и 684B процессора. Как показано на фиг. 6, подсистема 690 ввода/вывода содержит соединения 694 и 698 Р-Р, которые соединены с соединениями 676 и 686 Р-Р обрабатывающих элементов 670 и 680 с помощью каналов 652 и 654. Обрабатывающие элементы 670 и 680 могут быть соединены с помощью канала 650 и, соответственно, соединений 678 и 688.
Программируемые устройства, показанные на фиг. 5 и 6, являются схематичными иллюстрациями вариантов осуществления программируемых устройств, которые могут быть использованы для реализации описанных в настоящем документе различных вариантов осуществления изобретения. Различные компоненты программируемых устройств, показанных на фиг. 5 и 6, могут быть объединены в архитектуре система-на-кристалле (SoC).
HTTP прокси-сервер 430 реализует функциональные возможности HTTP прокси-сервера. Функциональные возможности HTTP прокси-сервера хорошо известны и не будут описаны в настоящем документе. Устройство 435 анализа пользовательского агента осуществляет показанный на фиг. 3 анализ связей ведущих приложений и пользовательских агентов. Модуль 440 обновления может позволить обновить программное обеспечение или аппаратно-реализованное программное обеспечение сетевого устройства 400 с целью поддержки и улучшения сетевого устройства 400. Наконец, при желании, могут быть предусмотрены другие модули 445. Например, с помощью таких других модулей 445, количество которых может быть равно одному или более, могут быть обеспечены другие функциональные возможности защиты от вторжения.
На фиг. 7 схематично показан пример инфраструктуры 700, в которой могут быть реализованы описанные выше технологии. Инфраструктура 700 содержит компьютерные сети 702. Компьютерные сети 702 могут быть компьютерными сетями многих различных типов, доступных в настоящее время, таких как Интернет, корпоративные сети или локальные вычислительные сети (LAN). Каждая из этих сетей может содержать проводные или беспроводные программируемые устройства и может работать с использованием любого количества сетевых протоколов (например, TCP/IP). Сети 702 могут быть соединены со шлюзами и маршрутизаторами (представлены ссылочной позицией 708), компьютерами 706 конечных пользователей и серверами 704. Инфраструктура 700 также содержит сеть 703 сотовой связи для использования с мобильными устройствами связи. Мобильные сети сотовой связи поддерживают мобильные телефоны и устройства многих других типов. Мобильные устройства в инфраструктуре 700 показаны как мобильные телефоны 710, ноутбуки 712 и планшеты 714. Мобильное устройство, такое как мобильный телефон 710, при своем перемещении может взаимодействовать с одной или несколькими сетями поставщиков мобильной связи, обычно взаимодействуя с несколькими вышками 720, 730 и 740 сетей мобильной связи для соединения с сетью 703 сотовой связи. Хотя при рассмотрении фиг. 7 упоминается сеть сотовой связи, мобильное устройство может взаимодействовать с вышками более одной сети поставщика связи, а также с несколькими устройствами не сотовой связи, такими как точки беспроводного доступа и маршрутизаторы 708. Кроме того, мобильные устройства 710, 712 и 714 могут взаимодействовать с немобильными устройствами, такими как компьютеры 704 и 706, для получения нужных сервисов, что может включать в себя предоставление описанных выше сопоставлений приложений и пользовательских агентов и сервисов анализа. Функциональные возможности сетевого устройства 210 могут быть реализованы в любом устройстве или комбинации устройств, показанных на фиг. 7; тем не менее, наиболее часто они реализованы в сетевом экране или системе защиты от вторжения в шлюзе или маршрутизаторе 708.
Использование описанных выше технологий и устройства может позволить обнаружить вредоносную программу, которая вводит случайность в данные пользовательского агента, даже если технология, основанная на сигнатурах, не способна распознать пользовательский агент, представляющий вредоносную программу. Кроме того, так как анализ пользовательского агента не зависит от сигнатуры, могут быть обнаружены угрозы нулевого дня и информация пользовательских агентов может быть использована для разработки сигнатур, используемых в технологиях, основанных на сигнатурах.
Описанные выше технологии, не основанные на сигнатурах, при желании, могут быть реализованы в комбинации с технологиями, основанными на сигнатурах, при этом технологии, основанные на сигнатурах, осуществляют до, после или параллельного с технологиями, не основанными на сигнатурах.
Приведенные ниже примеры касаются дополнительных вариантов осуществления изобретения.
Пример 1 представляет собой считываемый машиной носитель, на котором хранятся команды и который содержит команды, исполнение которых побуждает машину: перехватить, с помощью первого устройства, запрос на данные от второго устройства, при этом запрос выработан приложением и запрос идентифицирует пользовательский агент; и выработать указание в ответ на определение того, что некоторое пороговое количество пользовательских агентов идентифицировано в запросах от этого приложения.
В примере 2 объект из примера 1 может, при желании, включать в себя следующее: команды по перехвату содержат команды, исполнение которых побуждает первое устройство: принять пакет данных, содержащий запрос от второго устройства; и перенаправить пакет данных на второе устройство в зависимости от политики безопасности.
В примере 3 объект из примеров 1 - 2 может, при желании, включать в себя следующее: первое устройство обеспечивает прокси-сервис.
В примере 4 объект из примеров 1 - 2 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, содержат команды, исполнение которых побуждает машину: идентифицировать приложение, запрашивающее данные; извлечь данные пользовательского агента из запроса, идентифицирующего пользовательский агент; и осуществить поиск данных приложения и пользовательского агента в кэш-памяти.
В примере 5 объект из примера 4 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, дополнительно содержат команды, исполнение которых побуждает машину: добавить запись в кэш-память, соответствующую данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует такой записи; и определить, сколько записей для этого приложения существует в кэш-памяти.
В примере 6 объект из примера 4 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, содержит команды, исполнение которых побуждает машину: добавить в кэш-память запись, соответствующую данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует записей для этого приложения.
В примере 7 объект из примеров 1 - 2 может, при желании, включать в себя следующее: указание указывает, что приложение потенциально является вредоносной программой.
В примере 8 объект из примеров 1 - 2 может, при желании, включать в себя следующее: команды дополнительно содержат команды, исполнение которых побуждает машину: обновить счетчик запросов, сделанных приложением и идентифицирующих этот пользовательский агент.
Пример 9 является сетевым устройством, содержащим: средство для действия в качестве прокси-сервера для трафика сети, для перехвата запроса на данные от приложения, исполняемого на другом устройстве; средство для разбора перехваченных запросов и определения пользовательского агента, идентифицированного запросом; средство для идентификации приложения, делающего запрос; и средство для анализа информации пользовательского агента, содержащее: средство для определения количества пользовательских агентов, связанных с этим приложением; и средство для указания приложения как возможной вредоносной программы в ответ на определение того, что некоторое пороговое количество пользовательских агентов связано с этим приложением.
В примере 10 объект из примера 9 может, при желании, также содержать средство для обработки метаданных, содержащее: средство для получения от другого устройства метаданных, соответствующих приложению и запросу; и средство для идентификации приложения, делающего запрос, на основе метаданных.
В примере 11 объект из примеров 9 - 10 может, при желании, также содержать: базу данных сопоставлений приложений и пользовательских агентов.
В примере 12 объект из примера 11 может, при желании, также содержать: средство для предоставления возможности административных обновлений базы данных.
В примере 13 объект из примеров 9 - 10 может, при желании, включать в себя следующее: пороговое количество зависит от приложения.
Пример 14 является способом обнаружения угроз нулевого дня, включающим в себя следующее: принимают пакет данных с помощью сетевого устройства от приложения, работающего на первом устройстве; идентифицируют пользовательский агент, определенный запросом на данные, который содержится в пакете данных; определяют счетчик количества пользовательских агентов, обнаруженных связанными с этим приложением; и вырабатывают, с помощью сетевого устройства, указание на то, что приложение может быть вредоносной программой, в зависимости от счетчика, обладающего заранее заданной взаимосвязью с заранее заданным пороговым значением.
В примере 15 объект из примера 14 может, при желании, также включать в себя следующее: прием пакета данных включает в себя следующее: перехватывают пакет данных с помощью прокси-сервера сетевого устройства; и перенаправляют пакет данных к месту назначения, которое определено в пакете данных, в зависимости от политики безопасности сетевого устройства.
В примере 16 объект из примера 14 может, при желании, также включать в себя следующее: выработка с помощью сетевого устройства указания включает в себя следующее: идентифицируют приложение по метаданным, принятым от первого устройства; осуществляют разборку пакета данных и извлекают данные пользовательского агента, которые идентифицируют пользовательский агент; и осуществляют поиск приложения и пользовательского агента в кэш-памяти с приложениями и связанными с ними пользовательскими агентами.
В примере 17 объект из примера 16 может, при желании, также включать в себя следующее: выработка с помощью сетевого устройства указания дополнительно включает в себя следующее: добавляют в кэш-память запись, связывающую приложение и пользовательский агент, в ответ на определение того, что в этой кэш-памяти не существует такой записи.
В примере 18 объект из примера 16 может, при желании, также включать в себя следующее: выработка с помощью сетевого устройства указания дополнительно включает в себя следующее: увеличивают счетчик запросов на данные, которые сделаны этим приложением и которые определяют этот пользовательский агент.
Пример 19 является сетевым устройством, содержащим: один или несколько процессоров; базу данных, связанную с одним или несколькими процессорами и хранящую связи между приложениями и пользовательскими агентами; и память, которая связана с одним или несколькими процессорами и в которой хранятся команды, содержащие команды, исполнение которых побуждает один или несколько процессоров: перехватить с помощью прокси-сервиса сетевого устройства запрос от первого устройства на данные; идентифицировать приложение на первом устройстве, которое передало запрос на данные; идентифицировать пользовательский агент, определенный запросом; добавить связь приложения и пользовательского агента в ответ на определение того, что в базе данных не существует такой связи; определить, связано ли приложение с пороговым количеством пользовательских агентов; и указать, в ответ на определение, то, что приложение является подозрительным.
В примере 20 объект из примера 19 может, при желании, включать в себя следующее: команды дополнительно содержат команды, исполнение которых побуждает один или несколько процессоров: перенаправить запрос на данные к месту назначения, которое указано в запросе.
В примере 21 объект из примера 19 может, при желании, также включать в себя следующее: база данных содержит кэш-память.
В примере 22 объект из примера 19 может, при желании, включать в себя следующее: команды дополнительно содержат команды, исполнение которых побуждает один или несколько процессоров обновлять счетчик количества запросов, сделанных этим приложением, указывающим этот пользовательский агент.
Пример 23 является сетевым устройством, выполненным с возможностью: перехвата запроса на данные от второго устройства, при этом запрос выработан приложением, и он идентифицирует пользовательский агент; и выработки указания в ответ на определение того, что некоторое пороговое количество пользовательских агентов идентифицировано в запросах от этого приложения.
В примере 24 объект из примера 23 может, при желании, включать в себя следующее: сетевое устройство выполнено с возможностью перехвата запроса благодаря возможности: приема пакета данных, содержащих запрос от второго устройства; и перенаправления пакета данных на второе устройство в зависимости от политики безопасности.
В примере 25 объект из примеров 23 - 24 может, при желании, включать в себя следующее: сетевое устройство обеспечивает прокси-сервис.
В примере 26 объект из примеров 23 - 24 может, при желании, включать в себя следующее: сетевое устройство выполнено с возможностью выработки указания благодаря возможности: идентификации приложения, запрашивающего данные; извлечения данных пользовательского агента из запроса, идентифицирующего пользовательский агент; и осуществления поиска данных приложения и пользовательского агента в кэш-памяти.
В примере 27 объект из примера 26 может, при желании, включать в себя следующее: сетевое устройство выполнено с возможностью выработки указания благодаря возможности: добавления в кэш-память записи, соответствующей данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует такой записи; и определения, сколько записей для этого приложения существует в кэш-памяти.
В примере 28 объект из примера 26 может, при желании, включать в себя следующее: сетевое устройство выполнено с возможностью выработки указания благодаря возможности: добавить в кэш-память запись, соответствующую данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует записей для этого приложения.
В примере 29 объект из примеров 23 - 24 может, при желании, включать в себя следующее: указание указывает, что приложение потенциально является вредоносной программой.
В примере 30 объект из примеров 23 - 24 может, при желании, включать в себя следующее: сетевое устройство дополнительно выполнено с возможностью: обновления счетчика запросов, сделанных приложением и идентифицирующих этот пользовательский агент.
Пример 31 представляет собой считываемый машиной носитель, на котором хранятся команды и который содержит команды, исполнение которых побуждает машину: перехватить, с помощью первого устройства, запрос на данные от второго устройства, при этом запрос выработан приложением и запрос идентифицирует пользовательский агент; и выработать указание на то, что приложение потенциально является вредоносной программой, в ответ на определение того, что некоторое пороговое количество пользовательских агентов идентифицировано в запросах от этого приложения, при этом первое устройство обеспечивает прокси-сервис.
В примере 32 объект из примера 31 может, при желании, включать в себя следующее: команды по перехвату содержат команды, исполнение которых побуждает первое устройство: принять пакет данных, содержащий запрос от второго устройства; и перенаправить пакет данных на второе устройство в зависимости от политики безопасности.
В примере 33 объект из примеров 31 - 32 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, содержат команды, исполнение которых побуждает машину: идентифицировать приложение, запрашивающее данные; извлечь данные пользовательского агента из запроса, идентифицирующего пользовательский агент; и осуществить поиск данных приложения и пользовательского агента в кэш-памяти.
В примере 34 объект из примера 33 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, дополнительно содержат команды, исполнение которых побуждает машину: добавить в кэш-память запись, соответствующую данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует такой записи; и определить, сколько записей для этого приложения существует в кэш-памяти.
В примере 35 объект из примеров 33 - 34 может, при желании, включать в себя следующее: команды, исполнение которых побуждает машину выработать указание, содержат команды, исполнение которых побуждает машину: добавить в кэш-память запись, соответствующую данным приложения и пользовательского агента, в ответ на определение того, что в кэш-памяти не существует записей для этого приложения.
В примере 36 объект из примеров 31 - 35 может, при желании, включать в себя следующее: команды дополнительно содержат команды, исполнение которых побуждает машину: обновить счетчик запросов, сделанных приложением и идентифицирующих пользовательский агент.
Следует понимать, что приведенное выше описание предназначено для иллюстративных целей, а не для ограничения изобретения. Например, описанные выше варианты осуществления изобретения могут быть использованы в комбинации друг с другом. После рассмотрения приведенного выше описания специалисты в рассматриваемой области могут предложить много других вариантов осуществления изобретения. Следовательно, объем изобретения должен определяться со ссылкой на приложенную формулу изобретения, вместе с полным объемом эквивалентов, для которого предназначена формула изобретения.
Claims (67)
1. Энергонезависимый машиночитаемый носитель, на котором хранятся команды, содержащие команды, которые при исполнении вызывают выполнение машиной:
перехвата, с помощью первого устройства, запроса данных от второго устройства, при этом запрос выработан приложением и запрос идентифицирует пользовательский агент; и
генерирования указания в ответ на определение, что в запросах от приложения идентифицировано заданное пороговое количество различных пользовательских агентов, причем указание указывает, что приложение является потенциально вредоносной программой,
при этом заданное пороговое количество зависит от приложения.
2. Машиночитаемый носитель по п. 1, в котором команды для перехвата содержат команды, которые при исполнении вызывают выполнение первым устройством:
приема пакета данных, содержащего запрос от второго устройства; и
перенаправления пакета данных на второе устройство в зависимости от политики безопасности.
3. Машиночитаемый носитель по п. 1, в котором первое устройство обеспечивает прокси-сервис.
4. Машиночитаемый носитель по п. 1, в котором команды, которые при исполнении вызывают выполнение машиной генерирования указания, содержат команды, которые при исполнении вызывают выполнение машиной:
идентификации приложения, запрашивающего данные;
извлечения данных пользовательского агента из запроса, идентифицирующего пользовательский агент; и
поиска приложения и данных пользовательского агента в кэш-памяти.
5. Машиночитаемый носитель по п. 4, в котором команды, которые при исполнении вызывают выполнение машиной генерирования указания, дополнительно содержат команды, которые при исполнении вызывают выполнение машиной:
добавления в кэш-память записи, соответствующей приложению и данным пользовательского агента, в ответ на определение, что в кэш-памяти не существует такой записи; и
определения, сколько записей для указанного приложения существует в кэш-памяти.
6. Машиночитаемый носитель по п. 4, в котором команды, которые при исполнении вызывают выполнение машиной генерирования указания, содержат команды, которые при исполнении вызывают выполнение машиной:
добавления в кэш-память записи, соответствующей приложению и данным пользовательского агента, в ответ на определение, что в кэш-памяти не существует записей для указанного приложения.
7. Машиночитаемый носитель по п. 1, в котором команды дополнительно содержат команды, которые при исполнении вызывают выполнение машиной:
обновления счетчика запросов, сделанных приложением и идентифицирующих пользовательский агент.
8. Сетевое устройство, содержащее:
прокси-компонент, выполненный с возможностью действовать в качестве прокси-сервера для сетевого трафика, перехватывающего запрос данных от приложения, исполняемого на другом устройстве;
машину для анализа протокола, выполненная с возможностью анализа перехваченных запросов и определения пользовательского агента, идентифицированного запросом;
компонент идентификатора ведущего приложения, выполненный с возможностью идентификации приложения, делающего запрос; и
компонент анализатора пользовательского агента, выполненный с возможностью:
определения количества различных пользовательских агентов, связанных с приложением; и
указания приложения как возможной вредоносной программы в ответ на определение, что с приложением связано заданное пороговое количество различных пользовательских агентов,
при этом заданное пороговое количество зависит от приложения.
9. Сетевое устройство по п. 8, дополнительно содержащее:
компонент сервера метаданных, выполненный с возможностью:
получения от другого устройства метаданных, соответствующих приложению и запросу; и
идентификации приложения, делающего запрос, на основе метаданных.
10. Сетевое устройство по п. 8, дополнительно содержащее:
базу данных сопоставлений приложений и пользовательских агентов.
11. Сетевое устройство по п. 10, дополнительно содержащее:
компонент конфигурации и управления, выполненный с возможностью предоставления возможности административных обновлений базы данных.
12. Сетевое устройство по п. 8, в котором пороговое количество зависит от приложения.
13. Способ обнаружение угроз нулевого дня, содержащий этапы, на которых:
принимают пакет данных с помощью сетевого устройства от приложения, запущенного на первом устройстве;
идентифицируют пользовательский агент, определяемый запросом данных, содержащимся в пакете данных;
определяют счетчик количества различных пользовательских агентов, обнаруженных связанными с приложением; и
генерируют, с помощью сетевого устройства, указание на то, что приложение может быть вредоносной программой в ответ на заданное взаимоотношение показаний счетчика с заданным пороговым значением,
при этом заданное пороговое значение зависит от приложения.
14. Способ по п. 13, в котором на этапе приема пакета данных:
перехватывают пакет данных с помощью прокси-сервера сетевого устройства; и
перенаправляют пакет данных к месту назначения, заданному в пакете данных, в зависимости от политики безопасности сетевого устройства.
15. Способ по п. 13, в котором на этапе генерирования сетевым устройством указания:
идентифицируют приложение по метаданным, принятым от первого устройства;
анализируют пакет данных и извлекают данные пользовательского агента, идентифицирующие пользовательский агент; и
осуществляют поиск приложения и пользовательского агента в кэш-памяти приложений и связанных с ними пользовательских агентов.
16. Способ по п. 15, в котором на этапе генерирования сетевым устройством указания
добавляют в кэш-память запись, связывающую приложение и пользовательский агент, в ответ на определение, что в кэш-памяти не существует такой записи.
17. Способ по п. 15, в котором на этапе генерирования сетевым устройством указания
увеличивают счетчик запросов данных, сделанных приложением и задающих пользовательский агент.
18. Сетевое устройство, содержащее:
один или более процессоров;
базу данных, связанную с указанным одним или более процессорами и хранящую связи между приложениями и пользовательскими агентами; и
память, связанную с указанным одним или более процессорами, в которой хранятся команды, содержащие команды, которые при исполнении вызывают выполнение одним или более процессорами:
перехвата с помощью прокси-сервиса сетевого устройства запроса данных от первого устройства;
идентификации приложения на первом устройстве, передавшем запрос данных;
идентификации пользовательского агента, определенного запросом;
добавления связи между приложением и пользовательским агентом в ответ на определение, что в базе данных не существует такой связи;
определения, связано ли приложение с заданным пороговым количеством различных пользовательских агентов; и
указания, в ответ на определение, что приложение является подозрительным,
при этом заданное пороговое количество зависит от приложения.
19. Сетевое устройство по п. 18, в котором команды дополнительно содержат команды, которые при исполнении вызывают выполнение одним или более процессорами перенаправления запроса данных к месту назначения, указанному в запросе.
20. Сетевое устройство по п. 18, в котором база данных содержит кэш-память.
21. Сетевое устройство по п. 18, в котором команды дополнительно содержат команды, которые при исполнении вызывают выполнение одним или более процессорами обновления счетчика количества запросов, сделанных приложением и указывающих пользовательский агент.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/464,377 US9591021B2 (en) | 2014-08-20 | 2014-08-20 | Zero day threat detection using host application/program to user agent mapping |
US14/464,377 | 2014-08-20 | ||
PCT/US2015/037123 WO2016028381A1 (en) | 2014-08-20 | 2015-06-23 | Zero day threat detection using host application/program to user agent mapping |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2653241C1 true RU2653241C1 (ru) | 2018-05-07 |
Family
ID=55349306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017101745A RU2653241C1 (ru) | 2014-08-20 | 2015-06-23 | Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом |
Country Status (5)
Country | Link |
---|---|
US (2) | US9591021B2 (ru) |
EP (1) | EP3183840B1 (ru) |
CN (2) | CN109688153B (ru) |
RU (1) | RU2653241C1 (ru) |
WO (1) | WO2016028381A1 (ru) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591021B2 (en) | 2014-08-20 | 2017-03-07 | Mcafee, Inc. | Zero day threat detection using host application/program to user agent mapping |
US10148664B2 (en) * | 2016-08-16 | 2018-12-04 | Paypal, Inc. | Utilizing transport layer security (TLS) fingerprints to determine agents and operating systems |
CN109246163B (zh) * | 2017-07-10 | 2022-02-08 | 中国电信股份有限公司 | 终端信息识别方法及装置 |
US10938786B2 (en) * | 2017-12-01 | 2021-03-02 | Twingate Inc. | Local interception of traffic to a remote forward proxy |
US10708281B1 (en) * | 2018-04-16 | 2020-07-07 | Akamai Technologies, Inc. | Content delivery network (CDN) bot detection using primitive and compound feature sets |
CN110995717B (zh) * | 2019-12-06 | 2022-11-01 | 杭州海康威视数字技术股份有限公司 | 报文处理方法、装置、电子设备及漏洞扫描系统 |
US11487526B2 (en) | 2020-08-04 | 2022-11-01 | Mastercard Technologies Canada ULC | Distributed user agent information updating |
US11526344B2 (en) | 2020-08-04 | 2022-12-13 | Mastercard Technologies Canada ULC | Distributed GeoIP information updating |
US20240272923A1 (en) * | 2023-02-15 | 2024-08-15 | Candle Corporation | Systems and methods for intra-application orchestration |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090055919A1 (en) * | 2007-08-10 | 2009-02-26 | Fujitsu Limited | Unauthorized communication detection method |
US20090158430A1 (en) * | 2005-10-21 | 2009-06-18 | Borders Kevin R | Method, system and computer program product for detecting at least one of security threats and undesirable computer files |
US20100067535A1 (en) * | 2008-09-08 | 2010-03-18 | Yadi Ma | Packet Router Having Improved Packet Classification |
US20130318604A1 (en) * | 2013-07-31 | 2013-11-28 | Splunk Inc. | Blacklisting and whitelisting of security-related events |
US20140101764A1 (en) * | 2012-10-05 | 2014-04-10 | Rodrigo Ribeiro Montoro | Methods and apparatus to detect risks using application layer protocol headers |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030059502A (ko) * | 2001-12-29 | 2003-07-10 | 한국전자통신연구원 | 웹 콘텐츠 다단계 재가공이 가능한에이치.티.티.피(http) 경유 서비스 시스템 및 방법 |
US7707310B2 (en) * | 2002-11-20 | 2010-04-27 | Cisco Technology, Inc. | Mobile IP registration supporting port identification |
WO2005069732A2 (en) * | 2004-01-26 | 2005-08-04 | Cisco Technology Inc. | Upper-level protocol authentication |
US7984138B2 (en) | 2006-06-23 | 2011-07-19 | International Business Machines Corporation | Apparatus and methods for activity-based management of computer systems |
TWI355826B (en) * | 2007-08-20 | 2012-01-01 | Univ Nat Taiwan Science Tech | Data transmitting method with multiple token macha |
US8347401B2 (en) | 2007-10-24 | 2013-01-01 | Mcafee, Inc. | Method and system for ensuring a sharing violation free environment for a trusted software agent |
US8244799B1 (en) * | 2008-07-21 | 2012-08-14 | Aol Inc. | Client application fingerprinting based on analysis of client requests |
US9185064B2 (en) * | 2010-01-15 | 2015-11-10 | Microsoft Technology Licensing, Llc | Interactive email |
US20120297457A1 (en) * | 2010-11-15 | 2012-11-22 | Brian Schulte | Interactive Malware Detector |
CN102075386B (zh) * | 2010-12-29 | 2013-11-06 | 华为技术有限公司 | 识别方法及装置 |
US8549645B2 (en) * | 2011-10-21 | 2013-10-01 | Mcafee, Inc. | System and method for detection of denial of service attacks |
CN103856524A (zh) * | 2012-12-04 | 2014-06-11 | 中山大学深圳研究院 | 基于用户代理的白名单识别合法内容的方法和系统 |
US9729509B2 (en) * | 2013-03-23 | 2017-08-08 | Fortinet, Inc. | System and method for integrated header, state, rate and content anomaly prevention for session initiation protocol |
US8997232B2 (en) * | 2013-04-22 | 2015-03-31 | Imperva, Inc. | Iterative automatic generation of attribute values for rules of a web application layer attack detector |
CN103297435B (zh) * | 2013-06-06 | 2016-12-28 | 中国科学院信息工程研究所 | 一种基于web日志的异常访问行为检测方法与系统 |
US9591021B2 (en) | 2014-08-20 | 2017-03-07 | Mcafee, Inc. | Zero day threat detection using host application/program to user agent mapping |
-
2014
- 2014-08-20 US US14/464,377 patent/US9591021B2/en active Active
-
2015
- 2015-06-23 EP EP15834184.2A patent/EP3183840B1/en active Active
- 2015-06-23 CN CN201910008666.4A patent/CN109688153B/zh active Active
- 2015-06-23 WO PCT/US2015/037123 patent/WO2016028381A1/en active Application Filing
- 2015-06-23 CN CN201580039858.1A patent/CN106576051B/zh active Active
- 2015-06-23 RU RU2017101745A patent/RU2653241C1/ru active
-
2017
- 2017-01-20 US US15/411,752 patent/US10129286B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158430A1 (en) * | 2005-10-21 | 2009-06-18 | Borders Kevin R | Method, system and computer program product for detecting at least one of security threats and undesirable computer files |
US20090055919A1 (en) * | 2007-08-10 | 2009-02-26 | Fujitsu Limited | Unauthorized communication detection method |
US20100067535A1 (en) * | 2008-09-08 | 2010-03-18 | Yadi Ma | Packet Router Having Improved Packet Classification |
US20140101764A1 (en) * | 2012-10-05 | 2014-04-10 | Rodrigo Ribeiro Montoro | Methods and apparatus to detect risks using application layer protocol headers |
US20130318604A1 (en) * | 2013-07-31 | 2013-11-28 | Splunk Inc. | Blacklisting and whitelisting of security-related events |
Also Published As
Publication number | Publication date |
---|---|
WO2016028381A1 (en) | 2016-02-25 |
EP3183840A4 (en) | 2018-08-01 |
EP3183840A1 (en) | 2017-06-28 |
CN106576051A (zh) | 2017-04-19 |
CN109688153A (zh) | 2019-04-26 |
EP3183840B1 (en) | 2020-10-07 |
CN106576051B (zh) | 2019-01-01 |
US20160057158A1 (en) | 2016-02-25 |
US10129286B2 (en) | 2018-11-13 |
US20170134419A1 (en) | 2017-05-11 |
US9591021B2 (en) | 2017-03-07 |
CN109688153B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2653241C1 (ru) | Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом | |
RU2634211C1 (ru) | Способ и система анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак | |
US10855700B1 (en) | Post-intrusion detection of cyber-attacks during lateral movement within networks | |
KR102580898B1 (ko) | Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법 | |
EP3111330B1 (en) | System and method for verifying and detecting malware | |
EP2659416B1 (en) | Systems and methods for malware detection and scanning | |
EP3823241A1 (en) | Network application firewall | |
US10270792B1 (en) | Methods for detecting malicious smart bots to improve network security and devices thereof | |
US20140096246A1 (en) | Protecting users from undesirable content | |
US10757135B2 (en) | Bot characteristic detection method and apparatus | |
EP3127301A1 (en) | Using trust profiles for network breach detection | |
US11636208B2 (en) | Generating models for performing inline malware detection | |
US11374946B2 (en) | Inline malware detection | |
US20170250998A1 (en) | Systems and methods of preventing infection or data leakage from contact with a malicious host system | |
JP2015179416A (ja) | ブラックリスト拡充装置、ブラックリスト拡充方法およびブラックリスト拡充プログラム | |
CN111865996A (zh) | 数据检测方法、装置和电子设备 | |
US11368430B2 (en) | Domain name server based validation of network connections | |
US9306908B2 (en) | Anti-malware system, method of processing packet in the same, and computing device | |
US20200089877A1 (en) | Malicious event detection device, malicious event detection method, and malicious event detection program | |
US20230344861A1 (en) | Combination rule mining for malware signature generation | |
US9705898B2 (en) | Applying group policies | |
RU2601162C1 (ru) | Способ использования выделенного сервиса компьютерной безопасности | |
JP2022541250A (ja) | インラインマルウェア検出 | |
Tupakula et al. | Dynamic state-based security architecture for detecting security attacks in virtual machines | |
JP2021514501A (ja) | マルウェア検出のためのコンテキストプロファイリング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC43 | Official registration of the transfer of the exclusive right without contract for inventions |
Effective date: 20191105 |