Область техники
Настоящее изобретение относится к системам и способам антивирусной защиты виртуальных машин и более конкретно к системам и способом оптимизации антивирусной проверки виртуальных машин.
Уровень техники
В настоящее время виртуальные машины получили большое распространение. Виртуальная машина (ВМ) является программной средой, которая внутри физической («реальной») машины (например, компьютера или сервера) обеспечивает изоляцию работы друг от друга программ и даже операционных систем, в том числе работу BIOS, процессора (CPU), оперативной памяти, жесткого диска и периферийных устройств. Таким образом, обеспечивается имитация физической машины внутри другой физической машины. Кроме того, если виртуальная машина, так же как и физическая машина, обладает собственной операционной системой, то она может отличаться от операционной системы физической машины. На одной физической машине, которая также именуется как «хост-машина», может быть создана виртуальная компьютерная среда, содержащая одновременно несколько виртуальных машин. Во время функционирования виртуальные машины используют одни и те же вычислительные ресурсы хост-машины, управление которыми будет обеспечиваться с помощью монитора виртуальных машин.
Монитор виртуальных машин, который также известен как гипервизор, обеспечивает одновременную и параллельную работу виртуальных машин, развернутых на хост-машине, а также управляет вычислительными ресурсами хост-машины, разделяя их между всеми виртуальными машинами. Таким образом, гипервизор выделяет определенное количество ресурсов каждой виртуальной машине. Каждая ВМ затем использует выделенные ресурсы как для работы собственной операционной системы, так и для выполнения задач пользователя. Кроме того, гипервизор может предоставлять виртуальным машинам средства связи и взаимодействия между собой, например, сетевые соединения, как будто это разные физические машины.
Кроме того, виртуальная машина, как и любая физическая компьютерная система, также уязвима для вредоносного программного обеспечения. Следовательно, существует необходимость в антивирусной системе для их защиты. Для решения такой задачи могут использоваться разные подходы. Например, децентрализованный подход к организации защиты виртуальных машин, развернутых на хост-машине, подразумевающий запуск антивирусного программного обеспечения на каждой виртуальной машине. Противоположным данному подходу является централизованный подход к защите, в рамках которого задачи безопасности решаются посредством внедренного в виртуальную среду на хост-машине единого виртуального устройства безопасности. Кроме того, существуют подходы, представляющие собой комбинацию из двух упомянутых выше подходов.
Одним из основных вызовов для индустрии безопасности в рамках любого из подходов к организации защиты виртуальных машин является оптимизация использования подсистемой безопасности ресурсов хост-машины. Из уровня техники известны различные способы для решения задачи оптимизации использования ресурсов, как например: отказ от ненужных сканирований, разнесение операций сканирования по времени или дедупликация (от лат.Deduplicatio - устранение дубликатов) сканирований файлов. Все предлагаемые способы позволяют использовать вычислительные ресурсы хост-машины более экономно. Однако данные способы не лишены недостатков. В частности, существующие решения, позволяющие избегать повторного сканирования одинаковых файлов, используют закэшированный результат сканирования файла только в случае, если предыдущее сканирование было завершено. В противном случае новое сканирование осуществляется без учета того, что, возможно, в настоящий момент уже ведется сканирование точно такого же файла и новое сканирование будет дублировать потребление ресурсов и приведет к напрасной растрате вычислительных ресурсов дисковой подсистемы, памяти и процессора.
Таким образом, анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно заявленная технология позволяет избегать параллельного сканирования одинаковых файлов в виртуальной среде.
Раскрытие изобретения
Настоящее изобретение предназначено для снижения используемых сканирующей подсистемой вычислительных ресурсов.
Технический результат заявленного изобретения заключается в снижении нагрузки на сканирующую подсистему, выполняющую антивирусную проверку файлов на одной или более компьютерных системах, путем предотвращения параллельного сканирования одинаковых файлов.
В одном из вариантов осуществления данного изобретения реализуется способ работы сканирующей подсистемы, выполняющей антивирусную проверку файлов на одной или более компьютерных системах и выдающей вердикты об их принадлежности к вредоносным файлам, по которому: (а) в отношении файлов, для которых отсутствует запись в кэше вердиктов, проверяют, проверяется ли такой же файл в настоящий момент сканирующей подсистемой в параллельном потоке; где параллельным потоком является антивирусная проверка другого файла на любой компьютерной системе; (б) если такой же файл проверяется в параллельном потоке, то блокируют проверку данного файла, и, дожидаясь окончания проверки упомянутого файла в параллельном потоке, берут в обработку другой файл; (в) помещают в кэш вердиктов результат обработки файла из упомянутого параллельного потока.
В другом варианте осуществления данного изобретения кэш вердиктов является общим для всех потоков.
Еще в одном варианте осуществления данного изобретения компьютерная система является виртуальной машиной.
В другом варианте осуществления данного изобретения файл является таким же по отношению к другому файлу, если совпадают их идентификаторы.
Еще в одном варианте осуществления идентификатором файла является хэш-сумма, которая вычисляется путем математических преобразований содержимого файла и/или его метаданных.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 показывает пример виртуальной среды, в рамках которой может быть реализовано заявленное изобретение.
Фиг. 2 показывает примерную схему сканирующей подсистемы в рамках виртуальной среды.
Фиг. 3 показывает пример компьютерной системы общего назначения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
На Фиг. 1 представлен пример виртуальной среды, которая развернута на хост-машине 100. В настоящем изобретении в качестве хост-машины 100 может использоваться кластер серверов, сервер или компьютерное устройство, обладающий достаточными вычислительными ресурсами для развертывания виртуальной среды, содержащей множество виртуальных машин 103 {BM1, ВМ2, ВМ3, BM4,…,BMN}. Множество виртуальных машин 103 может включать в себя десятки и более виртуальных машин (далее ВМ). В одном из вариантов осуществления виртуальная среда может являться корпоративной (локальной) сетью. Каждая ВМ 103 предназначена для запуска на ней гостевой операционной системы (ОС клиента), которая может быть необходима как для работы пользователей, так и для файловых серверов или веб-серверов. Можно отметить, что ОС клиента может быть разной (например, Microsoft Windows, Linux, Mac OS) на каждой ВМ 103 и зависит от потребностей каждого пользователя конкретной ВМ. Аппаратная конфигурация, требуемая для работы каждой ВМ 103, также будет различна. Под аппаратной конфигурацией понимается количество выделенных ресурсов (объем памяти, размер жесткого диска, число ядер процессора, число процессоров и т.д.) хост-машины 100.
В одном из вариантов осуществления заявленного изобретения защиту виртуальной среды от вредоносных программ обеспечивает сканирующая подсистема, реализованная в виде отдельной виртуальной машины - виртуального устройства безопасности 102, которое предназначено для централизованного выполнения задач антивирусной проверки. Стоит отметить, что виртуальное устройство безопасности 102 по сути своей является такой же виртуальной машиной, как и ВМ 103, только предназначено, как упоминалось выше, для выполнения задач антивирусной проверки. Виртуальное устройство безопасности 102 позволяет разгрузить ВМ 103 от локального выполнения части ресурсоемких операций при выполнении задач антивирусной проверки, что позволит уменьшить нагрузку как на сами ВМ 103, так и на хост-машину 100. Например, использование виртуального устройства безопасности 102 для проведения такого метода антивирусной проверки, как сигнатурный анализ файлов, значительно снизит нагрузку на ресурсы хост-машины 100, в частности, уменьшится количество дисковых операций (работа с жестким диском) и использование памяти. Виртуальное средство безопасности 102 может содержать в себе функционал, который позволяет проводить как более простой тип антивирусной проверки (например, сигнатурный анализ файлов, основанный на сравнении хэш-сумм), так и более сложный, позволяющий провести более детальный анализ (например, используя экспертную систему, в основе которой лежит анализ совершающихся действий). Функционал сканирующей подсистемы зависит от настройки антивирусной системы, которая проводится, как правило, при внедрении такой системы в виртуальную среду. Стоит отметить, что функционал виртуального устройства безопасности 102 может меняться со временем, например, из-за изменения количества выделенных вычислительных ресурсов хост-машины 100.
Для обеспечения одновременной работы всех ВМ 103 и виртуального устройства безопасности 102 хост-машина 100 содержит в себе гипервизор 101. Гипервизор 101 предназначен для обеспечения изоляции одной ВМ от другой ВМ, управления (регулирования) вычислительными ресурсами хост-машины 100 и разделения данных вычислительных ресурсов между всеми ВМ 103 и виртуальным устройством безопасности 102. Регулирование вычислительных ресурсов позволяет обеспечивать работу всех ВМ без зависания и задержек, несмотря на то, что все ВМ используют одни и те же вычислительные ресурсы хост-машины 100. Например, в случае одновременной работы нескольких ВМ с носителем данных (например, жесткий диск) гипервизору 101 необходимо сформировать очередь доступа к нему. Это связано с тем, что, хотя для каждой ВМ из 103 были выделены специальные области на жестком диске, при этом операции ввода/вывода данных происходят с помощью одного и того же элемента (например, головки диска). Кроме того, гипервизор 101 также обеспечивает связь и взаимодействие между ВМ 103, как будто ВМ 103 являются физическими компьютерными устройствами. Также гипервизор 101 позволяет осуществлять доступ виртуальному устройству безопасности 102 к данным ВМ 103. Как правило, код гипервизора 101 выполняется на уровне ядра хост-машины 100.
Кроме того, гипервизор 101 также может контролировать доступ к внешней сети, например, сети Интернет 104. Поэтому ВМ 103 и виртуальное устройство безопасности в случае необходимости имеют возможность взаимодействовать через гипервизор 101 с внешними серверами и сервисами, например, с сервисами безопасности 105 антивирусной компании. Под сервисами безопасности 105 понимают любые элементы инфраструктуры антивирусной компании, которые используются виртуальным устройством безопасности 102 удаленно, то есть находятся на удаленных серверах антивирусной компании, и предназначены, например, для предоставления виртуальному устройству безопасности 102 обновлений ПО или информации о вредоносных файлах. При этом взаимодействие виртуального устройства безопасности 102 с сервисами безопасности 105 осуществляется через гипервизор 101.
Как упоминалось выше, гипервизор 101 позволяет осуществлять доступ виртуальному устройству безопасности 102 к данным ВМ 103 (например, к файлам). При этом виртуальное устройство безопасности 102 может взаимодействовать с ВМ 103 с использованием агентов {A1, А2, …, AN} (от англ. agent-based) или без использования агентов (от англ. agentless). Первый подход подразумевает наличие агента, установленного на каждой ВМ 103. Агент позволяет выполнять те функции безопасности, которые требуют локального присутствия на виртуальной машине, например: контроль оперативной памяти, контроль приложений, анти-фишинг, антивирусная проверка содержимого электронных писем, веб-страниц и сообщений IM (англ. Instant messaging) и другие. Наличие агента позволяет запрашивать у виртуального устройства безопасности 102 антивирусную проверку любого файла на виртуальной машине. Например, в момент, когда пользователь или же процесс пытаются открыть файл, агент перехватывает доступ к файлу и отправляет запрос на антивирусную проверку файла виртуальному устройству безопасности 102. Получив такой запрос, виртуальное устройство безопасности 102 осуществляет доступ к файлу посредством гипервизора 101 и выполняет его антивирусную проверку. В одном из вариантов реализации заявленного изобретения каждый агент так же, как и виртуальное устройство безопасности является сканирующей подсистемой, позволяющей полностью или частично выполнять задачи антивирусной проверки локально на каждой из ВМ 103. Второй подход не подразумевает наличие агентов, установленных на ВМ 103. Таким образом все функции безопасности (например, полное антивирусное сканирование ВМ 103) выполняются централизованно только при помощи виртуального устройства безопасности 102.
На Фиг. 2 показан пример схемы сканирующей подсистемы в рамках виртуальной среды. В одном из вариантов осуществления заявленного изобретения сканирующая подсистема представлена виртуальным устройством безопасности 102. Особенностью данной сканирующей подсистемы в сравнении с современными антивирусными системами является то, что она позволяет уменьшить нагрузку на вычислительные ресурсы хост-машины 100 при проведении полной антивирусной проверки (сканирования) виртуальных машин 103 {BM1, ВМ2, …, ВМN} за счет предотвращения параллельного сканирования одинаковых файлов.
В предпочтительном варианте реализации виртуальное устройство безопасности 102 состоит из средства анализа 201, базы данных 202 и централизованного кэша вердиктов 203 (далее просто кэш вердиктов). База данных 202 предназначена для хранения необходимой информации для работы сканирующей подсистемы (виртуального устройства безопасности 102) и, в частности, средства анализа 201. Примерами информации могут являться, по крайней мере, сведения о типах файлов, списки доверенных и недоверенных приложений, эвристические правила (например, правила анализа событий) и сведения о результатах предыдущих проверок. Кэш вердиктов 203 позволяет хранить информацию о результатах антивирусной проверки файлов, а также позволяет сигнализировать о том, что файл находится в процессе антивирусной проверки. Информация о результатах предыдущих проверок включает в себя по меньшей мере идентификаторы проверенных файлов и вердикты. В одном из вариантов реализации идентификатором файла является его хэш (хэш-сумма файла) - это уникальный идентификатор файла, который вычисляется сканирующей подсистемой путем определенных математических преобразований информации, содержащейся в нем и (или) в его атрибутах (имя файла, размер, дата создания/модификации и т.п.). Еще в одном варианте реализации вердиктом является статус (чистый файл или вредоносный файл), присвоенный файлу по результату антивирусной проверки сканирующей подсистемы.
Средство анализа 201 предназначено для проведения анализа файлов с целью определения их вредоносности с помощью методов антивирусной проверки, которые были установлены во время развертывания подсистемы безопасности. Перечень методов антивирусной проверки будет рассмотрен ниже.
В одном из вариантов реализации виртуальное устройство безопасности 102 также содержит средство обновления (отсутствует на Фиг. 2). Средство обновления предназначено для автоматического обновления базы данных 202. Для этого средство обновления связывается с внешним сервисом обновлений (например, с сервисом безопасности 105) через сеть Интернет 104 и взаимодействует с ним для получения необходимой информации. Так как заявленное изобретение работает в виртуальной среде, то связь с сетью Интернет 104 будет происходить через гипервизор 101. Кроме того, средство анализа 201 может взаимодействовать одновременно с более чем одной ВМ 103, выполняя параллельные антивирусные проверки файлов, и формирует список потоков обработки файлов. В одном из вариантов осуществления заявленного изобретения информация из данного списка позволяет средству анализа 201 определить обрабатывается ли файл в настоящий момент в параллельном потоке. Список потоков обработки файлов включает в себя, по меньшей мере следующую информацию: идентификатор проверяемого файла, идентификатор потока и статус выполнения проверки (ход выполнения проверки).
Стоит отметить, что методами антивирусной проверки, которыми обладает средство анализа 201 могут являться все современные и известные подходы для проведения проверки объектов на наличие вредоносного кода. Под вредоносным кодом (или вредоносным программным обеспечением) понимаются действия, которые предназначены для получения несанкционированного доступа к ресурсам компьютерного устройства (хост-машины 100 или любая ВМ 103) или информации, хранящейся на компьютерном устройстве при выполнении подобного кода. Примерами подходов являются:
- сигнатурный анализ;
- анализ, основанный на сравнении хэш-значений анализируемого объекта и хэш-значений заведомо вредоносных объектов;
- анализ объекта на основании журнала событий, содержащего все произошедшие события во время эмуляции кода объекта;
- анализ объекта с использованием «песочницы» (от англ. sandbox), которая основана на анализе исполнения объекта в ограниченной среде.
В различных вариантах реализации средство анализа 201 может использовать как все выше перечисленные методы антивирусной проверки, так и только часть из них.
Виртуальное устройство безопасности 102 при помощи средства анализа 201 перед осуществлением антивирусной проверки файла вычисляет его идентификатор и осуществляет поиск по кэшу вердиктов 203 на предмет наличия вердикта ранее проведенной антивирусной проверки. Если вердикт был найден, то он наследуется файлу в рамках текущей антивирусной проверки, а сама проверка не осуществляется.
В другом варианте реализации заявленного изобретения, если вердикт по проверяемому файлу отсутствует в кэше вердиктов 203, то средство анализа 201 проверяет обрабатывается ли такой же файл в настоящий момент сканирующей подсистемой в параллельном потоке. Если такой же файл обрабатывается в параллельном потоке, то текущая антивирусная проверка файла блокируется средством анализа 201 в ожидании окончания обработки такого же файла в параллельном потоке. По окончании антивирусной проверки файла в упомянутом параллельном потоке результаты проверки применяются к файлу, антивирусная проверка которого была заблокирована средством анализа 201, и проверка данного файла не проводится.
В другом варианте реализации данного изобретения средство анализа 201 задействует вычислительные ресурсы, выделенные в рамках потока, который был заблокирован, для антивирусной проверки следующего файла, а данному файлу применят вердикт по завершению обработки такого же файла в параллельном потоке.
Рассмотрим пример сценария работы заявленного изобретения. При развертывании на хост-машине 100 виртуальной среды было создано множество виртуальных машин, часть из которых, подмножество 103 {BM1, ВМ2, …, BMN}, созданы из общего виртуального образа. На ВМ 103 установлены одинаковые операционные системы и набор приложений. Таким образом, на ВМ 103 находится много одинаковых файлов. Для обеспечения безопасности в рамках развернутой виртуальной среды предусмотрено виртуальное средство безопасности 102. Связь и взаимодействие между ВМ 103, а также доступ виртуального устройства безопасности 102 к данным ВМ 103 обеспечивается посредством гипервизора 101. При одновременном запуске множества виртуальных машин из ВМ 103 виртуальному устройству безопасности 102 (сканирующей подсистеме) необходимо провести их полное антивирусное сканирование. Виртуальное устройство безопасности 102 осуществляет сканирование файлов на ВМ 103 одновременно в параллельных потоках при помощи средства анализа 201. Для ускорения процесса сканирования средство анализа 201 использует кэш вердиктов 203 и проверяет не ведется ли обработка таких же файлов в параллельных потоках. Так перед осуществлением антивирусной проверки средство анализа 201 вычисляет идентификаторы файлов 1.1 и 2.1 и осуществляет поиск по кэшу вердиктов 203 на предмет наличия вердиктов ранее проведенной антивирусной проверки. Для файла 1.1 в кэше вердиктов 203 содержится вердикт о том, что этот файл является чистым. Для файла 2.1 вердикт отсутствует, а антивирусная проверка такого же файла в параллельном потоке не ведется, поэтому средство анализа 201 приступает к антивирусной проверке файла 2.1. Средство анализа 201 применяет известный вердикт из кэша вердиктов 203 к файлу 1.1 и переходит к антивирусной проверки следующего файла 1.2. Файлы 2.1 и 1.2 являются одинаковыми файлами. Поэтому при переходе к файлу 1.2 средство анализа 201 обнаруживает, что в отношении такого же файла 2.1 уже ведется антивирусная проверка в параллельном потоке и блокирует обработку файла 1.2, ожидая окончания антивирусной проверки файла 2.1. По завершению обработки файла 2.1 средство анализа 201 применяет вердикт к файлу 1.2 и переходит к антивирусной проверки следующего файла 2.2.
В одном из вариантов реализации заявленного изобретения сканирующая подсистема для определения обрабатывается ли файл в настоящий момент в параллельном потоке использует подход, который будет рассмотрен далее. В рамках данного подхода не используется централизованный список сканируемых в настоящий момент файлов. Вместо этого для каждого сканируемого файла в централизованном кэше вердиктов устанавливается объект синхронизации, через который можно сигнализировать об окончании сканирования. Объекты синхронизации являются частью механизма синхронизации потоков (от англ. thread synchronization), позволяющего потокам согласовывать свою работу с общими ресурсами в рамках операционных систем с вытесняющей многозадачностью. Этот механизм представляет собой набор объектов операционной системы, которые создаются и управляются программно, являются общими для всех потоков в системе (некоторые - для потоков, принадлежащих одному процессу) и используются для координирования доступа к ресурсам. В качестве ресурсов может выступать все, что может быть общим для двух и более потоков - файл, порт, запись в базе данных (например, кэше вердиктов) и даже глобальная переменная программы (которая может быть доступна из потоков, принадлежащих одному процессу).
Рассмотрим использование объектов синхронизации на примере. На виртуальной машине BM1 агент A1 перехватывает доступ к файлу «file.exe» (файл 2.1). Агент A1 отправляет в централизованный кэш вердиктов 203 на виртуальном устройстве безопасности 102 запрос на вердикт по файлу «file.exe». Централизованный кэш вердиктов 203 определяет, что вердикта по файлу нет и объект синхронизации отсутствует. Генерируется объект синхронизации, привязанный к записи в кэше вердиктов 203 для файла «file.exe», а агенту A1 возвращается идентификатор объекта синхронизации и признак необходимости проведения сканирования файла. Агент A1 приступает к сканированию файла «file.ехе» самостоятельно (агент A1 выступает в роли сканирующей подсистемы) или при помощи средства анализа 201 виртуального устройства безопасности 102 (сканирующей подсистемой является виртуальное устройство безопасности 102). На виртуальной машине ВМ2 агент А2 (или же другой поток на агенте A1) перехватывает доступ к файлу «file.exe» (файл 2.1 для агента А2) и отправляет в централизованный кэш вердиктов 203 запрос на вердикт по данному файлу «file.exe». Кэш вердиктов 203 определяет, что вердикта по файлу нет, но есть объект синхронизации, привязанный к записи кэша для файла «file.exe». Агенту А2 возвращается идентификатор объекта синхронизации и признак необходимости ожидания результата сканирования файла. Агент А2 ждет окончания сканирования файла, используя полученный идентификатор объекта синхронизации. При этом в одном из вариантов реализации время ожидания ограничено продляемым таймаутом. Агент A1 завершает сканирование файла «flle.exe», передает в централизованный кэш вердиктов 203 полученный вердикт и сигнализирует об окончании сканирования, используя идентификатор объекта синхронизации. Агент А2 завершает ожидание на объекте синхронизации и получает из централизованного кэша вердикт на файл «file.exe».
На Фиг. 3 представлен пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флэш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.
Изобретение относится к области антивирусной защиты. Технический результат заключается в расширении арсенала средств. Предлагается способ работы сканирующей подсистемы, выполняющей антивирусную проверку файлов и выдающей вердикты об их принадлежности к вредоносным файлам, по которому в отношении файлов, для которых отсутствует запись в кэше вердиктов, проверяют, проверяется ли такой же файл в настоящий момент сканирующей подсистемой в параллельном потоке, где параллельным потоком является антивирусная проверка другого файла, если такой же файл проверяется в параллельном потоке, то блокируют проверку данного файла, и, дожидаясь окончания проверки упомянутого файла в параллельном потоке, берут в обработку другой файл, помещают в кэш вердиктов результат обработки файла из упомянутого параллельного потока. 4 з.п. ф-лы, 3 ил.
1. Способ работы сканирующей подсистемы, выполняющей антивирусную проверку файлов на одной или более компьютерных системах и выдающей вердикты об их принадлежности к вредоносным файлам, по которому:
а) в отношении файлов, для которых отсутствует запись в кэше вердиктов, проверяют, проверяется ли такой же файл в настоящий момент сканирующей подсистемой в параллельном потоке;
где параллельным потоком является антивирусная проверка другого файла на любой компьютерной системе;
б) если такой же файл проверяется в параллельном потоке, то блокируют проверку данного файла, и, дожидаясь окончания проверки упомянутого файла в параллельном потоке, берут в обработку другой файл;
в) помещают в кэш вердиктов результат обработки файла из упомянутого параллельного потока.
2. Способ по п. 1, где кэш вердиктов является общим для всех потоков.
3. Способ по п. 1, где компьютерная система является виртуальной машиной.
4. Способ по п. 1, где файл является таким же по отношению к другому файлу, если совпадают их идентификаторы.
5. Способ по п. 4, идентификатором файла является хэш-сумма, которая вычисляется путем математических преобразований содержимого файла и/или его метаданных.
Система и способ оптимизации антивирусной проверки файлов | 2015 |
|
RU2606559C1 |
US 20150113650 A1, 23.04.2015 | |||
US 8161548 B1, 17.04.2012 | |||
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРОВЕРКИ ФАЙЛОВОЙ СИСТЕМЫ НА НАЛИЧИЕ ВИРУСОВ | 2010 |
|
RU2551820C2 |
СИСТЕМА И СПОСОБ ЗАЩИТЫ КОМПЬЮТЕРНОГО УСТРОЙСТВА ОТ ВРЕДОНОСНЫХ ОБЪЕКТОВ, ИСПОЛЬЗУЮЩИХ СЛОЖНЫЕ СХЕМЫ ЗАРАЖЕНИЯ | 2011 |
|
RU2454705C1 |
СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ИСПОЛНЯЕМЫХ ФАЙЛОВ НА ОСНОВАНИИ СХОДСТВА РЕСУРСОВ ИСПОЛНЯЕМЫХ ФАЙЛОВ | 2013 |
|
RU2541120C2 |
Авторы
Даты
2019-10-03—Публикация
2018-12-28—Подача