Обнаружение вредоносного программного обеспечения с перекрестным обзором
Иллюстрации
Показать всеИзобретение относится к области компьютерной безопасности. Технический результат заключается в более надежном определении подозрительного исполняемого объекта, который может представлять собой вредоносное программное обеспечение. Раскрыто вычислительное устройство для определения подозрительного исполняемого объекта, содержащее запоминающее устройство и один или более аппаратных и/или программных логических элементов, содержащих механизм обнаружения с перекрестным обзором, выполненный с возможностью: наблюдения за первой операцией, выполняемой исполняемым объектом в запоминающем устройстве на первом уровне абстракции; наблюдения за, по существу, одновременной второй операцией, выполняемой исполняемым объектом в запоминающем устройстве на втором уровне абстракции, причем второй уровень абстракции отличается от первого уровня абстракции; определения, что первая операция, по существу, вызывает иной вычислительный результат, чем вторая операция, при этом определение содержит преобразование первой операции и второй операции в сравнимый формат; и обозначения исполняемого объекта как подозрительного. 3 н. и 20 з.п. ф-лы, 5 ил.
Реферат
Область техники, к которой относится изобретение
Данная заявка относится к области компьютерной безопасности и, более конкретно, к механизму детектирования вредоносного программного обеспечения с перекрестным обзором.
Уровень техники
Исследование в области безопасности превратилось в постоянную гонку вооружений между исследователями в области безопасности, с одной стороны, и авторами вредоносного программного обеспечения, с другой стороны. Исследователи в области безопасности, со своей стороны, в основном, заняты детектированием и восстановлением после воздействия вредоносного программного обеспечения для защиты конечных пользователей и предприятий от преступного намерения и ущерба. В отличие от этого, авторы вредоносного программного обеспечения прежде всего стремятся исключить детектирование так, чтобы их объекты вредоносного программного обеспечения могли продолжать распространяться по предприятиям и сетям.
Краткое описание чертежей
Настоящее раскрытие лучше всего будет понятным из следующего подробного описания изобретения, которое следует читать совместно с приложенными чертежами. Следует подчеркнуть, что, в соответствии со стандартной практикой в промышленности, различные функции не вычерчены в масштабе и используются только с целью иллюстрации. Фактически, размеры различных свойств могут быть произвольно увеличены или уменьшены для ясности описания.
На фиг. 1 показана схема сети с системой безопасности в соответствии с одним или больше примерами настоящего описания.
На фиг. 2 показана блок-схема вычислительного устройства в соответствии с одним или больше примерами настоящего описания.
На фиг. 3 показана блок-схема сервера в соответствии с одним или больше примерами настоящего описания.
На фиг. 4 показана функциональная блок-схема механизма детектирования с перекрестным обзором в соответствии с одним или больше примерами настоящего описания.
На фиг. 5 представлена блок-схема последовательности операций способа, выполняемого механизмом детектирования с перекрестным обзором в соответствии с одним или больше примерами настоящего описания.
Подробное описание изобретения
В примере раскрыт механизм детектирования с перекрестным обзором, предназначенный для детектирования вредоносного поведения. Вредоносное программное обеспечение может пытаться исключить детектирование, максимально долго оставаясь в энергозависимом запоминающем устройстве, и выполняя запись на диск только, когда это необходимо. Для исключения детектирования, вредоносное программное обеспечение может также предоставлять псевдодрайвер на уровне файловой системы, который выполняет имеющие легитимный вид фиктивные операции. Драйвер на уровне встроенного программного обеспечения может одновременно выполнять злонамеренные операции. Механизм детектирования с перекрестным обзором детектирует это поведение, вскрывая противоречия в трассах вызова из операций на уровне файловой системы, и реконструируя трассы вызова от операций на уровне встроенного программного обеспечения. Если трассы не совпадают, объект может быть помечен флагом, как подозрительный.
Осуществление изобретения
В следующем раскрытии представлено множество разных вариантов осуществления или примеров для воплощения различных свойств настоящего раскрытия. Конкретные примеры компонентов и компоновок описаны ниже для упрощения настоящего раскрытия. Они представляют собой, конечно, просто примеры и не предназначены для ограничения. Кроме того, в настоящем раскрытии могут повторяться номера ссылочных позиций и/или буквы в различных примерах. Такое повторение предназначено для простоты и ясности и не диктует само по себе взаимосвязь между различными описываемыми вариантами осуществления и/или конфигурациями.
Различные варианты осуществления могут иметь разные преимущества, и ни одно конкретное преимущество не обязательно требуется в любом варианте осуществления.
Одно проявление гонки вооружений в области безопасности можно видеть в дисковых операциях, выполняемых определенными классами объектов вредоносного программного обеспечения. В одном примере агент - антивирус устанавливают в устройстве пользователя для детектирования определенных классов операций записи с помощью исполняемых объектов. Экспериментальные данные показывают, что эти типы операций записи обычно выполняются только вредоносным программным обеспечением.
В частности, цель определенных объектов вредоносного программного обеспечения состоит в том, чтобы оставаться постоянно в устройстве конечного пользователя, даже в случае перезагрузки и поломки компьютера. Таким образом, для объекта вредоносного программного обеспечения не достаточно просто оставаться в энергонезависимом запоминающем устройстве. Однако, пребывание в энергонезависимом запоминающем устройстве представляет собой наилучший выбор для исполнительного объекта для того, чтобы избегать детектирования в некоторых вариантах осуществления. Таким образом, в одном варианте осуществления, "руткит" может пытаться исключить динамический анализ. Например, руткит ZeroAccess использует две технологии для модификации и сохранения постоянных данных на диске, не будучи детектированным в ходе динамического анализа. Вначале он использует API низкого уровня для создания новой папки на диске, в которой он может сохранять злонамеренные исполняемые программы. Эта папка является невидимой для пользователя и для определенных агентов безопасности, работающих в системе.
Во второй технологии он формирует драйвер привилегированного режима. Этот драйвер непосредственно вызывает API файловой системы, обходя интерфейсы, которые могут отслеживаться агентами, направленными на борьбу с вредоносным программным обеспечением. Такой драйвер тайно формирует файл конфигурации в файловой системе и возвращает поддельные данные всякий раз, когда защитное программное обеспечение запрашивает считывание инфицированного файла. Поскольку злоумышленная исполнительная программа находится в пространстве ядра, нет необходимости использовать интерфейсы, отслеживаемые динамическими анализаторами, основанными на системном вызове.
В другом примере руткит "TDSS" также обходит анализ файловой системы, сохраняя свой злонамеренный драйвер в необработанных секторах диска, и перезаписывая главную загрузочную запись (MBR). MBR загружает вредоносный код из необработанных секторов диска во время загрузки. Такое считывание не может быть детектировано при динамическом анализе.
Таким образом, традиционный механизм, работающий против вредоносного программного обеспечения, с трудом детектирует объект вредоносного программного обеспечения. Однако объект вредоносного программного обеспечения, в конечном итоге, должен выполнять запись на диск для того, чтобы оставаться постоянным. Таким образом, определенные варианты осуществления механизмов, действующих против вредоносного программного обеспечения, детектируют и помечают флагом подозрительные операции записи. Это может подвергать исполнительный объект дополнительному внимательному исследованию, и, в конечном итоге, может привести к тому, что вредоносный объект будет правильно идентифицирован, как вредоносное программное обеспечение.
Продолжая гонку вооружений, определенные вредоносные программные объекты разыгрывают выглядящие, как легитимные операции с диском на "более высоком" (более абстрактном) уровне операции, одновременно выполняя операции с диском на низком уровне (менее абстрактно), такие, как записи в необработанной области, на диск, не проходя через драйвер файловой системы. Агент, действующий против вредоносного программного обеспечения на компьютере, может видеть только легитимно выглядящие операции с диском для поддержания постоянной копии вредоносного программного обеспечения в устройстве. Таким образом, агент, работающий против вредоносного программного обеспечения, может продолжать считать, что диск не содержит вредоносное программное обеспечение, в то время, как фактически вредоносный программный объект успешно избежал детектирования.
Поэтому, предпочтительно предоставить систему и способ детектирования вредоносного программного обеспечения с перекрестным обзором, в котором механизм детектирования с перекрестным обзором предусмотрен, как для отслеживания операций с дисками высокого уровня, так и операций с дисками низкого уровня. В этом контексте операция с диском "высокого уровня" представляет собой операцию с диском, выполняемую так, как через программный интерфейс приложения (API), его драйвер файловой системы или другой легитимный путь, предоставляющий абстракцию для операций файловой системы. Операция с диском на "низком уровне" представляет собой операцию, которая возникает ниже уровня драйвера файловой системы или другого легитимного механизма абстракции. Следует отметить, что эти примеры операций высокого уровня и низкого уровня предусмотрены только в качестве примера, и не предназначены для ограничения. В определенных вариантах осуществления настоящего описания может происходить некоторое перекрытие между операциями, рассматриваемыми, как операции низкого уровня и операции высокого уровня. Таким образом, в одном варианте осуществления, операция низкого уровня может представлять собой любую операцию, которая выполняется на более низком уровне абстракции, чем операция высокого уровня. Таким образом, один пример различия свойств между операцией высокого уровня и операцией низкого уровня состоит в том, что они не работают на идентичных уровнях абстракции.
В одном примере механизм детектирования с перекрестным обзором отслеживает, как операции с диском высокого уровня, так и операции с диском низкого уровня, в фоновом режиме. Это может быть выполнено, например, путем управления механизмом детектирования с перекрестным обзором, в качестве фоновой обработки, работающей с повышенными системными привилегиями. Такие повышенные системные привилегии могут, в одном примере, только незначительно быть менее привилегированными, чем сама операционная система. В другом примере механизм детектирования с перекрестным обзором предусмотрен во встроенном программном обеспечении или в программном обеспечении чрезвычайно низкого уровня, таким образом, что оно фактически работает на более высоком уровне привилегий, чем операционная система. Специалисты в данной области техники понимают, что выбор и конструирование конкретного механизма детектирования перекрестного обзора и уровень привилегии, на котором он работает, представляют собой конструктивные решения, которые могут быть продиктованы конструктивными ограничениями. Поэтому, предполагается, что любые такие вариации в механизме детектирования с перекрестным обзором могут быть включены в данное описание.
В другом примере механизм детектирования с перекрестным обзором включает в себя два или больше компонента. Один компонент представляет собой драйвер уровня встроенного программного обеспечения, который работает, по существу, с неограниченными привилегиями, в то время как второй компонент представляет собой драйвер уровня файловой системы, который может взаимодействовать с операционной системой и файловой системой через привязки операционной системы, и которые могут иметь привилегии уровня приложения или повышенные системные привилегии по сравнению с операционной системой. Эти два компонента могут работать для детектирования операции диска с вредоносным программным обеспечением.
В одном варианте осуществления может предполагаться, что если исполняемый объект одновременно выполняет "фиктивную" операцию с диском на высоком уровне, также выполняя операцию с диском на низком уровне, которая не соответствует операции с диском на высоком уровне, исполняемый объект может безопасно рассматриваться, как вредоносное программное обеспечение.
По своей природе операции с диском на низком уровне не должны быть по своей сути или естественно сравнимыми с командами высокого уровня. Как установлено конструктивно, операции высокого уровня выполнены так, чтобы они были более абстрактными, чем операции низкого уровня. В одном примере простая запись на диск может выполняться на более высоком уровне абстракции путем вызова функции стандартной библиотеки, такой, как fprintf(). Стандартная функция библиотеки после этого предоставляет необходимые операции низкого уровня для завершения операции записи на диск. Таким образом, одна или другая, или обе из операций с диском высокого уровня и операций с диском низкого уровня не обязательно должны быть транслированы на новую форму таким образом, чтобы их можно было с пользой сравнивать.
В одном примере операции с диском высокого уровня уменьшаются до последовательности трасс вызова. Трассы вызова и кластеризация графов вызова описаны в публикации "Malware Classification based on Call Graph Clustering" by Joris Kinable and Orestis Kostakis, опубликованной 27 августа 2010 г. Эта публикация доступна на дату подачи заявки по адресу <http://arxiv.org/abs/1008.4365>.
Одновременно, операции с диском низкого уровня реконструируют в эквивалентные трассы вызова. Таким образом, разобранные трассы вызова в операции высокого уровня можно сравнивать с реконструированными трассами вызова операции на низком уровне для определения, соответствуют ли трассы вызова.
Если трассы вызова не соответствуют, тогда можно вывести, что операция с диском низкого уровня не выполняет то, что, вероятно, должна выполнять операция на высоком уровне. Такое поведение является чрезвычайно характерным для вредоносного программного обеспечения, и объект, который ведет себя таким образом, может быть помечен флагом.
Следует распознавать здесь, что здесь не обязательно существует взаимно однозначное соответствие между событиями с диском и операцией файловой системы, или другими словами, отсутствует явная последовательность событий, которая всегда соответствует примеру операции, такой, как "запись в файл". Когда необработанные байты перехватываются на их пути на диск, результат фактически состоит в получении среза того, что представлено или будет представлено на самом диске. Для определения, какая операция произошла, механизм детектирования с перекрестным обзором может использовать следующую информацию:
Предыдущее состояние диска (например, какие секторы диска содержат какие файлы и какие метаданные).
Перехваченные данные (например, какие данные или метаданные были записаны на диск при этой одиночной транзакции).
В качестве примера, в файловой системе новой технологии Windows (NTFS), основная структура данных представляет собой Главную таблицу файлов (MFT). При этом существует один вход в MFT для каждого файла на диске, и вход в MFT содержит метаданные, описывающие этот файл (например, его наименование и список всех секторов на диске, в которых найдено его содержание).
При выполнении анализа диска на низком уровне механизм детектирования с перекрестным обзором не перехватывает, например, определенное событие, которое коррелирует в чистом виде для "формирования файла, называемого newfile.txt," или "удалить файл под называнием newfile.txt." Скорее, механизм детектирования с перекрестным обзором может просто перехватывать блок данных, который имеет формат входа MFT (или который расположен в секторе, известном, как содержащий входы MFT). Механизм детектирования с перекрестным обзором затем может анализировать метаданные для определения, произошли ли какие-либо изменения после последнего учета метаданных.
Аналогично, для перехвата операции записи файла, механизм детектирования с перекрестным обзором не может просто идентифицировать событие, которое соответствует "Записать 'abe' в файл newfile.txt." Скорее, в шину будут просто переданы необработанные байты 'abe' в сектор диска, известный, как принадлежащий файлу "newfile.txt"
В этом контексте некоторые неограничительные примеры корреляций между трассами вызова и операциями низкого уровня представлены ниже.
Трасса по примеру 1:
СФОРМИРОВАТЬ файл "newfile.txt"
ЗАПИСАТЬ файл "newfile.txt"
Соответствующий набор событий диска низкого уровня и условий может включать в себя:
Записать в блок 8000 диска
Блок диска 8000 известен, как принадлежащий MFT, и, таким образом, содержит вход MFT (метаданные о файле)
Вход MFT отмечается, как "используемый" (действительный)
Ранее, в этом местоположении не было используемых (действительных) метаданных. Поэтому оно представляет собой новый файл.
Перехваченный MFT обозначает, что файл называется "newfile.txt", и его содержание сохранено на диске в блоках от 123000 по 123400
Диск выполняет запись в блок 123000
Известно, что блок диска 123000 принадлежит файлу newfile.txt
Трасса по примеру 2:
УДАЛИТЬ файл "newfile.txt"
Соответствующий набор событий на диске низкого уровня и условий может включать в себя:
Записать в блок 8000 на диске
Блок на диске 8000 известен, как представляющий собой вход MET для файла "newfile.txt"
Перехваченный вход MET отмечен, как "не используется" (не действительный)
Запись данных была ранее помечена, как "используемая" (действительная)
Трасса по примеру 3:
УДАЛИТЬ файл "newfile.txt"
СОЗДАТЬ файл "newerfile.txt"
Соответствующий набор событий на диске низкого уровня и условий может включать в себя:
Записать в блок 8000 на диске
Блок 8000 на диске был известен, как вход в MET для файла "newfile.txt"
Вход MET помечен, как "используемый" (действительный)
Запись данных была ранее помечена, как "используемая" (действительная)
Вход MET ранее был перечислен, как имеющий номер последовательности 12
Перехваченный вход MET представляет номер последовательности 13
Другими словами, файл был удален и другой был сформирован очень быстро, и более новый файл занял только что освободившееся место во входе MET.
Семантическая реконструкция операций из необработанных данных представляет собой специфичную для файловой системы; то есть, эти эвристические данные относятся только к файловой системе NTFS Windows, но они не обязательно должны относиться к другим файловым системам.
Механизм детектирования с перекрестным обзором может быть описан с более конкретной ссылкой на приложенные чертежи.
На фиг. 1 показана схема уровня сети для распределенной сети 100 безопасности, в соответствии с одним или больше примерами настоящего описания. В примере на фиг. 1 множество пользователей 120 работают с множеством компьютерных устройств 110. В частности, пользователь 120-1 работает с настольным компьютером 110-1. Пользователь 120-2 работает с переносным компьютером 110-2. И пользователь 120-3 работает с мобильным устройством 110-3.
Каждое вычислительное устройство может включать в себя соответствующую операционную систему, такую как Microsoft Windows, Linux, Android, Mac OSX, Apple IOS, Unix, или аналогичные. Некоторые из представленных выше могут чаще использоваться для одного типа устройства, чем для другого. Например, настольные компьютеры 110-1, которые также в некоторых случаях могут представлять собой рабочие станции для инженерных разработок, могут более вероятно использовать одну из Microsoft Windows, Linux, Unix или Mac OSX. Переносной компьютер ЭВМ 110-2, который обычно является более портативным стандартным устройством, используемым в том виде, как он был поставлен, при минимальных настройках, может более вероятно работать с Microsoft Windows или Mac OSX. Мобильное устройство 110-3 может более вероятно работать с Android или IOS. Однако эти примеры не предназначены для ограничения.
Вычислительные устройства 110 могут быть соединены с возможностью обмена данными друг с другом и с другими сетевыми ресурсами через сеть 170. Сеть 170 может представлять собой любую соответствующую сеть или комбинации сетей, включающую в себя, например, локальную вычислительную сеть, глобальную вычислительную сеть, беспроводную сеть, сотовую сеть или Интернет, в качестве неограничительного примера. На этой иллюстрации сеть 170 показана, как одиночная сеть, для простоты, но в некоторых вариантах осуществления, сеть 170 может включать в себя большое количество сетей, такие как одна или больше, интранет предприятия, соединенные с Интернет.
Также с сетью 170 соединены один или больше серверов 140, репозитарий 160 приложения, и действующие лица-люди соединенные через различные устройства, включая в себя, например, атакующее лицо 190 и разработчика 180. Серверы 140 могут быть выполнены с возможностью предоставления соответствующих сетевых услуг, включая в себя определенные услуги, раскрытые в одном или больше примерах настоящего описания. В одном варианте осуществления один или больше администратор 150 по безопасности администрируют серверы 140 и, по меньшей мере, часть сети 170.
Целью пользователей 120 может быть успешное управление их соответствующими вычислительными устройствами 110 без вмешательства атакующего лица 190 и разработчика 180. В одном примере атакующее лицо 190 представляет собой автора вредоносного программного обеспечения, предназначение которого состоит в том, чтобы причинить злоумышленный вред или нанести ущерб. Злоумышленный вред или ущерб могут принимать форму установки руткитов или другого злоумышленного программного обеспечения в компьютерных устройствах 110 для вмешательства в систему, установки шпионского программного обеспечения или рекламного программного обеспечения для сбора персональных и коммерческих данных, повреждения веб-сайтов, управления сетью зомбированных компьютеров, например, как сервером для передачи спама, или просто для того, чтобы надоедать и беспокоить пользователей 120. Таким образом, одна из целей атакующего лица 190 может состоять в том, чтобы установить свое злонамеренное программное обеспечение в одно или больше вычислительных устройств 110. Используемый в данном описании термин злонамеренное программное обеспечение ("malware") включает в себя любой вирус, троян, зомби, руткит, секретный вход, черви, шпионское программное обеспечение, рекламное программное обеспечение, программы-шантажисты, диллеры, программы, передаваемые по сети, злоумышленные объекты-помощники в браузере, куки, регистратор или аналогичные, разработанные для выполнения потенциально нежелательного действия, включая в себя, в качестве неограничительного примера, разрушение данных, скрытый сбор данных, нападение на браузер, создание сетевого прокси-устройства или перенаправление, скрытое отслеживание, регистрацию данных, регистрацию ключей, чрезмерные или тщательно взвешенные барьеры для удаления, сбора контактов и неавторизованного самораспространения.
Серверы 140 во время работы на соответствующем предприятии могут обеспечивать обновления системы безопасности и услуги, включающие в себя услуги против вредоносного программного обеспечения. Серверы 140 также могут обеспечивать существенные услуги, такие как маршрутизация, формирование сетей, услуги данных предприятия и приложения для предприятия. В одном примере серверы 140 выполнены с возможностью распределения и принудительного выполнения вычислений на предприятии и политик безопасности. Эти политики могут администрироваться администратором 150 по безопасности, в соответствии с записанными политиками предприятия. Администратор 150 по безопасности также может быть ответственным за администрирование и конфигурирование серверов 140, и всей или части сети 170.
Разработчик 180 также может работать в сети 170. Разработчик 180 может не иметь конкретного злонамеренного умысла, но может разрабатывать программное обеспечение, которое накладывает риск для безопасности. Например, хорошо известная и часто эксплуатируемая ошибка в области безопасности представляет собой, так называемое, переполнение буфера, при котором злонамеренный пользователь, такой, как атакующее лицо 190, может вводить чрезмерно длинную строку во входную форму и, таким образом, получать возможность выполнения произвольной инструкции или работы с улучшенными полномочиями в вычислительном устройстве 110. Переполнение буфера может происходить, например, из-за недостаточного удостоверения входных данных или неполного сбора мусора, и во многих случаях к возникновению неочевидного контекста. Таким образом, хотя он не является злонамеренным сам по себе, разработчик 180 может предоставлять вектор атаки для атакующего лица 190. Приложения, разработанные разработчиком 180, также могут привести к свойственным проблемам, таким, как аварийный отказ, потеря данных или другое нежелательное поведение. Разработчик 180 может сам содержать программное обеспечение или может загружать свое программное обеспечение в репозитарий 160 приложения. Поскольку программное обеспечение от разработчика 180 может быть желательным само по себе, для разработчика 180 может быть предпочтительным, в случае необходимости, предоставлять обновления или патчи, которые устраняют уязвимости, по мере того, как они становятся известными.
Репозитарий 160 приложения может представлять "магазин приложений" Windows или Apple, репозитарий подборки портов для сред типа Unix или другую сетевую услугу, предоставляющую для пользователей 120 возможность интерактивной или автоматической загрузки и установки приложений в вычислительных устройствах 110. Разработчик 180 и атакующее лицо 190 могут оба предоставлять программное обеспечение через репозитарий 160 приложения. Если в репозитарии 160 приложения установлены меры безопасности, которые затрудняют для атакующих лиц 190 распределение открыто злонамеренного программного обеспечения, атакующее лицо 190, вместо этого, может скрыто вставлять уязвимости во внешне предпочтительные приложения.
В некоторых случаях один или больше пользователей 120 могут принадлежать предприятию. Предприятие может предоставлять директивы политики, которые ограничивают типы приложений, которые могут быть установлены, например, из репозитария 160 приложения. Таким образом, репозитарий 160 приложения может включать в себя программное обеспечение, которое не является небрежно разработанным и не является злонамеренным, но которое, тем не менее, противоречит политике. Например, некоторые предприятия ограничивают установку развлекательного программного обеспечения, такого, как мультимедийные проигрыватели и игры. Таким образом, даже защищенный мультимедийный проигрыватель или игра могут не соответствовать компьютеру предприятия. Администратор по безопасности 150 может быть ответственным за распределение вычислительной политики, соответствующей таким ограничениям.
В другом примере пользователь 120 может быть родителем малых детей и желает защитить малых детей от нежелательного содержания, такого как порнография, реклама, шпионское программное обеспечение, содержание, несоответствующее возрасту, пропаганда определенных политических, религиозных или общественных движений, или форумы для обсуждения нелегальных или опасных действий, в качестве неограничительного примера. В этом случае, родитель может принимать роль администратора 150 по безопасности, и может определять и принудительно устанавливать вычислительные политики для дома.
Совместно любой объект, который представляет собой кандидата на один из представленных выше типов содержания, может называться "потенциально нежелательным содержанием" (PUC). "Потенциально" аспект PUC означает, что, когда объект отмечен, как PUC, он не обязательно помещен в черный список. Скорее, он представляет собой кандидата на объект, которому не следует быть разрешено находиться или работать в вычислительном устройстве 110. Таким образом, цель пользователей 120 и администратора 150 по безопасности состоит в том, чтобы сконфигурировать и обеспечить работу вычислительных устройств 110, чтобы с пользой анализировать PUC и получать интеллектуальные решения в отношении того, как отвечать на объект PUC. Это может включать в себя агент в вычислительном устройстве 110, такой, как механизм 224 детектирования с перекрестным обзором на фиг. 2, который может связываться с серверами 140 для получения дополнительных интеллектуальных возможностей. Серверы 140 могут предоставлять услуги на основе сети, включая в себя механизм 324 сервера по фиг. 3, которые выполнены с возможностью принудительного исполнения политик и предоставления другой помощи вычислительным устройствам 110 при соответствующих классификации и действиях PUC.
На фиг. 2 показана блок-схема устройства 110 - клиента, в соответствии с одним или больше примерами настоящего описания. Устройство 110 - клиент может представлять собой любое соответствующее вычислительное устройство. В различных вариантах осуществления "вычислительное устройство" может быть или может содержать, в качестве неограничительного примера, компьютер, встроенный компьютер, встроенный контроллер, встроенный датчик, карманный персональный компьютер (PDA), переносной компьютер, сотовый телефон, телефон IP, смартфон, планшетный компьютер, конвертируемый планшетный компьютер, карманный калькулятор или любое другое электронное, микроэлектронное или микроэлектромеханическое устройство для обработки и передачи данных.
Устройство 110 - клиент включает в себя процессор 210, соединенный с запоминающим устройством 220, в котором содержатся исполняемые инструкции для предоставления операционной системы 222 и механизма 224 детектирования с перекрестным обзором. Другие компоненты устройства 110 - клиента включают в себя накопитель 250, сетевой интерфейс 260 и периферийный интерфейс 240.
В примере процессор 210 соединен с возможностью обмена данными с запоминающим устройством 220 через шину 270-3 запоминающего устройства, которая может представлять собой, например, шину прямого доступа к памяти (DMA), в качестве примера, хотя возможны другие архитектуры памяти, включая в себя варианты, в которых запоминающее устройство 220 сообщается с процессором 210 через системную шину 270-1 или некоторую другую шину. Процессор 210 может быть соединен с возможностью обмена данными с другими устройствами через системную шину 270-1. Используемый в данном описании термин "шина" включает в себя любую проводную или беспроводную соединительную линию, сеть, соединение, жгут, отдельную шину, множество шин, сеть перекрестных соединений, однокаскадную сеть, многокаскадную сеть или другие проводящие носители, во время работы передающие данные, сигналы или питание между частями вычислительного устройства, или между вычислительными устройствами. Следует отметить, что эти устройства раскрыты только в качестве неограничительного примера, и что некоторые варианты осуществления могут исключать одну или больше из представленных выше шин, в то время как в других могут использоваться дополнительные или другие шины.
В различных примерах "процессор" может включать в себя любую комбинацию аппаратных средств, программного обеспечения или встроенного программного обеспечения, обеспечивающих логику программирования, включающую в себя в качестве неограничительного примера, микропроцессор, цифровой сигнальный процессор, программируемую пользователем вентильную матрицу, программируемый логический массив, специализированную интегральную схему или процессор виртуальной машины.
Процессор 210 может соединяться с запоминающим устройством 220 в конфигурации DMA через шину 270-3 DMA. Для упрощения данного раскрытия, запоминающее устройство 220 раскрыто, как одиночный логический блок, но в физическом варианте осуществления может включать в себя один или больше блоков любой соответствующей энергозависимой или энергонезависимой технологии памяти или технология, включающей в себя, например, DDR RAM, SRAM, DRAM, кэш, память L1 или L2, запоминающее устройство на кристалле, регистры, память флэш, ROM, оптические носители информации, области виртуальной памяти, магнитную память или память на ленте, или аналогичные. В некоторых вариантах осуществления запоминающее устройство 220 может содержать обладающее относительно низкой латентностью энергозависимое оперативное запоминающее устройство, в то время как накопитель 250 может содержать обладающее относительно большой латентностью энергонезависимое запоминающее устройство. Однако запоминающее устройство 220 и накопитель 250 не обязательно должны представлять собой физически отдельные устройства, и в некоторых примерах могут представлять просто логическое разделение функций. Следует также отметить, что, хотя DMA была раскрыта в качестве неограничительного примера, DMA является не единственной архитектурой, соответствующей протоколу, представленному в данном описании, и что доступны другие архитектуры памяти.
Накопитель 250 может представлять собой любые разновидности памяти 220, или может представлять собой отдельное устройство, такое, как жесткий диск, твердотельное устройство, внешний накопитель, массив независимых дисков с избыточностью (RAID), соединяемый по сети накопитель, оптический накопитель, привод на ленте, систему резервного копирования, "облачный" накопитель или любую комбинацию представленного выше. Накопитель 250 может представлять собой или может включать в себя базу данных или базы данных или данные, сохраненные в других конфигурациях, и может включать в себя сохраненную копию операционного программного обеспечения, такого, как операционная система 222, и программные части механизма 224 детектирования с перекрестным обзором. Множество других конфигураций также возможны, и предназначены для охвата в пределах широкого объема данного описания.
Сетевой интерфейс 260 может быть предусмотрен для соединения с возможностью обмена данными устройства 110 - клиента с проводной или беспроводной сетью. "Сеть", используемая в данном описании, может включать в себя любую платформу передачи данных, которая во время работы выполняет обмен данными или информацией в пределах или между вычислительными устройствами, включая в себя, в качестве неограничительного примера, специальную локальную сеть, архитектуру Интернет, обеспечивающую для вычислительных устройств возможность электронного взаимодействия, простую старую телефонную службу (POTS), и при этом вычислительные устройства могут использоваться для выполнения транзакций, в которых им могут помогать операторы-люди или в которых они могут вручную передавать данные по телефону или другому в соответствующее электронное оборудование, любую сеть пакетной передачи данных (PDN), предлагающую интерфейс передачи данных или обмен между любыми двумя узлами в системе, или любую локальную вычислительную сеть (LAN), городскую вычислительную сеть (MAN), глобальную вычислительную сеть (WAN), беспроводную локальную вычислительную сеть (WLAN), виртуальную частную сеть (VPN), интранет, или любую другую соответствующую архитектуру, или систему, которая способствует передаче данных в сети или в телефонной среде.
Механизм 224 детектирования с перекрестным обзором, в одном примере, представляет собой утилиту или программу, которая выполняет способ, такую, как способ 400 по фиг. 4, или другие способы, в соответствии с данным описанием. Механизм 224 детектирования с перекрестным обзором может, в различных вариантах осуществления, воплощен в виде аппаратных средств, программных средств, встроенного программного обеспечения или некоторой их комбинаций. Например, в некоторых случаях, механизм 224 детектирования с перекрестным обзором может включать в себя специальную интегральную схему, разработанную для выполнения способа или его части, и также может включать в себя программные инструкции, во время работы инструктирующие выполнение процессором способа. В некоторых случаях, механизм 224 детектирования с перекрестным обзором может работать, как процесс "демон" с повышенными системными привилегиями. "Демон" может включать в себя любую программу или последовательность исполняемых инструкций, которые воплощены либо в аппаратных средствах, в виде программного обеспечения, встроенного программного обеспечения или любой их комбинации, которая работает, как фоновая обработка, резидентная программа типа "выполнить и оставаться", услуга, расширение системы, панель управления, процедура загрузки, подпрограмма BIOS, или любая другая аналогичная программа, которая работает без непосредственного взаимодействия с п