ОБНАРУЖЕНИЕ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПЕРЕКРЕСТНЫМ ОБЗОРОМ
DETECTION OF HARMFUL SOFTWARE WITH CROSS-REVIEW

Область техники, к которой относится изобретение
Данная заявка относится к области компьютерной безопасности и, более конкретно, к механизму детектирования вредоносного программного обеспечения с перекрестным обзором.
Уровень техники
Исследование в области безопасности превратилось в постоянную гонку вооружений между исследователями в области безопасности, с одной стороны, и авторами вредоносного программного обеспечения, с другой стороны. Исследователи в области безопасности, со своей стороны, в основном, заняты детектированием и восстановлением после воздействия вредоносного программного обеспечения для защиты конечных пользователей и предприятий от преступного намерения и ущерба. В отличие от этого, авторы вредоносного программного обеспечения прежде всего стремятся исключить детектирование так, чтобы их объекты вредоносного программного обеспечения могли продолжать распространяться по предприятиям и сетям.
Краткое описание чертежей
Настоящее раскрытие лучше всего будет понятным из следующего подробного описания изобретения, которое следует читать совместно с приложенными чертежами. Следует подчеркнуть, что, в соответствии со стандартной практикой в промышленности, различные функции не вычерчены в масштабе и используются только с целью иллюстрации. Фактически, размеры различных свойств могут быть произвольно увеличены или уменьшены для ясности описания.
На фиг. 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, или любая другая аналогичная программа, которая работает без непосредственного взаимодействия с пользователем. Следует также отметить, что механизм 224 детектирования с перекрестным обзором предусмотрен только в качестве неограничительного примера, и что другое аппаратные и программные средства, включая в себя интерактивное программное обеспечение или программное обеспечение режима пользователя, также могут быть предусмотрены в связи с, в дополнение к, или вместо механизма 224 детектирования с перекрестным обзором для выполнения способов, в соответствии с данным описанием.
В одном примере механизм 224 детектирования с перекрестным обзором включает в себя исполняемые инструкции, содержащиеся на непереходном носителе, который во время работы выполняет операции, направленные против вредоносного программного обеспечения. В соответствующее время, такое как после загрузка устройства 110 - клиента или после команды из операционной системы 222 или от пользователя 120 процессор 210 может получать копию механизма 224 детектирования с перекрестным обзором (или его программные части) из накопителя 250 и загружать их в запоминающее устройство 220. Процессор 210 может затем итеративно исполнять инструкции механизма 224 детектирования с перекрестным обзором.
Механизм 224 детектирования с перекрестным обзором и антивирусный механизм 226 могут комбинироваться для предоставления стандартных антивирусных услуг. Механизм 224 детектирования с перекрестным обзором включает в себя интерфейс 254 на системном уровне и интерфейс 252 на низком уровне.
Интерфейс 252 на низком уровня может быть предоставлен, например, во встроенном программном обеспечении или в программном обеспечении на чрезвычайно низком уровне, таким образом, что, в некоторых случаях, он работает ниже уровня абстракции операционной системы 222. Интерфейс 254 на системном уровне может работать выше уровня абстракции операционной системы 222 и может иметь повышенные системные привилегии. Это означает, что, хотя интерфейс 254 на системном уровне не имеет беспрепятственный доступ интерфейса 252 низкого уровня, он может иметь более высокие системные привилегии, чем программы приложения пространства пользователя. Это позволяет интерфейсу 254 системного уровня вставлять привязки в операционную систему 222 для перехвата дисковых операций с целью сравнения. В некоторых вариантах осуществления интерфейс 254 системного уровня может быть предусмотрен на уровне виртуализации или на уровне гипервизора.
Периферийный интерфейс 240 может быть выполнен с возможностью формирования интерфейса с любым вспомогательным устройством, которое соединяется с устройством 110 - клиентом, но которое не обязательно представляет собой часть архитектуры ядра устройства 110 - клиента. Периферийное устройство может во время работы обеспечивать расширенные функции для устройства 110 - клиента, и может быть полностью зависимым или может не быть полностью зависимым от устройства 110 - клиента. В некоторых случаях, периферийное устройство может представлять собой вычислительное устройство в его собственных правах. Периферийные устройства могут включать в себя устройства ввода и вывода, такие как дисплеи, терминалы, принтеры, клавиатуры, "мыши", модемы, сетевые контроллеры, датчики, преобразователи, активаторы, контроллеры, шины сбора данных, камеры, микрофоны, громкоговорители или внешние накопители в качестве неограничительного примера.
На фиг. 3 показана блок-схема сервера 140, в соответствии с одним или больше примерами настоящего описания. Сервер 140 может представлять собой любое соответствующее вычислительное устройство, как описано со ссылкой на фиг. 2. В общем, определения и примеры на фиг. 2 можно рассматривать, как в равной степени применимые для фиг. 3, если только, в частности, не будет указано другое.
Сервер 140 включает в себя процессор 310, соединенный с запоминающим устройством 320, на котором содержатся исполняемые инструкции для предоставления операционной системы 322 и механизма 324 сервера оценки уязвимости. Другие компоненты сервера 140 включают в себя накопитель 350, сетевой интерфейс 360 и периферийный интерфейс 340.
В примере процессор 310 соединен с возможностью передачи данных с запоминающим устройством 320 через шину 370-3 памяти, которая может, например, представлять собой шину прямого доступа к памяти (DMA). Процессор 310 может быть соединен с возможностью обмена данными с другими устройствами через системную шину 370-1.
Процессор 310 может быть соединен с запоминающим устройством 320 в конфигурации DMA через шину 370-3 DMA. Для упрощения данного раскрытия, запоминающее устройство 320 раскрыто, как отдельный логический блок, но в физической среде оно может включать в себя один или больше блоков любой соответствующей энергозависимой или энергонезависимой технологии памяти или технологии, как описано ссылкой на запоминающее устройство 220 на фиг. 2. В определенных вариантах осуществления запоминающее устройство 320 может содержать обладающее относительно низкой латентностью энергозависимое основное запоминающее устройство, в то время как накопитель 350 может содержать обладающее относительно большей латентностью энергонезависимое запоминающее устройство. Однако запоминающее устройство 320 и накопитель 350 не обязательно должны представлять собой физически отдельные устройства, как дополнительно описано со ссылкой на фиг. 2.
Накопитель 350 может представлять собой любую разновидность памяти 320, или может представлять собой отдельное устройство, как описано со ссылкой на накопитель 250, на фиг. 2. Накопитель 350 может представлять собой или может включать в себя базу данных или базы данных, или данные, сохраненные в других конфигурациях, и может включать в себя сохраненную копию операционного программного обеспечения, такого как операционная система 322, и программные части механизма 324 сервера. Множество других конфигураций также возможны, и предназначены для их охвата в пределах широкого объема данного описания.
Сетевой интерфейс 360 может быть предусмотрен для соединения с возможностью обмена данными сервера 140 с проводной или беспроводной сетью.
Механизм 324 сервера, в одном примере, представляет собой утилиту или программу, которая выполняет способы, в соответствии с данным описанием, включая в себя предоставление услуг на стороне сервера, направленных на борьбу с вредоносным программным обеспечением, и выполняет обновления для вычислительных устройств 110. Механизм 324 сервера также может выполнять "глубокий" анализ подозрительных объектов для обеспечения более высокого уровня уверенности, является ли объект злонамеренным. Механизм 324 сервера оценки уязвимости может быть, в различных вариантах осуществления, воплощен в виде аппаратных средств, программного обеспечения, встроенного программного обеспечения или некоторой их комбинации. Например, в некоторых случаях, механизм 324 сервера оценки уязвимости может включать в себя специальную интегральную схему, разработанную для выполнения способа или его части, и также может включать в себя программные инструкции, во время работы инструктирующие процессор для выполнения способа. В некоторых случаях, механизм 324 сервера оценки уязвимости может работать, как обработка демон, как описано выше. Следует также отметить, что механизм 324 сервера оценки уязвимости предусмотрен только в качестве неограничительного примера, и что другие аппаратные средства и программные средства, включая в себя интерактивное или работающее в режиме пользователя программное обеспечение, также могут быть предусмотрены совместно с, в дополнение к, или вместо механизма 324 сервера оценки уязвимости для выполнения способов, в соответствии с данным описанием.
В одном примере механизм 324 сервера включает в себя исполняемые инструкции, сохраненные на непереходном носителе, который во время работы выполняет способы, в соответствии с данным описанием. В соответствующее время, такое, как после начальной загрузки сервера 140 или после команды из операционной системы 322 или от пользователя 120, процессор 310 может получать копию механизма 324 сервера (или его программных частей) из накопителя 350 и загружать ее в запоминающее устройство 320. Процессор 310 может затем итеративно выполнять инструкции механизма 324 сервера.
Периферийный интерфейс 340 может быть выполнен с возможностью формирования интерфейса с любым вспомогательным устройством, которое соединяется с сервером 140, но не обязательно представляет собой часть архитектуры ядра сервера 140. Периферийное устройство во время работы может обеспечивать расширенную функциональность для сервера 140, и может быть или может не быть полностью зависимым от сервера 140. В некоторых случаях, периферийное устройство может представлять само по себе вычислительное устройство. Периферийные устройства могут включать в себя, в качестве неограничительных примеров, любое из устройств, описанных в связи с периферийным интерфейсом 240 на фиг. 2.
На фиг. 4 показана функциональная блок-схема операционного стека, в соответствии с одним или больше примерами настоящего описания. На самом нижнем уровне абстракции, или, наоборот, на самом высоком уровне привилегий, находятся аппаратные средства 410. Это обозначает, что аппаратные средства 410 просто могут выполнять все, что только могут выполнять аппаратные средства 410. На этом уровне абстракции отсутствуют искусственные ограничения. Скорее, ограничения на этом уровне просто представляют собой ограничения своих собственных присущих возможностей. Также на аппаратном уровне 410 не предусмотрена абстракция. Аппаратными средствами 410 фундаментально управляются в большинстве случаев электрическими или электромеханическими сигналами. Такие сигналы управляют прямыми физическими откликами в аппаратных средствах 410, обеспечивающими требуемые операции.
Встроенное программное обеспечение 420 расположено непосредственно выше аппаратных средств 410 на уровне абстракции, и непосредственно ниже аппаратных средств 410 на уровне привилегий. Встроенное программное обеспечение 420, например, может предоставлять малое количество прямых команд, которые могут быть транслированы в электрические сигналы для использования с аппаратными средствами 410.
Мониторинг операций с диском на "низком уровне" может, в одном примере, возникать либо на уровне 410 аппаратных средств или на уровне 420 встроенного программного обеспечения. Один способ может состоять в отслеживании информации в шине ATARI, SCSI или SATA, такой как номер сектора, тип операции (запись или считывание) и считывание или запись данных.
Вредоносное программное обеспечение 480 и механизм 224 детектирования с перекрестным обзором оба включают в себя драйвер низкого уровня для непосредственной манипуляции и отслеживания встроенного программного обеспечения 420. Механизм 224 детектирования с перекрестным обзором предоставляет драйвер 492 низкого уровня. Вредоносное программное обеспечение 480 предоставляет драйвер 482 низкого уровня. В одном примере вредоносное программное обеспечение 480 использует драйверы 482 низкого уровня для непосредственной манипуляции операциями с диском в отношении аппаратных средств 410 через встроенное программное обеспечение 420. Эти операции могут быть не видимыми на уровне 222 операционной системы. Однако, механизм 224 детектирования перекрестного обзора использует драйвер 492 низкого уровня, для наблюдения за этим взаимодействием.
На следующем уровне абстракции находится операционная система 222. Операционная система 222 может обеспечивать множество драйверов, интерфейсов и услуг, которые обеспечивают возможность для программ более высокого уровня выполнять операции с аппаратными средствами. Одна полезная функция операционной системы 222 состоит в том, чтобы обеспечивать абстракцию через драйверы таким образом, что один объект, такой как исполняемая обработка, может вырабатывать идентичные команды для выполнения полезной работы для различных аппаратных платформ. Например, аппаратные средства 410 могут представлять собой привод жесткого диска, предоставленный производителем. Поскольку операционная система 222 абстрагирует операции диска, предоставляемые для аппаратных средств 410, конечному пользователю не требуется знать или заботиться о том, какой конкретный привод жесткого диска, какого производителя будет использоваться на уровне 410 аппаратного обеспечения.
На следующем уровне абстракции находится драйвер 440 файловой системы. Драйвер 440 файловой системы обеспечивает интерфейс низкого уровня через операционную систему 222, организующую, сохраняющую и получающую файлы. Популярные драйверы файловой системы включают в себя Windows NTFS, extB или ext4 Linux, иерархическую файловую систему Apple (HF) и различные файловые системы UNIX, такие как UFS, BSDFS и ZF.
Вредоносное программное обеспечение 480 может обеспечивать псевдодрайвер 484 высокого уровня, который взаимодействует с драйвером 440 файловой системы. Назначение псевдодрайвера 484 вредоносного программного обеспечения состоит в том, что вырабатывают фиктивные команды для драйвера 440 файловой системы, для формирования видимости выполнения легитимных операций с файлами. Однако, драйвер 482 низкого уровня блокирует эти команды, таким образом, что они фактически не выполняются в аппаратных средствах 410 диска. Скорее, в то время как эти фиктивные команды вырабатываются, драйвер 482 низкого уровня выполняет задачу, фактически требуемую вредоносным программным обеспечением 480. Следует отметить, что перехват вызовов на уровне драйвера файловой системы обеспечивается только в качестве примера. В других случаях эти операции могут возникать на других уровнях абстракции, включая в себя уровень гипервизора или уровень виртуальной машины.
Механизм 224 детектирования перекрестного обзора также включает в себя драйвер 490 высокого уровня. Следует отметить, что назначение драйвера 490, как "более высокого уровня" относительно драйвера 492 более низкого уровня, не обязательно соотносится с другими уровнями абстракции, такими, как приложения 470 пространства пользователя, которые работают на еще более высоком уровне абстракции и с более низкими уровнями привилегии. Назначение драйвера 490 высокого уровня состоит в том, чтобы наблюдать за поведением псевдодрайвера 484 высокого уровня таким образом, что операции, которые на первый взгляд выполняются псевдодрайвером 484 высокого уровня, можно сравнивать с операциями, фактически выполняемыми на уровне 420 встроенного программного обеспечения.
На следующем уровне абстракции расположен интерфейс 450 прикладного программирования. Интерфейс 450 прикладного программирования обеспечивает различные стандартные способы таким образом, что приложения 470 пространства пользователя могут выполнять операции с файлом без необходимости заботиться о конкретных деталях воплощения этих операций. Например, интерфейс 450 прикладного программирования может обеспечивать функцию fprintf(), которую приложение пространства пользователя может использовать для записи на диск, без необходимости осознавать детали воплощения этого вида обработки.
На следующем уровне абстракции расположен механизм 226 антивируса. Механизм 226 антивируса может обеспечивать стандартные операции, направленные против вредоносного программного обеспечения или антивирусные операции, такие как детектирование, ослабление и восстановление объектов, пораженных вредоносным программным обеспечением. Механизм 226 антивируса предусмотрен в дополнение к механизму 224 детектирования с перекрестным обзором, таким образом, чтобы они могут работать во взаимодействии для усиления защиты вычислительного устройства 110. Однако, следует отметить, что в определенных вариантах осуществления, механизм 226 антивируса является необязательным.
На самом высоком уровне абстракции в данном примере, и, наоборот, на самом низком уровне привилегии расположено приложение 470 пространства пользователя. Приложения 470 пространства пользователя могут иметь разрешение только на запись в определенные файлы или папки, предусмотренные драйвером 440 файловой системы, или только в соответствии с определенными привилегиями, предоставленными приложениями 470 пространства пользователя.
На фиг. 5 показана блок-схема последовательности операций способа 500 выполнения детектирования с перекрестным обзором, в соответствии с одним или больше примерами настоящего описания. В определенных примерах способ 500 может выполняться с помощью механизма 224 детектирования с перекрестным обзором по фиг. 2.
В одном примере способ 500 начинается двумя параллельными путями. Драйвер 490 высокого уровня может использовать путь блока 510, в то время как драйвер 492 низкого уровня может использовать путь блока 520.
В блоке 510, драйвер 490 высокого уровня выполняет динамический анализ в режиме реального времени трасс вызова на системном уровне. Это может включать в себя перехват операции диска на полезном уровне, таком как в уровень 440 драйвера файловой системы, и его анализ.
В блоке 530 механизм 224 детектирования с перекрестным обзором выделяет трассы вызова из операций высокого уровня, детектируемых в блоке 510. В результате этого в блоке 552 получают выделенные трассы вызова.
На параллельном пути блока 520 драйвер 492 низкого уровня перехватывает информацию доступа к диску из стандартных дисков протокола, такую, как предоставляется встроенным программным обеспечением 420.
В блоке 540, механизм 224 детектирования с перекрестным обзором реконструирует трассы вызова системного уровня из операций доступа на низком уровне. Это приводит к тому, что в блоке 550 реконструируются трассы вызова.
В блоке 560 механизм 224 детектирования с перекрестным обзором сравнивает реконструированные трассы 550 вызова с трассами 552 разрушенными вызова.
В блоке 562 принятия решения механизм 224 детектирования с перекрестным обзором определяет, соответствуют ли трассы вызова реконструкции трассам 552 деконструированного вызова.
В блоке 580, если реконструкция трасс 550 вызова соответствует трассам 552 реконструированных вызовов, тогда эти операции могут быть переданы в стандартный механизм 226 антивируса. Механизм 226 антивируса может затем выполнять стандартные операции антивируса, такие как поиск других примеров поведения вредоносного программного обеспечения.
Используемые в данном описании трассы "реконструированных" вызовов представляют собой трассу вызовов, которая была транслирована с низкого уровня абстракции на более высокий уровень абстракции. Трасса "деконструированного" вызова представляет собой "трассу вызова", которая была транслирована с более высокого уровня абстракции на более низкий уровень абстракции. В одном примере реконструированная трасса вызовов и трасса деконструированного вызова подстроены на аналогичном уровне абстракции таким образом, что их можно с пользой сравнивать.
Возвращаясь к блоку 562 решения, если трасса 550 реконструированного вызова не соответствует трассам 552 деконструированного вызова, объект, выполняющий доступ к диску, может быть помечен либо, как вредоносное программное обеспечение, или, по меньшей мере, как подозрительный. Объекты, помеченные, как вредоносное программное обеспечение, могут быть помещены в черный список, в то время как объекты, перечисленные, как подозрительные, могут быть подвергнуты дополнительному анализу, включая в себя в некоторых примерах предоставление в отчете этого объекта в сервер 140, таким образом, что сервер 140 может использовать механизм 324 сервера для выполнения большего или более глубокого анализа объекта, и для передачи обратно в отчете в вычислительное устройство 110, когда объект должен быть блокирован.
В блоке 590 способ выполнен.
Выше представлены свойства некоторых вариантов осуществления, таким образом, что специалисты в данной области техники могут лучше понять аспекты настоящего раскрытия. Специалисты в данной области техники должны понимать, что они могут непосредственно использовать настоящее раскрытие, как основу для разработки или модификации другой обработки и структур для выполнения того же назначения и/или достижения тех же преимуществ вариантов осуществления, представленных здесь. Специалисты в данной области техники должны также понимать, что такие эквивалентные конструкции не выходят за пределы сущности и объема настоящего раскрытия, и что они могут выполнять здесь различные изменения, замены и изменения, без выхода за пределы сущности и объема настоящего раскрытия.
Конкретные варианты осуществления настоящего раскрытия могут непосредственно включать в себя пакет центрального процессорного устройства (CPU) в системе на микросхеме (SOC). SOC представляет интегральную схему (IC), которая интегрирует компоненты компьютера или другой электронной системы в одну микросхему. Она может содержать цифровые, аналоговые, смешанные сигналы и радиочастотные функции: все из которых могут быть предусмотрены на одной подложке микросхемы. Другие варианты осуществления могут включать в себя модуль с множеством кристаллов (MCM), с множеством кристаллов, расположенных в пределах одного электронного пакета, и выполненных с возможностью тесного их взаимодействия друг с другом через электронный пакет. В различных других вариантах осуществления функции обработки цифровых сигналов могут быть воплощены в одном или больше кремниевых ядер в специализированных интегральных схемах (ASIC), программируемой пользователем вентильной матрице (FPGA) и других полупроводниковых микросхемах.
В примере воплощения, по меньшей мере, некоторые части представленных здесь действий по обработке могут также быть воплощены в программном обеспечении. В некоторых вариантах осуществления, одно или больше этих свойств могут быть воплощены в виде аппаратных средств, предоставляемых извне в элементы раскрытых фигур, или консолидированные любым соответствующим образом, для достижения предполагаемой функции. Различные компоненты могут включать в себя программное обеспечение (или рециркулирующее программное обеспечение), которое можно координировать для достижения операций, представленных здесь. В еще других вариантах осуществления эти элементы могут включать в себя любые соответствующие алгоритмы, аппаратные средства, программное обеспечение, компоненты, модули, интерфейсы или объекты, которые способствуют его операциям.
Кроме того, некоторые из компонентов, ассоциированные с описанными процессорами, могут быть удалены, а другие консолидированы. В общем смысле, компоновки, представленные на чертежах, могут быть более логическими в их представлениях, тогда как физическая архитектура может включать в себя различные перестановки, комбинации и/или гибриды этих элементов. Следует обязательно отметить, что множество возможных конфигураций конструкции, можно использовать для достижения целей представленных здесь операций. В соответствии с этим, ассоциированная инфраструктура имеет множество компоновок замены, проектных решений, возможностей устройства, конфигураций аппаратных средств, воплощения в виде программного обеспечения, вариантов выбора оборудования и т.д.
Любой соответствующим образом сконфигурированный компонент процессора может выполнять любой тип инструкций, ассоциированных с данными, для достижения представленных здесь подробно операций. Любой процессор, раскрытый здесь, может преобразовывать элемент или изделие (например, данные) из одного состояния или вещи в другое состояние или вещи. В другом примере некоторые действия, представленные здесь, могут быть воплощены с фиксированной логикой или программируемой логикой (например, в виде программного обеспечения и/или компьютерных инструкций, выполняемых процессором), и элементы, идентифицированные здесь, могут быть представлять собой программируемый процессор определенного типа, программируемую цифровую логику (например, программируемую пользователем вентильную матрицу (FPGA), стираемое, программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM)), ASIC, которая включает в себя цифровую логику, программное обеспечение, код, электронные инструкции, память флэш, оптические диски, CD-ROM, DVD-ROM, магнитные или оптические карты, другие типы считываемых устройством носителей информации, пригодных для сохранения электронных инструкций, или любой соответствующей их комбинации. Во время работы процессоры могут содержать информацию на любом соответствующем типе непереходного носителя информации (например, в оперативном запоминающем устройстве (RAM), постоянном запоминающем устройстве (ROM), программируемой пользователем вентильной матрице (FPGA), стираемом программируемом постоянном запоминающем устройстве (EPROM), электрически стираемом программируемом ROM (ЭСППЗУ), и т.д.), программном обеспечении, в аппаратных средствах или в любом другом соответствующем компоненте, устройстве, элементе или объекте, где соответствует, и основываясь на конкретных потребностях. Кроме того, информация, отслеживаемая, передаваемая, принимаемая или сохраненная в процессоре, может быть предоставлена в любой базе данных, регистре, таблице, кэш, очереди, списке управления или структуре сохранения на основе определенных потребностей и вариантов воплощения, ссылка на все из которых может быть выполнена из любого соответствующего временного фрейма. Любой из элементов памяти, описанных здесь, следует рассматривать, как охватываемый в пределах широкого термина "память". Аналогично, любой из потенциальных элементов обработки, модулей и устройств, описанных здесь, следует рассматривать, как охватываемый широким термином "микропроцессор" или "процессор". Кроме того, в различных вариантах осуществления, процессоры, запоминающие устройства, сетевые карты, шины, устройства-накопители, соответствующие периферийные устройства и другие аппаратные элементы, описанные здесь, могут быть реализованы с помощью процессора, памяти и других соответствующих устройств, выполненных на основе программного обеспечения или встроенного программного обеспечения для эмуляции или виртуализации функций этих аппаратных элементов.
Компьютерная программная логика, воплощающая все или часть описанной здесь функции, воплощена в различных формах, включая в себя, но без ограничений, форму исходного кода, исполняемую компьютером форму и различные промежуточные формы (например, формы, генерируемые ассемблером, компилятором, компоновщиком или локатором). В примере исходный код включает в себя последовательность инструкций компьютерной программы, воплощенных в различных языках программирования, таких, как объектный код, язык ассемблер или язык высокого уровня, такой как OpenCL, Fortran, C, C++, JAVA или HTML для использования с различными операционными системами или операционными средами. Исходный код может определять и использовать различные структуры данных и сообщения для передачи данных. Исходный код может быть представлен в исполняемой в компьютере форме (например, через интерпретатор), или исходный код может быть преобразован (например, через транслятор, ассемблер или компилятор) в исполняемую компьютером форму.
При описании описанных выше вариантов осуществления конденсаторы, буферы, графические элементы, платы взаимного соединения, часы, DDR, датчики камер, делители, индукторы, резисторы, усилители, переключатели, цифровое ядро, транзисторы и/или другие компоненты могут быть легко заменены, замещены, или по-другому модифицированы для того, чтобы размещать определенные потребности схемы. Кроме того, следует отметить, что использование дополнительных электронных устройств, аппаратных средств, непереходного программного обеспечения и т.д. предлагает в равной степени жизнеспособный вариант для воплощения описаний настоящего раскрытия.
В одном примерном варианте осуществления любое количество электрических схем на фигурах может быть воплощено на печатной плате ассоциированного электронного устройства. Печатная плата может представлять собой общую печатную плату, которая может содержать различные компоненты внутренней электронной системы электронного устройства и, кроме того, обеспечивать разъемы для других периферийных устройств. Более конкретно, печатная плата может предоставлять электрические соединения, с помощью которых другие компоненты системы могут электрически связываться друг с другом. Любые соответствующие процессоры (включая в себя цифровые сигнальные процессоры, микропроцессоры, поддерживающие наборы микросхем, и т.д.), элементы памяти и т.д. могут быть соответствующим образом соединены с печатной платой на основе конкретных потребностей конфигурации, запросов обработки, конструкций компьютера и т.д. Другие компоненты, такие, как внешний накопитель, дополнительные датчики, контроллеры для аудио/видеодисплея и периферийные устройства могут быть закреплены на печатной плате, как устанавливаемые карты, через кабели или интегрированы в саму печатную плату. В другом примерном варианте осуществления электрические цепи на фигурах могут быть воплощены, как отдельные модули (например, устройство с ассоциированными компонентами и схемой, выполненной с возможностью выполнения конкретного приложения или функции), или воплощенные, как устанавливаемые модули в специализированных для приложения аппаратных средствах электронных устройств.
Следует отметить, что во множестве примеров, представленных здесь, взаимодействие может быть описано с использованием двух, трех, четырех или больше электрических компонентов. Однако это было выполнено только с целью ясности и примера. Следует понимать, что система может быть консолидирована любым соответствующим образом. Вместе с аналогичными альтернативами конструкций любые из представленных компонентов, модулей и элементов на фигурах могут быть скомбинированы в различных возможных конфигурациях, все из которых ясно находятся в пределах широкого объема данного описания. В определенных случаях может быть легче описать одну или больше функций заданного набора потоков, со ссылкой только на ограниченное количество электрических элементов. Следует понимать, что электрические схемы на фигурах и их описания являются непосредственно масштабируемыми и могут размещать большое количество компонентов, а также более сложные/изощренные компоновки и конфигурации. В соответствии с этим, представленные примеры не должны ограничивать объем или сдерживать широкое описание электрических цепей, которые потенциально применяются для множества других архитектур.
Множество других изменений, замен, вариаций, изменений, и модификаций может быть установлено специалистом в данной области техники, и при этом предполагается, что настоящее раскрытие охватывает все такие изменения, замены, вариации, изменения и модификации, как попадающие в пределы приложенной формулы изобретения. Для помощи Офису по регистрации патентов и товарным знакам США (USPTO) и, кроме того, любому читателю любого патента, выданного по этой заявке, при интерпретации приложенной к нему формулы изобретения, Заявитель желает отметить, что Заявитель: (a) не предполагает, что любой из приложенных пунктов ссылается на параграф шесть (6) 35 USC, секция 112, в том виде, как он существует на день ее подачи, если только формулировки "средство для" или "этапы для", в частности, не будут использоваться в пунктах формулы изобретения; и (b) не предполагает, ни одним заявлением в описании, ограничивать это раскрытие каким-либо образом, который, в остальном, не отражен в приложенной формуле изобретения.
Примеры вариантов осуществления
В примере 1 раскрыто вычислительное устройства, содержащее: запоминающее устройство; и механизм детектирования с перекрестным обзором, во время работы выполненный с возможностью: наблюдения за первой операцией, выполняемой исполнительным объектом в запоминающем устройстве на первом уровне абстракции; наблюдения, по существу, одновременно за второй операцией, выполняемой исполнительным объектом в запоминающем устройстве на втором уровне абстракции; определения, что первая операция, по существу, не соответствует второй операции; и выполнения действия, в соответствии с этим определением.
В примере 2 раскрыто вычислительное устройство по примеру 1, в котором первый уровень абстракции представляет собой уровень драйвера файловой системы.
В примере 3 раскрыто вычислительное устройство по примеру 1, в котором второй уровень абстракции представляет собой уровень встроенного программного обеспечения.
В примере 4 раскрыто вычислительное устройство по примеру 1, в котором второй уровень абстракции представляет собой более низкий уровень абстракции, чем первый уровень абстракции.
В примере 5 раскрыто вычислительное устройство по примеру 1, в котором вторая операция представляет собой операцию записи.
В примере 6 раскрыто вычислительное устройство по примеру 1, в котором действие по определению содержит: обозначают исполнительный объект, как вредоносное программное обеспечение.
В примере 7 раскрыто вычислительное устройство по примеру 1, в котором действие по определению содержит обозначение исполнительного объекта, как подозрительного, и передачу отчета об исполнительном объекте в сервер.
В примере 8 раскрыто вычислительное устройство по примеру 1, в котором определение, что первая операция, по существу, не соответствует второй операции, содержит реконструирование одной или больше трасс вызова из второй операции.
В примере 9 раскрыто вычислительное устройство по примеру 1, в котором определение, что первая операция, по существу, не соответствует второй операции, содержит деконструирование одной или больше трасс вызова из первой операции.
В примере 10 раскрыто вычислительное устройство по примеру 1, в котором определение, что первая операция, по существу, не соответствует второй операции, содержит: реконструируют одну или больше трасс вызова из второй операции; деконструируют одну или больше трасс вызова из первой операции; и сравнивают реконструированные трассы вызова с деконструированными трассами вызова.
В примере 11 раскрыто вычислительное устройство по примеру 1, в котором наблюдение за первой операцией, исполняемой исполнительным объектом в памяти на первом уровне абстракции содержит динамический анализ трасс вызова на системном уровне.
В примере 12 раскрыто вычислительное устройство по примеру 11, в котором наблюдение за первой операцией, выполняемой исполнительным объектом в памяти на первом уровне абстракции, дополнительно содержит анализ в режиме реального времени трасс вызова.
В примере 13 раскрыто вычислительное устройство по примеру 1, в котором наблюдение за, по существу, одновременной второй операцией, выполняемой исполнительным объектом в запоминающем устройстве, на втором уровне абстракции, содержит перехват информации о доступе к диску из протоколов диска.
В примере 14 раскрыт один или больше считываемых компьютером носителей информации, на которых сохранены исполнимые инструкции, для предоставления механизма детектирования с перекрестным обзором во время работы для: наблюдения за первой операцией, выполняемой исполнительным объектом в запоминающем устройстве на первом уровне абстракции; наблюдения, по существу, за одновременной второй операцией, выполняемой исполнительным объектом в запоминающем устройстве на втором уровне абстракции; определения, что первая операция, по существу, не соответствует второй операции; и действия, в соответствии с этим определением.
В примере 15 раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором первый уровень абстракции представляет собой уровень драйвера файловой системы.
В примере 16, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором второй уровень абстракции представляет собой уровень встроенного программного обеспечения.
В примере 17, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором второй уровень абстракции представляет собой более низкий уровень абстракции, чем первый уровень абстракции.
В примере 18, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором вторая операция представляет собой операцию записи.
В примере 19, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором действие по определению содержит: обозначают исполнительный объект, как вредоносное программное обеспечение.
В примере 20, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором действие по определению содержит обозначают исполнительный объект, как подозрительный, и передают отчет об исполнительном объекте в сервер.
В примере 21, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором определение, что первая операция, по существу, не соответствует второй операции, содержит реконструирование одной или больше трасс вызова из второй операции; деконструирование одной или больше трасс вызова из первой операции; и сравнение реконструированных трасс вызова с деконструированными трассами вызова.
В примере 22, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором наблюдение за первой операцией, исполняемой исполнительным объектом в памяти на первом уровне абстракции содержит: выполняют динамический анализ в режиме реального времени формирования трасс вызова на системном уровне.
В примере 23, раскрыт один или больше считываемых компьютером носителей информации по примеру 14, в котором наблюдение за, по существу, одновременной второй операцией, выполняемой исполнительным объектом в запоминающем устройстве, на втором уровне абстракции, содержит перехват информации о доступе к диску из протоколов диска.
В примере 24 раскрыт, воплощенный в компьютере способ предоставления механизма детектирования перекрестного обзора, содержащий: наблюдение за первой операцией, выполняемой исполнительным объектом в запоминающем устройстве на первом уровне абстракции; наблюдение, по существу, за одновременной второй операцией, выполняемой исполнительным объектом в запоминающем устройстве на втором уровне абстракции; определение, что первая операция, по существу, не соответствует второй операции; и выполнение действия в соответствии с этим определением.
В примере 25 раскрыт способ по примеру 24, в котором определение, что первая операция, по существу, не соответствует второй операции, содержит: реконструируют одну или больше трасс вызова из второй операции; деконструируют одну или больше трасс вызова из первой операции; и сравнивают реконструированные трассы вызова с деконструированными трассами вызова.
В примере 26 раскрыт способ, содержащий: выполняют инструкции, раскрытые в любом из примеров 14 - 23.
В примере 27 раскрыто устройство, содержащее средство для выполнения способа по примеру 26.
В примере 28 раскрыто устройство по примеру 27, в котором устройство содержит процессор и запоминающее устройство.
В примере 29 раскрыто устройство по примеру 28, в котором устройство дополнительно содержит считываемый компьютером носитель информации, на котором сохранены программные инструкции для выполнения способа по примеру 26.