RU2468418C2 - Агенты защиты и привилегированные режимы - Google Patents

Агенты защиты и привилегированные режимы Download PDF

Info

Publication number
RU2468418C2
RU2468418C2 RU2009128673/08A RU2009128673A RU2468418C2 RU 2468418 C2 RU2468418 C2 RU 2468418C2 RU 2009128673/08 A RU2009128673/08 A RU 2009128673/08A RU 2009128673 A RU2009128673 A RU 2009128673A RU 2468418 C2 RU2468418 C2 RU 2468418C2
Authority
RU
Russia
Prior art keywords
protection agent
operating system
privileged mode
memory
virtual
Prior art date
Application number
RU2009128673/08A
Other languages
English (en)
Other versions
RU2009128673A (ru
Inventor
Эрик ТРОТ
Форрест ФОЛЦ
Эндрю ТОРНТОН
Суяш СИНХА
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2009128673A publication Critical patent/RU2009128673A/ru
Application granted granted Critical
Publication of RU2468418C2 publication Critical patent/RU2468418C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Группа изобретений относится к процессорам в вычислительных устройствах, содержащим агент защиты. Технический результат заключается в повышении надежности функционирования процессора за счет использования агента защиты. Для этого виртуализируют один или более реальных вычислительных процессоров в виртуальные вычислительные процессоры, каждый из которых ассоциативно связан с соответствующим разделом, причем виртуальные вычислительные процессоры содержат: виртуальный процессор операционной системы, ассоциативно связанный с первым разделом и имеющий привилегию изменять собственную память операционной системы и использовать часть производительности обработки одного или более реальных вычислительных процессоров; и виртуальный процессор агента защиты, ассоциативно связанный со вторым разделом и имеющий привилегию изменять собственную память агента защиты и использовать другую часть производительности обработки одного или более реальных вычислительных процессоров, причем память агента защиты недоступна из виртуального процессора операционной системы; и инструктируют виртуальному процессору агента защиты выполнять агент защиты, постоянно размещающийся во втором разделе, чтобы определять то, изменялась ли часть упомянутой памяти операционной системы. 3 н. и 15 з.п. ф-лы, 11 ил.

Description

Уровень техники
Процессоры в вычислительных устройствах зачастую включают в себя привилегированные и непривилегированные режимы. Программное обеспечение, работающее в привилегированном режиме, в общем, может выполнять все инструкции, поддерживаемые посредством процессора. Как правило, ядро операционной системы выполняется в привилегированном режиме, который иногда упоминается как "кольцо 0", " режим супервизора" или "режим ядра".
В отличие от этого, определенное программное обеспечение, запущенное на вычислительном устройстве, может быть ограничено так, чтобы запускаться только в непривилегированном режиме. Этот режим, в общем, дает возможность программному обеспечению выполнять поднабор инструкций процессора. Операционная система, таким образом, может использовать непривилегированный режим для того, чтобы ограничивать действия программного обеспечения, работающего в этом режиме. Например, программное обеспечение может быть ограничено конкретным поднабором памяти вычислительного устройства. Этот непривилегированный режим иногда называют "кольцо 3" или "пользовательский режим". В общем, пользовательские приложения вычислительного устройства работают в этом непривилегированном режиме.
Если приложение работает в этом непривилегированном режиме, приложение может запрашивать доступ к части памяти, к которой нельзя напрямую осуществлять доступ из непривилегированного режима. Приложение может, например, желать выполнять в этой части памяти такие операции, как "создание нового файла". Этот запрос типично маршрутизируется через шлюз вызова или другую инструкцию системного вызова, которая переводит этот код непривилегированного режима в код привилегированного режима. Этот переход обеспечивает то, что непривилегированный режим не имеет прямого доступа к памяти, которая обозначена как доступная только из привилегированного режима.
В соответствии с этими режимами, автор вредоносного кода может осуществлять доступ к привилегированному режиму и устанавливать вредоносные программы, которые изменяют режим работы вычислительного устройства. Эти вредоносные программы могут, например, менять местоположение файлов, скрывать файлы, модифицировать файлы, изменять нажатия клавиши и т.п. Некоторые из этих вредоносных программ могут содержать "руткит", который не только изменяет режим работы вычислительного устройства, но также скрывает себя в памяти привилегированного режима. Антивирусные приложения, запущенные на вычислительном устройстве, соответственно, могут не быть в состоянии обнаруживать этот скрытый руткит, тем самым давая возможность вредоносным программам продолжать свои вредоносные операции. Кроме того, такие вредоносные программы могут вносить исправления поверх встроенной системы защиты операционной системы, как пояснено ниже.
Автор вредоносной программы может осуществлять доступ к привилегированному режиму и загружать вредоносную программу на вычислительное устройство множеством способов, в том числе посредством обманного вовлечения пользователя вычислительного устройства в неосознанную установку вредоносной программы на вычислительном устройстве пользователя. Как результат, текущие операционные системы зачастую используют одну или более систем защиты для того, чтобы обнаруживать такие вредоносные программы. Эти системы защиты, в общем, отслеживают определенные важные ресурсы операционной системы, чтобы обнаруживать любые изменения этих ресурсов. Если такая система защиты обнаруживает подобное изменение, то система защиты может определять, что конкретный ресурс заражен вредоносной программой. Эти системы защиты также могут предоставлять антивирусному приложению пользователя список приложений, в настоящий момент резидентно загруженных в памяти непривилегированного режима. Конечно, если вредоносные программы успешно скрыли себя, то они не будут отображены в предоставляемом списке. Кроме того, если вредоносные программы успешно внесли исправления в систему защиты, то система защиты может быть не в состоянии запускаться или иным образом не иметь возможности обнаруживать какие-либо изменения важных ресурсов операционной системы.
Хотя эти системы защиты могут быть эффективными, они также могут быть подвержены некоторым слабостям. Во-первых, эти системы зачастую базируются на маскировании и таким образом уязвимы для применения в своих целях, если идентифицированы посредством вредоносных программ. Таким образом, если вредоносные программы декодируют идентификационные данные и находят систему защиты, они могут отключать саму систему защиты. Автор вредоносной программы также может передавать сведения другим злонамеренным пользователям относительно того, как сделать то же самое. Более того и в связи с вышеозначенным, эти системы защиты, в общем, работают в той же области защиты, что и область операционной системы (к примеру, непосредственно в привилегированном режиме). Следовательно, системы защиты сами подвергаются атакам, если вредоносные программы получают доступ к привилегированному режиму, и могут демаскировать скрытую систему защиты. Наконец, эти системы защиты инициализируются в то же время, что и операционная система или привилегированный режим. Следовательно, если вредоносная программа или автор вредоносной программы получает контроль над вычислительным устройством до этой инициализации, он может не допускать инициализацию системы защиты.
Сущность изобретения
Этот документ описывает инструментальные средства, допускающие создание части памяти операционной системы, ассоциативно связанной с агентом защиты, неизменяемым или недоступным из привилегированного режима операционной системы. В некоторых вариантах осуществления, эти инструментальные средства допускают создание привилегированного режима агента защиты посредством запрашивания того, чтобы монитор виртуальной машины защищал эту часть памяти операционной системы. В других вариантах осуществления, эти инструментальные средства допускают создание привилегированного режима агента защиты посредством виртуализации физического процессора в несколько виртуальных процессоров, по меньшей мере, один из которых является виртуальным процессором агента защиты, сконфигурированным запускать агент защиты. Посредством задания этой части памяти операционной системы неизменяемой или недоступной из привилегированного режима операционной системы, агент защиты может быть менее уязвимым для атак посредством объектов, работающих в привилегированном режиме операционной системы.
Данная сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не имеет намерение идентифицировать ключевые или важнейшие признаки заявляемого предмета изобретения, а также не имеет намерение использоваться в качестве помощи при определении объема заявляемого предмета изобретения. Термин "инструментальные средства", например, может упоминаться как система(ы), способ(ы), машиночитаемые инструкции и/или методика(и) в соответствии с вышеозначенным контекстом по всему документу.
Краткое описание чертежей
Фиг.1 иллюстрирует примерное операционное окружение, в котором различные варианты осуществления инструментальных средств могут работать.
Фиг.2 демонстрирует варьирующиеся права на доступ к памяти вычислительного устройства для модулей, проиллюстрированных на фиг.1.
Фиг.3 представляет варьирующиеся части памяти вычислительного устройства, в которых некоторые из модулей, проиллюстрированных на фиг.1, постоянно размещаются.
Фиг.4 - это блок-схема последовательности операций, иллюстрирующая примерный способ, посредством которого монитор виртуальной машины может защищать часть памяти, ассоциативно связанную с агентом защиты, и устанавливать таймер, чтобы запускать агент.
Фиг.5 иллюстрирует примерную архитектуру, имеющую монитор виртуальной машины, допускающий виртуализацию физических процессоров в несколько виртуальных процессоров операционной системы и виртуальный процессор агента защиты.
Фиг.6 иллюстрирует то, как производительность физических процессоров по фиг.5 может быть распределена между различными виртуальными процессорами.
Фиг.7 - это примерный процесс, иллюстрирующий некоторые способы, посредством которых инструментальные средства могут активировать и запускать агент защиты, который постоянно размещается в местоположении, которое недоступно из привилегированного режима операционной системы.
Фиг.8 - это примерный процесс, иллюстрирующий некоторые способы, посредством которых инструментальные средства могут изменять монитор виртуальной машины, чтобы активировать и запускать агент защиты, который постоянно размещается в местоположении, которое недоступно из привилегированного режима операционной системы.
Фиг.9 - это примерный процесс, иллюстрирующий некоторые способы, посредством которых инструментальные средства могут создавать привилегированный режим агента защиты посредством выполнения запроса к монитору виртуальной машины.
Фиг.10 - это примерный процесс, иллюстрирующий некоторые способы, посредством которых инструментальные средства могут создавать привилегированный режим агента защиты посредством виртуализации процессора реального компьютера в процессоры виртуальных компьютеров, по меньшей мере, один из которых должен запускать агент защиты.
Фиг.11 - это примерный процесс, иллюстрирующий некоторые способы, посредством которых инструментальные средства могут активировать добавление привилегированного режима, отсутствующего в базовом физическом процессоре.
Одинаковые номера используются в данном описании и на чертежах, чтобы ссылаться на аналогичные компоненты или признаки.
Подробное описание изобретения
Обзор
Последующий документ описывает инструментальные средства, допускающие оперирование с агентом защиты таким образом, который делает агент защиты неизменяемым или недоступным из привилегированного режима операционной системы. Эти инструментальные средства, таким образом, активируют защиту самого агента защиты, тем самым обеспечивая способность агента защиты обнаруживать изменения в важных ресурсах операционной системы. Помимо этого, эти инструментальные средства могут завершать работу операционной системы или привилегированного режима операционной системы в ответ на обнаружение изменений ресурсов или в ответ на попытку модификации самого агента защиты. Кроме того, эти инструментальные средства могут давать возможность агенту защиты принудительно исполнять инвариантность для ресурсов операционной системы без необходимости обнаруживать модификацию ресурсов после этого.
Окружение, в котором инструментальные средства могут активировать эти и другие действия, излагается ниже в разделе, озаглавленном "Примерное операционное окружение". Раздел, озаглавленный "Автономные агенты защиты", идет далее и включает в себя два подраздела. Первый подраздел, озаглавленный "Агенты защиты монитора виртуальной машины", описывает один примерный способ, посредством которого агент защиты может постоянно размещаться и выполняться в мониторе виртуальной машины. За ним следует другой подраздел, озаглавленный "Агенты защиты виртуальных разделов", описывающий один примерный способ, посредством которого агент защиты может постоянно размещаться и выполняться в рамках виртуального раздела, отдельного от раздела операционной системы.
Другой раздел, озаглавленный "Привилегированные режимы автономных агентов защиты", идет далее и также включает в себя два подраздела. Первый подраздел описывает один примерный способ, посредством которого таймер монитора виртуальной машины может добавлять привилегированный режим агента защиты в базовый процессор, и называется "Запросы по защите к монитору виртуальной машины". Подраздел, озаглавленный "Виртуальные процессоры агентов защиты", идет далее и описывает другой способ, посредством которого привилегированный режим агента защиты может быть создан, в данном случае с использованием нескольких виртуальных процессоров, включая один, выполненный с возможностью запускать агент защиты в привилегированном режиме агента защиты. Раздел, озаглавленный "Примерное использование инструментальных средств", идет далее и описывает пример ранее описанных инструментальных средств в работе. Наконец, раздел, озаглавленный "Другие варианты осуществления инструментальных средств", описывает различные другие варианты осуществления и способы, посредством которых могут действовать инструментальные средства. Этот краткий обзор, включая данные заголовки разделов и резюме, предоставляется для удобства читателя и не имеет намерение ограничивать объем формулы изобретения или озаглавленных разделов.
Примерное операционное окружение
Перед подробным описанием инструментальных средств, нижеследующее пояснение примерного операционного окружения предоставляется с тем, чтобы помогать читателю в понимании некоторых способов, которыми могут использоваться различные изобретаемые аспекты инструментальных средств. Окружение, описанное ниже, составляет только один пример и не имеет намерение ограничивать применение инструментальных средств каким-либо конкретным операционным окружением. Другие окружения могут использоваться без отступления от сущности и объема заявленного предмета изобретения. Например, хотя следующие разделы описывают варианты осуществления с одним агентом защиты, может использоваться несколько агентов защиты также. В некоторых случаях, эти агенты защиты могут запускаться независимо и параллельно. В таких случаях, агенты защиты типично могут осуществлять доступ только к памяти в рамках своего соответствующего раздела. Кроме того, методики, описанные ниже, могут быть использованы одновременно. Таким образом, различные агенты защиты могут использовать различные методики в пределах одного операционного окружения.
Обращаясь к текущему примеру, фиг.1, в общем, иллюстрирует одно такое примерное операционное окружение как 100. Это окружение включает в себя вычислительное устройство 102, которое включает в себя один или более процессоров 104, а также машиночитаемые носители 106. Машиночитаемые носители 106 включают в себя монитор 108 виртуальной машины (к примеру, гипервизор), который может предоставлять виртуализацию одного или более процессоров в несколько виртуальных процессоров. Монитор 108 виртуальной машины также может активировать несколько виртуальных разделов. Один или более виртуальных процессоров могут быть ассоциативно связаны с каждым разделом, и эти виртуальные процессоры диспетчеризуются на доступные физические процессоры. Как проиллюстрировано, в некоторых вариантах осуществления, монитор виртуальной машины может предоставлять первый виртуальный раздел 110 и второй виртуальный раздел 112. Как пояснено подробно ниже, эти разделы могут служить для того, чтобы отделять функции операционной системы от служб агента защиты.
Как также проиллюстрировано, машиночитаемые носители 106 дополнительно включают в себя операционную систему (OS) 114, а также одно или более пользовательских приложений 116. Операционная система 114 предоставляет службы 118 операционной системы для пользовательских приложений 116, тем самым давая возможность приложениям запускаться на вычислительном устройстве. Помимо этого, один или более ресурсов 120 операционной системы постоянно размещаются в операционной системе. Примерные ресурсы включают в себя таблицу диспетчеризации системных служб (SSDT), таблицу диспетчеризации прерываний (IDT), таблицу глобальных дескрипторов (GDT) и т.п. Как также проиллюстрировано, операционная система может включать в себя вредоносные программы 122 (т.е. код со злым умыслом), которые, возможно, загружены в вычислительное устройство способами, поясненными выше, или иными способами. Один или более агентов защиты, поясненных ниже, могут обнаруживать изменения, производимые в ресурсах операционной системы посредством вредоносных программ и, в ответ на обнаружение, предпринимать защитные действия. Если агент делает такое определение, то агент защиты может завершать работу операционной системы и/или вычислительного устройства, либо может предпринимать другое противодействие.
Пояснив структуру вычислительного устройства, теперь обращаем внимание на различные привилегированные режимы, имеющиеся в базовых одном или более физических процессорах 104. Привилегированный режим 124 монитора виртуальной машины представляет большую часть привилегированного режима, проиллюстрированного на фиг.1. Этот привилегированный режим обладает доступом ко всем или практически всем ресурсам устройств и памяти. Из привилегированного режима 124 монитора виртуальной машины, монитор виртуальной машины может диспетчеризовать процессоры и предоставлять доступ к областям памяти для каждого виртуального раздела. Хотя операционная система, запущенная в рамках раздела, может полагать, что она управляет всеми ресурсами физического процессора, в действительности она управляет только частью, определенной посредством монитора виртуальной машины.
Имеющий меньше привилегий, чем привилегированный режим монитора виртуальной машины, привилегированный режим 126 операционной системы имеет доступ ко всем ресурсам 120 операционной системы и к большей части или ко всей памяти операционной системы. Этот привилегированный режим, тем не менее, не имеет доступа к каким-либо ресурсам или памяти, ассоциативно связанным с другим разделом, таким как второй виртуальный раздел 112. Тем не менее, поскольку этот привилегированный режим, в общем, имеет доступ ко всей памяти операционной системы, он иногда упоминается как "привилегированный режим". Термины "кольцо 0", "режим супервизора" или "режим ядра" также могут описывать этот привилегированный режим. Как пояснено выше, пользовательское приложение, работающее в привилегированном режиме 126 операционной системы, в общем, может выполнять большинство инструкций, предоставляемых посредством процессора, за исключением инструкций, зарезервированных для режима монитора виртуальной машины.
Этот привилегированный режим операционной системы отличается от пользовательского привилегированного режима 128, иногда называемого "непривилегированным режимом", "кольцом 3" или просто "пользовательским режимом". Как также пояснено выше, пользовательское приложение не может осуществлять доступ или изменять определенную память, ассоциативно связанную с операционной системой, при работе в пользовательском привилегированном режиме 128. В общем, пользовательские приложения вычислительного устройства работают в этом пользовательском привилегированном режиме при выполнении базовых операций.
В дополнение к режимам, поясненным выше, фиг.1 также иллюстрирует привилегированный режим 130 второго виртуального раздела и привилегированный режим 132 агента защиты. Как пояснено подробно ниже, привилегированный режим 132 агента защиты может иметь доступ к части памяти, которого у привилегированного режима операционной системы нет, при этом, в общем, не имея такого доступа к памяти, как привилегированный режим монитора виртуальной машины. По сути, этот привилегированный режим может иметь больше привилегий, чем привилегированный режим операционной системы, но меньше привилегий, чем привилегированный режим монитора виртуальной машины.
Как также пояснено подробно ниже, привилегированный режим второго виртуального раздела, в общем, имеет доступ к памяти, ассоциативно связанной со вторым виртуальным разделом 112. Помимо этого, этот режим может иметь доступ к первому виртуальному разделу. Такой дополнительный доступ может, например, давать возможность агенту защиты, постоянно размещающемуся во втором виртуальном разделе, сканировать память, ассоциативно связанную с первым виртуальным разделом и его соответствующей операционной системой. Этот режим, в общем, не имеет доступа к монитору виртуальной машины и, таким образом, имеет меньше привилегий, чем привилегированный режим монитора виртуальной машины. Тем не менее, привилегированный режим второго виртуального раздела, кроме того, имеет доступ к части памяти, которого не имеет привилегированный режим операционной системы.
Между тем, фиг.2 иллюстрирует права 200 на доступ к памяти вычислительного устройства. Этот чертеж, таким образом, представляет объем памяти, доступный посредством модулей по фиг.1. Как проиллюстрировано, монитор 108 виртуальной машины - работающий в привилегированном режиме 124 монитора виртуальной машины - имеет наибольшие права на доступ к памяти из всех проиллюстрированных модулей. Фактически, монитор виртуальной машины постоянно размещается и единственный имеет доступ к части памяти 202. Далее, агент защиты 204 (к примеру, любой из агентов защиты, проиллюстрированных на фиг.1) работает в привилегированном режиме 132 агента защиты и имеет доступ ко всей памяти, кроме части 202, соответствующей монитору виртуальной машины. Тем не менее, агент защиты имеет доступ к части памяти 206, которая является частью памяти, в которой постоянно размещается сам агент защиты.
Операционная система 114, между тем, работает в привилегированном режиме 126 операционной системы и имеет доступ ко всей памяти, кроме части 202 и части 206. Хотя операционная система не может осуществлять доступ к части памяти 206, ассоциативно связанной с агентом защиты, операционная система и ее ассоциативно связанный привилегированный режим имеет доступ к части памяти 208. Эта часть памяти 208 иногда называется памятью ядра или самым низкоуровневым компонентом операционной системы и, в общем, содержит ресурсы, показанные на фиг.1. Даже если вредоносные программы загружаются и работают в части памяти 208, тем не менее, вредоносные программы не могут осуществлять доступ к части памяти 206, ассоциативно связанной с агентом защиты.
Наконец, фиг.2 иллюстрирует, что пользовательские приложения 116 имеют доступ только к части памяти 210. Эти пользовательские приложения и соответствующий пользовательский привилегированный режим не имеют доступа к части памяти 208, ассоциативно связанной с самым низкоуровневым компонентом операционной системы. Рассмотрев это операционное окружение, следующие четыре раздела подробно описывают примерные способы, посредством которых агент защиты может быть сделан неизменяемым или недоступным из привилегированного режима операционной системы.
Автономные агенты защиты
Следующий раздел описывает инструментальные средства, допускающие определение, из памяти, недоступной для объекта, работающего в привилегированном режиме операционной системы, модифицированы ли один или более ресурсов операционной системы. По сути, инструментальные средства могут предоставлять возможность агенту защиты постоянно размещаться в местоположении, отличном от местоположения самой памяти операционной системы. Более конкретно, следующие подразделы описывают то, как агенты защиты могут постоянно размещаться или в мониторе виртуальной машины, или в рамках автономного виртуального раздела.
Агенты защиты монитора виртуальной машины
Этот подраздел описывает то, как агент 134 защиты может постоянно размещаться в рамках самого монитора виртуальной машины, как иллюстрирует фиг.1. Поскольку привилегированный режим операционной системы не может осуществлять доступ к монитору виртуальной машины, это местоположение защищает агент защиты от всех вредоносных программ, находящихся в памяти операционной системы. Чтобы работать из этого местоположения, агент защиты принимает идентификационные данные одного или более ресурсов 120 операционной системы, которые может отслеживать агент 134 защиты. Эти идентификационные данные могут быть приняты через идентификатор 136 ресурса. Как проиллюстрировано, операционная система может предоставлять эту информацию в монитор виртуальной машины через вызовы интерфейса прикладного программирования (API) или операционная система может предоставлять информацию в форме манифеста 138. Как пояснено выше, эти ресурсы могут включать в себя SSDT, IDT и GDT.
Как только он принял идентификационные данные ресурсов, агент 134 защиты расширяет службы 140 агента защиты на операционную систему 114. Эти службы агента защиты, в общем, содержат определение того, изменялись ли какие-либо из идентифицированных ресурсов. Если это определение выполнено, агент защиты или монитор виртуальной машины могут, например, завершать работу операционной системы. Службы агента защиты также могут включать в себя принудительную активацию инвариантности в отношении любых ресурсов, отмеченных как неизменяемые (к примеру, "только для чтения").
Применение такой архитектуры начинается с загрузки и инициализации монитора виртуальной машины, который выступает в качестве хоста для одной или более операционных систем. В этом примере, монитор виртуальной машины выступает в качестве хоста для одной операционной системы 114, которая сама начинает инициализацию после того, как монитор виртуальной машины загружается. В ходе инициализации операционной системы сначала загружается часть памяти 208, ассоциативно связанная с самым низкоуровневым компонентом операционной системы (к примеру, ядром). Некоторые или все ресурсы 120 операционной системы (к примеру, SSDT, GDT, IDT), в общем, постоянно размещаются в этой части памяти 208.
До того или в то время, когда операционная система инициализируется, агент 134 защиты может начинать запуск изнутри монитора виртуальной машины. Как пояснено выше, агент защиты, в общем, принимает идентификационные данные набора из одного или более ресурсов операционной системы и определяет, изменен ли один или более из идентифицированных ресурсов. Отметим, что каждый идентифицированный ресурс зачастую содержит несколько компонентов в нескольких местоположениях, каждое из которых агент защиты может отслеживать, чтобы полностью защищать весь ресурс. Например, если манифест идентифицирует SSDT как ресурс, который должен быть отслежен и защищен, агент защиты защищает не только фактическую таблицу, но также и другие компоненты SSDT. Например, агент защиты также может отслеживать и сканировать регистр, который указывает на местоположение таблицы. Кроме того, агент защиты также может отслеживать структуры данных трансляции памяти (к примеру, таблицы страниц), которые преобразуют виртуальный адрес SSDT в физический адрес. Если агент защиты не может выполнять это, то вредоносный код может составлять другую таблицу с другими привязками в таблице страниц (т.е. обходить саму SSDT).
В дополнение к идентификационным данным, агент защиты также может принимать атрибут защиты, инструктирующий агенту защиты то, как защищать соответствующий ресурс. Например, агент защиты может принимать идентификационные данные ресурса SSDT, а также соответствующий атрибут защиты "только для чтения". Следовательно, агент защиты узнает, что SSDT должна оставаться только для чтения и также не должна быть изменена. "Инициализировать только для чтения" - это другой возможный атрибут защиты, который инструктирует агенту защиты то, что в соответствующий ресурс можно выполнять запись один раз в ходе инициализации, а после этого ресурс должен оставаться только для чтения.
Агент защиты может принимать эти идентификационные данные ресурсов и атрибутов защиты ресурсов рядом способов как явно, так и пассивно. Например, операционная система может предоставлять манифест с цифровой подписью, который идентифицирует ресурсы, которые может отслеживать агент защиты. Этот манифест с цифровой подписью может идентифицировать ресурсы множеством способов, к примеру, по имени (например, SSDT, IDT, GDT и т.д.) или по адресу, который преобразовывает ресурсы в соответствующие местоположения в части памяти 208. В последних случаях, манифест может идентифицировать гостевой физический адрес, гостевой виртуальный адрес или системный физический адрес для ресурса. Отметим, что в некоторых случаях, гостевой физический адрес может быть преобразован в фактический системный физический адрес, чтобы обнаруживать фактическое физическое местоположение соответствующего компонента ресурса.
После того как монитор виртуальной машины или агента защиты принимает манифест, эти компоненты могут определять то, был ли манифест искажен или модифицирован. Если монитор виртуальной машины или агент защиты выполняют такое определение, монитор виртуальной машины или агент защиты могут выбирать запрещение запуска операционной системы. Помимо этого, шифрование, ассоциативно связанное со списком ресурсов, может быть сделано недействительным, тем самым защищая его безопасность.
Помимо или альтернативно манифесту, агент защиты может принимать идентификационные данные ресурсов и атрибутов защиты через один или более вызовов интерфейса прикладного программирования (API) в мониторе виртуальной машины (к примеру, "гипервызовов"). Когда операционная система инициализируется, операционная система (и возможно самый низкоуровневый компонент операционной системы 208) может выполнять гипервызовы к монитору виртуальной машины, информируя агент защиты об определенных ресурсах, которые могут быть отслежены и защищены. Эти гипервызовы могут идентифицировать применимые ресурсы такими же способами, как пояснено выше. Как также пояснено выше, эти гипервызовы также могут идентифицировать атрибуты защиты ресурсов.
В вариантах осуществления, использующих манифест с цифровой подписью, а также один или более гипервызовов, агент защиты может сначала сканировать ресурсы, идентифицированные в манифесте до или в то время, когда операционная система выполняет начальную загрузку. После этого начального сканирования операционная система затем может выполнять гипервызовы к монитору виртуальной машины, инструктируя агенту защиты определять, изменялись ли идентифицированные посредством гипервызова страницы. Манифест тем самым идентифицирует ресурсы, чтобы проводить сканирование при каждой начальной загрузке операционной системы, тогда как гипервызовы идентифицируют ресурсы, чтобы динамически сканировать после их соответствующей инициализации.
Идентифицировав ресурсы, которые должны быть отслежены, агент защиты затем определяет, изменялись ли ресурсы (к примеру, все части SSDT, поясненные выше). Агент защиты также может принудительно активировать инвариантность для идентифицированных ресурсов. Например, агент защиты может обеспечивать то, что любой ресурс, обозначенный как "только для чтения", не изменяется на "перезаписываемый".
Чтобы отслеживать и защищать ресурсы таким образом, код, выполняющийся в мониторе виртуальной машины, может использовать диспетчер перехвата монитора виртуальной машины (к примеру, диспетчер 146 по фиг.1). В таком случае, этот диспетчер перехвата может регистрировать перехваты в различных компонентах идентифицированных ресурсов. Благодаря этой регистрации, агент защиты в мониторе виртуальной машины теперь может принимать перехваты, если предпринимаются попытки осуществлять доступ или модифицировать эти идентифицированные ресурсы. По сути, агент защиты может анализировать и сканировать различные компоненты идентифицированных ресурсов. Он также может активно блокировать попытки модифицировать эти ресурсы.
В некоторых вариантах осуществления, агент защиты сканирует ресурсы и определяет начальное состояние ресурсов для использования при сравнении результатов будущих сканирований. В других вариантах осуществления, агент защиты уже знает начальное состояние ресурсов для сравнения результатов будущих сканирований. В любом случае, агент защиты может вычислять значение хэша или контрольной суммы этого начального состояния. После этого вычисления агент защиты сканирует ресурсы до, после или в то время, когда операционная система выполняет начальную загрузку. После сканирования агент защиты вычисляет хэш или контрольную сумму результатов и сравнивает ее с хэшем или значением контрольной суммы начального состояния. Если совпадают, агент защиты определяет, что соответствующие ресурсы не изменялись. Конечно, агент защиты может обходить значения хэша или контрольной суммы, а вместо этого непосредственно сравнивать начальное состояние со сканированием.
Если значения отличаются, тем не менее, агент защиты и/или монитор виртуальной машины могут осуществлять одно или более ответных действий. Во-первых, сам агент защиты может завершать работу операционной системы или привилегированного режима операционной системы или он может инструктировать монитору виртуальной машины выполнять это. К тому же, поскольку агент защиты постоянно размещается в мониторе виртуальной машины и поскольку монитор виртуальной машины выступает в качестве хоста для операционной системы, эти два компонента допускают такое завершение работы операционной системы. Кроме того, поскольку агент защиты постоянно размещается в мониторе виртуальной машины, завершение работы операционной системы не может быть искажено даже из привилегированного режима операционной системы.
В дополнение к завершению работы операционной системы, агент защиты и/или монитор виртуальной машины может сначала предупреждать операционную систему относительно предстоящего завершения. Канал связи между монитором виртуальной машины и операционной системой может давать возможность реализации такой связи. В альтернативе, агент защиты и/или монитор виртуальной машины могут записывать предупреждение в местоположение памяти или сообщать о событии, которое отслеживает операционная система.
Безотносительно того, выдано ли предупреждение, завершение операционной системы может быть либо внезапным, либо постепенным. В первом случае, монитор виртуальной машины может просто выключать операционную систему сразу после получения сведений об отличающихся значениях хэша или контрольной суммы. Во втором случае, монитор виртуальной машины может предоставлять операционной системе определенный интервал времени для того, чтобы аккуратно завершать свою работу. В это время, операционная система может, например, закрывать все открытые файлы и сбрасывать на диск все соответствующие данные. Операционная система также может высвобождать назначенные ресурсы. Кроме того, завершение работы может использовать оба подхода. Например, если монитор виртуальной машины выступает в качестве хоста для нескольких разделов, он может немедленно завершать работу раздела с различающимися значениями хэша или контрольной суммы, при этом предоставляя другим разделам время на то, чтобы аккуратно завершать работу. В любом случае, способ завершения работы может быть конфигурируемым посредством политики и может быть корректируемым.
В дополнение к завершению работы и соответствующему предупреждению, агент защиты и/или монитор виртуальной машины могут предпринимать действия после начальной загрузки в ответ на несанкционированное изменение идентифицированного ресурса. Например, монитор виртуальной машины и/или агент защиты, после перезагрузки операционной системы, могут уведомлять операционную систему об изменении ресурса. В ответ, операционная система может выполнять антивирусное сканирование для того, чтобы обнаруживать, есть ли реально какие-либо постоянно размещающиеся вредоносные программы в памяти операционной системы, такой как часть 208 (к примеру, ядро). Кроме того, монитор виртуальной машины может загружать операционную систему в безопасном режиме или операционная система может сама выбирать загружаться в безопасном режиме. Также в ответ на уведомление, операционная система может идентифицировать себя как подвергшуюся атаке и, по сути, может запрещать себе осуществлять доступ к любой сети, к которой она подключена.
Агенты защиты виртуальных разделов
Вместо постоянного размещения в рамках самого монитора виртуальной машины, агент защиты (к примеру, агент 142 защиты по фиг.1) может постоянно размещаться в отдельном виртуальном разделе (к примеру, во втором виртуальном разделе 112 по фиг.1). В этих вариантах осуществления, данный отдельный раздел выступает в качестве доверенного делегата монитора виртуальной машины. Агент 142 защиты, таким образом, является недоступным из привилегированного режима операционной системы. Как пояснено выше, монитор 108 виртуальной машины предусматривает такую виртуализацию вычислительного устройства 102. Хотя монитор виртуальной машины может виртуализировать вычислительное устройство в любое число разделов, фиг.1 иллюстрирует первый раздел, выступающий в качестве хоста для операционной системы, и второй раздел, выступающий в качестве хоста для агента защиты. Второй виртуальный раздел, в котором постоянно размещается агент защиты, может быть, в некоторых случаях, выделенным защитным разделом, основная или единственная функция которого состоит в том, чтобы запускать агент защиты. В других вариантах осуществления, этот второй виртуальный раздел может выполнять дополнительные функции, например, функционирование в качестве хоста для другой операционной системы.
Агент 142 защиты, постоянно размещающийся в рамках второго виртуального раздела, допускает выполнение большинства или всех тех же функций, что описаны выше в отношении агента 134 защиты, постоянно размещающегося в мониторе виртуальной машины. Таким образом, агент 142 защиты может непосредственно или пассивно принимать идентификационные данные одного или более ресурсов 120 операционной системы. В ответ на идентификационные данные агент защиты может снова расширять службы 140 агента защиты, что, в общем, содержит определение того, изменялись ли один или более из идентифицированных ресурсов, и, если да, осуществление ответного действия. Эти услуги также могут включать в себя принудительную активацию инвариантности указанных ресурсов. Агент 142 защиты может выполнять эти функции через методики, аналогичные описанным выше.
Как проиллюстрировано, агент 142 защиты доступен из привилегированного режима 130 второго виртуального раздела, но недоступен из привилегированного режима 126 операционной системы. По сути, результирующая архитектура предоставляет возможность защиты самого агента защиты от любых вредоносных программ, находящихся в операционной системе, даже если вредоносные программы постоянно размещаются в части памяти 208, ассоциативно связанной с самым низкоуровневым компонентом операционной системы.
Привилегированные режимы автономных агентов защиты
Этот раздел описывает инструментальные средства, допускающие создание части памяти операционной системы, ассоциативно связанной с агентом защиты, неизменяемым или недоступным из привилегированного режима операционной системы, при этом давая возможность этой части памяти физически постоянно размещаться в пространстве адресов физической памяти операционной системы. Эти инструментальные средства, таким образом, создают привилегированный режим автономного агента защиты, который имеет доступ к части памяти, ассоциативно связанной с агентом защиты, а также к остальной части памяти, которая доступна в привилегированном режиме операционной системы. Этот привилегированный режим, таким образом, имеет больше привилегий, чем привилегированный режим операционной системы.
Первый подраздел описывает инструментальные средства, которые допускают создание привилегированного режима агента защиты посредством запроса того, чтобы монитор виртуальной машины защищал часть памяти, ассоциативно связанную с агентом защиты. Второй подраздел, между тем, описывает инструментальные средства, которые предоставляют создание привилегированного режима агента защиты посредством виртуализации физического процессора в несколько виртуальных процессоров, включая выделенный виртуальный процессор для того, чтобы запускать агент защиты.
Запросы по защите к монитору виртуальной машины
Этот подраздел описывает то, как агент защиты может запрашивать монитор виртуальной машины защищать память, ассоциативно связанную с агентом защиты, и также сам агент защиты. Эта защита имеет результатом работу агента 144 защиты в привилегированном режиме 132 агента защиты, как проиллюстрировано на фиг.1. Как проиллюстрировано, агент 144 защиты первоначально может постоянно размещаться в привилегированном режиме операционной системы до перехода в привилегированный режим агента защиты. При работе в этом втором привилегированном режиме агент защиты, в общем, является невосприимчивым к атакам от объектов, работающих в привилегированном режиме 126 операционной системы.
При работе в привилегированном режиме 132 агента защиты, объект имеет немного больше привилегий, чем при работе в привилегированном режиме 126 операционной системы, но по-прежнему меньше привилегий, чем в привилегированном режиме 124 монитора виртуальной машины. Как фиг.2 иллюстрирует, агент защиты, работающий в этом привилегированном режиме, имеет доступ ко всей памяти, ассоциативно связанной с операционной системой, в дополнение к части памяти 206, ассоциативно связанный с самим агентом защиты. Монитор 108 виртуальной машины принудительно активирует дополнительную доступность агента защиты.
Фиг.3 и 4 иллюстрируют примерный способ создания этого привилегированного режима агента защиты. Фиг.3 иллюстрирует всю или практически всю память 300 вычислительного устройства. Память 300 вычислительного устройства включает в себя часть памяти 302, ассоциативно связанную с привилегированным режимом операционной системы (к примеру, ядро), и часть памяти 304, ассоциативно связанную с пользовательским привилегированным режимом. Часть памяти 302 также включает в себя, как проиллюстрировано, часть памяти 306, ассоциативно связанную с агентом 144 защиты, а также часть памяти 308, в которую загружаются драйверы.
Как фиг.4 иллюстрирует, процесс 400 создания привилегированного режима 132 агента защиты начинается на этапе 1 посредством инициализации части памяти 302 (к примеру, ядра). На этапе 2, часть памяти 306 или сам агент 144 защиты вызывает монитор 108 виртуальной машины, чтобы запрашивать то, чтобы монитор виртуальной машины защищал часть памяти, ассоциативно связанную с агентом защиты. При этом запросе, агент защиты или соответствующая память требует, чтобы коду, запущенному в привилегированном режиме операционной системы, было запрещено изменять или иным образом соприкасаться с этой частью памяти 306. Агент защиты также может верифицировать себя (к примеру, посредством цифровой подписи) для монитора 108 виртуальной машины. Эта часть памяти или сам агент защиты также может запрашивать, чтобы монитор виртуальной машины задавал таймер и запускал агент защиты, когда таймер истекает. Этап 3 представляет монитор виртуальной машины, защищающий память от объектов, работающих в привилегированном режиме операционной системы, и задающий таймер в ответ на запрос. Отметим, что поскольку эта часть памяти 306, ассоциативно связанная с агентом защиты, теперь является неизменяемой и/или недоступной из привилегированного режима операционной системы, агент защиты теперь постоянно размещается в привилегированном режиме агента защиты.
На этапе 4, драйверы загружаются в часть памяти 308. Отметим, что запрос на этапе 2 и соответствующая защита на этапе 3, в общем, осуществляется до того, как драйверы загружаются в память, поскольку вредоносные программы могут существовать в форме драйвера. Как пояснено в разделе "Примерное использование инструментальных средств" ниже, авторы вредоносной программы зачастую обманывают пользователей, вовлекая в установку вредоносных драйверов на вычислительное устройство. Если один или более вредоносных драйверов действительно загружены в память до того, как часть памяти 306 будет защищена, то вредоносные драйверы могут потенциально вносить исправления поверх самого запроса на защиту. Такое внесение исправлений тем самым препятствует периодическому выполнению агента защиты через монитор виртуальной машины и, следовательно, созданию привилегированного режима агента защиты. Тем не менее, посредством запроса того, чтобы монитор виртуальной машины задавал таймер на ранней стадии, этот процесс обеспечивает то, что код в привилегированном режиме операционной системы не может таким образом отключать периодическое выполнение агента защиты.
Этап 5, между тем, вероятно осуществляется в некоторый момент после того, как драйверы загружены. Как проиллюстрировано, этап 5 представляет истечение таймера монитора виртуальной машины и, следовательно, выполнение агента защиты. При выполнении агент 144 защиты выполняет функции, аналогичные или идентичные поясненным в предыдущих разделах. Как также пояснено выше, агент защиты может осуществлять действие в ответ на определение того, что один или более идентифицированных ресурсов изменялись. Агент защиты также может осуществлять такое действие в ответ на попытку получения доступа или изменения агента защиты или его соответствующей памяти от объектов, работающих в привилегированном режиме операционной системы.
Этап 6 представляет уведомление посредством агента защиты монитора виртуальной машины, когда агент защиты заканчивает выполнение. Наконец, этап 7 представляет повторение этапов 3, 5, и 6. По сути, монитор виртуальной машины может сбрасывать свой таймер и запускать агент защиты с периодическими интервалами, к примеру, каждые 100 миллисекунд (мс).
Посредством задания отказоустойчивого таймера в мониторе виртуальной машины процесс 400 этим исключает способность кода операционной системы искажать часть памяти, ассоциативно связанную с агентом защиты. По сути, этот процесс обеспечивает то, что агент защиты продолжит выполняться и в него не будут внесены исправления посредством вредоносных программ, действующих в привилегированном режиме операционной системы. Вместо этого, агент защиты будет выполняться в автономном привилегированном режиме, при этом постоянно размещаясь в физической памяти, выделяемой для операционной системы.
Виртуальные процессоры агентов защиты
Этот подраздел описывает то, как монитор виртуальной машины может создавать привилегированный режим агента защиты посредством диспетчеризации виртуального процессора так, чтобы запускать агент 144 защиты. Фиг.5 иллюстрирует архитектуру 500, которая включает в себя монитор 108 виртуальной машины, виртуализирующий вычислительное устройство 102 на два раздела, каждый из которых включает в себя операционную систему. Как проиллюстрировано, вычислительное устройство в этом примере включает в себя два реальных процессора 104(a) и 104(b), на каждый из которых виртуальный процессор может диспетчеризовать несколько виртуальных процессоров. Как также проиллюстрировано, монитор виртуальной машины создает первый виртуальный раздел 502 и второй виртуальный раздел 504. Первый виртуальный раздел включает в себя первый виртуальный процессор 506, чтобы запускать первую операционную систему. Аналогично, второй виртуальный раздел включает в себя второй виртуальный процессор 508, чтобы запускать вторую операционную систему. В этом случае, тем не менее, монитор виртуальной машины также включает в себя виртуальный процессор 510 агента защиты, чтобы запускать агент защиты, такой как агент 144 защиты по фиг.1.
Чтобы создавать архитектуру 500, монитор виртуальной машины сначала загружается и инициализируется. Как проиллюстрировано на фиг.6, монитор виртуальной машины затем виртуализирует различные виртуальные процессоры и тем самым выделяет производительность 600 реального процессора. Чтобы начинать эту виртуализацию и выделение, монитор виртуальной машины виртуализирует первый виртуальный процессор на первый реальный процессор. В текущем примере, эта виртуализация выполняется на взаимно-однозначной основе, как проиллюстрировано посредством фиг.6. Таким образом, только этот один виртуальный процессор 506 соответствует реальному процессору 104(a), и, по сути, монитор виртуальной машины выделяет всю производительность реального процессора этому виртуальному процессору. Монитор виртуальной машины затем виртуализирует второй виртуальный процессор 508 на второй реальный процессор 104(b). Вместо взаимно-однозначного основания, тем не менее, монитор виртуальной машины сохраняет некоторую часть производительности второго реального процессора. Монитор виртуальной машины затем виртуализирует виртуальный процессор 510 агента защиты на эту оставшуюся производительность второго реального процессора 104(b), как также проиллюстрировано посредством фиг.6.
Каждый виртуальный процессор, оперирующий со вторым реальным процессором, в общем, действует на основе квантования времени. Таким образом, второй виртуальный процессор может оперировать со вторым реальным процессором в течение некоторого интервала времени до того, как работа второго виртуального процессора приостанавливается. Здесь, второй реальный процессор переключается на режим виртуального процессора агента защиты в течение некоторого другого интервала времени. Например, второй виртуальный процессор может оперировать со вторым реальным процессором в течение 90 мс, и в этой точке работа этого второго виртуального процессора приостанавливается, и работа виртуального процессора агента защиты начинается в течение 10 мс. Виртуальный процессор агента защиты, в общем, является прозрачным как к разделам операционной системы, так и к первому и второму виртуальным процессорам. По сути, обе операционные системы полагают, что их соответствующие виртуальные процессоры соответствуют надлежащему реальному процессору.
В дополнение к выделению производительности реального процессора, монитор виртуальной машины также управляет частью памяти, к которой может осуществлять доступ каждый виртуальный процессор. В текущем примере, первый виртуальный процессор может осуществлять доступ ко всей памяти, ассоциативно связанной с первой операционной системой. Второй виртуальный процессор, между тем, может осуществлять доступ ко всей памяти, ассоциативно связанной со второй операционной системой, кроме части памяти, ассоциативно связанной с агентом защиты. Виртуальный процессор агента защиты исключительно имеет доступ к части памяти, ассоциативно связанной с агентом защиты, в дополнение к памяти, выделяемой второй операционной системе.
Кроме того, первый и второй виртуальные процессоры имеют возможность изменять только свою ассоциативно связанную память. По сути, ни один из виртуальных процессоров, оперирующих с соответствующими операционными системами, не может изменять часть памяти, ассоциативно связанную с агентом защиты. Виртуальный процессор агента защиты, тем не менее, может изменять память, ассоциативно связанную с агентом защиты, и, в некоторых вариантах осуществления, также память, ассоциативно связанную со вторым виртуальным процессором.
Вследствие своего программированного характера, виртуальный процессор агента защиты должен периодически запускать агент защиты. Хотя в некоторых случаях виртуальный процессор агента защиты может запускать другие приложения, текущий пример иллюстрирует выделенный виртуальный процессор агента защиты. По сути, этот виртуальный процессор, в общем, служит только для того, чтобы периодически запускать агент защиты. К тому же, агент защиты может выполнять аналогичные или идентичные функции, аналогичными или идентичными способами, что и агенты защиты, описанные выше.
Посредством диспетчеризации выделенного виртуального процессора агента защиты, монитор виртуальной машины обеспечивает то, что агент защиты периодически запускается под управлением этого процессора и в автономном привилегированном режиме агента защиты. Кроме того, поскольку только этот виртуальный процессор агента защиты имеет доступ к части памяти, ассоциативно связанной с агентом защиты, монитор виртуальной машины защищает эту память от кода в рамках операционной системы. Следовательно, вредоносные программы, работающие в привилегированном режиме операционной системы, не могут вносить исправления поверх агента защиты и препятствовать запуску агента защиты. По сути, эта методика фактически исключает возможность для операционной системы искажать агент защиты.
Примерное использование инструментальных средств
После описания инструментальных средств, допускающих обеспечение защиты агента защиты, следующий раздел описывает один пример этих инструментальных средств в работе. Во-первых, представим себе, что пользователь компьютера просматривает веб-страницы в Интернете, и при переходе к определенному веб-узлу диалоговое окно со злым умыслом появляется на дисплее пользователя. Диалоговое окно запрашивает разрешение от пользователя, чтобы устанавливать некоторую вредоносную программу на компьютере пользователя. Хотя этот запрос может быть прямым, представим себе, что диалоговое окно маскирует запрос, как типично имеет место. Диалоговое окно может, например, ложно сообщать пользователю о том, что он выиграл приз. Посредством такого сообщения, диалоговое окно злонамеренно инструктирует пользователя нажать кнопку "OK" в диалоговом окне, чтобы получить приз. Представим себе, что пользователь действительно выбирает кнопку OK и что пользователь выбирает продолжать запрошенные операции, несмотря на одно или более предупреждений от программного обеспечения (к примеру, антивирусного приложения), запущенного на вычислительном устройстве.
Здесь, вычислительное устройство начинает установку драйвера, который содержит вредоносную программу. Как обычно происходит с драйверами, этому вредоносному драйверу предоставляется доступ к привилегированному режиму операционной системы, и он загружается в память, ассоциативно связанную с этим привилегированным режимом (к примеру, ядро). После загрузки в ядро, вредоносный драйвер и его сопутствующая вредоносная программа фактически имеют доступ с неограниченными полномочиями к памяти компьютера и операционной системе. К сожалению для пользователя, представим себе, что эти вредоносные программы включают в себя регистратор нажатий клавиш, который регистрирует нажатия клавиш пользователем. Теперь представим себе, что пользователь переходит на веб-узел своего банка и входит в свой банковский счет. Вследствие своей возможности регистрировать нажатия клавиш, регистратор нажатий клавиш узнает пароль банковского счета пользователя и отсылает этот пароль по Интернету автору вредоносного драйвера.
Что еще хуже, представим себе, что вредоносная программа - это "руткит" или вредоносная программа, которая пытается активно скрываться от агента защиты и антивирусного программного обеспечения пользователя. В традиционных системах, агент защиты постоянно размещается в ядре (т.е. в памяти, к которой у вредоносного драйвера есть доступ). Следовательно, в этих традиционных системах вредоносные программы имеют доступ к агенту защиты и могут пытаться скрывать себя от агента защиты. В случае успеха, вредоносные программы, как кажется агенту защиты, не существуют в ядре. Следовательно, когда антивирусное программное обеспечение пользователя вызывает агент защиты и запрашивает список всех приложений, присутствующих в памяти компьютера, вредоносные программы отсутствуют. Это отсутствие не дает антивирусному программному обеспечению обнаруживать и удалять вредоносные программы. Кроме того, вредоносные программы могут вносить исправления поверх агента защиты, тем самым полностью препятствуя запуску агента защиты. По сути, агент защиты может не иметь возможности уведомлять, если вредоносные программы изменяют какие-либо ресурсы операционной системы.
Вместо постоянного размещения в ядре, как в традиционных системах, тем не менее, представим себе, что агент защиты на вычислительном устройстве пользователя постоянно размещается в памяти или работает в режиме, который недоступен из привилегированного режима операционной системы. Следовательно, когда вредоносный драйвер загружается в ядро, он не имеет доступа к памяти, в которой постоянно размещается агент защиты, или к режиму, в котором запускается агент защиты. Следовательно, драйвер и его сопутствующая вредоносная программа не имеет доступа к самому агенту защиты. Вредоносные программы, таким образом, неспособны скрывать себя от агента защиты и, следовательно, также от антивирусного программного обеспечения. Следовательно, когда антивирусное программное обеспечение запрашивает у агента защиты список всех приложений, присутствующих в памяти компьютера, возвращенный список включает в себя вредоносные программы. Антивирусное программное обеспечение затем распознает этот код как вредоносную программу и, соответственно, удаляет ее из компьютерного устройства пользователя. Кроме того, агент защиты может сам выдавать уведомление, если вредоносные программы изменяют ресурсы операционной системы, и, в ответ, может завершать работу вычислительного устройства пользователя.
Следовательно, посредством постоянного размещения в памяти или запуска в режиме, который недоступен из привилегированного режима операционной системы, варианты осуществления, описанные в данном документе, препятствуют скрытию вредоносных программ от агента защиты или внесению исправлений поверх агента защиты. В примере выше, вычислительное устройство пользователя, как следствие, может удалять вредоносные программы из машины или, в некоторых случаях, завершать работу системы, когда вредоносные программы изменяют важные ресурсы. Так или иначе, эти варианты осуществления служат для того, чтобы снижать эффективность вредоносных программ в стремлении приносить вред.
Другие варианты осуществления инструментальных средств
Вышеприведенные разделы описывают несколько конкретных примеров, где агент защиты делается неизменяемым или недоступным из привилегированного режима операционной системы. В этом разделе описываются другие варианты осуществления инструментальных средств, такие как добавление привилегированного режима в процессор, который отсутствует в базовом процессоре.
Эти примерные варианты осуществления описываются как часть процессов 700-1100 по фиг.7-11. Эти процессы, а также примерные процессы, описанные или проиллюстрированные со ссылкой на фиг.1-6, могут быть реализованы в любых подходящих аппаратных средствах, программном обеспечении, микропрограммном обеспечении или комбинации вышеозначенного; в случае программного обеспечения и микропрограммного обеспечения, эти процессы представляют наборы операций, реализованных как машиноисполняемые инструкции, сохраненные в машиночитаемых носителях и выполняемые посредством одного или более процессоров. Эти варианты осуществления инструментальных средств, описанные в данном разделе, не имеют намерение ограничивать объем инструментальных средств или формулы изобретения.
Со ссылкой на фиг.7, этап 702 принимает политику принудительной защиты, идентифицирующую один или более ресурсов операционной системы. Эта политика принудительной защиты, которая может содержать зашифрованные данные, может быть принята через манифест с цифровой подписью или посредством предоставления интерфейса прикладного программирования (API) для операционной системы (к примеру, гипервызова). Этап 704 идентифицирует, из памяти, недоступной из объекта, работающего в привилегированном режиме операционной системы, один или более ресурсов операционной системы. Примерные ресурсы включают в себя таблицу диспетчеризации системных служб (SSDT), таблицу диспетчеризации прерываний (IDT) и/или таблицу глобальных дескрипторов (GDT). Как описано выше, эта идентификация может осуществляться в мониторе виртуальной машины (к примеру, посредством агента 134 защиты по фиг.1) или в отдельном виртуальном разделе (к примеру, посредством агента 142 защиты по фиг.1).
Этап 706, между тем, представляет определение, изменялись ли какие-либо из идентифицированных ресурсов. К тому же, он может осуществляться в мониторе виртуальной машины или в отдельном разделе. Если этап 706 определяет, что один или более из идентифицированных ресурсов фактически изменялись, то этап 708 останавливает операционную систему в ответ на это определение. Наконец, этап 710 уведомляет операционную систему о запрещенной операции после перезагрузки операционной системы.
Фиг.8 иллюстрирует процесс 800 для предоставления возможности агенту защиты запускаться в мониторе виртуальной машины. Этап 802 фактически изменяет диспетчер перехвата монитора виртуальной машины, чтобы предоставлять возможность приема индикатора того, что страница или регистр памяти, ассоциативно связанные с ресурсом операционной системы, изменялись. Этот ресурс может содержать один из ресурсов, описанных со ссылкой на фиг.7, или может быть другим ресурсом операционной системы. В любом случае, этап 804 принимает политику принудительной защиты, идентифицирующую ресурс операционной системы и, возможно, один или более других ресурсов операционной системы. К тому же, эта идентификация может осуществляться через методики, поясненные выше. Как описано выше, атрибут защиты (к примеру, "только для чтения" или "инициализировать только для чтения") ресурса может прилагаться к идентификационным данным ресурса. Этап 806, между тем, представляет прием индикатора, что страница или регистр памяти, ассоциативно связанные с ресурсом операционной системы, действительно изменялись. В ответ, этап 808 фактически завершает привилегированный режим операционной системы, чтобы завершать работу операционной системы, ассоциативно связанной с ресурсом операционной системы. В некоторых случаях, монитор 108 виртуальной машины по фиг.1 может выполнять это завершение привилегированного режима операционной системы.
Далее, фиг.9 описывает примерный процесс 900 для создания привилегированного режима агента защиты, такого как привилегированный режим 132 агента защиты, проиллюстрированный на фиг.1. Этап 902 принимает запрос на то, чтобы конкретный диапазон памяти был сделан неизменяемым или недоступным из привилегированного режима операционной системы. К тому же, монитор виртуальной машины может принимать этот запрос, который может исходить из самого диапазона памяти или из агента защиты, постоянно размещающегося в диапазоне памяти. Этап 904 защищает диапазон памяти и задает таймер так, чтобы периодически запускать агент защиты, постоянно размещающийся в диапазоне памяти. К тому же, монитор виртуальной машины может задавать такой таймер, который может инструктировать монитору виртуальной машины запускать агент защиты с регулярными интервалами.
Между тем, этап 906 принимает политику принудительной защиты, описывающую ресурс операционной системы. К тому же, политика принудительной защиты и описанный ресурс могут быть аналогичными или идентичными поясненным выше. Этап 908 запускает агент защиты, что может быть осуществлено посредством монитора виртуальной машины. Этап 910 принятия решения опрашивает то, изменялся ли ресурс операционной системы. Агент защиты может выполнять это определение посредством функционирования способами, подробно описанными выше. Если этап 910 действительно определяет, что изменение произошло, то этап 912 завершает работу операционной системы. Тем не менее, если это определение не выполнено, то этап 914 принимает уведомление о том, что агент защиты закончил выполнение. В некоторых случаях и как описано выше, сам агент защиты может уведомлять об этом монитор виртуальной машины. Этап 916, между тем, представляет чередование между запуском агента защиты и незапуском агента защиты. В завершение, отметим, что когда агент защиты не запущен, монитор виртуальной машины может завершать работу операционной системы в ответ на попытку получения доступа от объекта, работающего в привилегированном режиме операционной системы, к диапазону памяти, ассоциативно связанному с агентом защиты.
Фиг.10 иллюстрирует другой примерный процесс 1000 для создания привилегированного режима агента защиты, такого как привилегированный режим 132 агента защиты проиллюстрированный на фиг.1. Этап 1002 виртуализирует процессор реального компьютера в несколько процессоров виртуальных компьютеров. Эти виртуальные процессоры могут содержать один или более виртуальных процессоров операционной системы, каждый из которых имеет привилегию изменять собственную память операционной системы и использовать часть производительности обработки реальных процессоров, как проиллюстрировано на фиг.6. Виртуальные процессоры также могут включать в себя, по меньшей мере, один виртуальный процессор агента защиты, имеющий привилегию изменять собственную память агента защиты и использовать другую часть производительности обработки реальных процессоров. Хотя все виртуальные процессоры могут быть диспетчеризованы посредством монитора виртуальной машины, виртуальный процессор агента защиты может быть прозрачным для виртуальных процессоров операционной системы. В некоторых случаях, виртуальные процессоры операционной системы могут быть неспособными к изменению памяти, назначенной для виртуального процессора агента защиты. Кроме того, виртуальный процессор агента защиты может быть выделенным процессором, основная или единственная цель которого состоит в том, чтобы инструктировать агенту защиты выполняться, как пояснено выше.
Затем этап 1004 инструктирует виртуальному процессору агента защиты выполнять агент защиты, что может быть эффективным для того, чтобы определять, изменялась ли часть упомянутой памяти операционной системы. Этап 1006, между тем, принимает индикатор, что часть памяти операционной системы изменялась. В ответ, этап 1008 завершает работу соответствующей операционной системы.
Наконец, фиг.11 иллюстрирует процесс 1100 для добавления привилегированного режима в реальный вычислительный процессор. Этап 1102 представляет определение, идентификацию или классификацию одного или более привилегированных режимов, присутствующих в базовом физическом процессоре. Эти привилегированные режимы, в общем, задаются посредством самого базового физического процессора. В любом случае, этап 1104 добавляет привилегированный режим, который отсутствует в базовом физическом процессоре. В некоторых случаях, режим с дополнительными привилегиями допускает изменение части памяти вычислительного устройства, которая отличается от части памяти, которая является изменяемой посредством одного или более присутствующих привилегированных режимов. Режим с дополнительными привилегиями также может допускать добавление и выполнение инструкций, которые ранее не существовали или не выполнялись в базовом процессоре.
Кроме того, один или более привилегированных режимов, присутствующих в базовом физическом процессоре, могут включать в себя пользовательский привилегированный режим и привилегированный режим операционной системы. В этих вариантах осуществления, режим с дополнительными привилегиями может иметь больше привилегий, чем привилегированный режим пользователя и чем привилегированный режим операционной системы, больше привилегий, чем пользовательский привилегированный режим, но меньше привилегий, чем привилегированный режим операционной системы, или меньше привилегий, чем как пользовательский привилегированный режим, так и привилегированный режим операционной системы. Наконец, отметим, что один пример добавления привилегированного режима может содержать добавление привилегированного режима агента защиты (к примеру, привилегированного режима 132 агента защиты, проиллюстрированного на фиг.1) множеством способов, поясненных выше. Например, агент защиты или его ассоциативно связанный диапазон памяти могут запрашивать, чтобы диапазон памяти стал недоступным из объектов, работающих в привилегированном режиме операционной системы. Монитор виртуальной машины также может создавать этот привилегированный режим посредством диспетчеризации виртуального процессора агента защиты, чтобы запускать агент защиты.
Заключение
Вышеописанные инструментальные средства допускают создание агента защиты, неизменяемого или недоступного из привилегированного режима операционной системы, либо посредством предоставления возможности агенту защиты постоянно размещаться в местоположении, которое недоступно из привилегированного режима операционной системы, либо посредством создания привилегированного режима агента защиты. Хотя инструментальные средства описаны на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что инструментальные средства, определенные в прилагаемой формуле изобретения, не обязательно ограничены описанными характерными признаками или действиями. Наоборот, характерные признаки и действия раскрываются как примерные формы реализации инструментальных средств.

Claims (18)

1. Машиночитаемый носитель, имеющий машиночитаемые инструкции, которые, когда выполняются посредством вычислительного устройства, инструктируют вычислительному устройству осуществлять действия, содержащие:
прием в мониторе виртуальной машины запроса на то, чтобы диапазон памяти стал неизменяемым или недоступным из привилегированного режима операционной системы;
задание диапазона памяти неизменяемым или недоступным из привилегированного режима операционной системы; и
выполнение агента защиты, который постоянно размещается в диапазоне памяти, при этом агент защиты выполнен с возможностью принимать политику принудительной защиты, описывающую один или более ресурсов, работающих в первом разделе, причем один или более ресурсов доступны из привилегированного режима операционной системы, и, в ответ на прием политики принудительной защиты, определять, с использованием политики принудительной защиты и из диапазона памяти, резидентного для второго раздела, недоступного из привилегированного режима операционной системы, изменялись ли один или более из одного или более ресурсов, работающих в первом разделе.
2. Носитель по п.1, дополнительно содержащий настройку таймера так, чтобы запускать агент защиты.
3. Носитель по п.2, в котором таймер инструктирует монитору виртуальной машины запускать агент защиты с регулярными интервалами.
4. Носитель по п.1, в котором:
монитор виртуальной машины работает в привилегированном режиме монитора виртуальной машины;
агент защиты работает в привилегированном режиме агента защиты; и
привилегированный режим агента защиты имеет больше привилегий, чем привилегированный режим операционной системы, но меньше привилегий, чем привилегированный режим монитора виртуальной машины.
5. Носитель по п.1, дополнительно содержащий инструкции завершения работы операционной системы, ассоциативно связанной с привилегированным режимом операционной системы, в ответ на определение посредством агента защиты того, что один или более из одного или более ресурсов изменялся.
6. Носитель по п.1, в котором один или более ресурсов включают в себя таблицу диспетчеризации системных служб (SSDT), таблицу диспетчеризации прерываний (IDT) или таблицу глобальных дескрипторов (GDT).
7. Носитель по п.1, дополнительно содержащий прием, в мониторе виртуальной машины и после запуска агента защиты, уведомления о том, что агент защиты завершил выполнение.
8. Носитель по п.1, дополнительно содержащий завершение работы операционной системы, ассоциативно связанной с привилегированным режимом операционной системы, в ответ на попытку получения доступа, из привилегированного режима операционной системы, к диапазону памяти или агенту защиты.
9. Носитель по п.1, дополнительно содержащий чередование между запуском агента защиты и незапуском агента защиты, так что, по меньшей мере, когда агент защиты запущен, он является неизменяемым или недоступным из привилегированного режима операционной системы.
10. Способ создания привилегированного режима агента защиты вычислительного устройства, содержащий этапы, на которых:
виртуализируют один или более реальных вычислительных процессоров в виртуальные вычислительные процессоры, каждый из которых ассоциативно связан с соответствующим разделом, причем виртуальные вычислительные процессоры содержат:
виртуальный процессор операционной системы, ассоциативно связанный с первым разделом и имеющий привилегию изменять собственную память операционной системы и использовать часть производительности обработки одного или более реальных вычислительных процессоров; и
виртуальный процессор агента защиты, ассоциативно связанный со вторым разделом и имеющий привилегию изменять собственную память агента защиты и использовать другую часть производительности обработки одного или более реальных вычислительных процессоров, причем память агента защиты недоступна из виртуального процессора операционной системы; и
инструктируют виртуальному процессору агента защиты выполнять агент защиты, постоянно размещающийся во втором разделе, чтобы определять то, изменялась ли часть упомянутой памяти операционной системы.
11. Способ по п.10, дополнительно содержащий этапы, на которых:
фактически изменяют диспетчер перехвата монитора виртуальной машины, чтобы предоставлять возможность приема индикатора того, что часть памяти операционной системы изменялась, причем часть памяти операционной системы располагается в первом разделе;
принимают посредством диспетчера перехвата монитора виртуальной машины индикатор того, что агент защиты определил, что часть упомянутой памяти операционной системы изменялась; и
в ответ на прием индикатора завершают работу соответствующей операционной системы.
12. Способ по п.10, в котором инструктирование виртуальному процессору агента защиты выполнять агент защиты содержит этап, на котором инструктируют виртуальному процессору агента защиты выполнять агент защиты с указанными интервалами времени.
13. Способ по п.10, в котором виртуальный процессор агента защиты выделен только для выполнения агента защиты.
14. Способ по п.10, в котором виртуальный процессор агента защиты диспетчеризуется посредством монитора виртуальной машины и является прозрачным для операционной системы, ассоциативно связанной с упомянутой памятью операционной системы.
15. Машиночитаемый носитель, имеющий машиночитаемые инструкции, которые, когда выполняются посредством вычислительного устройства, содержащего базовый физический процессор, который включает в себя один или более привилегированных режимов, инструктируют вычислительному устройству добавлять привилегированный режим, который отсутствует в базовом физическом процессоре, посредством вызова монитора виртуальной машины, запрашивая, чтобы диапазон памяти, ассоциативно связанный с агентом защиты добавленного привилегированного режима, стал неизменяемым или недоступным из другого привилегированного режима, причем добавленный привилегированный режим выполнен с возможностью добавлять и выполнять инструкции, которые ранее не выполнялись в базовом физическом процессоре.
16. Носитель по п.15, в котором режим с дополнительными привилегиями допускает изменение части памяти вычислительного устройства, которая отличается от части памяти, которая является изменяемой посредством одного или более привилегированных режимов, которые первоначально присутствуют в базовом физическом процессоре.
17. Носитель по п.15, в котором один или более привилегированных режимов, первоначально присутствующих в базовом физическом процессоре, включают в себя пользовательский привилегированный режим и привилегированный режим операционной системы, и в котором режим с дополнительными привилегиями имеет больше привилегий, чем как пользовательский привилегированный режим, так и привилегированный режим операционной системы.
18. Носитель по п.15, в котором один или более привилегированных режимов, первоначально присутствующих в базовом физическом процессоре, включают в себя пользовательский привилегированный режим и привилегированный режим операционной системы, и в котором режим с дополнительными привилегиями имеет больше привилегий, чем пользовательский привилегированный режим, но меньше привилегий, чем режим операционной системы.
RU2009128673/08A 2007-01-25 2007-12-12 Агенты защиты и привилегированные режимы RU2468418C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/627,320 2007-01-25
US11/627,320 US8380987B2 (en) 2007-01-25 2007-01-25 Protection agents and privilege modes
PCT/US2007/087225 WO2008091452A1 (en) 2007-01-25 2007-12-12 Protection agents and privilege modes

Publications (2)

Publication Number Publication Date
RU2009128673A RU2009128673A (ru) 2011-01-27
RU2468418C2 true RU2468418C2 (ru) 2012-11-27

Family

ID=39644770

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009128673/08A RU2468418C2 (ru) 2007-01-25 2007-12-12 Агенты защиты и привилегированные режимы

Country Status (10)

Country Link
US (1) US8380987B2 (ru)
EP (1) EP2115570B1 (ru)
JP (2) JP5055380B2 (ru)
CN (1) CN101589364B (ru)
BR (1) BRPI0720921B1 (ru)
CL (1) CL2008000168A1 (ru)
ES (1) ES2683074T3 (ru)
RU (1) RU2468418C2 (ru)
TW (1) TWI475388B (ru)
WO (1) WO2008091452A1 (ru)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2541120C2 (ru) * 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
RU2585978C2 (ru) * 2014-09-30 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ вызова системных функций в условиях использования средств защиты ядра операционной системы
RU2610228C1 (ru) * 2015-12-18 2017-02-08 Акционерное общество "Лаборатория Касперского" Система и способ выполнения запросов процессов операционной системы к файловой системе
RU2626350C1 (ru) * 2016-04-11 2017-07-26 Андрей Сергеевич Моляков Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса
RU2634205C2 (ru) * 2013-07-05 2017-10-24 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Оценка процесса для выявления вредоносных программ в виртуальных машинах

Families Citing this family (259)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8539582B1 (en) * 2004-04-01 2013-09-17 Fireeye, Inc. Malware containment and security analysis on connection
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8190778B2 (en) * 2007-03-06 2012-05-29 Intel Corporation Method and apparatus for network filtering and firewall protection on a secure partition
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US9164784B2 (en) * 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8701189B2 (en) 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
US8341749B2 (en) * 2009-06-26 2012-12-25 Vmware, Inc. Preventing malware attacks in virtualized mobile devices
US8381284B2 (en) * 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8832829B2 (en) * 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8621460B2 (en) * 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8495750B2 (en) 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US20120144489A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
CN103430185B (zh) * 2011-03-22 2016-10-26 瑞典爱立信有限公司 用于在虚拟化系统操作与非虚拟化系统操作之间切换的方法
US8966629B2 (en) * 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9262246B2 (en) * 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8650642B2 (en) * 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US20120255003A1 (en) * 2011-03-31 2012-10-04 Mcafee, Inc. System and method for securing access to the objects of an operating system
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
DE112011105577T5 (de) 2011-08-30 2014-05-08 Hewlett-Packard Development Company, L.P. Virtueller hochprivilegierter Modus für eine Systemverwaltungsanforderung
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
US8782351B2 (en) * 2011-10-13 2014-07-15 International Business Machines Corporation Protecting memory of a virtual guest
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
CN102521531B (zh) * 2011-11-24 2014-11-12 华中科技大学 基于硬件虚拟化的密码保护系统
US9916454B2 (en) 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
US9372988B2 (en) * 2011-12-22 2016-06-21 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
CN104025041B (zh) * 2011-12-29 2018-05-25 英特尔公司 管理员模式执行保护
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US20130312099A1 (en) * 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9405682B2 (en) * 2012-06-23 2016-08-02 Microsoft Technology Licensing, Llc Storage device access using unprivileged software code
EP3364297B1 (en) * 2012-06-26 2022-05-04 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features
US8832837B2 (en) * 2012-06-29 2014-09-09 Mcafee Inc. Preventing attacks on devices with multiple CPUs
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US9183161B2 (en) * 2012-12-28 2015-11-10 Intel Corporation Apparatus and method for page walk extension for enhanced security checks
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9407505B2 (en) * 2013-03-04 2016-08-02 Amazon Technologies, Inc. Configuration and verification by trusted provider
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
WO2014142817A1 (en) * 2013-03-13 2014-09-18 Intel Corporation Managing device driver cross ring accesses
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
EP2981925B1 (en) * 2013-04-05 2019-08-28 OLogN Technologies AG Systems, methods and apparatuses for protection of antivirus software
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9542230B2 (en) * 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US9904575B2 (en) 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
JP5963313B2 (ja) * 2013-12-19 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、方法、及び、プログラム
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9756069B1 (en) * 2014-01-10 2017-09-05 Trend Micro Inc. Instant raw scan on host PC with virtualization technology
US9507935B2 (en) * 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
WO2015176048A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
WO2015176046A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10725770B2 (en) 2015-01-19 2020-07-28 Vmware, Inc. Hot-swapping operating systems using inter-partition application migration
US10445123B2 (en) 2015-01-19 2019-10-15 Vmware, Inc. Hypervisor exchange with virtual-machine consolidation
US10007546B2 (en) * 2015-01-19 2018-06-26 Vmware, Inc. Operating-system exchanges using memory-pointer transfers
US9779240B2 (en) * 2015-01-30 2017-10-03 Vmware, Inc. System and method for hypervisor-based security
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US9958933B2 (en) 2015-06-04 2018-05-01 Apple Inc. Opportunistic waking of an application processor
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10395029B1 (en) * 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
CN108351938B (zh) * 2015-10-29 2022-02-08 惠普发展公司,有限责任合伙企业 校验针对程序代码的一部分所计算的安全值的装置、系统和方法
US9536088B1 (en) * 2015-11-09 2017-01-03 AO Kaspersky Lab System and method for protection of memory in a hypervisor
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10705867B2 (en) 2016-06-22 2020-07-07 Vmware, Inc. Hypervisor exchange with virtual machines in memory
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10554507B1 (en) 2017-03-30 2020-02-04 Fireeye, Inc. Multi-level control for enhanced resource and object evaluation management of malware detection system
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10387186B2 (en) 2017-06-28 2019-08-20 Vmware, Inc. Hypervisor with virtual-memory file system
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US10534730B1 (en) * 2018-12-20 2020-01-14 Ati Technologies Ulc Storing microcode for a virtual function in a trusted memory region
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
WO2021030903A1 (en) * 2019-08-16 2021-02-25 Zao John Kar Kin System and method for performing trusted computing with remote attestation and information isolation on heterogeneous processors over open interconnect
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN112799776B (zh) * 2020-12-31 2022-03-25 科东(广州)软件科技有限公司 多分区操作系统监控方法、装置、计算设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2134931C1 (ru) * 1999-03-15 1999-08-20 ОАО "Всероссийский научно-исследовательский институт автоматизации управления в непромышленной сфере" Способ обеспечения доступа к объектам в операционной системе мсвс
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
RU2215321C2 (ru) * 1997-04-30 2003-10-27 Арм Лимитед Защита доступа к памяти
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US7210040B2 (en) * 2000-07-14 2007-04-24 Computer Associates Think, Inc. Detection of suspicious privileged access to restricted computer resources
TW472190B (en) * 2000-09-08 2002-01-11 Inventec Corp Method for directly accessing mass storage under protection mode
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
KR100389206B1 (ko) * 2001-04-25 2003-06-27 주식회사 성진씨앤씨 컴퓨터 운영 시스템 보호 방법 및 장치
GB2376761A (en) 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
GB2378535A (en) * 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
JP4256107B2 (ja) 2002-03-07 2009-04-22 富士通株式会社 データサーバへの不正侵入対処方法、及びプログラム
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US20050160423A1 (en) * 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US20050114687A1 (en) * 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
WO2006014554A2 (en) 2004-07-07 2006-02-09 University Of Maryland Method and system for monitoring system memory integrity
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US8856473B2 (en) * 2005-07-01 2014-10-07 Red Hat, Inc. Computer system protection based on virtualization
AU2006100099A4 (en) 2006-02-08 2006-03-16 Pc Tools Technology Pty Limited Automated Threat Analysis System
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2215321C2 (ru) * 1997-04-30 2003-10-27 Арм Лимитед Защита доступа к памяти
RU2134931C1 (ru) * 1999-03-15 1999-08-20 ОАО "Всероссийский научно-исследовательский институт автоматизации управления в непромышленной сфере" Способ обеспечения доступа к объектам в операционной системе мсвс
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2541120C2 (ru) * 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
US9043915B2 (en) 2013-06-06 2015-05-26 Kaspersky Lab Zao System and method for detecting malicious executable files based on similarity of their resources
RU2634205C2 (ru) * 2013-07-05 2017-10-24 БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД Оценка процесса для выявления вредоносных программ в виртуальных машинах
RU2585978C2 (ru) * 2014-09-30 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ вызова системных функций в условиях использования средств защиты ядра операционной системы
RU2610228C1 (ru) * 2015-12-18 2017-02-08 Акционерное общество "Лаборатория Касперского" Система и способ выполнения запросов процессов операционной системы к файловой системе
RU2626350C1 (ru) * 2016-04-11 2017-07-26 Андрей Сергеевич Моляков Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса

Also Published As

Publication number Publication date
EP2115570B1 (en) 2018-06-13
CN101589364B (zh) 2016-03-09
JP5249450B2 (ja) 2013-07-31
US20080184373A1 (en) 2008-07-31
BRPI0720921A2 (pt) 2014-08-05
CL2008000168A1 (es) 2009-01-09
EP2115570A4 (en) 2010-06-16
US8380987B2 (en) 2013-02-19
TWI475388B (zh) 2015-03-01
RU2009128673A (ru) 2011-01-27
BRPI0720921B1 (pt) 2018-11-13
CN101589364A (zh) 2009-11-25
EP2115570A1 (en) 2009-11-11
BRPI0720921A8 (pt) 2017-01-17
WO2008091452A1 (en) 2008-07-31
ES2683074T3 (es) 2018-09-24
JP2012198927A (ja) 2012-10-18
JP5055380B2 (ja) 2012-10-24
TW200836064A (en) 2008-09-01
JP2010517162A (ja) 2010-05-20

Similar Documents

Publication Publication Date Title
RU2468418C2 (ru) Агенты защиты и привилегированные режимы
EP2521062B1 (en) Protecting operating-system resources
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
US9117080B2 (en) Process evaluation for malware detection in virtual machines
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
EP2766843A1 (en) System and method for kernel rootkit protection in a hypervisor environment
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20191213