Система и способ обнаружения вредоносных файлов на распределённой системе виртуальных машин
SYSTEM AND METHOD OF DETECTING HARMFUL FILES ON DISTRIBUTED SYSTEM OF VIRTUAL MACHINES

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения вредоносных файлов на распределенной системе «защищаемых виртуальных машин».
Уровень техники
Бурное развитие в последнее десятилетие компьютерных, в том числе и облачных, технологий, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.), послужило мощным стимулом для использования упомянутых устройств во всевозможных сферах человеческой деятельности и для решения огромного количества задач (от интернет-серфинга и общения через интернет до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств быстрыми темпами росли и объемы программного обеспечения, работающего на этих устройствах, в том числе и нелегального, включающего в себя вредоносные программы.
В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (такие как логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для подбора паролей методом грубой силы (англ. bruteforce) или атак, таких как отказ в обслуживании (англ. DDOS - Denial of Service), на другие компьютеры или компьютерные сети. Третьи навязывают пользователям платные сервисы через рекламу, демонстрируемую с высокой периодичностью, платные подписки, отправку CMC на платные номера и т.д.
Для борьбы с вредоносными программами используются программы - антивирусы. Эффективная борьба с вредоносными программами в первую очередь требует своевременного обнаружения файлов, содержащих код вредоносных программ, для чего антивирусные программы применяют разнообразные технологии, такие как сигнатурный, эвристический и проактивный анализ, белые и черные списки и т.д. При этом каждая упомянутая выше технология обладает собственной эффективностью обнаружения вредоносных файлов, заключающейся в потенциальной возможности обнаружить те или иные вредоносные файлы, используя заранее предоставленные для этой цели вычислительные ресурсы компьютерной системы, на которой она работает.
В настоящее время объемы данных (в том числе и файлы), обрабатываемые компьютерными системами, настолько огромны, что их антивирусная проверка может занимать ощутимое время и требовать значительных вычислительных ресурсов, что особенно критично для пользователей персональных компьютеров. Поэтому для повышения эффективности обнаружения вредоносных файлов применяются в частности методы, повышающие эффективность использования вычислительных ресурсов компьютерных систем, на которых происходит поиск вредоносных файлов. С этой целью используются распределенные системы поиска вредоносных файлов, состоящие из нескольких серверов, на каждом из которых выполняется проверка лишь части файлов, требующих проверки.
Например, в публикации US 20050149749 A1 описана технология распределенной антивирусной проверки файлов с использованием нескольких вычислительных систем (клиентов). Задачи антивирусной проверки распределяются среди клиентов специальным централизованным балансировщиком задач. В качестве клиентов могут выступать виртуальные машины, что позволяет работать нескольким клиентам на одном физическом компьютере. Такой подход решает задачу повышения эффективности обнаружения вредоносных файлов, но при этом не повышает, и даже снижает надежность осуществляемого обнаружения вредоносных файлов, поскольку вся технология опирается на централизованный балансировщик задач, от работы которого целиком зависит и задача поиска вредоносных файлов.
В другой публикации US 8875294 B2 описана технология использования облачных технологий для поиска вредоносных файлов. Для анализа файлов используется сеть распределенных серверов (облако). Задачи антивирусной проверки распределяются по серверам в зависимости от нагрузки упомянутых серверов, для чего используется единый распределительный сервер. Такой подход при некоторых условиях (устойчивое соединение, отсутствие загрузки серверов и т.д.) решает задачу повышения эффективности обнаружения вредоносных файлов, но при этом довольно требователен к компьютерным ресурсам, упомянутым выше, и зависит от работы единого распределительного сервера, что негативно сказывается на надежность проводимой антивирусной проверки файлов.
Хотя описанные выше способы работы хорошо справляются с задачами распределенной антивирусной проверки файлов (особенно, когда средства антивирусной проверки работаю на отдельных компьютерных системах), их эффективность зачастую оказывается слишком низкой в случае большого количества файлов, требующих антивирусной проверки (из-за ограничений, накладываемых на количество файлов, которые может обработать балансировщик задач), средств проверки, выполняющих упомянутую антивирусную проверку (из-за ограничений, накладываемых на вычислительные ресурсы, предоставляемые каждому средству проверки). Кроме того, в случае работы в виртуальном окружении, страдает отказоустойчивость распределенной системы антивирусной проверки файлов, поскольку в виртуальном окружении не реализуется независимость и заменимость средств, осуществляющих антивирусную проверку файлов.
Настоящее изобретение позволяет решать задачу обнаружения вредоносных файлов на распределенной системе «защищаемых виртуальных машин».
Раскрытие изобретения
Изобретение предназначено для антивирусной проверки файлов.
Технический результат настоящего изобретения заключается в повышении скорости выполнения антивирусной проверки файлов за счет распределения файлов, предназначенных для антивирусной проверки, по виртуальным машинам, на которых выполняется антивирусная проверка.
Еще один технический результат настоящего изобретения заключается в гарантированности выполнения антивирусной проверки файлов, размещенных на виртуальных машинах, на которых выполняется антивирусная проверка.
Данный результат достигается с помощью использования системы обнаружения вредоносных файлов на виртуальных машинах, при этом упомянутая система содержит: по крайней мере два средства «тонкий клиент», установленные на виртуальных машинах, именуемых далее «защищаемыми виртуальными машинами», при этом каждое средство «тонкий клиент» взаимодействует по крайней мере с двумя средствами «сервер защиты» и в свою очередь содержит: средство сбора, предназначенное для: перехвата информации, содержащей характеристики вычислительных ресурсов по меньшей мере двух «виртуальных машин защиты», на которой работает средство «сервер защиты», при этом упомянутая информация распространяется по компьютерной сети средством передачи, передачи перехваченной информации средству выбора; упомянутое средство выбора, предназначенное для: вычисления значения скорости выполнения антивирусной проверки для каждого средства проверки, содержащегося на средстве «сервер защиты», на основании полученной информации, выбора средства «сервера защиты» на основании сравнения вычисленных значений скоростей выполнения антивирусной проверки для средств проверки, передачи информации о выбранном средстве «сервера защиты» средству формирования задач; упомянутое средство формирования задач, предназначенное для: определения по меньшей мере одного файла, содержащегося на «защищаемой виртуальной машине», для выполнения антивирусной проверки; передачи определенных файлов выбранному средству «сервер защиты»; по крайней мере два средства «сервер защиты», установленные на виртуальных машинах, именуемых далее «виртуальными машинами защиты», и предназначенные для выполнения антивирусной проверки файлов, при этом каждое средство «сервер защиты» содержит: упомянутое средство передачи, предназначенное для: определения характеристик вычислительных ресурсов «виртуальной машины защиты», на которой установлено средство «сервер защиты»; распространения по компьютерной сети информации, содержащей определенные характеристики; средство управления задачами, предназначенное для: определения для каждого полученного файла доступности средства проверки для выполнения антивирусной проверки упомянутого файла в момент передачи упомянутого файла средству проверки; передачи упомянутого файла в случае недоступности средства проверки текущей «виртуальной машины защиты» средству управления задачами другой «виртуальной машины защиты» для проведения антивирусной проверки; передачи упомянутого файла в случае доступности средства проверки текущей «виртуальной машины защиты» упомянутому средству проверки; средство проверки, предназначенное для: выполнение антивирусной проверки полученных файлов; вынесения вердикта об обнаружении вредоносного файла по результатам выполненной антивирусной проверки.
В другом частном случае реализации системы передача файлов от средства формирования задач средству проверки осуществляется посредством очереди задач «сервера защиты», где для каждого файла, полученного от средства формирования задач, вычисляется порядковый номер, зависящий от характеристик вычислительных ресурсов «виртуальной машины защиты», в соответствии с которым впоследствии файлы передаются средству проверки.
Еще в одном частном случае реализации системы в качестве характеристик вычислительных ресурсов «виртуальной машины защиты» выступает по меньшей мере: время нахождения по меньшей мере одного файл в очереди задач «сервера защиты»; время, прошедшее между определением по меньшей мере одного файла средством формирования задач до вынесения вердикта средством проверки; размер очереди задач «сервера защиты»; вычислительная мощность «виртуальной машины защиты».
В другом частном случае реализации системы качестве вычислительной мощности «виртуальной машины защиты» выступает по меньшей мере: объем оперативной памяти, предоставляемый операционной системой «виртуальной машиной защиты» «серверу защиты»; производительность компьютерной системой, на которой работает «виртуальная машина защиты».
Еще в одном частном случае реализации в качестве скорости выполнения антивирусной проверки «сервера защиты» выступает по меньшей мере мера центральной тенденции (measure of central tendency): времени нахождения файла в очереди задач «сервера защиты»; времени, прошедшего между определением файла средством формирования задач до вынесения вердикта средством проверки; скорости заполнения очереди задач «сервера защиты».
В другом частном случае реализации системы выбирают по меньшей мере один «сервер защиты» на основании сравнения вычисленных скоростей выполнения антивирусной проверки, удовлетворяющий по меньшей мере одному критерию, по которому: вычисленная средняя скорость антивирусной проверки выбранных «серверов защиты» больше средней скорости антивирусной проверки всех оставшихся «серверов защиты», участвующих в выборе; вычисленная скорость выполнения антивирусной проверки выбранного «сервера защиты» является наибольшей; вычисленная скорость выполнения антивирусной проверки выбранного «сервера защиты» выше установленного порогового значения; размер очереди задач выбранного «сервера защиты» является наименьшим; размер очереди задач выбранного «сервера защиты» ниже установленного порогового значения.
Еще в одном частном случае реализации распространение средством передачи по компьютерной сети информации, содержащей определенные средством передачи характеристики вычислительных ресурсов «виртуальной машины защиты», осуществляется с использованием по меньшей мере: маршрутизации по широковещательному каналу (broadcasting); многоадресного вещания (multicasting); непосредственной передачи средству сбора по меньшей мере одному «тонкому клиенту».
Данный результат достигается с помощью использования способа обнаружения вредоносных файлов на виртуальных машинах, при этом способ содержит этапы, которые реализуются с помощью средств из системы обнаружения вредоносных файлов на виртуальных машинах, и на которых: определяют по меньшей мере один файл по меньшей мере одной виртуальной машины, именуемой далее «защищаемая виртуальная машина», на которой работает средство «тонкий клиент», предназначенное для защиты упомянутой «защищаемой виртуальных машин» от вредоносных файлов; определяют характеристики вычислительных ресурсов по меньшей мере одной виртуальной машины, именуемой далее «виртуальной машиной защиты», на которой работает средство «сервер защиты», предназначенное для выполнения антивирусной проверки по меньшей мере одного файла, полученного от средства «тонкий клиент»; распространяют по компьютерной сети информацию, содержащую определенные на предыдущем этапе характеристики вычислительных ресурсов; перехватывают информацию, содержащую определенные на предыдущем этапе характеристики вычислительных ресурсов по меньшей мере одной «виртуальной машины защиты»; вычисляют скорости выполнения антивирусной проверки каждого «сервера защиты», работающего на «виртуальной машине защиты», чьи характеристики вычислительных ресурсов содержатся в информации, перехваченной на предыдущем этапе; выбирают по меньшей мере один «сервер защиты» на основании сравнения вычисленных на предыдущем этапе скоростей выполнения антивирусной проверки; определяют для каждого полученного на предыдущем этапе файла доступность средства проверки выбранного на предыдущем этапе «сервера защиты» для выполнения антивирусной проверки упомянутого файла в момент передачи упомянутого файла средству проверки; передают полученный на предыдущем этапе файл в случае определенной на предыдущем этапе недоступности средства проверки текущей «виртуальной машины защиты» средству управления задачами другой «виртуальной машины защиты» для проведения антивирусной проверки; выполняют антивирусную проверку полученного на предыдущем этапе файла в случае определенной на предыдущем этапе доступности средства проверки текущей «виртуальной машины защиты»; выносят вердикт об обнаружении вредоносного файла.
В другом частном случае реализации способа передача файлов от средства формирования задач средству проверки осуществляется посредством очереди задач «сервера защиты», где для каждого файла, полученного от средства формирования задач, вычисляется порядковый номер, зависящий от характеристик вычислительных ресурсов «виртуальной машины защиты», в соответствии с которым впоследствии файлы передаются средству проверки.
Еще в одном частном случае реализации способа в качестве характеристик вычислительных ресурсов «виртуальной машины защиты» выступает по меньшей мере время нахождения по меньшей мере одного файл в очереди задач «сервера защиты»; время, прошедшее между определением по меньшей мере одного файла средством формирования задач до вынесения вердикта средством проверки; размер очереди задач «сервера защиты»; вычислительная мощность «виртуальной машины защиты».
В другом частном случае реализации способа в качестве вычислительной мощности «виртуальной машины защиты» выступает по меньшей мере: объем оперативной памяти, предоставляемый операционной системой «виртуальной машиной защиты» «серверу защиты»; производительность компьютерной системой, на которой работает «виртуальная машина защиты».
Еще в одном частном случае реализации способа в качестве скорости выполнения антивирусной проверки «сервера защиты» выступает по меньшей мере мера центральной тенденции (measure of central tendency): времени нахождения файла в очереди задач «сервера защиты»; времени, прошедшего между определением файла средством формирования задач до вынесения вердикта средством проверки; скорости заполнения очереди задач «сервера защиты».
В другом частном случае реализации способа выбирают по меньшей мере один «сервер защиты» на основании сравнения вычисленных скоростей выполнения антивирусной проверки, удовлетворяющий по меньшей мере одному критерию, по которому: вычисленная средняя скорость антивирусной проверки выбранных «серверов защиты» больше средней скорости антивирусной проверки всех оставшихся «серверов защиты», участвующих в выборе; вычисленная скорость выполнения антивирусной проверки выбранного «сервера защиты» является наибольшей; вычисленная скорость выполнения антивирусной проверки выбранного «сервера защиты» выше установленного порогового значения; размер очереди задач выбранного «сервера защиты» является наименьшим; размер очереди задач выбранного «сервера защиты» ниже установленного порогового значения.
Еще в одном частном случае реализации способа распространение средством передачи по компьютерной сети информации, содержащей определенные средством передачи характеристики вычислительных ресурсов «виртуальной машины защиты», осуществляется с использованием по меньшей мере: маршрутизации по широковещательному каналу (broadcasting); многоадресного вещания (multicasting); непосредственной передачи средству сбора по меньшей мере одному «тонкому клиенту».
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обнаружения вредоносных файлов на распределенной системе виртуальных машин.
Фиг. 2 представляет структурную схему способа обнаружения вредоносных файлов на распределенной системе виртуальных машин.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
«Защищаемая виртуальная машина» - виртуальная машина (англ. virtual machine), работающая под управлением гипервизора (англ. hypervisor), с установленной гостевой операционной системой (англ. guest operating system), под управлением которой работает приложение «тонкий клиент» (англ. thin client).
«Виртуальная машина защиты» - виртуальная машина, работающая под управлением гипервизора, с установленной операционной системой, под управлением которой работает приложение «сервер защиты» (англ. protection server).
«Тонкий клиент» - программное обеспечение, предназначенное для защиты «защищаемой виртуальной машины» от вредоносных программ и компьютерных угроз, и передачи по сети «виртуальным машинам защиты» файлов для антивирусной проверки.
«Сервер защиты» - программное обеспечение, предназначенное для выполнения антивирусной проверки файлов, полученных от «защищаемых виртуальных машин».
Фиг. 1 представляет структурную схему системы обнаружения вредоносных файлов на распределенной системе виртуальных машин.
Структурная схема системы обнаружения вредоносных файлов на распределенной системе виртуальных машин состоит из «тонкого клиента» 110, средства сбора 111, средства выбора 112, средства формирования задач 113, «сервера защиты» 120, средства передачи 121, средства управления задачами 122 и средства проверки 123.
Средство «тонкий клиент» 110, содержащееся на каждой «защищаемой виртуальной машине» предназначено для защиты «защищаемой виртуальной машины» от вредоносных файлов и содержит средство сбора 111, средство выбора 112, и средство формирования задач 113.
Средство «сервер защиты» 120, содержащееся на каждой «виртуальной машине защиты», предназначено для выполнения антивирусной проверки файлов, полученных от «тонких клиентов» 110 «защищаемых виртуальных машины» и содержит средство передачи 121, средство управления задачами 122, и средство проверки 123.
При этом передача файлов от средства формирования задач 113 средству проверки 123 может осуществляться посредством очереди задач «сервера защиты» 120, где для каждого файла, полученного от средства формирования задач 113, вычисляется порядковый номер, зависящий от характеристик вычислительных ресурсов «виртуальной машины защиты», в соответствии с которым впоследствии файлы передаются средству проверки 123.
В одном из вариантов реализации очереди задач каждому файлу ставится в соответствие уникальный номер, на основании которого средством проверки 123 осуществляется выборка упомянутого файла из очереди задач для проведения антивирусной проверки, при этом уникальный номер выборки файла из очереди вычисляется на основании анализа характеристик состояния работы средства проверки 123, где в качестве состояния работы средства проверки 123 выступает по меньшей мере один из критериев:
- средство проверки 123 не осуществляет на момент выборки файла из очереди задач антивирусную проверку файлов, переданных средству проверки 123 ранее;
- средство проверки 123 обладает вычислительными ресурсами, достаточными для обработки выбранного файла.
Например, в самом простом случае очередь задач может быть организована по принципу «первый пришел - первый ушел» (англ First In First Out, FIFO). В этом случае каждому переданному средством управления задачами 122 файлу назначается уникальный номер, больший чем у файла, переданного средству управления задачами 122 ранее (1, 2, 5, 17, 123 и т.д.), и выборка файлов средством проверки 123 также будет происходить в порядке возрастания уникального номера, назначенного файлу (сначала 1, потом 2, 5, 17, 123 и т.д.). В другом случае изначально назначенные уникальные номера могут перераспределяться в зависимости характеристик работы средства проверки 123. Например, средство проверки 123 обработало файл с номером №15, после чего «сервер защиты» стал располагать 50МБ свободной оперативной памяти «виртуальной машины защиты», которую может использовать при выполнении проверки последующих файлов, но для выполнения антивирусной проверки файла №16 потребуется 100МБ свободной оперативной памяти, и 10МБ - для файла №17, 35МБ для файла №18, поэтому вместо того, чтобы ожидать, когда же будет доступно 100МБ оперативной памяти средство проверки 123 выбирает из очереди задач файлы №17 и №18.
Средство сбора 111 предназначено для:
- перехвата с помощью установленного на «защищаемой виртуальной машине» драйвера компьютерной сети информации, содержащей характеристики вычислительных ресурсов «виртуальных машин защиты», распространенной средством передачи 121 по компьютерной сети;
- передачи перехваченной информации средству выбора 112.
При этом в качестве характеристик вычислительных ресурсов «виртуальной машины защиты» может выступать:
- время нахождения файлов в очереди задач «сервера защиты» 120;
- время, прошедшее между получением файла от средства формирования задач 113 до вынесения вердикта средством проверки 123;
- размер очереди задач «сервера защиты» 120;
- вычислительная мощность «виртуальной машины защиты», на которой работает «сервер защиты» 120.
При этом в качестве вычислительной мощности «виртуальной машины защиты» может выступать:
- объем оперативной памяти, предоставляемый операционной системой «виртуальной машиной защиты» «серверу защиты»;
- производительность компьютерной системы, выраженная в количестве операций в секунду (FLOPS), способное выполняться компьютерной системой, на которой работает «виртуальная машина защиты»;
- приоритет, и как следствие скорость выполнения антивирусной проверки, с которым работает «сервер защиты» 120 под управлением операционной системы «виртуальной машины защиты».
При этом средство сбора 111, работающее на одной «защищаемой виртуальной машине», может перехватывать информацию, передаваемую средством передачи 121, средству сбора 111, работающему на другой «защищаемой виртуальной машине».
Например, средство сбора 111 может перехватывать все сетевые пакеты, передающиеся по компьютерной сети. Сетевые пакеты, переданные «сервером защиты» 120 будут обрабатываться, остальные - игнорироваться. Если сетевые пакеты содержат информацию, передаваемую какому-либо «тонкому клиенту» 110, то считается, что они содержат информацию, содержащую характеристики вычислительных ресурсов «виртуальной машины защиты», на которой работает упомянутый «сервер защиты» 120. Далее из перехваченных сетевых пакетов формируется упомянутая информация (например, в виде структурированных данных, где каждому типу вычислительных ресурсов соответствует численная характеристика, к примеру [1] доступная оперативная память «виртуальной машины защиты» - 100МБ, [2] размер очереди задач - 25 файлов и т.д.) и передается средству выбора 112.
Средство выбора 112 предназначено для:
- вычисления скорости выполнения антивирусной проверки для каждого «сервера защиты» 120, на основании характеристик вычислительных ресурсов содержащихся в информации, полученной от средства сбора 111,
- выбора «серверов защиты» 120 на основании анализа вычисленной скорости выполнения антивирусной проверки для последующей передачи выбранным «серверам защиты» 120 файлов для выполнения антивирусной проверки,
- передачи информации о каждом выбранном «сервере защиты» 120 средству формирования задач 113, где передаваемая информация может содержать уникальные идентификаторы «серверов защиты» 120 (для возможности передачи файлов для выполнения антивирусной проверки только выбранному «серверу защиты» 120).
При этом в качестве скорости выполнения антивирусной проверки «сервера защиты» 120 может выступать мера центральной тенденции (англ. measure of central tendency):
- времени нахождения файлов в очереди задач «сервера защиты»;
- времени, прошедшего между получением файлов от средства формирования задач 113 до вынесения вердикта средством проверки 123;
- скорости заполнения очереди задач «сервера защиты» 120;
- используемых для выполнения антивирусной проверки характеристик вычислительных ресурсов «виртуальной машины защиты», на которой работает «сервер защиты» 120.
Например, средство выбора 112 может в качестве скорости выполнения антивирусной проверки «сервером защиты» использовать среднее время от определения средством формирования задачи 113 файла на «защищаемой виртуальной машине», для которого необходимо выполнить антивирусную проверку, до вынесения вердикта проверки от средства проверки 123.
Например, в качестве меры центральной тенденции используемых для выполнения антивирусной проверки характеристик вычислительных ресурсов «виртуальной машины защиты», на которой работает «сервер защиты» 120 может выступать среднее гармоническое объема оперативной памяти, выделяемой операционной системой «виртуальной машины защиты» «серверу защиты» 120 для проведения антивирусной проверки полученных файлов.
При этом скорость выполнения антивирусной проверки «сервера защиты» 120 может быть вычислена всеми описанными выше способами с использованием вероятностных методов, реализующих предсказание того, какой скоростью выполнения антивирусной проверки «сервера защиты» 120 будет обладать «сервер защиты» 120 каждой «виртуальной машины защиты» в выбранной период времени, путем вычисления временных аппроксимационных зависимостей скорости выполнения антивирусной проверки от времени осуществления упомянутой антивирусной проверки.
При этом для передачи средству формирования задач 113 могут выбирать «сервера защиты» 120 одним или несколькими приведенными ниже критериями, по которым:
- вычисленная средняя скорость антивирусной проверки выбранных «серверов защиты» 120 больше средней скорости антивирусной проверки всех оставшихся «серверов защиты», работающих на «виртуальных машин защиты»;
- вычисленная скорость выполнения антивирусной проверки выбранных «серверов защиты» 120 является наибольшей среди всех «сервером защиты» 120, работающих на «виртуальных машин защиты»;
- вычисленная скорость выполнения антивирусной проверки выбранных «серверов защиты» выше установленного порогового значения;
- размер очереди задач выбранных «серверов защиты» 120 является наименьшим среди всех очередей задач «серверов защиты» 120, работающих на «виртуальных машин защиты»;
- размер очереди задач выбранных «серверов защиты» 120 ниже установленного порогового значения.
Средство формирования задач 113 предназначено для:
- определения файлов виртуальной машины, на которой установлен упомянутый «тонкий клиент» 110, для выполнения антивирусной проверки;
- передачи определенных файлов средству управления задачами 122 «сервера защиты» 120, информация о котором была получена от средства выбора 112.
Средство передачи 121 предназначено для:
- определения характеристик вычислительных ресурсов «виртуальных машин защиты», на которой содержатся «сервера защиты» 120;
- распространения по компьютерной сети информации, содержащей определенные характеристики.
При этом распространение средством передачи 121 по компьютерной сети информации, содержащей определенные средством передачи 121 характеристики вычислительных ресурсов «виртуальной машины защиты», на которой работает «сервер защиты» 120, может осуществляться с использованием:
- маршрутизации по широковещательному каналу (англ. broadcasting);
- многоадресного вещания (англ. multicasting);
- непосредственной передачи определенной информации средству сбора 111.
Например, информация, содержащая характеристики вычислительных ресурсов «виртуальной машины защиты», на которой работает «сервер защиты» 120, может быть передана непосредственно средству сбора 111 любого «тонкого клиента» 110. Такой способ передачи информации возможен, например, когда «тонкий клиент» 110 уже передавал файлы для выполнения антивирусной проверки «серверу защиты» 120. Кроме того, «сервер защиты» 120 может осуществить широковещательную передачу информации, рассчитанную на то, что любой «тонкий клиент» 110 может получить передаваемые данные и, следовательно, после ее обработки сможет передать свои файлы упомянутому «серверу защиты» 120 для выполнения антивирусной проверки.
Средство управления задачами 122 предназначено для:
- определения для каждого полученного файла доступность средства проверки 123 для выполнения антивирусной проверки упомянутого файла в момент передачи упомянутого файла средству проверки 123;
- передачи упомянутого файла в случае недоступности средства проверки 123 текущей «виртуальной машины защиты» средству управления задачами 122 другой «виртуальной машины защиты» для проведения антивирусной проверки;
- передачи упомянутого файла в случае доступности средства проверки 123 текущей «виртуальной машины защиты» упомянутому средству проверки 123;
Средство проверки 123 предназначено для:
- выполнение антивирусной проверки полученных файлов;
- вынесения вердикта об обнаружении вредоносного файла по результатам выполненной антивирусной проверки.
Рассмотрим работу системы обнаружения вредоносных файлов на «защищаемых виртуальных машинах» на примере антивирусной проверки 1000 файлов, хранящихся на 10 «защищаемых виртуальных машинах» (по 100 на каждой из «защищаемой виртуальной машине») средствами 2 «виртуальных машин защиты».
На каждой из 10 «защищаемых виртуальных машин» свой «тонкий клиент» 110 выбирает файлы из группы из 100 файлов, для которых необходимо выполнить антивирусную проверку. Средство сбора 111 каждой «защищаемой виртуальной машины», перехватывает с помощью установленного на «защищаемой виртуальной машине» драйвера компьютерной сети характеристики вычислительных ресурсов «виртуальных машин защиты», переданные ранее средством передачи 121 «сервера защиты» каждого из двух доступных «виртуальных машин защиты», после чего передает их средству выбора 112. В качестве характеристик вычислительных ресурсов «виртуальной машины защиты» #1 и «виртуальной машины защиты» #2 могут выступать разные характеристики (что зависит как от самих «виртуальных машин защиты», так и от настроек «серверов защиты») - время нахождения файлов в очереди задач антивирусной проверки «сервера защиты» #1 120, вычислительная мощность «виртуальной машины защиты» #1, на которой работает «сервер защиты» #1 120 (т.е. доступная оперативная память, производительность центрального процессора и т.д.), и размер очереди задач антивирусной проверки «сервера защиты» #2 120 соответственно.
На основании перехваченных характеристик вычислительных ресурсов «виртуальной машины защиты» #1 и «виртуальной машины защиты» #2 средство выбора 112, входящее в состав «тонкого клиента» каждой «защищаемой виртуальной машины», независимо от других средств выбора 112 вычисляет (как один из случаев меры центральной тенденции, демонстрирующий статистическое распределение измеряемой величины) среднее арифметическое времени, прошедшего между получением файлов от средства формирования задач 113 до вынесения вердикта средством проверки 123, что является скоростью выполнения антивирусной проверки «серверов защиты» #1 и #2 120. Из двух «серверов защиты» выбирается «сервер защиты» с наивысшей вычисленной скоростью выполнения антивирусной проверки (#2), после чего результат передается средству формирования задач 113, поскольку минимальная вычисленная скорость выполнения антивирусной проверки (#1) означает, что «сервер защиты» #1 120 на текущий момент является загруженным другими задачами проверки, или же «виртуальная машина защиты» не обладает нужными вычислительными ресурсами для осуществления антивирусной проверки файлов.
Средство формирования задач 113, входящее в состав «тонкого клиента» 110 запрашивает у «тонкого клиента» 110 очередной файл для выполнения антивирусной проверки запрашиваемого файла, и передает полученный файл средству управления задачами 122 выбранного «сервера защиты» (#2) 120.
Средство управления задачами 122 определяет для полученного файла доступность средства проверки 123 для выполнения антивирусной проверки полученного файла в момент передачи упомянутого файла средству проверки 123. В случае, если средство проверки 123 не доступно, полученный файл передается средству управления задачами 122 одного из оставшихся «средств защиты» 120. В противном случае полученный файл передается средству проверки 123 текущего «сервера защиты» 120.
Средство проверки 123 осуществляет антивирусную проверку полученных от средства управления задачами 122 файлов и выносит вердикт о том, являются ли полученные файлы вредоносными или нет. После завершения проверки средство проверки передает информацию о завершении обработки полученных файлов, а также результаты проверки средству управления задачами 122.
При такой работе «сервера защиты» #2 120 «тонкие клиенты» 110 «защищаемых виртуальных машин» не простаивают. Во время работы «сервера защиты» #2 120 может освободиться «сервер защиты» #1 120. В этом случае при очередном вычислении выполнения антивирусной проверки она станет большей у «сервера защиты» #1 120, чем у «сервера защиты» #2 120 и следующая порция от оставшихся для проверки 990 файлов (99 на каждой «защищаемой виртуальной машине») будет передана средству управления задачами 122 «сервера защиты» #2 120.
Поскольку для выполнения антивирусной проверки файлы с «защищаемых виртуальных машин» передавались разным «виртуальным машинам защиты» так, чтобы вычислительные ресурсы системы «виртуальных машин защиты» были использованы максимально, это в свою очередь способствовало тому, что простой «серверов защиты» 120 был минимальным («серверы защиты» 120 загружены задачами антивирусной проверки файлов, файлы по возможности не скапливаются в ожидании, а сразу поступают на освободившийся «сервер защиты» 120), что привело к возрастанию скорости проверки файлов на вредоносность (за счет избегания простоя в работе «серверов защиты»).
Кроме того, поскольку «сервера защиты» 120 работают независимо друг от друга, а файлы для антивирусной проверки, в случае, когда какое-либо средство проверки 123 не готово выполнить антивирусную проверку передаются средству проверки 123 одному из оставшихся «серверов проверки» 120, это повышает отказоустойчивость распределенной системы «виртуальных машин защиты», поскольку такой способ работы гарантирует проведения антивирусной проверки файла даже в случае, когда некоторые средства проверки 123 не способны выполнить упомянутую антивирусную проверку файлов.
Фиг. 2 представляет пример структурной схемы способа обнаружения вредоносных файлов на распределенной системе виртуальных машин.
Структурная схема способа обнаружения вредоносных файлов на распределенной системе виртуальных машин состоит из этапа 201, на котором запрашивают файлы для выполнения антивирусной проверки, этапа 202, на котором перехватывают характеристики вычислительных ресурсов «виртуальных машин защиты», этапа 203, на котором вычисляют скорость выполнения антивирусной проверки «серверами защиты» 120, этапа 204, на котором выбирают «сервера защиты» 120, этапа 211, на котором определяют характеристики вычислительных ресурсов, этапа 221, на котором определяют доступность средства проверки, этапа 224, на котором проводят антивирусную проверку и этапа 225, на котором выносят вердикт об обнаружении вредоносных файлов.
На этапе 201 определяют файлы виртуальной машины, на которой работает упомянутый «тонкий клиент» 110, для выполнения антивирусной проверки.
На этапе 211 определяют характеристики вычислительных ресурсов «виртуальных машин защиты», на которых содержатся «серверы защиты» 120 и распространяют по компьютерной сети информацию, содержащую определенные характеристики вычислительных ресурсов.
При этом распространение средством передачи 121 по компьютерной сети информации, содержащей определенные средством передачи 121 характеристики вычислительных ресурсов «виртуальной машины защиты», может осуществляться с использованием:
- маршрутизации по широковещательному каналу;
- многоадресного вещания;
- непосредственной передачи определенной информации средству сбора 111.
При этом в качестве характеристик вычислительных ресурсов «виртуальной машины защиты» может выступать:
- время нахождения файлов в очереди задач «сервера защиты» 120;
- время, прошедшее между получением файлов от средства формирования задач 113 на этапе 201 до вынесения вердикта средством проверки 123 на этапе 225;
- размер очереди задач «сервера защиты» 120;
- вычислительная мощность «виртуальной машины защиты», на которой работает «сервер защиты» 120.
При этом в качестве вычислительной мощности «виртуальной машины защиты» может выступать:
- объем оперативной памяти, предоставляемый операционной системой «виртуальной машиной защиты» «серверу защиты»;
- производительность компьютерной системы, выраженная в количестве операций в секунду (FLOPS), способное выполняться компьютерной системой, на которой работает «виртуальная машина защиты»;
- приоритет, и как следствие скорость выполнения антивирусной проверки, с которым работает «сервер защиты» 120 под управлением операционной системы «виртуальной машины защиты».
На этапе 202 перехватывают с помощью установленного на «защищаемой виртуальной машине» драйвера компьютерной сети информацию, содержащую определенные на этапе 211 характеристики вычислительных ресурсов «виртуальных машин защиты».
При этом средство сбора 111, входящее в состав «тонкого клиента» 110, работающего на одной «защищаемой виртуальной машины» может перехватывать информацию, содержащую характеристики вычислительных ресурсов «виртуальной машины защиты», передаваемую на этапе 211 средством передачи 121, входящего в состав «сервера защиты» средству сбора 111, входящему в состав «тонкого клиента» 110, работающего на другой «защищаемой виртуальной машине».
На этапе 203 вычисляют скорости выполнения антивирусной проверки каждого «сервера защиты» 120, работающего на «виртуальной машине защиты», чьи характеристики вычислительных ресурсов содержатся в информации, перехваченной на этапе 202.
При этом в качестве скорости выполнения антивирусной проверки «сервера защиты» 120 может выступать мера центральной тенденции (measure of central tendency):
- времени нахождения файлов в очереди задач «сервера защиты»;
- времени, прошедшего между получением файлов от средства формирования задач 113 на этапе 201 до вынесения вердикта средством проверки 123 на этапе 225;
- скорости заполнения очереди задач «сервера защиты» 120;
- используемых для выполнения антивирусной проверки характеристик вычислительных ресурсов «виртуальной машины защиты», на которой работает «сервер защиты» 120.
При этом скорость выполнения антивирусной проверки «сервера защиты» 120 может быть вычислена всеми описанными выше способами с использованием вероятностных методов, реализующих предсказание того, какой скоростью выполнения антивирусной проверки «сервера защиты» 120 будет обладать «сервер защиты» каждой «виртуальной машины защиты» в выбранной период времени, путем вычисления временных аппроксимационных зависимостей скорости выполнения антивирусной проверки.
На этапе 204 выбирают «сервера защиты» 120 на основании анализа вычисленной на этапе 203 скорости выполнения антивирусной проверки.
При этом для передачи средству формирования задач 113 могут выбирать «сервера защиты» 120 одним или несколькими приведенными ниже критериями, по которым:
- вычисленная на этапе 203 средняя скорость антивирусной проверки выбранных «серверов защиты» 120 больше средней скорости антивирусной проверки всех оставшихся «серверов защиты», работающих на «виртуальных машин защиты»;
- вычисленная на этапе 203 скорость выполнения антивирусной проверки выбранных «серверов защиты» 120 является наибольшей среди всех «сервером защиты» 120, работающих на «виртуальных машин защиты»;
- вычисленная на этапе 203 скорость выполнения антивирусной проверки выбранных «серверов защиты» выше установленного порогового значения;
- размер очереди задач выбранных «серверов защиты» 120 является наименьшим среди всех очередей задач «серверов защиты» 120, работающих на «виртуальных машин защиты»;
- размер очереди задач выбранных «серверов защиты» 120 ниже установленного порогового значения.
На этапе 221 определяют для каждого полученного на этапе 201 файла доступность средства проверки 123 выбранного на этапе 204 «сервера защиты» для выполнения антивирусной проверки упомянутого файла в момент передачи упомянутого файла средству проверки 123. Передают полученный на этапе 201 файл в случае определенной на этапе 221 недоступности средства проверки текущей «виртуальной машины защиты» средству управления задачами 113 другой «виртуальной машины защиты» для проведения антивирусной проверки, передают упомянутый файл в случае доступности средства проверки 123 текущей «виртуальной машины защиты» упомянутому средству проверки 123;
В одном из вариантов реализации этапа 221, формируют из файлов, выбранных на этапе 201, очередь задач, где каждому файлу ставится в соответствие уникальный номер, на основании которого средством проверки 123 осуществляется на этапе 223 выборка упомянутого файла из очереди задач для проведения антивирусной проверки, при этом уникальный номер выборки файла из очереди вычисляется на основании анализа характеристик состояния работы средства проверки 123, где в качестве состояния работы средства проверки выступает по меньшей мере:
- средство проверки не осуществляет на момент выборки файла из очереди задач антивирусную проверку файлов, переданных средству проверки 123 ранее;
- средство проверки 123 обладает вычислительными ресурсами достаточными для обработки выбранного файла.
Кроме того выбирают из очереди задач файлы в соответствии с их уникальными номерами выборки, определенными на этапе 221.
На этапе 224 выполняют антивирусную проверку полученных на этапе 221 файлов.
На этапе 225 выносят вердикт об обнаружении вредоносных файлов.
Фиг. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.