ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК
DOUBLE SELF-TEST OF MEMORY FOR PROTECTION OF MULTIPLE NETWORK ENDPOINTS

СВЯЗАННЫЕ ЗАЯВКИ
[0001] Данная патентная заявка претендует на приоритет предварительной патентной заявки США №62/269,952, поданной 19 декабря 2015 г., озаглавленной "Двукратная самодиагностика памяти для защиты множества сетевых конечных точек", все содержание которой включено в данный документ в качестве ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] Изобретение относится к системам и способам обеспечения компьютерной безопасности и, в частности, к системам и способам защиты среды аппаратной виртуализации от угроз в отношении компьютерной безопасности.
[0003] Вредоносное программное обеспечение, также известное как вредоносные программы, повреждают большое количество компьютерных систем по всему миру. В своих различных формах, таких как компьютерные вирусы, черви, руткиты и шпионские программы, вредоносные программы представляют серьезный риск для миллионов пользователей компьютеров, угрожая им, наряду с прочим, утечкой данных и конфиденциальной информации, кражей персональных данных и ущербом производительности.
[0004] Для защиты компьютерных систем от вредоносного программного обеспечения может использоваться программное обеспечение систем компьютерной безопасности. Однако в распределенных вычислительных системах, таких как корпоративные системы и облачные вычислительные системы, общеупотребительное программное обеспечение компьютерной безопасности обычно не реагирует на атаки должным образом. Даже когда программное обеспечение компьютерной безопасности способно детектировать атаку, для анализа и восстановления может потребоваться, чтобы оператор был направлен к испытывающей воздействие клиентской системе, например, чтобы применить исправления, восстановить утраченные данные и т.п. Кроме того, после обнаружения и анализа новой угрозы, обновленные версии программного обеспечения компьютерной безопасности должны быть распространены на все защищенные компьютерные системы.
[0005] Альтернативный вариант системы компьютерной безопасности может быть реализован на центральном серверном компьютере, принимающем необходимые данные от клиентов группы безопасности по сети передачи данных. Сервер может определять, согласно полученным данным, заражен ли соответствующий клиент вредоносным программным обеспечением и может передавать свое заключение об этом соответствующему клиенту. В то время как такие конфигурации лучше справляются с возникающими угрозами, они требуют значительной вычислительной мощности серверного оборудования.
[0006] Работа систем компьютерной безопасности усложнилась еще больше с появлением аппаратной виртуализации. С ростом числа товаров и услуг, продаваемых через интернет, а также с увеличением делокализации работы систем, использование инфраструктуры как сервиса (IAAS) стало полноценным альтернативным вариантом проприетарного аппаратного обеспечения. Значительная доля вычислительных процессов в настоящий момент осуществляется с использованием виртуальных машин. В стандартных приложениях, таких как серверные парки и облачные вычисления, на единой аппаратной платформе могут быть реализованы одновременно сотни виртуальных машин. Для всех таких виртуальных машин может потребоваться защита от вредоносных программ.
[0007] Адаптация к постоянно изменяющейся природе вредоносного программного обеспечения и рабочим ресурсам мобильных систем требует разработки инновационных систем и протоколов компьютерной безопасности и, в частности, систем и способов, обеспечивающих эффективное управление компьютерной безопасностью в случае множества распределенных клиентов.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0008] Согласно одному аспекту, клиентская компьютерная система содержит аппаратный процессор, выполненный с возможностью реализации гипервизора, модуля самодиагностики реального времени и модуля самодиагностики по требованию. Гипервизор выполнен с возможностью предоставления гостевой виртуальной машины (VM) и VM безопасности, отличной от гостевой VM, причем модуль самодиагностики по требованию реализован в рамках VM безопасности, причем модуль самодиагностики реального времени реализован за пределами гостевой VM и VM безопасности. Модуль самодиагностики реального времени выполнен с возможностью, в ответ на детектирование наступления события внутри гостевой VM, передачи индикатора события на удаленную серверную компьютерную систему по сети передачи данных. Модуль самодиагностики по требованию выполнен с возможностью, в ответ на передачу модулем самодиагностики реального времени индикатора события на удаленную серверную компьютерную систему, получения запроса на проведение анализа от удаленной серверной компьютерной системы, причем запрос на проведение анализа указывает на средство обеспечения безопасности, размещенное в удаленном хранилище средств, выполненном с возможностью распространения средств обеспечения безопасности множеству клиентов, включая клиентскую компьютерную систему, причем средство обеспечения безопасности содержит программное обеспечение, выполненное с возможностью анализа наступления события, при этом средство обеспечения безопасности выбирается удаленной серверной компьютерной системой согласно типу события. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на прием запроса на проведение анализа, идентификации средства обеспечения безопасности согласно запросу на проведение анализа, и, в ответ, выборочного извлечения средства обеспечения безопасности из хранилища средств, причем извлечение средства обеспечения безопасности включает в себя соединение с центральным хранилищем средств по сети передачи данных. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на выборочное извлечение средства обеспечения безопасности, реализации средства обеспечения безопасности и передачи результата реализации средства обеспечения безопасности на удаленную серверную компьютерную систему.
[0009] Согласно другому аспекту серверный компьютер выполнен с возможностью осуществления операций компьютерной безопасности с множеством клиентских систем. Серверная компьютерная система содержит аппаратный процессор, выполненный с возможностью, в ответ на прием индикатора события от клиентской системы из множества клиентских систем, причем индикатор события указывает на наступление события внутри гостевой VM, реализованной на клиентской системе, выбора средства обеспечения безопасности, размещенного в удаленном хранилище средств, выполненного с возможностью распространения средств обеспечения безопасности множеству клиентских систем, при этом средство обеспечения безопасности содержит программное обеспечение, выполненное с возможностью анализа наступления события, причем выбор средства обеспечения безопасности осуществляется согласно типу события. Аппаратный процессор дополнительно выполнен с возможностью, в ответ на выбор средства обеспечения безопасности, передачи запроса клиентской системе на проведение анализа по сети передачи данных, причем запрос на проведение анализа содержит идентификатор средства обеспечения безопасности; и, в ответ, получения от клиентской системы результата реализации средства обеспечения безопасности в клиентской системе. Клиентская система выполнена с возможностью реализации гипервизора, модуля самодиагностики реального времени и модуля самодиагностики по требованию. Гипервизор выполнен с возможностью предоставления гостевой VM и VM безопасности, отличной от гостевой VM, причем модуль самодиагностики по требованию реализован в рамках VM безопасности, причем модуль самодиагностики реального времени реализован за пределами гостевой VM и VM безопасности. Модуль самодиагностики реального времени выполнен с возможностью, в ответ на детектирование наступления события, передачи индикатора события серверной компьютерной системе. Модуль самодиагностики по требованию выполнен с возможностью, в ответ на прием запроса на проведение анализа, идентификации средства обеспечения безопасности согласно запросу на проведение анализа. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на идентификацию средства обеспечения безопасности, выборочного извлечения средства обеспечения безопасности из хранилища средств, причем извлечение средства обеспечения безопасности включает в себя соединение клиентской системы с удаленным хранилищем средств по сети передачи данных. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на извлечение средства обеспечения безопасности, реализации средства обеспечения безопасности с целью получения результата.
[0010] Согласно другому аспекту, постоянный машиночитаемый носитель содержит набор инструкций, который, при реализации на аппаратном процессоре клиентской компьютерной системы, вызывает формирование в клиентской компьютерной системе гипервизора, модуля самодиагностики реального времени и модуля самодиагностики по требованию. Гипервизор выполнен с возможностью предоставления гостевой виртуальной машины (VM) и VM безопасности, отличной от гостевой VM, причем модуль самодиагностики по требованию реализован в рамках VM безопасности, причем модуль самодиагностики реального времени реализован за пределами гостевой VM и VM безопасности. Модуль самодиагностики реального времени выполнен с возможностью, в ответ на детектирование наступления события внутри гостевой VM, передачи индикатора события на удаленную серверную компьютерную систему по сети передачи данных. Модуль самодиагностики по требованию выполнен с возможностью, в ответ на передачу модулем самодиагностики реального времени индикатора события на удаленную серверную компьютерную систему, получения запроса на проведение анализа от удаленной серверной компьютерной системы, причем запрос на проведение анализа указывает на средство обеспечения безопасности, размещенное в удаленном хранилище средств, выполненном с возможностью распространения средств обеспечения безопасности множеству клиентов, включая клиентскую компьютерную систему, причем средство обеспечения безопасности содержит программное обеспечение, выполненное с возможностью анализа наступления события, при этом средство обеспечения безопасности выбирается удаленной серверной компьютерной системой согласно типу события. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на прием запроса на проведение анализа, идентификации средства обеспечения безопасности согласно запросу на проведение анализа, и, в ответ, выборочного извлечения средства обеспечения безопасности из хранилища средств, причем извлечение средства обеспечения безопасности включает в себя соединение с центральным хранилищем средств по сети передачи данных. Модуль самодиагностики по требованию дополнительно выполнен с возможностью, в ответ на выборочное извлечение средства обеспечения безопасности, реализации средства обеспечения безопасности и передачи результата реализации средства обеспечения безопасности на удаленную серверную компьютерную систему.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011] Дальнейшие аспекты и преимущества настоящего изобретения будут более понятны после изучения последующего подробного описания и прилагаемых чертежей, на которых:
[0012] Фиг. 1 иллюстрирует пример конфигурации, в котором множество клиентских систем защищено от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0013] Фиг. 2-А иллюстрирует пример конфигурации аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0014] Фиг. 2-В иллюстрирует пример конфигурации аппаратного обеспечения серверной компьютерной системы безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0015] Фиг. 3-А иллюстрирует пример набора виртуальных машин, которые предоставляет гипервизор, реализованный в защищенной клиентской системе, и пример пары модулей самодиагностики согласно некоторым вариантам осуществления настоящего изобретения.
[0016] Фиг. 3-В иллюстрирует альтернативный вариант конфигурации компонентов безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0017] Фиг. 4 иллюстрирует пример последовательности этапов, выполняемых программным приложением инсталяции для налаживания компьютерной безопасности в клиентской системе, согласно некоторым вариантам осуществления настоящего изобретения.
[0018] Фиг. 5 иллюстрирует конфигурирование безопасного соединения виртуальной частной сети (VPN) между клиентской системой и сервером безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0019] Фиг. 6 иллюстрирует пример обмена данными между клиентской системой и сервером безопасности, причем обмен осуществляется при детектировании вредоносной программы, согласно некоторым вариантам осуществления настоящего изобретения.
[0020] Фиг. 7 иллюстрирует пример последовательности этапов, выполняемых модулем самодиагностики реального времени, согласно некоторым вариантам осуществления настоящего изобретения.
[0021] Фиг. 8 иллюстрирует пример последовательности этапов, выполняемых модулем самодиагностики по требованию, согласно некоторым вариантам осуществления настоящего изобретения.
[0022] Фиг. 9 иллюстрирует пример последовательности этапов, выполняемых сервером безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0023] Следует понимать, что в дальнейшем описании что все упомянутые соединения между структурами могут быть непосредственно действующими соединениями или опосредовано действующими соединениями, обеспечиваемыми через промежуточные структуры. Набор элементов включает в себя один или более элемент. Следует понимать, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает в себя по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в определенном проиллюстрированном прядке. Когда упоминается, что первый элемент (например данные) происходит из второго элемента, подразумевается, что первый элемент равен второму элементу, а также, что первый элемент образован посредством обработки второго элемента и опционально других данных. Принятие заключения или решения согласно параметру подразумевает принятие заключения или решения согласно параметру и опционально согласно другим данным. Если не указано иное, индикатор некоторой величины/данных может представлять собой саму величину/данные или же индикатор, отличный от самой величины/данных. Компьютерная безопасность подразумевает защиту пользователей и оборудования от непредусмотренного или неавторизованного доступа к данным и/или аппаратному обеспечению, от непредусмотренной или неавторизованной модификации данных и/или аппаратного обеспечения и от повреждения данных и/или аппаратного обеспечения. Компьютерная программа представляет собой последовательность процессорных команд, выполняющих конкретную задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут представлять собой применяемые самостоятельно программные структуры или подструктуры (например, подпрограммы, библиотеки) других компьютерных программ. Если не указано иначе, гостевое программное обеспечение реализовано в рамках виртуальной машины. Указывается, что программа реализуется в рамках виртуальной машины, когда она реализуется в виртуальном процессоре соответствующей виртуальной машины. Если не указано иное, страница представляет собой наименьшую единицу виртуальной памяти, которая может быть индивидуально сопоставлена физической памяти хост-системы. Если не указано иное, моментальный снимок клиентской системы содержит копию содержимого сектора памяти, используемого соответствующей клиентской системой. Под машиночитаемыми носителями подразумеваются постоянные носители, например магнитные, оптические и полупроводниковые запоминающие носители (например жесткие диски, оптические диски, устройства флеш-памяти, DRAM), а также коммуникационные каналы, например проводные кабели и оптоволоконные каналы. Согласно некоторым вариантам осуществления в настоящем изобретении предложены, помимо прочего, компьютерные системы, содержащие аппаратное обеспечение (например один или более микропроцессоров), запрограммированные для выполнения описанных в данном документе способов, а также машиночитаемые носители, на которых закодированы инструкции для выполнения описанных в данном документе способов.
[0024] Последующее описание иллюстрирует варианты осуществления изобретения посредством примера и не обязательно посредством ограничения.
[0025] Фиг. 1 иллюстрирует пример конфигурации, обеспечивающий защиту множества клиентских систем 12a-d от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Примеры клиентских систем 12a-d включают в себя персональные компьютерные системы, мобильные компьютерные платформы (лэптопы, планшеты, мобильные телефоны), развлекательные устройства (телевизоры, игровые приставки), переносные устройства (умные часы, фитнес-браслеты), бытовую технику и любые другие электронные устройства, содержащие процессор и память, и обеспечивающие возможность работы платформы аппаратной виртуализации. Другой вариант категории клиентских систем включает в себя серверы центра обработки данных и платформы аппаратной виртуализации, реализующие облачные приложения, например веб-серверы и/или инфраструктуру виртуальных рабочих столов.
[0026] Клиентские системы 12a-d взаимно соединены посредством сети 11 передачи данных, например, посредством домашней сети, сети предприятия, сети интернет и т.д. Сеть 11 включает в себя по меньшей мере один коммутатор и/или роутер. Части сети 11 могут включать в себя локальную сеть (LAN) и/или телекоммуникационную сеть (например, сеть мобильной связи 4G, беспроводную LAN).
[0027] В некоторых вариантах осуществления сервер 14 безопасности соединен с возможностью связи с клиентскими системами 12a-d посредством сети 11, и он взаимодействует с клиентскими системами 12a-d для предотвращения угроз компьютерной безопасности, как подробно описано ниже. Под сервером 14 в общем виде понимается набор взаимно соединенных вычислительных систем, которые могут быть или не быть физически расположены вблизи друг друга. В некоторых вариантах осуществления сервер 14 выполнен с возможностью получения уведомления о событиях от клиентских систем 12a-d, и, в ответ, выбора, в зависимости от типа события, типа криминалистического анализа, протокола преодоления угрозы и/или средства очистки, которые следует использовать соответствующей клиентской системе. Примеры криминалистического анализа включают в себя, например, получение определенных данных о причине и/или контексте соответствующего события. Протоколы преодоления угрозы могут быть выбраны согласно типу вредоносного программного обеспечения, указанного в соответствующем событии, и могут включать в себя загрузку и/или реализацию определенного очищающего и/или устраняющего повреждения кода для соответствующего клиента.
[0028] В некоторых вариантах осуществления сервер 14 безопасности дополнительно выполнен с возможностью взаимодействия с клиентской базой 17 данных. В примере клиентской базы 17 данных, каждая запись связана с защищенной клиентской системой 12a-d и/или с виртуальной машиной, реализованной в соответствующей защищенной клиентской системе, и может включать в себя запись журнала регистрации о переключающих событиях и/или криминалистические отчеты (см. ниже), переданные соответствующей клиентской системой/виртуальной машиной. Пример записи базы 17 данных может дополнительно содержать данные системного профиля (например, включающие в себя версию операционной системы, информацию об установленных приложениях, различных настройках, владельце, контактную информацию и т.д.) для соответствующей клиентской системы/виртуальной машины. Другой пример записи клиентской базы 17 данных может включать в себя набор параметрических величин, отображающих определенную для клиента политику безопасности, связанную с соответствующей клиентской системой. Такие настройки могут быть заданы оператором или могут быть определены автоматически согласно набору правил. В некоторых вариантах осуществления настоящего изобретения определенные для клиента политики и/или настройки безопасности существенно отличаются в зависимости от событий, возникающих в соответствующем клиенте или в других защищенных клиентах.
[0029] В некоторых вариантах осуществления клиентские системы 12a-d дополнительно соединены с центральным хранилищем 15 средств посредством сети 11. Хранилище 15 средств может включать в себя машиночитаемый носитель или физически сохраняемые на машине средства обеспечения безопасности и ресурсы в форме кода (компьютерных программ) и/или данных. Клиентские системы 12a-d могут соединяться с хранилищем 15 для выборочного извлечения средств и данных согласно инструкциям, полученным от сервера 14 безопасности, как подробно проиллюстрировано ниже. Хранилище 15 средств доступно для множества клиентов, поэтому в предпочтительном варианте осуществления настоящего изобретения хранилище 15 не размещено в какой-либо определенной клиентской системе. Следовательно, соединение с хранилищем 15 включает в себя передачу и/или прием сообщений из/в хранилище 15 посредством сетевого адаптера соответствующей клиентской системы. Такие сообщения могут проходить по пути через сетевой коммутатор или роутер.
[0030] Средства обеспечения безопасности, хранящиеся в хранилище 15, могут включать в себя криминалистические, антивредоносные программные средства и/или средства преодоления угрозы. Хранилище данные может дополнительно включать в себя параметрические величины для конфигурирования или настройки соответствующего средства согласно типу исследуемого события или согласно локальной конфигурации аппаратного обеспечения/программного обеспечения. Антивредоносные программные средства обеспечивают детектирование вредоносного программного обеспечения, реализованного в клиентских системах 12a-d, и могут включать в себя кодировку набора эвристических правил и/или баз данных сигнатур, идентифицирующих вредоносные программы. Средства преодоления угрозы могут включать в себя очищающие, запрограммированные для удаления или какого-либо другого способа нейтрализации агента вредоносного программного обеспечения, реализованного в клиентской системе. Другие примеры средств преодоления угрозы запрограммированы для предотвращения передачи зараженной клиентской системой вредоносного программного обеспечения другой клиентской системе, например, посредством контроля того, как зараженная клиентская система использует свой сетевой адаптер.
[0031] Криминалистические средства обеспечивают анализ относящихся к безопасности событий, возникающих в клиентских системах 12a-d. Некоторые примеры криминалистических средств включают в себя средства генерации моментального снимка, запрограммированные для получения моментального снимка памяти клиентской системы или виртуальной машины, реализованной в соответствующей клиентской системе. Моментальный снимок может включать в себя данные памяти, связанные с операционной системой (OS) или с другим приложением, в настоящий момент реализованным в соответствующей клиентской системе. Моментальный снимок ядра OS может включать в себя, наряду с прочим, копию кода ядра и секторов данных, различных находящихся в оперативной памяти драйверов ядра (кода и/или секторов данных), находящихся в оперативной памяти ядра угроз и соответствующих им стеков, структур данных ядра OS, например список загруженных модулей, список процессов и т.д. Пример моментального снимка приложения содержит копию изображения памяти приложения, включая его код и сектора данных, находящиеся в оперативной памяти стеки, используемые угрозами приложения, страницы динамической памяти соответствующего приложения и т.д.
[0032] В некоторых вариантах осуществления генерация моментального снимка памяти содержит отсрочку реализации гостевой VM 32 для обеспечения возможности копирования содержимого соответствующих секторов памяти. В альтернативном варианте осуществления проверка памяти осуществляется "вживую" без генерации моментальных снимков. В таких вариантах осуществления гипервизор 30 может сопоставлять набор страниц физической памяти, используемых гостевой VM 32, страницам виртуальной памяти, используемым VM 33 безопасности. VM 33 безопасности может тогда проверять содержимое соответствующих страниц памяти, например, в ответ на определенное событие, без необходимости отсрочки реализации гостевой VM 32 или копирования и передачи соответствующего содержимого. Один пример средства криминалистической проверки памяти "вживую" представляет собой инфраструктуру Volatility, предлагаемую Volatility Foundation.
[0033] Другой пример криминалистического средства представляет собой средство инвентаризации приложения, выполненное с возможностью нумерации структур программного обеспечения, установленных в настоящий момент и/или реализованных в клиентской системе. Еще один пример криминалистического средства представляет собой перехватчик конфигурации, запрограммированный для получения набора настроек конфигурации (например, текущие значения различных параметров OS, настроек аппаратного обеспечения, настроек безопасности, настроек межсетевой защиты и т.д.). Другие примеры криминалистических средств запрограммированы для сбора журнала регистрации событий системы и/или приложения, или данных сбоя системы (например, данных аварийного сбоя Windows).
[0034] Фиг. 2-А иллюстрирует пример конфигурации аппаратного обеспечения клиентской системы 12, например, систем 12a-d на фиг. 1. Для простоты проиллюстрированная клиентская система представляет собой компьютерную систему; конфигурация аппаратного обеспечения других клиентских систем, например, мобильных телефонов, часов, и т.п. может несколько отличаться от проиллюстрированной конфигурации. Клиентская система 12 содержит набор физических устройств, включающий в себя аппаратный процессор 16 и модуль 18 памяти. В некоторых вариантах осуществления процессор 12 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке и т.д.), выполненное с возможностью реализации вычислительных и/или логических операций с набором сигналов и/или данных. В некоторых вариантах осуществления такие операции поступают к процессору 12 в форме последовательности инструкций для процессора (например, машинного кода или кодировки другого типа). Модуль 18 памяти может включать в себя энергозависимые машиночитаемые носители (например, DRAM, SRAM), сохраняющие инструкции и/или данные, полученные или генерированные процессором 16.
[0035] В зависимости от типа и производительности устройства, клиентская система 12 может дополнительно включать в себя набор устройств 20 ввода, например клавиатуру, мышь, сенсорный экран и т.п., обеспечивающих ввод пользователем данных и/или инструкций для клиентской системы 12. Набор устройств 22 вывода, например, монитор или жидкокристаллический дисплей, может передавать пользователю информацию, например, посредством графического пользовательского интерфейса. Устройства 24 хранения включают в себя машиночитаемые носители, обеспечивающие энергонезависимое хранение, чтение и запись инструкций и/или данных процессора. Примеры устройств 24 хранения включают в себя магнитные и оптические диски и устройства флеш-памяти, а также съемные носители, например CD и/или DVD диски и приводы. Набор сетевых адаптеров 26 обеспечивает подсоединение клиентской системы 12 к сети 11 передачи данных и/или к другим устройствам/компьютерным системам. Блок 28 контроллера в общем виде представляет собой множество систем, периферийных и/или микропроцессорных шин, и/или каких-либо других схем, обеспечивающих сообщение между процессором 16 и устройствами 18, 20, 22, 24 и 26. Например, блок 28 контроллера может включать в себя, наряду с прочим, блок управления памятью (MMU), контроллер ввода/вывода (I/O) и контроллер прерываний. В другом примере, блок 28 контроллера может включать в себя соединение процессора 16 с памятью 18 типа "северного моста" и/или соединение процессора 16 с устройствами 20, 22, 24, и 26 типа "южного моста". В некоторых вариантах осуществления блок 28 контроллера может быть интегрирован, частично или полностью, с процессором 16, например, MMU может находиться на общей полупроводниковой подложке с процессором 16.
[0036] Фиг. 2-В иллюстрирует пример конфигурации аппаратного обеспечения сервера 14 безопасности. Сервер 14 содержит аппаратный процессор 116, сервер 118 памяти, набор устройств 124 хранения сервера и набор сетевых адаптеров 126, все из которых соединены блоком 128 контроллера сервера. Работа устройств 116, 118, 124, и 126 может быть аналогична работе устройств 16, 18, 24, и 26, описанных выше. Например, процессор 116 сервера может включать в себя интегральную схему, выполненную с возможностью реализации вычислительных и/или логических операций с набором сигналов и/или данных. Сервер 118 памяти может включать в себя постоянные машиночитаемые носители (например, RAM), сохраняющие данные/сигналы, полученные или генерированные процессором 116 при выполнении вычислений. Сетевые адаптеры 126 обеспечивают подсоединение сервера 14 безопасности к сети 11 передачи данных.
[0037] В некоторых вариантах осуществления клиентская система 12 выполнена с возможностью предоставления набора виртуальных машин, например, как проиллюстрировано на фиг. 3-А-В. Виртуальная машина (VM) эмулирует действительную физическую машинную/компьютерную систему с использованием любых известных из уровня техники технологий аппаратной виртуализации. В некоторых примерах конфигурации в клиентской системе 12 реализован гипервизор 30, причем гипервизор 30 выполнен с возможностью создания или обеспечения множества виртуализованных устройств, например, виртуального процессора и виртуального блока управления памятью, и отображения для программного обеспечения таких виртуализованных устройств, имитируя реальные, физические устройства клиентской системы 12. Такие функции широко известны из уровня техники как реализация виртуальной машины. Гипервизор 30 может дополнительно обеспечивать, что множество виртуальных машин делят ресурсы аппаратного обеспечения хост-системы 12, так что каждая VM может работать независимо и не знать о наличии других VM, одновременно реализованных в клиентской системе 12. Примеры популярных гипервизоров, наряду с прочими, включают в себя VMware vSphere, предлагаемые VMware Inc., и открытые гипервизоры Xen.
[0038] В примере конфигурации, проиллюстрированном на фиг. 3-А-В, гостевая VM 32 реализует гостевую операционную систему 34 и приложение 36. Хотя фиг. 3-А-В иллюстрирует только одну гостевую VM, в таких приложениях, как инфраструктура виртуальных рабочих столов (VDI) и серверные парки, клиентская система 12 может реализовывать множество таких VM одновременно (например, сотни). Каждая гостевая VM включает в себя по меньшей мере один виртуализованный процессор и может дополнительно включать в себя другие виртуализованные устройства, например, виртуализованные устройства ввода, устройства вывода, устройства хранения и сетевые устройства, а также, наряду с прочими, виртуализованный контроллер. Каждый виртуализованный процессор содержит эмуляцию, по меньшей мере, части функциональности аппаратного процессора 16 и выполнен с возможностью получения для выполнения инструкций процессора. Программное обеспечение с использованием виртуального процессора для выполнения, как указывается, реализуется в рамках соответствующей виртуальной машины. Например, в примерах фиг. 3-А-В, гостевая OS 34 и приложение 36, как указывается, реализуются внутри гостевой VM 32. В противоположность этому, гипервизор 30, как указывается, реализуется за пределами, или ниже, гостевой VM 32.
[0039] OS 34 обеспечивает интерфейс между приложением 36 и виртуализованным аппаратным обеспечением гостевой VM 32. Операционная система 34 может включать в себя любые широко распространенные операционные системы, например, наряду с прочими, Microsoft Windows, MacOS, Linux, iOS или Android. Приложение 36 в общем виде представляет собой любую компьютерную программу, например, наряду с прочими, программу обработки текста, обработки изображений, проигрывателя мультимедиа, баз данных, календаря, управления личными контактными данными, браузера, игр, приложение голосовых сообщений и передачи данных.
[0040] В некоторых вариантах осуществления гипервизор 30 дополнительно предоставляет VM 33 безопасности, которая может быть реализована одновременно с гостевой VM 32, защищая гостевую VM 32 от угроз компьютерной безопасности, например, вредоносных программ и вторжения. Одна VM безопасности может защищать множество гостевых VM, реализованных в соответствующей клиентской системе. Виртуальные среды гостевой VM 32 и VM 33 безопасности могут быть изолированы друг от друга, чтобы обеспечить, что вредоносное программное обеспечение, реализованное внутри гостевой VM 32, не заразит или не будет каким-либо другим образом влиять на программное обеспечение, реализованное в VM 33 безопасности. Например, виртуальные процессоры VM 33 безопасности отличны от виртуальных процессоров других виртуальных машин, реализованных в клиентской системе 12; при преобразованиях памяти для VM 33 безопасности и гостевой VM 32 используются различные наборы таблиц страниц переадресации. VM 33 безопасности может быть выполнена с возможностью взаимодействия с сервером 14 безопасности, как подробно проиллюстрировано ниже. В некоторых вариантах осуществления VM 33 безопасности включает в себя облегченную, минимальную операционную систему (например, адаптированную версию Linux OS), модуль 42 самодиагностики по требованию и сетевой фильтр 44. В альтернативном варианте осуществления сетевой фильтр 44 реализован за пределами VM 33 безопасности, например, на уровне привилегий процессора гипервизора 30 (например, корневой уровень, кольцо уровня -1).
[0041] В некоторых вариантах осуществления гипервизор 30 может предоставлять только подмножество виртуализованных устройств для гостевой VM 32 и может обеспечивать для VM 33 безопасности непосредственное и эксклюзивное использование некоторых устройств аппаратного обеспечения клиентской системы 12. В одном таком примере гостевая VM 32 может иметь эксклюзивное использование устройств 20 ввода и устройств 22 вывода, но не иметь виртуализованного сетевого адаптера. В то же время, VM 33 безопасности может иметь непосредственное и эксклюзивное использование сетевого адаптера (адаптеров) 26. В одном таком варианте осуществления все сообщения в направлении к и/или от гостевой VM 32 отправляются/получаются через VM 33 безопасности. Гипервизор 30 может активным образом направлять сетевые пакеты между гостевой VM 32 и VM 33 безопасности, например, с использованием механизма разделения памяти. VM 33 безопасности может дополнительно использовать фильтр 44, выборочным образом разрешающий или предотвращающий сообщение между гостевой VM 32 и удаленной стороной. Такие конфигурации могут быть реализованы, например, посредством технологии VT-d, предлагаемой Intel.
[0042] В некоторых вариантах осуществления программное обеспечение компьютерной безопасности, реализованное в клиентской системе 12, дополнительно содержит модуль 40 самодиагностики реального времени, реализованный за пределами защищенной гостевой VM 32. Термин "самодиагностика" при этом используется для обозначения действий, нацеленных на сбор информации о программном обеспечении, реализованном в данной VM, из положения за пределами соответствующей VM. Примеры самодиагностики включают в себя, наряду с прочими, определение, осуществляет ли программное обеспечение, реализованное в рамках соответствующей VM, определенные действия (например, выполняет определенные инструкции процессора, осуществляет доступ к определенным ресурсам аппаратного обеспечения, использует определенные сервисы OS, осуществляет доступ к определенные ячейкам памяти и т.д.). Другие примеры самодиагностики включают в себя определение адресов памяти, используемых различными объектами программного обеспечения, реализованными в рамках соответствующей VM, и/или контроль доступа к ячейкам памяти, расположенными по таким адресам.
[0043] Модуль 40 может быть встроен в гипервизор 30, например, в виде библиотеки, или может поставляться в виде компьютерной программы, отличной и независимой от гипервизора 30, но реализованной на уровне привилегий процессора гипервизора 30 (например, корневой режим, кольцо уровня - 1). В альтернативном варианте осуществления модуль самодиагностики реального времени может быть реализован в отдельной виртуальной машине, отличной от гостевой VM 32. Модуль 40 может быть процессом, имеющим отдельный предусмотренный графиком поток выполнения, или может работать в виде совокупности не предусмотренных графиком объектов кода, выполняемых при наступлении определенных событий, как проиллюстрировано ниже.
[0044] Модуль 40 выполнен с возможностью мониторинга поведения множества выполняемых структур (например, процессов, угроз, приложений). Такой мониторинг может включать в себя определение наступления различных событий во время реализации соответствующего программного обеспечения и выборочное отправление отчета о таких событиях серверу 14 безопасности. Таким образом могут быть определены различные типы событий, например, вызовы определенных функций OS, системные вызовы и т.д. Другие примеры определенных событий включают в себя, наряду с прочими, попытку модификации функции OS 34 (манипуляции с кодом, широко известные из уровня техники как исправление кода или привязка), попытку одной единицы программного обеспечения закачивания кода в другую единицу программного обеспечения, попытку запуска компонента программного обеспечения, не имеющего цифровой подписи, и попытку обойти проверку цифровой подписи. Другие типы определенных событий могут включать в себя открытие файла, создание файла, запись в файл, удаление файла, копирование файла, создание процесса, завершение процесса, составление графика потока для выполнения, отсрочку потока по причине события синхронизации (например, взаимного исключения), создание области динамической памяти, выделение памяти из области динамической памяти, увеличение размера стека выполнения, изменения права доступа к памяти, осуществление операций загрузки (например, из диска в память), осуществление операций выгрузки (например, из памяти на диск), загрузку выполняемых модулей (например, библиотеки общего пользования - DLL), открытие ключа системного реестра, переименование ключа системного реестра, определение приложения к новому устройству аппаратного обеспечения, установку нового сетевого соединения, прием сетевого пакета, повышение привилегий реализации потока и изменения связанного с файлом разрешения дискреционного контроля доступа (DAC).
[0045] Из уровня известно техники несколько способов определения таких событий. Они включают в себя привязку определенных функций OS, модификацию таблиц диспетчеризации и т.д. В платформах аппаратной виртуализации особые категории способов определения событий, связанных с безопасностью, основаны на определении нарушения права доступа к памяти. Наиболее современные компьютерные системы выполнены с возможностью работы с виртуальной памятью и управления преобразованиями адресов памяти с использованием выделенных структур данных, например, таблиц страниц переадресации. Системы, обеспечивающие возможность поддержки аппаратной виртуализации, обычно используют второй уровень преобразований адресов, от гостевой-физической памяти, видимой для каждой предоставленной VM, к фактической физической памяти 18 клиентской системы 12. Второе преобразование адресов обычно реализуется посредством аппаратно-ускоренных, выделенных структур данных и механизмов, управляемых процессором 16, известных как преобразование адресов второго уровня (SLAT). Популярные реализации SLAT включают в себя расширенные таблицы страниц переадресации (ЕРТ) на платформах Intel, и быстрое индексирование виртуализации (RVI)/вложенные таблицы страниц переадресации (NPT) на платформах AMD. SLAT обычно разрешает задание прав доступа к памяти для каждой страницы памяти, например, чтение/запись/выполнение.
[0046] В некоторых вариантах осуществления модуль 40 самодиагностики реального времени взаимодействует с гипервизором 30 для задания прав доступа для определенных страниц памяти посредством механизма SLAT, как описано выше. В одном таком примере определенная страница памяти содержит код, относящийся к определенной функции OS. Посредством маркировки соответствующей страницы как невыполняемой, будет запущено нарушение допуска при попытке реализации соответствующей функции OS. Нарушение может быть интерпретировано модулем 40 самодиагностики как индикатор того, что имела место попытка реализации соответствующий функции OS.
[0047] Процессор 16 может быть выполнен с возможностью запуска события процессора (например, исключения, сбоя и т.д.), когда программное обеспечение пытается осуществить доступ к соответствующей странице способом, нарушающим текущие права доступа. Один тип события процессора содержит событие выхода VM (VMExit на платформе Intel), причем процессор 16, в ответ на нарушения права доступа к памяти, переключается от выполнения кода в рамках соответствующей VM к реализации процедуры обработчика событий за пределами соответствующий VM. Другая категория событий процессора включает в себя исключение виртуализации (#VE на платформе Intel), причем процессор 16 переключается к реализации процедуры обработчика событий в соответствующей VM.
[0048] В примере конфигурации с фиг. 3-А обработчик 46а событий реализован за пределами наблюдаемой гостевой VM, на уровне привилегий процессора гипервизора 30. Такие варианты осуществления могут использовать события выхода VM для информирования модуля 40 самодиагностики реального времени о наступлении события внутри гостевой VM 32. В противоположность этому, на фиг. 3-В обработчик 46b событий реализован в рамках наблюдаемой VM, например, на уровне привилегий процессора гостевой OS 34 (например, кольцо уровня 0, режим ядра). Такие конфигурации могут использовать исключения виртуализации для детектирования событий в VM. Обработчик 46b событий может использовать механизм межпроцессного взаимодействия (например, с использованием сектора памяти общего доступа) для отправки информации о событии модулю 40 самодиагностики. Конфигурации, подобные проиллюстрированным на фиг. 3-В, могут быть более эффективными при сборе информации, чем проиллюстрированные на фиг. 3-А, поскольку обработчик 46b событий реализован в наблюдаемой VM и, следовательно, может использовать функции и механизмы гостевой OS 34 для определения семантики каждого конкретного события. Однако при реализации внутри гостевой VM 32, обработчик 46b событий может быть более уязвимым для вредоносного программного обеспечения, чем обработчик 46а событий.
[0049] Вместо того, чтобы полагаться только на модуль 40 самодиагностики реального времени или на программное обеспечение, реализованное в рамках защищенной VM для анализа событий безопасности, в некоторых вариантах осуществления настоящего изобретения дополнительно используется второй модуль, а именно модуль 42 самодиагностики по требованию. Модуль 40 самодиагностики реального времени может определять наступление различных событий в рамках наблюдаемой гостевой VM, но может не проводить сложного криминалистического анализа таких событий, поскольку такой анализ может потребовать больших вычислительных затрат и может негативно повлиять на восприятие пользователя. Вместо этого, для осуществления соответствующего криминалистического анализа может быть задействован модуль 42 самодиагностики по требованию, но такой криминалистический анализ может запускаться выборочным образом только для подмножества событий, определенных модулем 40 самодиагностики реального времени. В некоторых вариантах осуществления решение об осуществлении криминалистического анализа события принимается сервером 14 безопасности и передается соответствующей клиентской системе 12.
[0050] В некоторых вариантах осуществления модуль 40 самодиагностики реального времени и модуль 42 самодиагностики по требованию могут сообщаться друг с другом, например, посредством сектора памяти общего доступа и передачи сигналов, выполняемых посредством гипервизора 30. Например, при осуществлении криминалистических действий модуль 42 самодиагностики по требованию может считывать и использовать текущее состояние модуля 40 самодиагностики реального времени. В свою очередь, модуль самодиагностики реального времени может получать уведомления от модуля самодиагностики по требованию, например, для информирования о том, что в настоящий момент выполняются криминалистические действия.
[0051] Фиг. 4 иллюстрирует пример последовательности этапов, выполняемых для налаживания компьютерной безопасности в клиентской системе 12 согласно некоторым вариантам осуществления настоящего изобретения. При обычном сценарии защиты сети предприятия от угроз компьютерной безопасности администратор сети может инсталлировать приложение безопасности на каждой требующей защиты клиентской системе 12a-d. Приложение безопасности может включать в себя различные компоненты, например гипервизор 30, модули 40-42 самодиагностики, обработчики 46а-b событий и т.д. Проиллюстрированная последовательность этапов может выполняться, например, посредством утилиты программы инсталяции соответствующего приложения безопасности. При установке в отсутствии среды аппаратной виртуализации, программное обеспечение компьютерной безопасности может сначала заменять процессор 16 на самом высоком уровне привилегий процессора (например, в корневом режиме, кольце уровня - 1) и инсталлировать гипервизор 30. Гипервизор 30 может затем предоставлять гостевую VM 32 и перемещать все программное обеспечение, ранее реализованное в соответствующей клиентской системе, для реализации внутри гостевой VM 32. Гипервизор 30 может дополнительно налаживать VM 33 безопасности и конфигурировать способ разделения доступа к аппаратному обеспечению соответствующей клиентской системы между VM 32-33. Программа инсталяции может затем инсталлировать и запускать программное обеспечение, реализованное в рамках VM 33 безопасности, а также модуль 40 самодиагностики реального времени.
[0052] В некоторых вариантах осуществления гипервизор 30 и/или VM 33 безопасности могут быть запущены с использованием механизма защищенной загрузки или другой известной из уровня техники формы аутентификации с тем, чтобы обеспечить, что VM 33 безопасности реализует доверенное программное обеспечение. Налаживание VM 33 безопасности (этап 204) и/или реализация другого программного обеспечения в рамках VM 33 безопасности может включать в себя обмен аутентификационной информацией (например, хэш-верификацию) с сервером 14 безопасности или с другими аутентификационными структурами. В одном примере осуществления защищенная загрузка может использовать аппаратный компонент защищенного хранения клиентской системы 12, например, Доверенный Платформенный Модуль (ТРМ) на платформе Intel, и дополнительно использовать механизм аттестации целостности, например, Доверенную Технологию Реализации (ТХТ), предлагаемую Intel.
[0053] В некоторых вариантах осуществления на этапе 206 устанавливается удаленный доступ с правами администратора от сервера 14 безопасности к VM 33 безопасности. Такой доступ может обеспечивать серверу 14 безопасности (автоматически или при поддержке оператора) возможность отправки инструкций и команд непосредственно защищенной клиентской системе, например, с указанием для модуля 42 самодиагностики по требованию о проведении определенного вида криминалистического анализа или о выполнении определенной последовательности этапов очистки. Налаживание удаленного доступа с правами администратора может включать в себя, например, налаживание туннеля (т.е., безопасного канала двухточечной связи) между сервером 14 и VM 33 безопасности посредством протоколов защищенного командного процессора (SSH) или виртуальной частной сети (VPN). Фиг. 5 иллюстрирует пример такой связи. Запрос 48 о туннеле может быть отправлен либо клиентской системой 12, либо сервером 14. Запрос 48 может включать в себя индикатор протокола обмена и набор шифровальных ключей. В ответ, сообщающиеся стороны налаживают защищенный туннель 49, содержащий определенный вид обмена между ними шифровальными и маршрутными сетевыми пакетами. В некоторых вариантах осуществления гипервизор 30 направляет сетевые пакеты, полученные от сервера 14 безопасности, непосредственно VM 33 безопасности.
[0054] Фиг. 6 иллюстрирует пример обмена данными между сервером 14 безопасности и защищенной клиентской системой согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 12 может отправлять индикатор 50 события, чтобы проинформировать сервер 14 о наступления события во время реализации программного обеспечения внутри гостевой VM 32. Индикатор 50 события может включать в себя индикатор типа события для соответствующего события, метку времени события и идентификатор (ID клиента) для соответствующей клиентской системы 12 и/или гостевой VM 32.
[0055] В ответ, сервер 14 может отправлять клиентской системе 12 запрос 52 на проведение анализа, при этом запрос 52 дает команду модулю 42 самодиагностики по требованию на осуществление определенных криминалистических действий в клиентской системе 12. Запрос 52 на проведение анализа может включать в себя индикатор криминалистического средства, которое должно быть использовано модулем 42 для выполнения сбора данных/анализа события, и/или индикатор некоторого другого вида ресурсов безопасности. В некоторых вариантах осуществления запрос 52 на проведение анализа может быть отправлен клиентской системе в ответ на прием индикатора события от другой клиентской системы.
[0056] В некоторых вариантах осуществления в ответ на осуществление запрошенных криминалистических действий, модуль 42 самодиагностики по требованию отправляет отчет 54 криминалистической проверки серверу 14, причем отчет 54 содержит результат выполнения соответствующих криминалистических действий. Отчет 54 может включать в себя, например, список объектов программного обеспечения, список адресов памяти, список настроек безопасности или настроек аппаратного обеспечения и т.д.
[0057] В ответ на прием отчета 54 криминалистической проверки, сервер 14 может определять, является ли соответствующая клиентская система/гостевая VM уязвимой для определенного вида угрозы компьютерной безопасности, например, заражена ли соответствующая клиентская система/гостевая VM вредоносным программным обеспечением. Если да, сервер 14 может отправлять соответствующей клиентской системе 12 предупреждение 56 о нарушении безопасности. В некоторых вариантах осуществления сервер 14 дополнительно передает индикатор 58 решения проблем, содержащий, например, индикатор средства очистки, или набор параметрических величин для конфигурирования сетевого фильтра 44.
[0058] Фиг. 7 иллюстрирует пример последовательности этапов, выполняемых модулем 40 самодиагностики реального времени согласно некоторым вариантам осуществления настоящего изобретения. Модуль 40 может быть выполнен с возможностью приема по меньшей мере двух видов сообщений/уведомлений: уведомлений от обработчиков 46а-b событий о наступлении события внутри гостевой VM 32 и уведомлений от VM 33 безопасности (например, от модуля 42 самодиагностики по требованию, сообщающие модулю 40, что в настоящий момент осуществляются криминалистические действия). При приеме уведомлений о событиях, на этапе 226 модуль 40 может выполнять предварительный анализ таких уведомлений о событиях. В некоторых вариантах осуществления такие предварительные анализы требуют минимальных вычислительных затрат, максимально снижая негативное влияние на восприятие пользователя. Например, на этапе 226 могут фильтровать уведомления о событиях с использованием относительно простого набора правил. Только определенные виды событий могут быть переданы серверу 14 безопасности (этапы 228-230). В одном примере осуществления события, передаваемые серверу 14 безопасности, включают в себя, наряду с прочими, попытку привязки или исправления ядра OS, подгрузку неизвестных модулей и попытку реализации кода из определенной области памяти. Когда определенное событие не принадлежит к категории событий, заслуживающих отчета, в некоторых вариантах осуществления модуля 40 осуществляют эмуляцию соответствующего события, а затем возобновляют реализацию гостевой VM 32.
[0059] Когда определенное событие содержит уведомление от VM 33 безопасности (этап 232), в некоторых вариантах осуществления на устройстве вывода клиентской системы 12 могут отображать предупреждающее сообщение, например, чтобы проинформировать пользователя о том, что клиентская система 12 может испытывать временное замедление по причине осуществления криминалистических действий или действий по преодолению угрозы. На следующем этапе 236, в некоторых вариантах осуществления модуль 40 самодиагностики реального времени может взаимодействовать и содействовать модулю 42 самодиагностики по требованию при выполнении криминалистических действий/действий по решению проблем. Пример такого взаимодействия включает в себя вариант, в котором модуль 42 самодиагностики по требованию запрашивает текущее состояние модуля 40 самодиагностики реального времени.
[0060] Фиг. 8 иллюстрирует пример последовательности этапов, выполняемых модулем 42 самодиагностики по требованию согласно некоторым вариантам осуществления настоящего изобретения. В последовательности этапов 250-252, модуль 42 может получать запросы на проведение анализа от сервера 14, например, через защищенный туннель 49, организованный между сервером 14 и VM 33 безопасности (см. фиг. 5). В некоторых вариантах осуществления гипервизор 30, в ответ на прием запроса 52 на проведение анализа, может автоматически переключаться от реализации гостевой VM 32 к реализации VM 33 безопасности и модуля 42 самодиагностики по требованию.
[0061] Запрос 52 может содержать информацию о наборе средств и/или ресурсов безопасности, которые следует использовать при криминалистических действиях. Например, запрос 52 на проведение анализа может включать в себя индикатор местоположения (например, адресов памяти, сетевых путей), обеспечивающих выборочное извлечение соответствующих средств из хранилища 15 средств. На этапе 256, модуль 42 может осуществлять доступ к таким средствам/ресурсам по сети 11 передачи данных. Осуществление доступа к средству/ресурсу может включать в себя загрузку соответствующего средства/ресурса из хранилища 15 средств на локальное устройство 24 хранения клиентской системы 12 (фиг. 2-А). В предпочтительном варианте осуществления выполнение доступа к средству/ресурсу включает в себя присоединение модулем 42 по требованию соответствующего средства/ресурса из их удаленного местоположения. В данном документе присоединение обозначает создание соединения между удаленным ресурсом (находящимся в хранилище 15 средств) и локальной файловой системой VM 33 безопасности, так что VM 33 безопасности может осуществлять доступ к соответствующему ресурсу посредством локальной файловой системы. Например, в файловой системе Linux, присоединение достигается посредством команды "присоединения", а указанное соединение содержит точку присоединения.
[0062] В некоторых вариантах осуществления сервер 14 может предписывать явным образом модулю 42 осуществлять доступ и/или присоединение к соответствующим средствам/ресурсам посредством туннеля 49. В ответ на осуществление доступа к средства/ресурсам, в последовательности этапов 258-260-262 модуль 42 может выполнять запрошенные криминалистические действия, отправлять отчет 54 криминалистической проверки серверу 14 и отсоединять или каким-либо другим образом отбрасывать соответствующие средства/ресурсы. Отбрасывание средств/ресурсов в конце криминалистического анализа может быть предпочтительным, поскольку оно предотвращает распространение вредоносного программного обеспечения между различными сеансами криминалистического анализа, и оно обеспечивает, что клиентские системы 12а-с всегда используют последнюю версию соответствующего ресурса, имеющегося в хранилище 15 средств.
[0063] Фиг. 9 иллюстрирует пример последовательности этапов, выполняемых сервером 14 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Сервер 14 может быть выполнен с возможностью приема сообщений, полученных от клиентских систем 12a-d (этапы 280-282). Когда такое сообщение содержит индикатор события (т.е. уведомление, что событие наступило в защищенной клиентской системе), в некоторых вариантах осуществления соответствующие событие регистрируют (этап 286) и определяют согласно индикатору 50 события, следует ли запросить криминалистический анализ и какой вид анализа следует запросить. В одном таком примере, когда индикатор 50 события показывает, что была осуществлена подгрузка кода, сервер 14 может запросить анализ посредством "моментального снимка приложения" и/или криминалистического средства памяти Volatility. В некоторых вариантах осуществления определенные типы событий генерируют запросы сложных анализов с использованием множества средств и ресурсов.
[0064] Решение может быть принято согласно типу события, указанному в текущем уведомлении, и/или согласно политике безопасности, действующей в настоящий момент для соответствующей клиентской системы/гостевой VM. Процесс решения может, следовательно, включать в себя запрашивание в клиентской базе 17 данных истории события и/или определенной для клиента политики (этап 290). Другие критерии решения могут включать в себя конфигурацию аппаратного обеспечения соответствующей клиентской системы (например, имеет ли клиентская система 12 определенные компоненты аппаратного обеспечения, например, определенный вид процессора, сетевого адаптера и т.д.). Другие критерии могут включать в себя аспекты программного обеспечения, например, тип операционной системы, реализованной внутри гостевой VM 32, и тип приложения 36 (веб-сервер, базы данных обработки и т.д.). Такой решение стратегии основано на знании, что некоторое программное обеспечение является уязвимым для определенных угроз компьютерной безопасности. Процесс решения может использовать набор эвристических правил, дерево принятия решений или любые другие средства, известные из уровня техники. Один пример осуществления может использовать нейронную искусственную сеть, принимающую в качестве входных данных, например, тип события и различные значения параметров политики, и выдающую индикатор решения (например, ДА/НЕТ), показывающий, следует или нет запросить криминалистический анализ.
[0065] В некоторых вариантах осуществления решение о том, следует ли запросить криминалистический анализ и/или какой тип анализа запросить, может дополнительно учитывать историю событий, возникающих на этой клиентской системе. Такие варианты осуществления обеспечивают сопоставление событий, возникающих в различные моменты времени, и, как таковые, могут обеспечивать детектирование сложных вредоносных программ, распространяющих вредоносное информационное наполнение во множестве структур программного обеспечения (например, некоторые действия выполняются первый модулем, а другие действия - дочерним модулем первого модуля или вторым модулем, содержащим код, загруженный первым модулем).
[0066] В некоторых вариантах осуществления процесс решения может учитывать историю событий, возникающих в клиентских системах, отличных от отправителя уведомления о событии 50. В одном таком примере сервер 14 может запрашивать в журнале регистрации событий информацию о том, возникал ли недавно определенный тип событий в других клиентских системах. Всплеск таких активностей может сигнализировать о волне вредоносных программ, распространяющихся по клиентским системам (уязвимость нулевого дня), или о координированной атаке, выполняемой множеством клиентских систем.
[0067] Когда замеченное событие заслуживает криминалистического анализа (этап 292), на этапе 294 выбирают ресурсы и/или криминалистические средства для использования соответствующей клиентской системой при выполнении необходимого криминалистического анализа. Выбор могут осуществлять согласно набору правил, дереву принятия решений и т.д. В одном примере, в ответ на прием уведомления о том, что имела место подгрузка кода, сервер 14 может запросить анализ с использованием средства "моментального снимка приложения". В некоторых вариантах осуществления определенные типы событий генерируют запросы сложных анализов с использованием множества средств и ресурсов.
[0068] Когда сообщение, полученное от клиентской системы 12, содержит отчет 54 криминалистической проверки (этап 298), сервер 14 может анализировать соответствующий отчет (этап 300) и по возможности дополнять отчет 54 другими отчетами от той же или от других клиентских систем, и определять, являются ли какие-либо клиентские системы 12а-с уязвимыми для угрозы компьютерной безопасности (например, вероятно атакованы вредоносным модулем). Если да, сервер 14 может отправлять уведомление администратору и/или предупреждение 56 о нарушении безопасности затронутой клиентской системе. На следующем этапе 306, сервер 14 может отправлять индикатор 58 решения проблем соответствующей клиентской системе, например, через защищенный туннель 49. Индикатор 58 решения проблем может включать в себя команды, инструкции и/или индикатор набора средств очистки.
[0069] В примерах вариантов осуществления, описанных выше (фиг. 7-8-9), решения о том, следует ли запросить криминалистический анализ и/или какой тип анализа необходимо запросить, принимаются сервером 14 безопасности. В альтернативном варианте осуществления модуль 42 самодиагностики по требованию принимает запрос 52 на проведение анализа и индикатор 50 события непосредственно от модуля 40 самодиагностики реального времени, например, посредством механизма межпроцессного сообщения, управляемого гипервизором 30. Модуль 42 самодиагностики по требованию может затем выбирать для использования набор криминалистических средств/ресурсов согласно индикатору 50 события и/или другим критериям, как описано выше. В таких вариантах осуществления решение об осуществлении доступа (например, присоединения) к соответствующим ресурсам, следовательно, принимается в защищенной клиентской системе.
[0070] В некоторых вариантах осуществления настоящего изобретения компьютерная безопасность дополнительно усилена путем использования сетевого фильтра 44, регулирующего сообщение между клиентской системой 12 и сервером 14 безопасности или между клиентской системой 12 и другими структурами, подсоединенными к сети 11 передачи данных. В одном примере VM 33 безопасности может быть выполнена с возможностью эксклюзивного использования сетевого адаптера (адаптеров) 26 клиентской системы 12. Гипервизор 30 может затем направлять все сообщения из/в гостевую VM 32 посредством сетевого фильтра 44 VM 33 безопасности. В некоторых вариантах осуществления, когда сервер 14 определяет, что клиентская система 12 является уязвимой или вероятно атакована вредоносным модулем, сервер 14 может предписывать, чтобы сетевой фильтр 44 блокировал все сообщения из/в гостевую VM 32 для предотвращения соединения гостевой VM 32 с другими клиентскими системами по локальной сети или для предотвращения доступа гостевой VM 32 к сети интернет. В альтернативном варианте осуществления сетевой фильтр 44 может блокировать или каким-либо другим образом регулировать сообщение между гостевой VM 32 и другим модулем, в то время как модуль 42 самодиагностики по требованию осуществляет криминалистические действия.
[0071] В некоторых вариантах осуществления настоящего изобретения обеспечена защита относительно большого количества клиентских систем (например, сети предприятия) от угроз компьютерной безопасности, например, вредоносных программ, шпионских программ, рекламных программ и неавторизованного вторжения. В некоторых вариантах осуществления может быть дополнительно обеспечено простое и надежное управление безопасностью из центральной точки, например, из сервера безопасности, соединенного с возможностью связи с защищенными клиентскими системами. Такая централизация может быть особенно предпочтительна для приложений облачных вычислений, например, для управления веб-серверных парков и инфраструктуры виртуальных рабочих столов, причем на одной аппаратной платформе могут работать одновременно сотни виртуальных машин.
[0072] В некоторых вариантах осуществления каждый защищенный клиент использует модуль самодиагностики реального времени и модуль самодиагностики по требованию. Модуль самодиагностики реального времени определяет наступление определенных событий в рамках защищенной виртуальной машины, предоставленной в соответствующей клиентской системе, и сообщает о наступлении на удаленный сервер безопасности. В свою очередь, сервер может выбирать криминалистическое средство из хранилища средств в зависимости от типа обнаруженного события и/или в зависимости от особенностей аппаратного обеспечения и/или программного обеспечения соответствующего клиента. Модуль самодиагностики по требованию может извлекать криминалистическое средство и реализовывать его с целью осуществления криминалистического анализа события (например, для выявления контекста соответствующего события). Результат криминалистического анализа может затем быть передан серверу безопасности, который может использовать эту информацию для определения, атакован ли соответствующий клиент вредоносным программным обеспечением или нарушителем.
[0073] Некоторые варианты осуществления настоящего изобретения основаны на том представлении, что типичные решения по обеспечению компьютерной безопасности для защиты большого количества клиентов не отвечают надлежащим образом на атаки. Даже когда существующие решения обеспечивают возможность детектирования атаки, для анализа и восстановления может потребоваться, чтобы оператор был направлен к затронутой клиентской системе, в частности, в случае сложных угроз, например, в случае вируса-вымогателя и вредоносного вторжения. В противоположность этому, в некоторых вариантах осуществления настоящего изобретения кастомизированный сбор данных/установление фактов (криминалистический анализ) и преодоление угрозы (например, очистка от вредоносной программы) осуществляется на клиентской машине автоматически, по непосредственному предписанию сервера безопасности. В одном примере осуществления настоящего изобретения предусмотрен защищенный канал двухточечной связи между защищенным клиентом и сервером безопасности, позволяющий оператору удаленно осуществлять конфигурацию соответствующего клиента и даже проводить криминалистические/очищающие операции на соответствующем клиенте из удаленного терминала.
[0074] Путем накопления результатов детектирования событий и криминалистического анализа от множества клиентов, некоторые варианты осуществления могут обеспечивать быстрое детектирование ранее неизвестных вредоносных программ (также известных из уровня техники как атаки нулевого дня). Обычное детектирование угрозы на стороне сервера обычно требует значительной вычислительной мощности на стороне сервера. В противоположность этому, для типичных сценариев детектирования клиент-сервер в некоторых вариантах осуществления настоящего изобретения некоторые затратные относящиеся к безопасности операции, например, фильтрация событий и криминалистический анализ, выполняются самой клиентской системой. В некоторых вариантах осуществления, следовательно, используется распределенная вычислительная мощность множества клиентских машин при осуществлении некоторых затратных операций детектирования угроз и анализа вместо того, чтобы перекладывать основную вычислительную нагрузку на сервер безопасности.
[0075] Некоторые варианты осуществления настоящего изобретения дополнительно основаны на том наблюдении, что не все события, возникающие в компьютерной системе, информативны по сути или свидетельствуют об угрозе компьютерной безопасности. Одни и те же типы событий (например, осуществление доступа к URL, открытие файла на диске и т.д.) могут указывать на злой умысел в некоторых сценариях, являясь абсолютно безобидными в других сценариях. В одном таком примере, событие может не свидетельствовать о злом умысле, когда рассматривается самостоятельно, но может свидетельствовать о вредоносных программах, когда оно осуществляется как часть определенной последовательности событий. Например, запись файла на диск может быть безобидной операцией, когда рассматривается самостоятельно (т.е., многие процессы и приложения выполняют доступ к диску на законных основаниях). Однако событие записи может быть подозрительным, когда модуль, осуществляющий запись, является получателем кода, загруженного из другого модуля. В некоторых вариантах осуществления настоящего изобретения модуль самодиагностики реального времени предварительно отфильтровывает определяемые события согласно различным критериям и отправляет отчеты серверу безопасности только о выборочном подмножестве таких событий. Такая стратегия дополнительно сокращает вычислительную нагрузку на сервер.
[0076] В традиционных приложениях компьютерной безопасности средства обеспечения безопасности на стороне клиента (например, антивредоносные подпрограммы, базы данных по характерным признакам объектов и т.д.) локализованы в клиентской компьютерной системе и сохраняются в актуальном состоянии посредством периодических обновлений программного обеспечения. В противоположность этому, в некоторых вариантах осуществления настоящего изобретения средства обеспечения безопасности сохраняются в централизованном хранилище (например, на выделенном сервере в сети предприятия). Клиентские системы могут извлекать по требованию только необходимые средства, при наличии предписания сервера безопасности, что таким образом устраняет необходимость громоздких обновлений программного обеспечения и затратное по времени сетевое администрирование. В предпочтительном варианте осуществления клиентские системы осуществляют доступ удаленным образом к средствам обеспечения безопасности посредством присоединения удаленного централизованного хранилища средств к файловой системе клиента.
[0077] Сохранение большинства средств обеспечения безопасности в центральном хранилище, в противоположность защищенному клиенту или серверу безопасности, обеспечивает, что клиенты имеют доступ к самой последней версии соответствующих средств обеспечения безопасности. Другое значительное преимущество таких конфигураций заключается в том, что они обеспечивают значительно меньшие размеры программного обеспечения на стороне клиента и сервера по сравнению с традиционными системами безопасности. Такие облегченные компоненты (например, гипервизор 30, модули самодиагностики реального времени и по требованию 40-42) являются легкими для разработки, поддержки и установки у клиентов. Также они требуют меньшего количества обновлений, чем комплексные обеспечивающие безопасность решения, включающие в себя криминалистические средства и/или средства преодоления угрозы. Кроме того, облегченные компоненты открывают относительно меньшую поверхность для атак вредоносного программного обеспечения и хакеров.
[0078] Для специалистов в данной области техники очевидно, что описанные выше варианты осуществления могут быть могут быть различным образом видоизменены без отступления от области патентной защиты изобретения. Соответственно, область патентной защиты изобретения должна определяться последующей формулой изобретения и ее эквивалентами.