СИСТЕМЫ И СПОСОБЫ ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ, ИСПОЛЬЗУЮЩИЕ ИСКЛЮЧЕНИЯ АСИНХРОННОЙ ИНТРОСПЕКЦИИ
COMPUTER SECURITY SYSTEMS AND METHODS USING ASYNCHRONOUS INTROSPECTION EXCEPTIONS

РОДСТВЕННЫЕ ЗАЯВКИ
[1] В настоящей заявке испрашивается приоритет согласно дате подачи предварительной заявки на патент США №62/192384, поданной 14 июля 2015 г., под названием «Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции», содержание которой в полном объеме включено в настоящий документ посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
[2] Настоящее изобретение относится к системам и способам обеспечения компьютерной безопасности и, в частности, к системам и способам защиты сред аппаратной виртуализации от угроз нарушения компьютерной безопасности.
[3] Вредоносное программное обеспечение, также известное как вредоносные программы, негативно влияет на работу огромного количества компьютерных систем но всему миру. Вредоносные программы, во всех своих проявлениях, таких как, например, компьютерные вирусы, «черви», руткиты, шпионские программы и нежелательное рекламное программное обеспечение, представляют серьезную опасность для миллионов пользователей компьютеров, делая их уязвимыми, помимо прочего, к потере данных и секретной информации, хищению персональных данных и потере производительности.
[4] Для защиты компьютерных систем от вредоносных программ можно использовать программное обеспечение для защиты компьютеров. К общепринятым способам обнаружения и борьбы с вредоносными программами относятся способы сопоставления сигнатур и поведенческого анализа. Способы, основанные на сопоставлении сигнатур, пытаются сопоставить секцию кода целевого объекта программного обеспечения с набором фрагментов исходного кода, извлеченных из программы, которая заведомо является вредоносной. Способы поведенческого анализа, в общем случае, предусматривают обнаружение наступления события, вызванного или наступившего во время исполнения целевого объекта программного обеспечения, и анализ соответствующего события для определения, указывает ли оно на потенциальную угрозу нарушения безопасности.
[5] Традиционное обнаружение событий обычно полагается на способы, известные из уровня техники под названием «перехват» («hooking»). Такие способы часто уязвимы и могут преодолеваться вредоносным программным обеспечением. Кроме того, традиционные способы поведенческого анализа, в общем случае, приостанавливают исполнение объекта, который вызвал обнаруженное событие, пока соответствующее событие анализируется на признаки вредоносности. Такие приостановки могут отрицательно влиять на пользовательский опыт, особенно в конфигурациях аппаратной виртуализации, в которых защитное программное обеспечение запускается за пределами защищенной виртуальной машины.
[6] Таким образом, сохраняется интерес к повышению эффективности систем и способов обеспечения компьютерной безопасности, в частности, к разработке систем и способов, которые позволят устранить упомянутые выше недостатки, связанные с обнаружением и анализом событий.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[7] Одним из аспектов предусмотрена хостовая система, которая содержит аппаратный процессор и память, причем аппаратный процессор выполнен с возможностью исполнения целевого объекта, синхронного анализатора исключений и асинхронного анализатора исключений. Аппаратный процессор дополнительно выполнен с возможностью, в ответ на обнаружение наступления события, вызванного исполнением целевого объекта, приостановки исполнения целевого объекта, и в ответ на приостановку исполнения целевого объекта, переключения на исполнение синхронного анализатора исключений. Синхронный анализатор исключений выполнен с возможностью определения, подозревается ли целевой объект во вредоносности согласно указанному событию. Синхронный анализатор исключений дополнительно выполнен с возможностью, когда целевой объект подозревается во вредоносности, выборочного извлечения сигнатуры исключения из правила из множества сигнатур исключения из правил, причем сигнатура исключения из правила извлекается согласно указанному событию, и сигнатура исключения из правила содержит кодировку первого условия и кодировку второго условия. Синхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на извлечение сигнатуры исключения, определения, удовлетворено ли первое условие согласно указанному событию и согласно целевому объекту. В ответ на определение, удовлетворено ли первое условие, когда первое условие удовлетворено, синхронный анализатор исключений дополнительно выполнен так, чтобы заставлять аппаратный процессор возобновлять исполнение целевого объекта. Синхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли первое условие, когда первое условие не удовлетворено, определения, что целевой объект является вредоносным. Асинхронный анализатор исключений выполнен с возможностью, в ответ на возобновление аппаратным процессором исполнения целевого объекта, определения, удовлетворено ли второе условие согласно указанному событию и согласно целевому объекту. Асинхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли второе условие, когда второе условие удовлетворено, определения, что целевой объект не является вредоносным. Асинхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли второе условие, когда второе условие не удовлетворено, определения, что целевой объект является вредоносным.
[8] Другим аспектом предусмотрен долговременный машиночитаемый носитель информации, котором хранятся инструкции процессора, которые, при исполнении их аппаратным процессором хостовой системы, заставляют хостовую систему формировать синхронный анализатор исключений и асинхронный анализатор исключений. Аппаратный процессор дополнительно выполнен с возможностью, в ответ на обнаружение наступления события, вызванного исполнением целевого объекта, приостанавливать исполнение целевого объекта, и в ответ на приостановку исполнения целевого объекта, переключаться на исполнение синхронного анализатора исключений. Синхронный анализатор исключений выполнен с возможностью определения, подозревается ли целевой объект во вредоносности согласно указанному событию. Синхронный анализатор исключений дополнительно выполнен с возможностью, в случае когда целевой объект подозревается во вредоносности, выборочного извлечения сигнатуры исключения из правила из множества сигнатур исключения из правила, причем сигнатура исключения из правил извлекается согласно указанному событию, причем сигнатура исключения из правила содержит кодировку первого условия и кодировку второго условия. Синхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на извлечение сигнатуры исключения, определения, удовлетворено ли первое условие согласно указанному событию и согласно целевому объекту. В ответ на определение, удовлетворено ли первое условие, когда первое условие удовлетворено, синхронный анализатор исключений дополнительно выполнен так, чтобы заставить аппаратный процессор возобновлять исполнение целевого объекта. Синхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли первое условие, когда первое условие не удовлетворено, определения, что целевой объект является вредоносным. Асинхронный анализатор исключений выполнен с возможностью, в ответ на возобновление аппаратным процессором исполнения целевого объекта, определения, удовлетворено ли второе условие согласно указанному событию и согласно целевому объекту. Асинхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли второе условие, когда вторе условие удовлетворено, определения, что целевой объект не является вредоносным. Асинхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на определение, удовлетворено ли второе условие, когда второе условие не удовлетворено, определения, что целевой объект является вредоносным.
[9] Еще одним аспектом предусмотрен способ, который обеспечивает защиту хостовой системы от угроз нарушения компьютерной безопасности, причем хостовая система содержит аппаратный процессор и память. Способ включает применение аппаратного процессора для обнаружения наступления события, вызванного исполнением целевого объекта. Способ дополнительно включает, в ответ на обнаружение наступления события, применение аппаратного процессора для приостановки исполнения целевого объекта и переключения на исполнение синхронного анализатора исключений. Синхронный анализатор исключений выполнен с возможностью определения, подозревается ли целевой объект во вредоносности согласно указанному событию. В ответ, когда целевой объект подозревается во вредоносности, синхронный анализатор исключений выполнен с возможностью выборочного извлечения сигнатуры исключения из правила из множества сигнатур исключения из правила, причем сигнатуру исключения из правила извлекают согласно указанному событию, причем сигнатура исключения из правила содержит кодировку первого условия и кодировку второго условия. Синхронный анализатор исключений дополнительно выполнен с возможностью, в ответ на извлечение сигнатуры исключения из правила, определения, удовлетворено ли первое условие согласно указанному событию и согласно целевому объекту. Синхронный анализатор исключений, дополнительно выполнен так, чтобы в ответ на определение, удовлетворено ли первое условие, когда первое условие удовлетворено, заставлять аппаратный процессор возобновлять исполнение целевого объекта, а когда первое условие не удовлетворено, определять, что целевой объект является вредоносным. Способ дополнительно включает, в ответ на возобновление аппаратным процессором исполнения целевого объекта, применение аппаратного процессора для определения, удовлетворено ли второе условие согласно указанному событию и согласно целевому объекту. Способ дополнительно включает, в ответ на определение, удовлетворено ли второе условие, когда второе условие удовлетворено, определение, что целевой объект не является вредоносным, и когда второе условие не удовлетворено, определение, что целевой объект является вредоносным.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[10] Вышеизложенные аспекты и преимущества настоящего изобретения станут более понятны по прочтении подробного описания, приведенного ниже со ссылками на прилагаемые чертежи, на которых.
[11] На фиг. 1 проиллюстрирован пример конфигурации аппаратного обеспечения хостовой системы, защищенной от угроз нарушения компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[12] На фиг. 2А показан пример приложения обеспечения компьютерной безопасности CSA (ComputerSecurityApplication), защищающего хостовую систему, согласно некоторым вариантам осуществления настоящего изобретения, в конфигурации, которая не предусматривает аппаратную виртуализацию.
[13] На фиг. 2В показана альтернативная конфигурация согласно некоторым вариантам осуществления настоящего изобретения, причем в которой набор защищенных виртуальных машин предоставляется гипервизором, запускаемым на хостовой системе, причем СБА исполняется за пределами защищенной виртуальной машины (или машин).
[14] На фиг. 3 показаны примеры компонентов приложения обеспечения компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[15] На фиг. 4А показана пример конфигурации, в которой обработчик уведомлений исполняется внутри защищенной виртуальной машины, асинхронные и асинхронные анализаторы исключений исполняются в не защищенной виртуальной машины.
[16] На фиг. 4В показана альтернативная конфигурация согласно некоторым вариантам осуществления настоящего изобретения, в которой обработчик уведомлений исполняется в не защищенной виртуальной машины, асинхронные и асинхронные анализаторы исключений исполняются внутри защищенной виртуальной машины.
[17] На фиг. 4С показана еще одна примерная конфигурация согласно некоторым вариантам осуществления настоящего изобретения, в которой асинхронный анализатор исключений исполняется внутри виртуальной машины обеспечения безопасности, отличной от защищенной виртуальной машины.
[18] На фиг. 5 проиллюстрировано пример взаимодействия компонентов приложения обеспечения компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[19] На фиг. 6 проиллюстрирован пример формата исключения из правила согласно некоторым вариантам осуществления настоящего изобретения.
[20] На фиг. 7 проиллюстрирован пример формата запроса на проведение анализа исключения (EAR, ExceptionAnalysisRequest) согласно некоторым вариантам осуществления настоящего изобретения.
[21] На фиг. 8 показан пример последовательности этапов, осуществляемых посредством обработчика уведомлений согласно некоторым вариантам осуществления настоящего изобретения.
[22] На фиг. 9 показан пример последовательности этапов, осуществляемых посредством синхронного анализатора исключений согласно некоторым вариантам осуществления настоящего изобретения.
[23] На фиг. 10 показан пример последовательности этапов, осуществляемых посредством асинхронного анализатора исключений согласно некоторым вариантам осуществления настоящего изобретения.
[24] На фиг. 11 показан пример последовательности этапов, осуществляемых посредством контроллера завершения согласно некоторым вариантам осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[25] В нижеследующем описании подразумевается, что все указанные соединения между структурами могут представлять собой прямые функциональные соединения или опосредованные функциональные соединения через промежуточные структуры. Набор элементов включает в себя один или несколько элементов. Любое упоминание элемента следует рассматривать как относящееся к по меньшей мере одному элементу. Множество элементов включает в себя по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способов необязательно выполнять в точном проиллюстрированном порядке. Первый элемент (например, информация), полученная из второго элемента, охватывает первый элемент, равный второму элементу, а также первый элемент, созданный при обработке второго элемента и опционально другой информации. Определение или принятие решения согласно заданному параметру включает в себя определение или принятие решения согласно указанному параметру и опционально согласно другой информации. Если не указано иное, показатель некоторой величины/информации может представлять саму величину/информацию, или показатель, отличный от самой величины/информации. Компьютерная безопасность включает в себя защиту пользователей и оборудования от нежелательного или неавторизованного доступа к информации и/или аппаратным средствам, от нежелательной или неавторизованной модификации информации и/или аппаратных средств, и от разрушения информации и/или аппаратных средств. Компьютерная программа представляет собой последовательность инструкций процессора, выполняющих задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут представлять собой обособленные программные сущности или подсущности (например, подпрограммы, библиотеки) других компьютерных программ. Если не указано иное, процесс представляет собой экземпляр компьютерной программы, например, приложения или части операционной системы, и характеризуется тем, что имеет, по меньшей мере, поток исполнения и назначенную ему область виртуальной памяти, в которой содержимое соответствующей области виртуальной памяти включает в себя исполняемый код. Если не указано иное, гостевой процесс представляет собой процесс, исполняемый в пределах виртуальной машины. Считается, что процесс исполняется в пределах виртуальной машины, если он исполняется на виртуальном процессоре соответствующей виртуальной машины. Если не указано иное, страница составляет наименьшую единицу виртуальной памяти, которая может отдельно отображаться в физической памяти хостовой системы. Машиночитаемый носитель информации включает в себя долговременный носитель, такой как магнитный, оптический и полупроводниковый носитель информации (например, жесткие диски, оптические диски, флеш-память, динамическая оперативная память DRAM), а также линии связи, например, проводящие кабели и волоконно-оптические линии связи. Согласно некоторым вариантам, настоящее изобретение относится, помимо прочего, к компьютерным системам, содержащим аппаратные средства (например, один или несколько микропроцессоров), запрограммированные для осуществления раскрытых здесь способов, а также машиночитаемому носителю информации, кодирующему инструкции для осуществления раскрытых здесь способов.
[26] Нижеследующее описание иллюстрирует неограничивающие примеры осуществления настоящего изобретения.
[27] На фиг. 1 показана примерная конфигурация аппаратного обеспечения хостовой системы 10, защищенной от угроз нарушения компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Хостовая система 10 может представлять собой электронное устройство, имеющее процессор и память. Примерная хостовая система 10 включает в себя, помимо прочего, персональные компьютеры, серверы, портативные компьютеры, планшетные компьютеры, приборы мобильной связи (например, смартфоны), мультимедийные проигрыватели, телевизоры, игровые консоли, бытовые приборы (например, холодильники, термостаты, интеллектуальные нагревательные и/или осветительные системы), и надеваемые устройства (например, умные часы, спортивное оборудование и тренажеры).
[28] На фиг. 1 проиллюстрирована компьютерная система; конфигурация аппаратного оборудования других хостовых систем, таких как смартфоны и умные часы, может отличаться от проиллюстрированной конфигурации. Хостовая система 10 содержит набор физических устройств, в том числе процессор 12 и блок 14 памяти. В некоторых вариантах процессор 12 включает в себя физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную па полупроводниковой подложке, и т.д.), выполненное с возможностью исполнения вычислительных и/или логических операций с набором сигналов и/или данных. В некоторых вариантах осуществления такие операции доставляются в процессор 12 в форме последовательности инструкций процессора (например, машинный код или другой тип кодирования). Блок 14 памяти может включать в себя энергозависимый машиночитаемый носитель информации (например, DRAM, SRAM), в котором хранятся инструкции и/или данные, доступные для процессора 12 или созданные им.
[29] В зависимости от типа и рабочих параметров устройства, хостовая система 10 может дополнительно содержать набор устройств 16 ввода, например, клавиатуру, мышку, сенсорный экран, и т.д., позволяющих пользователю вводить данные и/или инструкции в хостовую систему 10. Набор устройств 18 вывода, например, монитор или жидкий кристаллический дисплей, может передавать информацию пользователю, например, посредством графического пользовательского интерфейса. Устройства 20 хранения включают в себя машиночитаемый носитель информации, обеспечивающий возможность энергонезависимого хранения, считывания и записи инструкций процессора и/или данных. Примеры устройства 20 хранения включают в себя магнитные и оптические диски и устройства флеш-памяти, а также съемные носители информации, такие как CD и/или DVD диски и дисководы. Набор сетевых адаптеров 22 позволяет хостовой системе 10 подключаться к компьютерной сети и/или к другим устройствам/компьютерным системам. Блок 24 контроллеров в общем случае представляет собой множество системных, периферических шин и/или шин набора микросхем, и/или всех других цепей, обеспечивающих возможность связи между процессором 12 и устройствами 14, 16, 18, 20 и 22. Например, блок 24 контроллеров может содержать, помимо прочего, блок управления памятью MMU (MemoryManagementUnit), контроллер ввода/вывода (I/O) и контроллер прерываний. В другом примере, блок 24 контроллеров может содержать «северный мост», соединяющий процессор 12 с памятью 14, и/или «южный мост», соединяющий процессор 12 с устройствами 16, 18, 20 и 22. В некоторых вариантах, блок 24 контроллеров может быть объединен, частично или полностью, с процессором 12, например, MMU может иметь общую полупроводниковую подложку с процессором 12.
[30] Приложение 40 обеспечения компьютерной безопасности CSA защищает хостовую систему 10 от угроз нарушения компьютерной безопасности, таких как вредоносные программы, шпионские программы, нежелательное рекламное программное обеспечение, и т.д. В некоторых вариантах CSA 40 выполнено с возможностью слежения за поведением множества исполняемых объектов (например, процессов, потоков, приложений, компонентов операционной системы), и определения, является ли какой-либо из таких отслеживаемых объектов вредоносным, в соответствии с его поведением. Отслеживаемые объекты могут включать в себя, помимо прочего, компоненты операционной системы и пользовательские приложения. В ответ на определение, что объект является вредоносным, CSA 40 может предпринять защитное действие в отношении соответствующего объекта, например, для остановки, помещения в карантин, или выведения иным образом из строя соответствующего вредоносного объекта.
[31] На фиг. 2А-2В показаны примеры конфигураций программного обеспечения согласно некоторым вариантам осуществления настоящего изобретения. В примере с фиг. 2А хостовая система 10 исполняет операционную систему (ОС) 34, набор примерных приложений 36a-b и CSA 40. Приложения 36a-b в общем случае представляют собой любую компьютерную программу, такую как программу текстовой обработки, программу обработки изображений, мультимедийный проигрыватель, базу данных, календарь, управление личными контактами, браузер, ведение игры, голосовую связь и приложения передачи данных. Операционная система 34 может включать в себя, помимо прочего, любую широкодоступную операционную систему, такую как MicrosoftWindows, MacOs, Linux, iOS или Android. ОС 34 обеспечивает интерфейс между приложениями 36a-b и программным обеспечением хостовой системы 10. Проиллюстрированное положение CSA 40 указывает на то, что CSA 40 может исполняться на любых различных уровнях привилегий процессора. Например, одна часть CSA 40 может исполняться на уровне привилегий процессора ядра ОС (например, кольцо 0, режим ядра), при этом другие части исполняются на уровне привилегий процессора приложений 36a-b (например, кольцо 3, режим пользователя).
[32] На фиг. 2В показан альтернативный вариант осуществления настоящего изобретения, в котором хостовая система 10 использует технологию аппаратной виртуализации для управления набором гостевых виртуальных машин. Аппаратная виртуализация, среди прочего, часто используется в приложениях, таких как «облачная» вычислительная среда и консолидация серверов. Виртуальная машина (VM, VirtualMachine) эмулирует реальную физическую машину/компьютерную систему и способна управлять операционной системой и другими приложениями. В некоторых вариантах гипервизор 30 исполняется на хостовой системе 10, причем гипервизор 30 выполнен с возможностью создавать или активировать множество виртуализованных устройств, таких как виртуальный процессор и виртуальный блок управления памятью, и предоставлять такие виртуализованные устройства другому программному обеспечению, вместо реальных, физических устройств хостовой системы 10. Такие операции широко известны в данной области техники как открытие виртуальной машины. Гинервизор 30 может дополнительно активировать множество виртуальных машин для совместного использования аппаратных ресурсов хостовой системы 10 так, что каждая VM работает независимо и не знает о других VM, параллельно исполняемых на хостовой системе 10. К примерам популярных гипервизоров относятся, помимо прочего, VMwarevSphere™ компании VMwareInc. и общедоступный гипервизор Xen.\
[33] На фиг. 2В показан набор гостевых VM 32a-b, открытых на хостовой системе 10. Каждая VM 32a-b содержит виртуализованный процессор и может дополнительно содержать, помимо прочего, другие виртуализованные устройства, такие как виртуализованные устройства ввода, вывода, хранения, и сетевые устройства, а также виртуализованный контроллер. Каждый виртуализованный процессор предусматривает эмуляцию по меньшей мере некоторых функциональных возможностей аппаратного процессора 12, и выполнен с возможностью приема инструкций процессора для исполнения. Считается, что программное обеспечение, использующее соответствующий виртуальный процессор для исполнения, исполняется в пределах соответствующей виртуальной машины. Например, в примере с фиг. 2В, считается, что гостевая ОС 34а и приложение 36с исполняются в пределах гостевой VM 32а. Напротив, считается, что гипервизор 30 исполняется за пределами, или перед, гостевых VM 32a-b. Каждый виртуализованный процессор может взаимодействовать с такими виртуализованными устройствами, как если бы это происходило с соответствующими физическими устройствами. Например, программное обеспечение, исполняемое в пределах VM 32а, может отправлять и/или принимать сетевой поток через виртуализованный сетевой адаптер (или адаптеры) VM 32а. В некоторых вариантах, гипервизор 30 может открывать только подгруппу виртуализованных устройств для каждой гостевой VM, и может предоставить возможность для выбранной гостевой VM прямым и исключительным образом использовать некоторые аппаратные средства хостовой системы 10. В одном таком примере, VM 32а может исключительным образом пользоваться устройствами 16 ввода и устройствами 18 вывода, но при этом в ней отсутствует виртуализованный сетевой адаптер. Между тем VM 32b может прямым и исключительным образом пользоваться сетевым адаптером (или адаптерами) 22. Такие конфигурации могут быть реализованы, например, с использованием технологии VT-d от Intel.
[34] Каждая VM 32a-b исполняет гостевую операционную систему (ОС) 34a-b, соответственно. Каждая ОС 34а-Ь обеспечивает интерфейс между приложениями 36c-d, исполняемыми в пределах соответствующей VM, и виртуализованными аппаратными устройствами соответствующей VM. В примерном варианте осуществления, показанном на фиг. 2В, CSA 40 исполняется за пределами VM и выполнено с возможностью защиты соответствующих гостевых VMot угроз нарушения компьютерной безопасности. Одно приложение обеспечения компьютерной безопасности может защитить множество виртуальных машин. CSA 40 может быть интегрировано в гипервизор 30, например, в виде библиотеки, или может быть доставлено в виде компьютерной программы, отдельной и независимой от гипервизора 30, но осуществляемой при уровне привилегии процессора гипервизора 30 (например, корневой режим, кольцо 1). CSA 40 может представлять собой процесс, имеющий отдельный запланированный исполняемый ноток, или может работать в виде набора незапланированных объектов кода, исполняемых при инициировании конкретными событиями уведомления, как будет проиллюстрировано далее.
[35] Из уровня техники известны различные способы защиты хостовых систем, в том числе платформ аппаратной виртуализации, от вредоносных программ. Конкретная категория таких способов известна как способы поведенческого анализа. Типовые способы поведенческого анализа используют механизм уведомления, так что защитное программное обеспечение уведомляется о наступлении события в пределах контролируемой VM, причем событие инициируется и/или наступает во время исполнения объекта программного обеспечения, такого как приложение или компонент операционной системы. Защитное программное обеспечение может при этом анализировать соответствующее событие для определения, указывает ли оно на потенциальную угрозу нарушения безопасности.
[36] На фиг. 3 показаны примерные компоненты приложения 40 обеспечения компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Модуль 40 содержит обработчик 42 уведомлений, синхронный анализатор 44 исключений, соединенный с обработчиком 42, асинхронный анализатор 44 исключений и контроллер 48 завершения, имеющий коммуникационное соединение с анализатором 46.
[37] В некоторых вариантах обработчик 42 уведомлений выполнен с возможностью обнаружения наступления конкретных событий, релевантных компьютерной безопасности. К примерам обнаруженных событий относятся, помимо прочего, вызовы конкретных функций ОС и системные вызовы. Другие типы обнаруженных событий могут включать в себя открытие файла, создание файла, написание файла, удаление файла, копирование файла, создание процесса, завершение процесса, планирование потока для исполнения, приостановку потока из-за события синхронизации (например, ручное исключение), создание динамической памяти, выделение памяти из динамической памяти, увеличение размера стека исполнения, изменение разрешения доступа к памяти, выполнение операции подкачки (например, с диска на память), выполнение операции откачки (например, с памяти на диск), загрузка исполняемого модуля (например, совместно исполняемой библиотеки - динамически компонуемой библиотеки DLL), открытие ключа регистрации, переименование ключа регистрации, обнаружение подсоединения нового аппаратного устройства, установление нового сетевого соединения, прием сетевого пакета, повышение привилегий исполнения потока, изменение разрешения на дискретное управление доступом (DAC, DiscretionaryAccessControl), связанного с файлом. Из уровня техники известно несколько способов обнаружения таких событий. Они включают в себя перехват конкретных функций ОС, изменение таблиц диспетчеризации, и т.д. Такие способы конфигурируют процессор 12 на переключение с выполнения инициирующего объекта (например, процесса) на выполнение программы обработки в ответ на наступление соответствующего события. Регистрация обработчика 42 уведомлений в качестве программы обработки позволяет обработчику 42 обнаруживать различные события и сообщать об их наступлении CSA40.
[38] В платформах аппаратной виртуализации, особая категория обнаруженных событий, которые могут быть релевантными компьютерной безопасности, включает в себя обнаружение нарушения разрешения доступа к памяти. Обнаружение таких нарушений может дать альтернативу традиционному перехвату. Большинство современных компьютерных систем конфигурировано для работы с виртуальной памятью и управления преобразованием адреса памяти с использованием специализированных структур данных, например, таблиц страниц. Системы, предназначенные для поддержки аппаратной виртуализации, в общем случае, используют второй слой преобразования адреса, из гостевой физической памяти, видимой для каждой открытой VM, в реальную физическую память 14 хостовой системы. Второе преобразование адреса, в общем случае, обеспечивается за счет использования аппаратно-ускоренных, специализированных структур и механизмов данных, управляемых процессором 12, и именуется как преобразование адреса второго уровня SLAT (SecondLevelAddressTranslation). Популярные варианты реализации SLAT включают в себя расширенные таблицы страниц ЕРТ (ExtendedPageTable) на платформах Intel, и быструю индексацию виртуализации RVI (RapidVirtualizationIndexing)/вложенные таблицы страниц NPT (NestcdPageTable) на платформах AMD. SLAT, в общем случае, позволяет создавать настройки разрешения доступа к памяти для каждой страницы памяти, например, считывание/написание/исполнение. Процессор 12 может быть выполнен с возможностью инициирования события процессора (например, события выхода VM или исключение виртуализации), когда программное обеспечение пытается получить доступ к соответствующей странице, при котором нарушаются текущие разрешения доступа. События выхода VM, например, VMExit на платформах Intel, приостанавливают исполнение кода в пределах соответствующей VM и переключают процессор 12 на исполнение кода на уровне гипервизора 30. Напротив, исключения виртуализации, такие как #VE на платформах Intel, могут переключать процессор 12 на исполнение кода в пределах той же самой VM. В некоторых вариантах осуществления, CSA 40 регистрирует обработчик 42 уведомлений в качестве обработчика для выходов VM (например, в конфигурациях, представленных на фиг. 4В) или исключений виртуализации (например, в конфигурациях, показанных на фиг. 4А и 4С). Это позволяет обработчику 42 обнаруживать попытки нарушить разрешения доступа к памяти в пределах защищенной виртуальной машины, и сообщать о таких попытках CSA 40.
[39] Традиционные системы обеспечения безопасности зачастую полагаются только на поведенческие сигнатуры вредоносных программ для обнаружения вредоносных объектов. Поведенческие сигнатуры вредоносных программ содержат набор условий, которые, если им удовлетворяет событие (или последовательность событий), указывают на то, что объект, инициирующий соответствующее событие (или события), является вредоносным. Например, последовательность внедрения кода, которая следует за записью на диск, может быть рассмотрена в качестве индикатора вредоносного процесса. Поведенческие сигнатуры вредоносных программ могут обеспечить высокую скорость обнаружения, однако, в общем случае, также имеют относительно высокий процент ложных срабатываний(безопасные объекты ошибочно признаются вредоносными). Уменьшение процента ложных срабатываний может потребовать увеличения сложности поведенческих сигнатур вредоносных программ, что может существенно увеличить объем дополнительных расчетов.
[40] В отличие от таких способов, основанных на анализе сигнатур, согласно настоящему изобретению вводится набор исключений из правила в качестве замены или дополнения к поведенческим сигнатурам вредоносных программ. В некоторых вариантах исключение из правила содержит набор условий, которые, если им удовлетворяет кортеж <событие, инициирующий объект>, устанавливают, что соответствующий инициирующий объект является безопасным (не вредоносным). Здесь считается, что кортеж <событие, инициирующий объект>, который удовлетворяет условиям исключения из правила, согласуется с соответствующим исключением из правила. Типовой сценарий использования для таких исключений из правила предусматривает сначала применение поведенческой сигнатуры вредоносных программ в отношении обнаруженного события. Если событие соответствует сигнатуре, которая указывает на вредоносный процесс, CSA 40 может дополнительно попытаться сопоставить событие с набором исключений из правила. Если ни одно из исключений из правила не соответствует обнаруженному событию, CSA 40 может сделать вывод о том, что инициирующий объект действительно является вредоносным. Вместо этого, если событие соответствует по меньшей мере одному исключению из правила, CSA 40 может сделать вывод о том, что инициирующий объект является безопасным. Эта стратегия анализа может существенно уменьшить процент ложных срабатываний, ограничивая при этом дополнительные расчеты. Уменьшение вычислительных затрат может быть результатом, например, использования более простых поведенческих сигнатур вредоносных программ, чем те, что используются в традиционных системах обеспечения компьютерной безопасности.
[41] Традиционные поведенческие способы обеспечения безопасности предусматривают приостановку исполнения инициирующего объекта во время анализа обнаруженного события. Такой способ анализа событий известен как синхронный. Напротив, в некоторых вариантах осуществления настоящего изобретения синхронно осуществляется лишь некоторая часть анализа событий, в то время как другая часть анализа осуществляется асинхронно. Термин «синхронный» относится здесь к способу анализа события и/или исключения из правила, в котором инициирующему объекту разрешается продолжить исполнение, в то время как данные о соответствующем событии/исключении сохраняются для последующего анализа.
[42] В частности, в некоторых вариантах осуществления настоящего изобретения, некоторая часть сопоставления исключений из правила осуществляется синхронно, в то время как другая часть сопоставления исключений из правила осуществляется асинхронно. Синхронный анализатор 44 исключений может быть выполнен с возможностью осуществления синхронного анализа события, наступившего в пределах защищенной хостовой системы или гостевой VM, для определения, удовлетворяет (соответствует) ли оно предварительно заданному набору исключений из правила. Набор исключений из правила, проверяемый посредством синхронного анализатора 44 исключений, считается здесь синхронными исключениями (см. подробности ниже). Синхронные исключения, в общем случае, содержат исключения из правила, которым требуются относительно низкие вычислительные затраты для сопоставления событиям. В некоторых вариантах синхронные исключения могут содержать подгруппу исключений из правила, которые являются критичными для оценки риска нарушения безопасности, создаваемого отслеживаемым объектом. В другом примере синхронные исключения содержат исключения из правила, проверка которых полагается исключительно на ресурсы, локальные для хостовой системы 10 (например, информационные базы сигнатур, хранящихся локально па устройствах 20 хранения).
[43] В свою очередь, асинхронный анализатор 46 исключений может быть выполнен с возможностью осуществления асинхронного анализа события, наступившего в пределах защищенной хостовой системы или гостевой VM, для определения, соответствует ли оно любому другому из предварительно заданного набора исключений из правила. В данном случае набор исключений из правила, проверяемый асинхронным анализатором 46 исключений, называется асинхронными исключениями. В противоположность синхронному анализу, работа асинхронного анализирующего модуля 46 не привязана к исполнению инициирующего объекта в том смысле, что инициирующему объекту разрешено продолжить исполнение, в то время как операции сопоставления инициирующего события с исключениями могут быть осуществлены позже. Асинхронные исключения, в общем случае, содержат исключения из правила, которым требуются относительно высокие вычислительные затраты для сопоставления событиям или же исключения из правила, которые не считаются критичными для обеспечения безопасности хостовой системы 10. Примерные операции, которые образуют часть сопоставления с асинхронными исключениями, включают в себя, помимо прочего, определение целостности инициирующего объекта (например, с использованием сопоставления хешированием), выполнение удаленного сканирования инициирующего объекта (например, за счет отправки информации о соответствующем объекте в удаленный облачный сервер можно получить заключение о вредоносности из соответствующего сервера) и определение, является ли инициирующий объект получателем кода, внедренного другим объектом.
[44] На фиг. 4А-4С показаны различные примеры локаций обработчика 42 уведомлений, синхронного анализатора 44 исключений и асинхронного анализатора 46 исключений согласно некоторым вариантам осуществления настоящего изобретения. Для специалиста в данной области техники понятно, что компоненты 42-44-46 могут выполняться либо за пределами защищенной VM (например, на уровне привилегий процессора гипервизора 30), в пределах защищенной VM (например, в режиме ядра), или в пределах отдельной виртуальной машины обеспечения безопасности. Размещение компонента в пределах защищенной VM может обеспечить соответствующему компоненту доступ к значительному объему информации об объектах, исполняемых в пределах соответствующей VM, но может также сделать соответствующий компонент уязвимым для атак со стороны вредоносного программного обеспечения, исполняемого на том же самом уровне привилегий процессора. Ряд технологий, таких как переменные многочисленные виды ЕРТ, основанные на #VE (исключения виртуализации) и VMFUNC на платформах Intel, может быть использован для повышения безопасности защитных компонентов, расположенных в пределах защищенной VM. Когда соответствующий компонент исполняется за пределами защищенной VM, это относительно безопасно, однако конкретные операции, требующие распутывания семантик объектов и событий, могут потребовать значительных вычислений.
[45] На фиг. 4А показан пример конфигурации, в которой синхронный анализатор 44 исключений исполняется за пределами защищенной гостевой VM, в то время как фиг. 4В-4С иллюстрируют анализатор 44, который исполняется внутри соответствующей гостевой VM, в режиме ядра. Учитывая, что синхронная обработка приостанавливает исполнение инициирующего объекта и, следовательно, должна быть максимально быстрой, так чтобы не влиять отрицательно на пользовательский опыт, предпочтительными являются конфигурации, в которых работа синхронного анализатора 44 исключений не требует затратного выхода из отслеживаемой VM. В предпочтительном варианте осуществления настоящего изобретения синхронный анализатор 44 исключений может исполняться в контексте обработчика 42 уведомлений (например, на фиг. 4С).
[46] Асинхронный анализатор 46 исключений может исполняться либо за пределами, либо внутри защищенной гостевой VM. В некоторых вариантах (см, например, фиг.4С), анализатор 46 может исполняться в специализированной VM 33 обеспечения безопасности, открытой на хостовой системе, причем VM 33 обеспечения безопасности отличается от защищенных гостевых VM.
[47] В зависимости от контекста исполнения компонентов 42-44-46, их работа может потребовать сложной системы передачи сигналов/сообщений, иногда пересекая границы виртуальной машины. Такая передача сигналов может быть осуществлена с использованием любой технологии, известной в области аппаратной виртуализации. Например, данные могут быть переданы через секцию памяти, совместно используемую между двумя компонентами, и передача сигналов может включать в себя комбинацию выходов VM и внедрений событий.
[48] На фиг. 5 проиллюстрирован пример обмена между компонентами 42, 44, 46 и 48 согласно некоторым вариантам осуществления настоящего изобретения. Когда инициирующий объект вызывает наступление события в пределах гостевой VM, событие приводит к тому, что уведомление 52 о событии (например, событие процессора, такое как выход VM или исключение виртуализации) доставляется в обработчик 42. Обработчик 42 может затем определить тип и набор параметров события, о котором получено текущее уведомление. К примерам типов событий относятся, помимо прочего, внедрение кода, конкретный системный вызов, создание дискового файла и запрос HTTP. Параметры события могут быть специфическими для каждого типа уведомляемого события. К примерам параметров события относятся, помимо прочего, идентификатор процесса или потока (например, ID процесса), который вызывает уведомляемое событие, имя файла, путь, адрес памяти и операнд инструкции процессора.
[49] В некоторых вариантах обработчик 42 затем передает индикатор 54 события в синхронный анализатор 44 исключений. Индикатор 54 события может содержать, помимо прочего, уникальный идентификатор соответствующего события (ID события), индикатор типа события, и набор параметров события. Синхронный анализатор 44 исключений может затем попытаться сопоставить соответствующее событие с набором синхронных исключений из правила, например, посредством обращения к информационной базе 50 исключений.
[50] В некоторых вариантах информационная база 50 исключений хранит набор записей об исключениях из правила, например, на машиночитаемом носителе информации, образующем часть хостовой системы 10 или имеющем с ней коммуникационное соединение. На фиг. 6 показан примерный формат записи 60 об исключениях из правила согласно некоторым вариантам осуществления настоящего изобретения. Запись 60 об исключениях содержит метку 62 синхронности, которая может указывать, имеет ли соответствующая запись асинхронную часть или нет. Запись 60 может дополнительно содержать индикатор 64 типа события, указывающий тип события (например, числовой ID, уникальным образом связанный с каждым типом события). Индикатор 64 типа события может обеспечить возможность для информационной базы 50 выборочно извлекать запись об исключении из правила согласно типу обнаруженного события. Альтернативно, информационная база 50 может поддерживать внутреннее мапирование (например, хешированный индекс), связывающее каждую запись об исключении из правила с типом события, относящегося к соответствующему исключению из правила.
[51] Запись 60 об исключении из правила может дополнительно содержать синхронную сигнатуру 66 исключения и асинхронную сигнатуру 68 исключения. Сигнатура 66 содержит кодировку синхронного исключения из правила, то есть, кодировку набора условий, подлежащих синхронной верификации посредством анализатора 46. Напротив, асинхронная сигнатура 68 содержит кодировку асинхронного исключения из правила, то есть, кодировку набора условий, подлежащих асинхронной верификации посредством асинхронного анализатора 46 исключений.
[52] Когда запись об исключении из правила, релевантная текущему типу уведомляемого события, имеет асинхронную часть, синхронный анализатор 44 исключений может включить запрос 56 на проведение анализа исключения KAR (ExceptionAnalysisRequest) в список 58 EAR для последующей обработки (см. подробности ниже). В некоторых вариантах, список 58 EAR содержит структуру данных, имеющую множество записей, причем каждая запись кодирует запрос на сопоставление асинхронных исключений из правила. Список 58 EAR может быть организован в виде мультигенератора, очереди из нескольких пользователей (например, в порядке получения). На фиг. 7 показан примерный формат запроса на проведение анализа исключений согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированный EAR содержит ID события, который уникальным образом связан с событием, инициировавшим соответствующий анализ. EAR 56 может дополнительно содержать ID исключения, который уникальным образом идентифицирует конкретную запись 60 в информационной базе 50 исключений. EAR 56 может дополнительно содержать индикатор инициирующего объекта. Включение такого ID объекта в KAR 56 может облегчить для контроллера 48 завершения процесс определения, имеются ли какие-либо отложенные запросы на проведение анализа исключений, связанные с конкретным исполняемым объектом (см. подробности ниже). В некоторых вариантах KAR 56 дополнительно содержит различные контекстные данные, определенные обработчиком 42 уведомлений и/или синхронным анализатором 44 исключений, причем контекстные данные содержат информацию о соответствующем событии и/или об инициирующем объекте. Контекстные данные могут содержать, помимо прочего, адреса памяти, ID процесса, значение указателя команд (RIP), соответствующее моменту времени, когда было создано инициированное событие, и т.д. Такие контекстные данные могут быть использованы асинхронным анализатором 46 исключений при выполнении сопоставления асинхронных исключений из правила.
[53] На фиг. 8 показана примерная последовательность этапов, выполняемых обработчиком 42 уведомлений согласно некоторым вариантам осуществления настоящего изобретения. Как показано выше, обработчик 42 исполняется в положении, которое позволяет обработчику 42 эффективно приостанавливать выполнение инициирующего объекта. Например, обработчик 42 может быть зарегистрирован в качестве обработчика событий для выходов VM и/или исключений виртуализации, причем такие события процессора инициируются в ответ на возникновение специфического отслеживаемого события, вызванного программным обеспечением (например, попытка получить доступ к конкретной странице памяти). В ответ на такие события, процессор 12 приостанавливает исполнение инициирующего объекта и переключается на исполнение обработчика 42 уведомлений. В результате обработчик 42 уведомлений уведомляется о наступлении отслеживаемого события, в то время как исполнение инициирующего объекта приостанавливается. Когда событие процессора представляет собой выход VM, обработчик 42 может исполняться на уровне гипервизора 30.
[54] Когда обработчик 42 принимает уведомление о событии, последовательность этапов 106-108 определяет тип события, происходящего внутри защищенной гостевой VM, и набор параметров соответствующего события. Обработчик 42 может затем передать индикатор 54 события в синхронный анализатор 44 исключений (этап 110). На этапе 112, обработчик 42 может подождать разрешающий сигнал из анализатора 44. В некоторых вариантах, такой разрешающий сигнал указывает либо на то, что текущее событие соответствует синхронному исключению из правила, либо на то, что EAR, связанный с текущим событием, был добавлен в список 58 EAR (см. подробности ниже, со ссылкой на фиг. 9). В ответ на прием разрешающего сигнала, обработчик 42 может подать команду в процессор 12 на возобновление выполнения инициирующего объекта.
[55] На фиг. 9 показана примерная последовательность этапов, выполняемых синхронным анализатором 44 исключений согласно некоторым вариантам осуществления настоящего изобретения. В ответ на прием индикатора 54 события из обработчика 42 уведомлений, на этапе 124 осуществляют предварительную оценку надежности инициирующего объекта. Например, анализатор 44 может определить, указывает ли соответствующее событие на вредоносный процесс. В некоторых вариантах, на этапе 124 пытаются сопоставить текущий кортеж <событие, объект> с набором поведенческих сигнатур вредоносных программ. Одним из примеров таких сигнатур, указывающих на вредоносный процесс, является последовательность событий: первый объект загружает исполняемый файл без допустимой цифровой сигнатуры, первый объект запускает второй объект из исполняемого файла, а второй объект пытается зарегистрировать себя для автоматического начала при запуске системы. Другим примером поведенческой сигнатуры вредоносных программ является драйвер, который пытается переписать записи таблицы дескрипторов системной службы SSDT (SystemServiceDescriptorTable). Когда предварительная оценка указывает на то, что инициирующий объект вряд ли является вредоносным, анализатор 44 может передать обработчику 42 уведомлений сигнал о необходимости возобновить исполнение инициирующего объекта (см. выше).
[56] Когда предварительная оценка указывает па то, что инициирующий объект подозревается во вредоносности, на этапе 126 выборочно извлекают набор записей об исключениях из правила из информационной базы 50 исключений согласно типу события для текущего события. Когда информационная база 50 не содержит какие-либо записи об исключениях из правила, связанные с типом текущего события, на этапе 130 CSA 40 может предпринять действие для защиты от вредоносных программ в отношении инициирующего объекта. Такое защитное действие может предусматривать, помимо прочего, завершение, помещение в карантин или иное выведение из строя инициирующего объекта, и отмену набора изменений, вызванных в хостовой системе 10 в результате выполнения инициирующего объекта. В некоторых вариантах, CSA 40 сохраняет набор результатов, указывающих на вредоносный процесс и связанных с каждым отслеживаемым объектом. На этапе 130 возможно увеличение соответствующего результата (или результатов) на количество, которое может быть характерным для определенных событий. CSA 40 может дополнительно сравнивать результат (или результаты) с пороговым значением и предпринимать действие для защиты от вредоносных программ только тогда, когда, например, результат превышает предварительно заданное пороговое значение.
[57] Когда информационная база 50 содержит по меньшей мере одну запись 60 об исключении из правила, связанную с типом события для текущего события, на этане 131 определяют, соответствует ли текущее событие синхронному исключению из правила в соответствующей записи об исключении из правила. На этапе 131 возможна проверка того, удовлетворяет ли набору условий, закодированному синхронной сигнатурой 66 соответствующего исключения из правила, кортеж <текущее событие, инициирующий объект>. Если это так, то на этапе 131 возможно осуществление набора вычислений, например, для определения типа объекта для инициирующего объекта согласно идентификатору 54 события. К примерам типов объектов относятся специфические компоненты ОС 34, экземпляр конкретного приложения (например, Adobe AcrobatReader, Microsoft Word), конкретная категория объектов (например, менеджер файла, браузер) и т.д. К другим примерам типов объектов относятся драйвер, совместно используемая библиотека (например, динамическая связываемая библиотека DLL), и внедренная секция кода.
[58] Если не найдено соответствие синхронным сигнатурам, анализатор 44 делает вывод о том, что инициирующий объект действительно является вредоносным, и продвигается на этап 130, раскрытый выше. Когда текущее событие соответствует синхронной сигнатуре по меньшей мере одного исключения из правила, на этапе 134, анализатор 44 определяет, содержит ли соответствующая запись об исключении из правила также асинхронную сигнатуру. В некоторых вариантах, на этапе 134 проверяют значение метки 62 синхронности (см. фиг. 6). Если это не так, то анализатор 44 отправляет сигналы в обработчик 42 для возобновления выполнения инициирующего объекта. Если это так, то на этапе 136 определяют контекстные данные о текущем событии и/или об инициирующем объекте. На следующем этапе 138 формулируют EAR 56 и добавляют EAR 46 в список 58 EAR. Синхронный анализатор 44 исключений может затем подать сигнал в обработчик 42 для возобновления выполнения инициирующего объекта.
[59] На фиг. 10 показана примерная последовательность этапов, осуществляемых посредством такого экземпляра асинхронного анализатора 46 исключений. В некоторых вариантах, приложение 40 обеспечения компьютерной безопасности управляет пулом потоков для сопоставления асинхронных исключений из правила. Потоки пула могут исполняться за пределами или в пределах защищенной VM, или в пределах отдельной VM обеспечения безопасности (см. например, фиг. 4С). Если такие потоки исполняются в пределах соответствующей защищенной VM, то они могут исполняться в корневом режиме (кольцо 0). Когда бы поток пула не оказался доступным, CSA 40 может запустить экземпляр асинхронного анализатора 46 исключений.
[60] В последовательности этапов 142-144, асинхронный анализатор 46 исключений определяет, имеются ли в текущий момент какие-либо отложенные запросы на проведение анализа исключений. Если список 58 EAR не является пустым, анализатор 46 может удалить EARH3 списка 58 и попытаться сопоставить событие, указанное соответствующим EAR, с асинхронным исключением из правила, указанным соответствующим EAR. На этапе 148 могут дополнительно определять параметры события и/или информацию об объекте, инициирующем соответствующее событие. Такие вычисления могут включать в себя, например, вычисление случайных данных, просмотры памяти, установление родственных взаимоотношений между различными объектами программного обеспечения (например, какие процессы порождают дочерние задачи других процессов), эмуляции и т.д. В некоторых вариантах, на этапе 148 осуществляют обмен данными с удаленным сервером безопасности (облачное сканирование).
[61] В некоторых вариантах, когда соответствующее событие соответствует асинхронному исключению из правила, анализатор 46 завершает сеанс. Завершение текущего экземпляра анализатора 46 указывает на то, что соответствующее событие неявляется индикатором угрозы нарушения компьютерной безопасности, вследствие чего отсутствует необходимость в дальнейшем анализе соответствующего события. Когда анализатор 46 определяет, что событие не согласуется с соответствующим асинхронным исключением из правила, то на этапе 152 в CSA 40 отправляют сигнал о необходимости совершения действия для защиты от вредоносных программ (см. выше, этап 130 на фиг. 9).
[62] В альтернативном варианте, асинхронное исключение из правила сформулировано так, что согласование указывает на то, что соответствующее событие является вредоносным. В таких вариантах, анализатор 46 может завершить сеанс тогда, когда событие не согласуется с соответствующим исключением из правила, и CSA 40 может предпринять действие для защиты от вредоносных программ, когда событие согласуется с соответствующим исключением из правила.
[63] На фиг. 11 показан пример последовательности этапов, выполняемых посредством контроллера 48 завершения согласно некоторым вариантам осуществления настоящего изобретения. Контроллер 48 завершения может исполняться за пределами или в пределах защищенной виртуальной машины и имеет коммуникационное соединение, по меньшей мере, с асинхронным анализатором 46 исключений.
[64] Поскольку анализ асинхронных исключений из правила по привязан к исполнению инициирующего объекта, может возникнуть ситуация, при которой инициирующий объект завершает исполнение до того, как асинхронный анализатор 46 исключений примется за обработку запроса на проведение анализа исключений, относящегося к соответствующему событию. В таких ситуациях вредоносный объект может избежать обнаружения или нанести необратимое повреждение. Для предотвращения таких ситуаций, в некоторых вариантах осуществления настоящего изобретения, контроллер 48 завершения обнаруживает попытку ОС завершить объект (этапы 162-164). Обнаружение попытки завершения может эффективно приостановить исполнение завершаемого объекта. Этап 162 может предусматривать взаимодействие с обработчиком 42 уведомлений, например, обработчик 42 может непосредственно обнаружить попытку завершения, и отправить сигнал в контроллер 48 завершения.
[65] В ответ на обнаружение попытки завершения, в последовательности этапов 166-168, контроллер 48 завершения может определить то, имеются ли по-прежнему отложенные запросы на проведение анализа исключений для завершаемого объекта. Если нет, то на этапе 170 в процессор 12 подают команду на возобновление исполнения завершаемого объекта, так чтобы обеспечить возможность завершения соответствующего объекта. В некоторых вариантах, этап 170 предусматривает отправку разрешающего сигнала в обработчик 42 уведомлений, содержащий инструкции для обработчика 42 на разблокировку завершаемого объекта.
[66] Если список 58 EAR содержит по меньшей мере один EAR, связанный с завершаемым объектом, то контроллер 48 завершения может удерживать соответствующий объект в приостановленном состоянии до тех пор, пока не будут обработаны все такие отложенные запросы. Последовательность этапов 172-174 принудительно вызывает обработку запроса, связанного с соответствующим завершаемым объектом (последовательность можно повторять до тех пор, пока все такие запросы не будут обработаны). На этапе 174 могут задействовать асинхронный анализатор 46 исключения для обработки каждого ожидающего выполнения EAR, связанного с завершаемым объектом. Когда анализатор 46 определяет, что событие, на которое указывает соответствующий EAR, не согласуется с асинхронным исключением из правила, указанным соответствующим EAR, на этапе 178 могут отправить сигнал в CSA 40 для совершения защитного действия в отношении завершаемого объекта (см. выше, со ссылкой на фиг. 9-10).
[67] Раскрытые выше системы и способы обеспечивают возможность эффективного отслеживания поведения объектов программного обеспечения. В некоторых вариантах, механизм уведомления применяют для обнаружения наступления событий, относящихся к обеспечению защиты, в пределах защищенной хостовой системы или виртуальной машины, и для оповещения защитного программного обеспечения о соответствующих событиях. Защитное программное обеспечение в этом случае анализирует соответствующие события для определения, указывают ли они на угрозу нарушения компьютерной безопасности, такую как, например, вредоносные программы, шпионские программы, неавторизованные проникновения и т.д.
[68] Некоторые традиционные поведенческие системы и способы полагаются на поведенческие сигнатуры вредоносных программ для определения, является ли объект вредоносным. Поведенческая сигнатура вредоносных программ, в общем случае, содержит набор условий, которые, если им удовлетворяет кортеж <событие, объект>, определяют, что соответствующее событие указывает на вредоносность, и, таким образом, что объект программного обеспечения, инициирующий соответствующее событие, вероятно, является вредоносным. Чтобы предотвратить выполнение инициирующим объектом его вредоносных действий, традиционные системы и способы приостанавливают выполнение инициирующего объекта, пока инициированное событие анализируется на наличие признаков вредоносного процесса.
[69] Некоторые варианты осуществления настоящего изобретения основаны на двух наблюдениях. Во-первых, не все случаи наступления конкретного типа события в одинаковой степени указывают на вредоносный процесс. Один и тот же тип события (например, получение доступа к URL, открытие дискового файла, и т.д.) может указывать на вредоносность в одних сценариях и быть абсолютно безопасным в других сценариях. В одном таком примере событие может не указывать на вредоносный процесс, если рассматривать его отдельно, однако указывать на вредоносный процесс, оно наступает как часть специфической последовательности событий. Например, запись дискового файла может представлять собой безопасную операцию, если рассматривать ее отдельно (множество процессов и приложений имеют разрешение доступа к диску). Однако, событие записи может быть подозрительным, если объект, осуществляющий запись, является получателем кода, внедренного из другого объекта. Данное наблюдение подразумевает, что успешное обнаружение вредоносных программ может потребовать довольно сложных поведенческих сигнатур вредоносных программ, которые способны проводить различие между различными сценариями, как раскрыто выше. Использование таких сложных поведенческих сигнатур вредоносных программ, в общем случае, связано с относительно высокими вычислительными затратами. Кроме того, оптимизация поведенческих сигнатур вредоносных программ для увеличения скорости обнаружения, в общем случае, приводит к увеличению ошибок ложного обнаружения (безопасные события ошибочно классифицируются как указывающие на вредоносность, а разрешенные объекты ошибочно классифицируются как вредоносные). Ложная классификация является особенно нежелательной в области обеспечения компьютерной безопасности, поскольку может привести к потере данных и потере производительности для пользователя.
[70] Второе наблюдение состоит в том, что приостановленное выполнение инициирующего объекта на весь период сопоставления поведенческой сигнатуры вредоносных программ негативно сказывается на пользовательском опыте. Это особенно справедливо в случае сложных поведенческих сигнатур, и в конфигурациях аппаратной виртуализации, где анализ событий осуществляется из положения за пределами VM, в которой произошло событие (например, с уровня гипервизора 30).
[71] В отличие от таких традиционных систем и способов обеспечения компьютерной безопасности, в некоторых вариантах осуществления настоящего изобретения используется набор сигнатур исключения из правила в качестве дополнения к поведенческим сигнатурам вредоносных программ. Сигнатура исключения из правила содержит набор условий, которые, если им удовлетворяет кортеж <событие, объект>, определяют, что соответствующее событие является безопасным, и, следовательно, инициирующий объект не является вредоносным. Таким образом, исключение из правила обеспечивает кодировку исключения из правила, которое будет, в общем случае, указывать на вредоносное поведение. В примерном сценарии использования защитное программное обеспечение может сначала попытаться сопоставить обнаруженное событие с набором относительно простых, поведенческих сигнатур вредоносных программ с низкими вычислительными затратами, для определения, является ли инициирующий объект вредоносным. Если это так, защитное программное обеспечение может затем попытаться сопоставить соответствующее событие с набором сигнатур исключения из правила. Соответствие сигнатуре исключения из правила указывает на то, что инициирующий объект действительно является безопасным.
[72] Добавление сигнатур исключения из правила создает возможность использования относительно простых сигнатур вместо довольно сложных сигнатур, необходимых, когда сопоставление с поведенческими сигнатурами вредоносных программ используется отдельно. Таким образом, некоторые варианты осуществления изобретения позволяют уменьшить дополнительные расчеты, производимые защитным программным обеспечением, а также уменьшить количество ошибок ложного обнаружения.
[73] Кроме того, в некоторых вариантах осуществления настоящего изобретения, сопоставление с сигнатурами исключения осуществляется, по меньшей мере частично, асинхронным образом, то есть, в то время как объекту, инициировавшему соответствующее событие, разрешается продолжить исполнение. Благодаря тому, что исполнение инициирующего объекта не останавливается на весь период проведения анализа безопасности, удается значительно снизить влияние на пользовательский опыт. В некоторых вариантах сигнатуры исключения из правила оптимизируются для уменьшения дополнительных затрат: сигнатуры, которые имеют относительно низкие вычислительные затраты, используются при синхронном сопоставлении, в то время как относительно затратные сигнатуры используются при асинхронном сопоставлении.
[74] Хотя имеется некоторое сходство между традиционными поведенческими сигнатурами вредоносных программ и сигнатурами исключения из правила, их использование и семантика имеют значительные различия. Так, не справедливо утверждение, что сигнатуры исключения из правила являются лишь дополнением или обратной стороной поведенческих сигнатур вредоносных программ. Поведенческие сигнатуры вредоносных программ и сигнатуры исключения из правила не исключают друг друга. Например, когда событие соответствует поведенческой сигнатуре вредоносных программ, это не значит, что оно не может соответствовать также и сигнатуре исключения из правила. Действительно, именно в ситуациях, когда событие соответствует как поведенческим сигнатурам вредоносных программ, так и сигнатурам исключения из правил, сигнатуры исключения из правила имеют наибольшую ценность, поскольку они позволяют эффективно выполнять процесс принятия решения при обнаружении вредоносных программ.
[75] Пример сравнения синхронных и асинхронных исключений из правила и их отношения к поведенческим сигнатурам вредоносных программ включает в себя обнаружение того, что отслеживаемый объект программного обеспечения пытается исправить код совместно исполняемого модуля (например, библиотеки). Исправление кода обычно является индикатором вредоносности, поэтому как таковое может быть закодировано в поведенческой сигнатуре вредоносных программ. Использование соответствующей сигнатуры может инициировать предупреждение о вредоносной программе каждый раз при обнаружении исправления кода. Однако, различные объекты программного обеспечения (например, ОС) осуществляют разрешенное исправление кода, например, при запуске нового процесса. Сходным образом, одному процессу из заданного комплекта программных приложений (например, Microsoft Office) может быть разрешено исправить другой процесс из того же самого комплекта. В некоторых вариантах осуществления настоящего изобретения такие ситуации могут быть решены за счет использования исключений из правила. Например, синхронное исключение из правила может проверять, является ли процесс исправления одним из заслуживающих доверия процессов ОС и осуществляется ли целевой процесс (тот, который исправляется) при запуске системы. Когда оба условия удовлетворены, исправляющий объект считается безопасным (разрешенным). В этом случае, когда ОС начинает процесс и осуществляет исправление, это может продолжиться без блокировки со стороны приложенияС8Л 40. Напротив, в соответствии с раскрытым выше исключением из правила, если какой-либо неизвестный процесс пытается осуществить ту же самую операцию исправления, он будет заблокирован. Чтобы разрешить некоторым неизвестным процессам осуществлять исправление, в некоторых вариантах осуществления настоящего изобретения возможно использование сигнатуры исключения из правила, состоящей из двух частей: синхронная часть может провести идентификацию объектов, участвующих в исправлении кода, в то время как асинхронная часть может провести идентификацию самого внедренного буфера/кода (например, путем его разборки и/или поиска внутри него специфической кодовой комбинации). Если внедренный код не является вредоносным, неизвестный процесс может считаться безопасным.
[76] В другом примере поведенческая сигнатура вредоносных программ может указывать, что внедрение кода является индикатором вредоносного процесса. Синхронная сигнатура исключения из правила может обеспечить возможность внедрения кода, когда процесс, который осуществляет внедрение, хорошо известен и ему можно доверять. Однако та же самая сигнатура исключения из правила может иметь асинхронную часть, которая осуществляет анализ содержимого внедренного кода. Когда содержимое кажется необычным для такого конкретного процесса, соответствующий процесс может считаться вредоносным. В этом примере, анализ содержимого, который является относительно затратным с точки зрения дополнительных расчетов, осуществляется асинхронно, то есть, во время исполнения соответствующего процесса, так чтобы минимальное влиять на пользовательский опыт.
[77] В еще одном примере поведенческая сигнатура вредоносных программ может указывать, что попытка со стороны браузера загрузить расширение является индикатором вредоносного процесса. Однако некоторые расширения являются безопасными и им следует разрешить работу. В примере осуществления синхронное исключение из правила может проверять, имеет ли соответствующе с расширение цифровую подпись определенного уполномоченного органа, и если это так, определять, что браузер является безопасным. В случае соответствия синхронной сигнатуре браузеру может быть разрешено загрузить и исполнить расширение. Другое исключение из правила может затем определить асинхронно, является ли сертификат, используемый для подписания расширения, действующим или он был аннулирован. Если соответствующий сертификат аннулирован, CSA 40 может завершить работу браузера и/или выдать сигнал тревоги. Проверка действительности сертификата, в общем случае, требует отправки запроса на удаленный сервер, и, таким образом, может существенно влиять на пользовательский опыт при синхронном выполнении.
[0078] Специалисту будет ясно, что раскрытые выше варианты осуществления могут быть модифицированы различным образом без изменения сущности изобретения. Соответственно, объем правовой охраны изобретения определяется признаками, изложенными в прилагаемой формуле изобретения и их законными эквивалентами.