RU2653241C1 - Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом - Google Patents

Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом Download PDF

Info

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
Application number
RU2017101745A
Other languages
English (en)
Inventor
Маниш КУМАР
Original Assignee
Макафи, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Макафи, Инк. filed Critical Макафи, Инк.
Application granted granted Critical
Publication of RU2653241C1 publication Critical patent/RU2653241C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/146Tracing 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, в котором команды дополнительно содержат команды, которые при исполнении вызывают выполнение одним или более процессорами обновления счетчика количества запросов, сделанных приложением и указывающих пользовательский агент.
RU2017101745A 2014-08-20 2015-06-23 Обнаружение угрозы нулевого дня с использованием сопоставления ведущего приложения/программы с пользовательским агентом RU2653241C1 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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