Управление безопасностью компьютера, например, в виртуальной машине или реальной операционной системе
Иллюстрации
Показать всеИзобретение относится к средствам поддержания безопасности и целостности операционных систем (ОС) компьютеров. Технический результат - повышение безопасности компьютеров. Схема безопасности обеспечивает безопасность для одной или нескольких экземпляров самостоятельной рабочей среды, выполняющихся на компьютере, включает в себя реализацию набора приложений безопасности, управление которыми может осуществляться надзирающим процессом. Набор приложений безопасности и надзирающий процесс могут функционировать на главной системе компьютера, которая также может обеспечивать платформу для выполнения упомянутых одной или нескольких самостоятельных рабочих сред. Схема безопасности защищает процессы, выполняющиеся в упомянутых одной или нескольких самостоятельных рабочих средах, и процессы, выполняющиеся на компьютере вне самостоятельных рабочих сред. 3 н. и 6 з.п. ф-лы, 10 ил.
Реферат
Область техники, к которой относится изобретение
Описанная технология относится, в общем случае, к поддержанию безопасности и целостности операционных систем (ОС) компьютеров.
Предшествующий уровень техники
Когда программное обеспечение, которое разработано специально для повреждения или разрушения системы (например, злонамеренное программное обеспечение или "злонамеренное ПО") вторгается в компьютерную систему, целостность операционной системы компьютера, а следовательно, и вся компьютерная система, получает большое повреждение. Хотя вопросы и требования безопасности пользователей компьютеров варьируются в широком диапазоне, с учетом повышения опасности заражения вирусами, червями и троянами, большинство пользователей компьютеров обращают внимание на целостность важных компонентов инфраструктуры своих компьютеров, например процессов операционной системы, процессов памяти и т.д.
Некоторые типы злонамеренного ПО используют привилегированные операции операционной системы для атаки на компьютер. Такие привилегированные операции обычно состоят из команд или наборов команд, доступных только привилегированному пользователю или процессу. Например, когда злонамеренное ПО способно каким-то образом осуществлять доступ к одной или нескольким из этих привилегированных операций, это может привести к удалению или повреждению файлов операционной системы, атаке на компоненты операционной системы, хранящиеся в памяти, удалению файлов пользователя и многим другим пагубным последствиям. В некоторых случаях, даже незлонамеренные процессы могут повредить компьютерную систему вследствие непреднамеренного поведения, при котором осуществляется доступ к привилегированным операциям. В более общем случае, почти любой процесс может иметь возможность получить доступ к привилегированным операциям, просто допуская истинность привилегированного пользователя.
Обычно, операционные системы обеспечивают инфраструктуру для вмещения процессов и предоставления системных служб этим процессам. Операционные системы обычно обеспечивают базовую защиту безопасности, например, применяя контроль доступа и прав собственности в отношении системных ресурсов. Например, в обычных средах операционной системы, защитные службы безопасности, например, сетевой брандмауэр, оценивание уязвимости, обнаружение заплаток, блокировка поведения, обнаружение проникновения в сетевой узел или сеть и антивирусные технологии, выполняются в качестве собственных приложений в операционной системе. Несмотря на эти меры, операционная система иногда не способна точно определить, была ли она атакована. В частности, когда экземпляр злонамеренного кода или другого злонамеренного ПО атакует компьютерную систему и получает достаточный контроль (например, доступ администраторского уровня), все дальнейшие попытки операционной системы определить, подверглась ли она атаке, уже не будут заслуживать доверия, поскольку механизмы для таких попыток также могут быть повреждены. Дело в том, что злонамеренный код может эффективно изменять любые структуры, хранящиеся в памяти или на диске, используемые операционной системой или приложениями, используемыми для ее защиты.
Один подход к защите компьютерной системы и ее операционной системы предусматривает установку набора приложений безопасности, например, антивирусного программного обеспечения, персональных брандмауэров и систем обнаружения проникновения. В системах с множественными компьютерными системами, например, компьютерной сети или кластере компьютерных систем, развернутых в массиве, в каждой отдельной компьютерной системе выполняется собственный набор приложений безопасности. Дело в том, что каждая компьютерная система в сети или массиве является физически отдельной сущностью со своим собственным сетевым присоединением, собственным(и) центральным(и) процессором (ами), собственным экземпляром операционной системы и т.д. Хотя такие приложения безопасности можно устанавливать на каждой компьютерной системе, чтобы предотвратить повреждение компьютерной системы и ее операционной системы, таким приложениям безопасности может быть слишком сложно защитить компьютерную систему, поскольку, наподобие любого другого приложения, выполняющегося в компьютерной системе, они также уязвимы для атаки.
В другом подходе к защите компьютерной системы и ее операционной системы, такие аспекты компьютерной системы, как память, защищаются посредством аспектов изоляции компьютерной системы.
Сущность изобретения
Описанные здесь методики защиты компьютера обеспечивают различные функциональные возможности безопасности, включая использование единого процесса безопасности (или набора процессов безопасности) для мониторинга, защиты и исправления множественных логически изолированных виртуальных машин (ВМ), выполняющихся на хост-системе. В некоторых вариантах осуществления, методики безопасности обеспечивают безопасность одного или нескольких экземпляров самостоятельной рабочей среды, выполняющихся на компьютере. Методики безопасности могут включать в себя реализацию приложения безопасности, которым может управлять надзирающий процесс. Приложение безопасности может отслеживать одну или несколько виртуальных машин. Этот мониторинг может осуществляться различными методами, включая автономное сканирование виртуальных машин приложением безопасности, реализацию агентского процесса безопасности, выполняющегося на каждой виртуальной машине, и т.д.
В некоторых вариантах осуществления набор приложений безопасности и надзирающий процесс могут функционировать на хост-системе компьютера, что может также обеспечивать платформу для выполнения одной или несколько самостоятельных рабочих сред. Методики безопасности могут защищать процессы, выполняющиеся в одной или нескольких самостоятельных рабочих средах, и процессы, выполняющиеся на компьютере вне самоограниченных рабочих сред.
Перечень фигур
Фиг.1 - блок-схема примера системы для реализации методик безопасности в одном варианте осуществления.
Фиг.2 - блок-схема примера автономного сканирования виртуальных машин в системе, показанной на фиг.1.
Фиг.3А - блок-схема альтернативного примера автономного сканирования виртуальных машин в системе, показанной на фиг.1.
Фиг.3В - блок-схема другого примера сканирования виртуальных машин в системе, показанной на фиг.1.
Фиг.3С - блок-схема еще одного примера сканирования виртуальных машин в системе, показанной на фиг.1.
Фиг.4 - логическая блок-схема процедуры, осуществляемой надзирающим процессом, который отслеживает операционную систему в системе, показанной на фиг.1.
Фиг.5 - логическая блок-схема примера процедуры мониторинга безопасности, который отслеживает виртуальные машины в системе, показанной на фиг.1, с использованием периодического сканирования.
Фиг.6 - логическая блок-схема второго примера процедуры мониторинга безопасности, который отслеживает виртуальные машины в системе, показанной на фиг.1, с использованием монтирования структуры виртуальной машины.
Фиг.7 - логическая блок-схема третьего примера процедуры мониторинга безопасности, который отслеживает виртуальные машины в системе, показанной на фиг.1, без использования монтирования структуры виртуальной машины.
Фиг.8 - логическая блок-схема второго примера процедуры мониторинга безопасности, который отслеживает виртуальные машины в системе, показанной на фиг.1, с использованием агентского процесса, выполняющегося на виртуальной машине.
На чертежах одинаковые позиции обозначают одинаковые или по существу аналогичные элементы или действия. Для облегчения рассмотрения любого конкретного элемента или действия, старшая значащая цифра или цифры в позиции обозначают номер фигуры, в которой этот элемент впервые представлен (например, элемент 204 впервые представлен и рассмотрен в связи с фиг.2).
Подробное описание
Изобретение будет описано в отношении различных вариантов осуществления. Нижеследующее описание обеспечивает конкретные детали для полного понимания и описания этих вариантов осуществления изобретения. Однако специалистам в данной области понятно, что изобретение можно осуществлять на практике без этих деталей. В других примерах, общеизвестные структуры и функции не показаны и не описаны подробно во избежание ненужного затемнения описания вариантов осуществления изобретения.
Терминологию, используемую в представленном описании, следует интерпретировать в самом широком возможном смысле, даже если она используется в связи с подробным описанием определенных конкретных вариантов осуществления изобретения. Некоторые термины могут даже быть подчеркнуты ниже, однако любая терминология, подлежащая интерпретации в каком-либо ограниченном смысле, будет открыто и конкретно определена как таковая в этом разделе Подробного описания.
I. Обзор
Описанные здесь методики защиты компьютера обеспечивают различные функциональные возможности безопасности, включая использование единого процесса безопасности (или набора процессов безопасности) для мониторинга, защиты и исправления множественных логически изолированных виртуальных машин, выполняющихся на хост-системе.
В некоторых вариантах осуществления, хост-система, выполняющаяся на физической машине, обеспечивает виртуальную машину, на которой могут выполняться операционная система и приложения. Хотя многие процессы могут выполняться на виртуальной машине, в общем случае, операционная система и приложения, выполняющиеся на виртуальной машине, не могут осуществлять доступ к ресурсам (например, памяти и устройствам) иначе, как по разрешению хост-системы, которая обеспечивает виртуальную машину, или по указанию гостя, который назначен виртуальной машине.
Если виртуальная машина выполняет злонамеренное ПО, то любое повреждение ограничивается операционной системой, приложениями и доступными ресурсами виртуальной машины. Таким образом, компьютер, по существу, защищен от эффектов злонамеренного ПО, выполняющегося на виртуальной машине.
В некоторых вариантах осуществления, хост-система может препятствовать операционной системе и приложениям, выполняющимся на виртуальной машине, в осуществлении привилегированных операций, которые могут приводить к нежелательным изменениям ресурсов или операционной системы физической машины. Например, операционной системе, выполняющейся на виртуальной машине, могут быть даны администраторские привилегии в виртуальной машине, но не в физической машине.
В некоторых вариантах осуществления, хост-система реализует профилактические процессы безопасности. Примеры таких процессов безопасности включают в себя мониторы сетевого брандмауэра, мониторы оценивания уязвимости, мониторы обнаружения заплаток, мониторы блокировки поведения, мониторы проникновения в сетевой узел или сеть и антивирусные технологии. В общем, процессы безопасности сконфигурированы на повышение безопасности виртуальных машин, хост-системы и, следовательно, физической машины.
В некоторых вариантах осуществления, процессы безопасности реализованы как находящиеся под управлением надзирающего процесса, выполняющегося на хост-системе. Надзирающий процесс может предоставлять или обеспечивать процессам безопасности некоторый уровень доступа и видимости к компонентам виртуальных машин, включая виртуальную память, виртуальный диск, виртуальные сетевые адаптеры, виртуальные драйверы и т.д. Например, надзирающий процесс может позволять процессу безопасности сканировать структуру данных в памяти или хранящуюся на диске, соответствующую виртуальному жесткому диску виртуальной машины, на предмет признаков злонамеренного ПО или нарушений безопасности. Дополнительно (или альтернативно), когда обеспечена объектная модель, поддерживаемая хост-системой, надзирающий процесс может облегчать возвращение информации о состоянии виртуальной машины (например, состояния памяти или состояния связи) хост-системе. В общем случае, поскольку хост-система и надзирающий процесс обеспечивают некоторый уровень изоляции, процессы безопасности могут контролировать и отслеживать безопасность виртуальных машин, в то же время оставаясь недоступными губительным программам, выполняющимся в этих виртуальных машинах. Таким образом, процессы безопасности защищаются от тайных действий или поражения со стороны программ, которые им надлежит отслеживать.
В некоторых вариантах осуществления, процессы безопасности могут использоваться для мониторинга и исправления виртуальной машины, которая находится в сохраненном состоянии, в котором выполнение монитора виртуальной машины остановлено и в котором вся информация, касающаяся состояния памяти, устройства и центрального процессора (ЦП) виртуальной машины, записана в физический файл. Процессы безопасности также могут использоваться для мониторинга и исправления виртуальной машины, которая находится в приостановленном состоянии, которые обычно вызываются менеджером виртуальных машин. В приостановленном состоянии виртуальная машина прекращает выполнение, но остается готовой возобновить следующую команду и обработку. В сценарии приостановленного или сохраненного состояния виртуальная операционная система внутри виртуальной машины не знает об изменении состояния. Аналогично, процессы безопасности могут иметь возможность сканировать и исправлять или очищать виртуальную машину до ее загрузки в хост-систему.
В некоторых вариантах осуществления, хост-система может осуществлять монтирование жесткого диска виртуальной машины, как если бы он был физическим диском, и затем сканировать виртуальный жесткий диск на уровне блоков (как любой другой смонтированный диск). Например, хост-система может использовать драйвер диска, который может быть загружен в операционную систему физической машины. Этот драйвер диска может затем интерпретировать виртуальный жесткий диск и представлять его хост-системе как локально присоединенный диск.
Другой подход к мониторингу виртуальных машин состоит в выполнении «агентского» процесса безопасности на каждой виртуальной машине. В этом подходе агентский процесс безопасности ассоциирован с основным процессом безопасности на хост-системе. Агентский процесс безопасности открывает канал связи с основным процессом безопасности и способствует в обнаружении атаки на виртуальную машину и восстановлении после нее. Хотя этот сценарий может быть сопряжен с опасностью повреждения агентского процесса безопасности во время атаки, агент все же может иметь опцию внешнего восстановления, доступную ему через основной процесс безопасности. В некоторых сценариях (например, сценариях, предусматривающих использование гипервизора (программного средства управления операционными системами)), агент может выполняться на другой виртуальной машине, отличной от той, в отношении которой он фактически в текущий момент выполняет мониторинг.
В некоторых вариантах осуществления, хост-система может делать периодические снимки полного состояния каждой виртуальной машины. Теоретически, это делание снимков может осуществляться мгновенно, с минимальной потерей производительности. Однако возможны многочисленные варианты этого метода. Если процесс безопасности обнаруживает аномалию в виртуальной машине (например, злонамеренное ПО, переписывающее операционную систему, или злонамеренное ПО, объявляющее себя как программа в памяти), то хост-система может восстановить состояние виртуальной машины до состояния последнего снимка, предпринять действие по предотвращению повторения аномалии и перезапустить виртуальную машину.
II. Иллюстративная система
На фиг.1-5 и в нижеприведенном описании обеспечено краткое, общее описание подходящей среды, в которой можно реализовать изобретение. Хотя это и не требуется, аспекты изобретения описаны в общем контексте машиноисполняемых команд, например процедур, выполняемых компьютером общего назначения (например, компьютером-сервером, беспроводным устройством или персональным/портативным компьютером). Специалистам в данной области техники очевидно, что изобретение можно осуществлять на практике с использованием других сред связи, обработки данных или конфигураций компьютерной системы, включая пункты доступа в Интернет, карманные устройства (включая карманные персональные компьютеры (КПК)), переносные компьютеры, сотовые или мобильные телефоны любых типов, встроенные компьютеры (включая подключенные к автомобилям), многопроцессорные системы, телевизионные приставки, сетевые ПК, миникомпьютеры, универсальные компьютеры и пр.
Аспекты изобретения могут быть реализованы в компьютере специального назначения или процессоре данных, который конкретно запрограммирован, сконфигурирован или сконструирован для выполнения одной или нескольких машиноисполняемых команд, подробно объясненных ниже. Аспекты изобретения также могут быть применены на практике в распределенных вычислительных сетях, где задачи или модули выполняются удаленными устройствами обработки данных, соединенными через сеть связи. В распределенной вычислительной среде программные модули могут размещаться в локальных и удаленных запоминающих устройствах.
Аспекты изобретения могут храниться или распространяться на машиночитаемых носителях, включающих в себя магнитно или оптически считываемые компьютерные диски, в качестве машинного кода в полупроводниковой памяти, нанотехнологической памяти, органической или оптической памяти или других переносных носителях данных. Действительно, реализуемые компьютером команды, структуры данных, изображения экрана дисплея и другие данные, отвечающие аспектам изобретения, могут быть распространены по Интернету или другим сетям (включая беспроводные сети) на распространяемом сигнале в среде распространения сигнала (например, электромагнитной (ых) волне(ах), звуковой волне и т.д.) в течение периода времени, либо могут быть обеспечены в любой аналоговой или цифровой сети (с коммутацией пакетов, с коммутацией каналов или другой схемой). Специалистам в данной области техники очевидно, что части изобретения размещаются на компьютере-сервере, тогда как соответствующие части размещаются на компьютере-клиенте, например, мобильном устройстве.
Согласно фиг.1, компьютерная система (физическая машина) 100, на которой могут быть реализованы методики защиты компьютера, обеспечивает различные компоненты. Эти компоненты включают в себя хост-систему 102, сконфигурированную для выполнения в компьютерной системе 100 в дополнение, в сочетании с или вместо стандартной или общего назначения операционной системы 104 компьютера. В некоторых вариантах осуществления хост-система 102 может быть сконфигурирована так, чтобы она была недоступна никому, кроме собственных и/или привилегированных надзирающих функций или функций безопасности. Хост-система 102 может взаимодействовать с одним или несколькими компьютерными ресурсами, например процессором 106 с блоком управления памятью (БУП) 108, диском 110, памятью 112, подсистемой 114 связи и одним или несколькими системными драйверами 116.
В некоторых вариантах осуществления одна или несколько виртуальных машин 118 выполняются под управлением хост-системы 102 и могут подчиняться хост-системе 102. Каждая из виртуальных машин 118 может содержать совокупность компонентов, которые облегчают виртуализацию или эмуляцию процессора и других машинных ресурсов. Например, как показано в иллюстрируемом варианте осуществления, каждая из виртуальных машин 118 может осуществлять доступ к набору эмулированных ресурсов, включая виртуальные сетевые адаптеры 119, виртуальную память 120 (которая может представлять собой выделенную часть памяти 112 физической машины), виртуальный диск 122 и один или несколько виртуальных драйверов 124, каждый из которых представляет виртуальный экземпляр невиртуальных системных драйверов 116. На каждой из этих виртуальных машин 118 выполняется экземпляр 126 виртуальной операционной системы. В некоторых вариантах осуществления, экземпляр 126 виртуальной операционной системы может быть полной или частичной копией операционной системы 104 физической машины.
В общем случае, виртуальные машины 118 могут зависеть от БУП 108 для обеспечения различных защит страничного уровня. В общем случае, приложения или процессы 129, выполняющиеся на каждой из виртуальных машин, используют только эмулированные ресурсы (например, виртуальную память 120, виртуальный диск 122, виртуальные драйверы 124, операционную систему 126, и т.д.) соответствующей виртуальной машины. Такие приложения или процессы 129 иногда называют «гостевым» кодом. Эмулированные ресурсы обычно предполагают заслуживающими доверия в том смысле, что они согласуются со стандартными защитными механизмами на хост-системе 102 и не предоставляют данные пользователя хост-системы гостевому коду, если им в явном виде не предписано делать это.
В некоторых вариантах осуществления эмулированные ресурсы могут обеспечивать обмен данными между хост-системой 102 и гостевым кодом, выполняющимся на виртуальной машине 118, с использованием нескольких методик интеграции, например, доступов к порту ввода/вывода, регистров, отображенных в память, прямого доступа к памяти (DMA), прерываний и т.д. Другие методики обмена данными включают в себя совместное использование буфера обмена, перетаскивание файлов, синхронизацию по времени и т.д. Для поддержки таких методик обмена данными, виртуальные машины 118 могут обеспечивать ряд служб, включая асинхронные гостевые события, синхронные хост-вызовы, перенос данных между гостевым кодом и хост-системой 102, реестр интеграционных услуг и т.д.
Виртуальные машины 118 могут создаваться или инициироваться на хост-системе 102 с использованием любой из нескольких возможных методик. Например, в одном варианте осуществления хост-система 102 может создавать и запускать экземпляр виртуальной машины и конфигурировать параметры для виртуальной машины во время создания. В некоторых вариантах осуществления, хост-система 102 может помещать образ существующей виртуальной машины на диск 110 (возможно, совместно используемый) и загружать этот образ в качестве нового экземпляра виртуальной машины. В некоторых случаях, эта загрузка называется «импортом» экземпляра виртуальной машины и некоторым образом аналогична функции «импорта», которая переносит данные из одного приложения в другое.
В некоторых вариантах осуществления на хост-системе 102 выполняется набор из одного или нескольких надзирающих процессов 128. В некоторых вариантах осуществления один или несколько надзирающих процессов 128 могут иметь полный или частичный доступ к экземплярам 126 виртуальной операционной системы и могут предоставлять услугу безопасности каждой виртуальной машине 118. В некоторых вариантах осуществления надзирающие процессы 128 могут также выполнять такие функции, как регулирование цифровых прав (DRM) и контроль прослушивания. Поскольку эта конфигурация предусматривает, что любое злонамеренное ПО, выполняющееся на виртуальных машинах 118, не может осуществлять доступ к ресурсам вне каждой виртуальной машины, надзирающий процесс 128, в общем случае, уберегается от повреждения злонамеренным ПО.
В некоторых вариантах осуществления один или несколько надзирающих процессов 128 управляют набором приложений безопасности (например, антивирусным программным обеспечением, персональными брандмауэрами, системами обнаружения проникновения и т.д.), которые могут защищать и/или контролировать все виртуальные машины 118 на хост-системе 102. Например, один или несколько надзирающих процессов 128 могут обеспечивать автономное сканирование множественных виртуальных машин набором приложений безопасности. Автономное сканирование может включать в себя конфигурирование набора приложений безопасности, чтобы они знали о каждом из виртуальных ресурсов виртуальных машин, поскольку они размещаются как виртуальные объекты на компьютерной системе (физической машине). Таким образом, набор приложений безопасности может проверять (сканировать) эти виртуальные ресурсы извне виртуальной машины (например, зная внутренний формат структур данных виртуальной машины).
Хотя здесь используются термины "приложение безопасности" и "надзирающий процесс", такие понятия не ограничиваются приложениями или процессами. Напротив, любая утилита или служба, способная предоставлять услуги виртуальной машине и/или ее, ресурсам, может быть реализована на хост-системе для достижения нужных результатов без отхода от объема изобретения. Некоторые примеры такой утилиты или службы включают в себя утилиту по борьбе с рекламным ПО, утилиту по борьбе со шпионским ПО, дефрагментатор диска и т.д.
Автономное сканирование ресурсов виртуальной машины может иметь место в то время, как виртуальные машины выполняются или находятся в спящем режиме (например, в приостановленном или сохраненном состоянии). Например, в случае, когда виртуальная машина может быть создана путем нахождения и загрузки образа существующей виртуальной машины в хост-систему 102, автономное сканирование (и любые необходимые очистка или исправления) могут происходить до «импорта» экземпляра виртуальной машины. Ресурсы виртуальной машины, которые можно сканировать в приостановленном или сохраненном состоянии, включают в себя виртуальные жесткие диски, содержимое памяти виртуальной машины, структуры буфера виртуального связного порта и т.д. В некоторых реализациях может быть невозможно осуществлять доступ к памяти приостановленной виртуальной машины. Однако память виртуальной машины все же может быть доступна, когда виртуальная машина находится в сохраненном состоянии, или через снимок виртуальной машины.
На фиг.2 показан один пример конфигурации 200 автономного сканирования, иллюстрирующий различные компоненты по фиг.1. В этой конфигурации приложение 202 безопасности и необязательный надзирающий процесс 128 размещены на хост-системе 102. Приложение 202 безопасности, которое может, по меньшей мере, частично находиться под управлением надзирающего процесса 128, рассматривает ресурсы виртуальной машины 118 как структуру данных или набор структур данных, которую (ый) можно сканировать на предмет признаков нарушений безопасности. Чтобы можно было осуществлять доступ к ресурсам виртуальной машины 118 в необработанном виде и точно обнаруживать нарушения безопасности, приложение 202 безопасности может опираться на информацию о семантике и конфигурации структур данных, связанных с ресурсами. В некоторых вариантах осуществления эта информация обновляется, чтобы отражать любые намеренные изменения семантики и конфигурации структур данных.
Например, приложение 202 безопасности, показанное на фиг.2, может представлять собой средство антивирусного сканирования, которое сканирует виртуальную машину 118, чтобы определить, заражена ли она одним или несколькими известными вирусами или червями. Чтобы начать процесс сканирования, антивирусное средство 202 загружает текущий файл определения сигнатур в свою программную память. Например, файл определения сигнатур может задавать семантику и конфигурацию структуры виртуального жесткого диска виртуальной машины, тем самым обеспечивая точку отсчета для антивирусного средства при сканировании жесткого диска виртуальной машины в его текущем состоянии.
Затем антивирусное средство направляет свое сканирование на считывание части жесткого диска физической, машины, которая соответствует виртуальному жесткому диску виртуальной машины. Таким образом, антивирусное средство эффективно считывает содержимое виртуального жесткого диска и сравнивает это содержимое (например, объект содержимого) со своим списком известного злонамеренного содержимого, используя способы и методики, применяемые специалистами в данной области техники при обнаружении злонамеренного программного обеспечения. В целях этого примера, объект содержимого на виртуальном жестком диске может представлять собой файл или другой объект, манипулируемый операционной системой, например ключ из системного реестра Microsoft Windows, или любой другой объект на диске, который можно идентифицировать как часть экземпляра злонамеренного или нежелательного программного обеспечения. Обнаружив злонамеренное программное обеспечение, антивирусное средство может попытаться удалить любые вредные объекты или удалить инфекцию, присутствующую в объекте.
На фиг.3А показан второй пример конфигурации 300 автономного сканирования. В этой конфигурации, объектный интерфейс 302 виртуальной машины, поддерживаемый надзирающим процессом 128, обеспечивает универсальный интерфейс, через который приложение 304 безопасности может осуществлять доступ к ресурсам виртуальных машин. Объектный интерфейс 302 виртуальной машины может отображать структуры данных виртуальной машины, которые могут варьироваться от виртуальной машины к виртуальной машине, в общий формат, к которому может осуществлять доступ приложение 304 безопасности для сканирования и других действий. Таким образом, приложение 304 безопасности должно быть разработано только для доступа к этому общему формату, а не к каждому варианту формата, который может иметь виртуальная машина. Например, хост-система 102 может обнаружить информацию о состоянии виртуальных машин 118 (например, состоянии диска, состоянии памяти или состоянии связи), чтобы приложение 304 безопасности могло отслеживать его на предмет нарушений безопасности или других проблем. Кроме того, объектный интерфейс 302 виртуальной машины может обеспечивать функциональные возможности, которые могут использовать множественные приложения безопасности. Например, объектный интерфейс 302 виртуальной машины может обеспечивать функцию, которая позволяет другому процессу безопасности сканировать виртуальные сетевые адаптеры виртуальной машины на предмет входящих сетевых пакетов, имеющих злонамеренное содержимое, например полезную нагрузку в виде червей.
Эта конфигурация обеспечивает некоторую гибкость для разработчика виртуальной машины и разработчика приложения безопасности. Например, разработчик виртуальной машины может изменить структуры данных виртуальной машины без последствий для разработчика приложения безопасности. Таким образом, приложение безопасности 304 нужно разрабатывать только для доступа к этому общему формату, а не к каждому варианту формата, который может иметь виртуальная машина.
В некоторых вариантах осуществления методика автономного сканирования обеспечивает синхронизацию текущего состояния виртуальной машины с тем, что приложение безопасности воспринимает как текущее состояние виртуальной машины, тем самым обеспечивая возможности более точного и согласованного сканирования. Эта синхронизация может быть полезна в случае, когда состояния виртуальной машины быстро изменяются.
Согласно фиг.3В, один способ осуществления этой синхронизации состоит в выполнении агентского процесса 322, который обеспечивает самосогласованный вид виртуальной машины в режиме, близком к реальному времени. Агентский процесс 322, который может выполняться на виртуальной машине 118, может затем экспортировать этот вид виртуальной машины в объектный интерфейс 302 виртуальной машины, который затем может предоставлять соответствующую информацию надзирающему процессу и/или приложению безопасности. В некоторых вариантах осуществления, агентский процесс 322 может обеспечивать интерфейс прикладного программирования (API) для использования объектным интерфейсом 302 виртуальной машины. (Альтернативно, приложение безопасности может обеспечивать аналогичный API для использования объектным интерфейсом 302 виртуальной машины.)
Альтернативный способ осуществления этой синхронизации состоит в том, что виртуальная машина 118 создает постоянные снимки своего состояния и сохраняет эти снимки в памяти или на диске. Хотя такие снимки могут быть на несколько секунд «устаревшими», они, тем не менее, будут самосогласованными.
Согласно фиг.3С, альтернативная методика обеспечения сканирования безопасности виртуальных машин предусматривает систему 330, сконфигурированную так, что приложение 336 безопасности и надзирающий процесс 334 выполняются на указанной виртуальной машине 332 (а не непосредственно на хост-системе 102). Тогда приложение 336 безопасности и надзирающий процесс 334 могут отслеживать и/или сканировать другие виртуальные машины 118 для обнаружения проблем. Таким образом, указанная виртуальная машина 332 (которая может быть предназначена для обеспечения мониторинга безопасности) может оставаться защищенной от атак.
III. Системные последовательности операций
На фиг.4-8 изображены иллюстративные логические блок-схемы, где показаны процессы, происходящие в системе, изображенной на фиг.1. На этих логических блок-схемах не показаны все функции или обмены данными, но зато они позволяют понять команды и данные, обмен которыми происходит в системе. Специалистам в данной области очевидно, что некоторые функции или обмены командами и данными можно повторять, изменять, опускать или дополнять, и что можно легко реализовать другие, не показанные, аспекты.
Согласно фиг.4, надзирающая процедура 400, выполняемая, например, надзирающим процессом, показанным на фиг.1, может выполняться в хост-системе (или вне ее) для мониторинга, изменения и/или конфигурирования процессов или виртуальных операционных систем, выполняющихся на виртуальной машине. Альтернативно, надзирающая процедура 400 может отслеживать изменять и/или конфигурировать процессы, выполняющиеся на реальной (а не виртуальной) операционной системе.
На этапе 401 процедура 400 приостанавливает операционную систему виртуальной машины. На этапе 402 принятия решения процедура 400 проверяет изменения, которые могут быть вызваны разрушительными действиями (например, нестандартными процессами), имеющими место в виртуальной машине. Например, процедура 400 может сканировать часть ядра операционной системы виртуальной машины для выявления проблем. В порядке альтернативы (или дополнительно к) мониторингу ядра виртуальной операционной системы, процедура 400 может отслеживать другие аспекты, связанные с виртуальной (или реальной) операционной системой. Например, процедура 400 может отслеживать пространства виртуальных адресов, отслеживать эмулированные устройства, отслеживать эмулированный жесткий диск, осуществлять проверки целостности (например, проверять контрольные суммы), проверять целостность файлов, находящихся на виртуальном диске или в памяти, и т.д.
Если на этапе 402 принятия решения процедура 400 не обнаруживает изменений, которые могут быть следствием вредоносных действий, то процедура 400 переходит к этапу 404 для перезапуска ядра виртуальной операционной системы, прежде чем закончить. Однако в некоторых вариантах осуществления (не проиллюстрированных) процедура 400 может возвращаться к этапу 401 (по истечении периода времени для повторного осуществления этапов приостановки и проверки (пока экземпляр виртуальной операционной системы не закончит работу). Если же на этапе 402 принятия решения, процедура 400 обнаруживает изменения, которые могут быть следствием вредоносных действий, то процедура переходит к этапу 403, где процедура инициирует ограничительные действия. Пример ограничительных действий может включать в себя такие действия, как временная приостановка гостевой операционной системы для осуществления дополнительного сканирования, временная приостановка процессов выбора, очистка злонамеренного ПО и переформатирование виртуальной операционной системы для исправления любого повреждения, отключение виртуальной машины после взятия снимка, чтобы среду виртуальной машины можно было в большей или меньшей степени восстановить после перезапуска виртуальной машины.
На фиг.5 показан пример процедуры 500 автономного сканирования, обеспечиваемого надзирающим процессом, который управляет набором приложени