Способ распределенного выполнения задач компьютерной безопасности

Иллюстрации

Показать все

Изобретение относится к способам распределенного выполнения задач компьютерной безопасности. Технический результат - уменьшение времени выполнения задач компьютерной безопасности. Определяют задачу компьютерной безопасности, цель ее выполнения и ее параметры, при этом задача выполняется в рамках распределенного выполнения, при этом параметры задачи включают объекты для проверки и настройки для выполнения задачи, которые определяются алгоритмом работы задачи. Определяют компьютеры, подходящие под параметры определенной задачи, при этом при определении компьютеров, подходящих под параметры определенной задачи, определяют производительность компьютеров и потребление ресурсов компьютеров для выбора времени выполнения задачи.; Выполняют задачу компьютерной безопасности, которая выполняется в рамках распределенного выполнения с помощью определенных компьютеров и выбранного для выполнения задачи времени. При достижении цели выполнении задачи, по меньшей мере, на одном из компьютеров заканчивают распределенное выполнение задачи на всех остальных определенных компьютерах. 12 з.п. ф-лы, 12 ил.

Реферат

Область техники

Изобретение относится к антивирусным технологиям, а более конкретно, к распределенному выполнению задач компьютерной безопасности.

Уровень техники

В настоящее время в связи с бурным развитием естественных наук появляется необходимость в использовании все большего количества вычислительных мощностей. Подобные вычислительные мощности могут предоставить суперкомпьютеры вроде Tiahne-1A или Nebulae (полный список самых производительных суперкомпьютеров регулярно обновляется на сайте www.top500.org), однако их высокая сложность и стоимость эксплуатации отражается и на стоимости предоставляемых вычислительных ресурсов, поэтому далеко не каждая организация может позволить себе использовать суперкомпьютеры, не говоря о том, чтобы покупать подобные машины. С другой стороны, последнюю четверть века знаменовал стремительный рост не только количества персональных компьютеров, но и их производительности. Например, современный персональный компьютер на базе современного процессора сравним по скорости вычислений с суперкомпьютерами 10-летней давности. Неудивительно, что почти сразу же возникла идея использования большого количества персональных компьютеров для решения различных задач.

В результате разработок и исследований появились так называемые распределенные или коллективные вычисления, которые предлагают возможность выполнить большую ресурсоемкую вычислительную задачу средствами множества персональных компьютеров, которые объединены в мощный вычислительный кластер сетью в общем случае или Интернетом в частности. Сети распределенных вычислений впервые нашли свое применение в науке, т.к. моделирование сложных процессов, обработка большого объема данных и тому подобные задачи требуют больших вычислительных мощностей. Среди научных задач можно выделить проекты, связанные с биологией и медициной (Folding@Home, Proteins@Home), математикой и криптографией (GIMPS, ABC@Home), естественными науками (LHC@Home, SETI@Home, Constellation).

Очевидно, что наилучшим образом для решения с помощью таких систем подходят задачи переборного и поискового типа, где вычислительные узлы практически не взаимодействуют друг с другом и основную часть работы производят в автономном режиме. Примерами таких задач являются поиск простых чисел Мерсенна и задачи взлома шифров.

Принять участие в таком проекте может любой пользователь, подключенный к Интернету, установив на своем компьютере клиентскую программу, оформленную, как правило, в виде хранителя экрана. При этом каждый из участвующих в вычислениях компьютеров получает небольшую "порцию" расчетов, а назад возвращает полученный результат. При подобной организации возможно с использованием значительного числа обычных ПК достичь производительности, равной вычислительной мощности мощнейших суперкомпьютеров. Клиентские программы всех современных проектов распределенных вычислений, как правило, выставляют свой приоритет как самый низкий из существующих в операционной системе, что позволяет избежать деградации производительности.

Интересным оказывается потенциал подобных некоммерческих проектов. Для сравнения приведем примерные сведения о производительности различных систем в флопс (т.е. количество операций с плавающей запятой в секунду):

- Средний компьютер пользователя с Core 2 Duo имеет около 20 ГФлопс (гига = 10 в 9 степени)

- Суперкомпьютер IBM Roadrunner. 1 ПФлопс (пета = 10 в 15 степени)

- У Folding@Home - около 5 ПФлопс.

Согласно даже весьма грубой оценке, имея около 50 тыс.типичных домашних компьютеров можно получить максимально возможную теоретически производительность, как у одного из самых мощных суперкомпьютеров на данный момент. Увеличив их количество в 5 раз, можно получить масштаб достаточно популярного проекта распределенных расчетов. Таким образом, использование ресурсов миллионов компьютеров имеет огромный потенциал, учитывая, что большую часть времени (около 90%) типичный домашний компьютер не работает на полную мощность (либо выключен, либо используется для не самых ресурсоемких задач).

На Фиг.1 приведен пример представления модели облачных (или, более правильно, распределенных) вычислений 120, в которой ресурсами выступают сами персональные компьютеры (ПК) пользователей 100. На каждом из таких ПК установлен клиент для выполнения задач, которые делегируются с сервиса распределенных вычислений 110. Основными трудностями в данном случае являются вопросы организации архитектуры, задачи планирования выполнения задач на ПК 100, а также проблема получения и обработки переданных с ПК 100 на сервис распределенных вычислений 110 данных.

Примерами реализации архитектуры для реализации распределенных технологий можно привести грид (grid) архитектуру и архитектуру на базе одноранговой (Р2Р) сети.

Идеология грид представляет технологию объединения ресурсов путем создания компьютерной инфраструктуры, обеспечивающей глобальную интеграцию информационных ресурсов на основе стандартных сетевых технологий, специализированного программного обеспечения и набора стандартизированных служб обеспечения совместного доступа к географически распределенным ресурсам (процессорам, долговременной и оперативной памяти, хранилищам и базам данных). Использование грид-технологий требует построения сложных распределенных структур, которые должны обеспечить высокое качество обслуживания запросов при условии использования стандартных универсальных открытых протоколов и интерфейсов. Применение грид-технологий подходит для решения следующих классов задач: массовая обработка потоков данных большого объема; многопараметрический анализ данных; моделирование на удаленных суперкомпьютерах; реалистичная визуализация больших наборов данных; сложные бизнес-приложения с большими объемами вычислений.

Отличным примером использования грид-технологий является грид-система ЦЕРНа, которая имеет иерархическую систему. На нулевом уровне происходит сбор данных с детекторов ("сырые" данные), на первом уровне происходит хранение копии этих данных по всему миру, на втором уровне (многочисленные вычислительные центры) происходит обработка данных.

В рамках использования архитектуры на базе одноранговой (Р2Р) сети, основанной на равноправии участников отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и сервером. В отличие от архитектуры клиент-сервера, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов. Главными для архитектуры Р2Р являются следующие характеристики: разделение компьютерных ресурсов путем прямого обмена без помощи посредников; способность рассматривать нестабильность и непостоянство соединений как норму, автоматически адаптируясь к их разрывам и отказам компьютеров, а также к переменному количеству узлов.

Главной целью как Р2Р-систем, так и систем грид-вычислений является утилизация распределенных ресурсов. Имея доступ к множеству компьютерных ресурсов, такие системы будут пытаться использовать эти ресурсы настолько, насколько это возможно, но в Р2Р-системах ресурсы намного динамичнее по своей природе и более скоротечны, чем ресурсы грид-систем. Наконец, еще одно различие между этими двумя системами выражается в стандартах - недостаток общих стандартов в мире Р2Р контрастирует с множеством стандартов в сфере грид-вычислений.

Рассмотрев использование распределенных вычислений, можно понять, что их использование возможно при сочетании ряда условий - наличие ресурсоемких задач, которые могут быть разбиты на несколько менее ресурсоемких с возможностью параллельного выполнения, а также наличие достаточного количества компьютеров для выполнения распределенных задач.

Стоит отметить, что в ряде патентных публикаций также рассматривается проблема использования распределенных задач. Например, в патенте US 7243373 B2 описывается технология разбиения сложной задачи на более простые и перенос более простых задач на другие компьютеры. Критерием является вычислительная сложность задачи. Также может учитываться как производительность, так и скорость передачи данных через сеть. В патенте US 7487348 B2 рассматривается вопрос обработки распределенных задач, включая отсеивание ненужных (вредных) задач на этапе аутентификации и последующего пробного запуска задачи для определения успешности выполнения задачи целиком.

В настоящее время миллионы пользователей по всему миру пользуются разнообразным программным обеспечением. Многие приложения предлагают возможность обратной связи с разработчиками для пользователей, например, при появлении ошибки в ходе работы приложения. Более того, в настоящее время многие приложения (особенно при работе в сети Интернет), используют большое количество данных пользователя, например, куки-файлы (cookie), данные об установленном ПО (программном обеспечении) или геопозиционирование компьютера пользователя (определение географических координат) и т.д. Подобная информация может быть использована для улучшения качества сервиса, предоставляемого приложениями. Одной из сфер программного обеспечения, которая очень сильно зависит от обратной связи, является сфера компьютерной безопасности.

В настоящее время антивирусные компании столкнулись с тем, что в последние годы рост количества угроз превышает все мыслимые границы. Под угрозами далее будут подразумеваться как различные вредоносные программы, такие как троянские программы, сетевые черви, вирусы и другое нежелательное ПО, а также ссылки, которые ведут на веб-страницы с вредоносными программами и другим нежелательным ПО, уязвимости в лицензионном ПО и т.д. В список нежелательного ПО можно также включить программы, предназначенные для совершения финансовых преступлений (Crimeware), отслеживания действий пользователя (Spyware), блокирующих данные или работоспособность компьютера (Ransomware). На Фиг.2 приведен рост количества новых уникальных вредоносных файлов, которые перехватываются и анализируется компанией ЗАО "Лаборатория Касперского". Можно видеть, что рост имеет ярко выраженный экспоненциальный вид, что определяется рядом причин, которые появились в последние годы. В то же время возможности антивирусных компаний - как аппаратные ресурсы, так и людские (эксперты по анализу угроз) - достаточно лимитированы и наращивать их теми же темпами, которыми растет количество угроз, невозможно. Одна из причин роста вредоносных файлов заключается в массовом развитии коммуникаций, в том числе сети Интернет, и, соответственно, быстром росте количества пользователей. Это в свою очередь обуславливает рост различных сервисов, которые предлагаются онлайн (в сети Интернет): интернет-банкинг, виртуальные деньги (такие как WebMoney), ведение журналов и блогов, перенос многих программных структур в веб (уже упоминавшиеся Google Apps могут служить отличным примером). Соответственно, настоящее поколение так называемых компьютерных злоумышленников (т.е. людей, которые занимаются противоправной деятельностью в сети Интернет) активно использует свои разработки в виде вредоносных программ и организации сетевых атак для кражи и вымогательства финансовых средств. В последние годы их деятельность затронула не только банковскую сферу (т.н. банковские троянские программы), но и переметнулась на кражу учетных записей к популярным онлайн-играм, а также вымогательству с помощью класса программ Trojan-Ransom (http://support.kaspersky.ru/faq/?qid=208637133). Их успеху и, соответственно, показанному на Фиг.2 росту вредоносных программ, способствует ряд факторов: недостаточная защищенность многих онлайн-сервисов, несовершенство или полное отсутствие законов в ряде стран, касающихся преступлений, происходящих в Интернет, а также подчас элементарная неграмотность в отношении компьютерной безопасности, работающих за компьютерами людей.

В целях решения проблем, связанных с ростом вредоносных программ, предлагается ряд решений, часть из которых опирается на использование ряда возможностей распределенных вычислений. Например, заявка WO 2010060139 предлагает распределенное распространение антивирусных обновлений через пиринговые сети с возможностью выделения распространения в первую очередь сигнатур наиболее активных вредоносных программ. Однако данный подход не учитывает особенностей распространения вредоносных программ, а именно очень малого времени для распространения и заражения, которое может исчисляться минутами или даже секундами, а также большой динамики распространения вредоносных программ, т.к. в заявке не рассмотрен ключевой вопрос выделения наиболее активных вредоносных программ, что является нетривиальной задачей.

Использование технологий распределенных вычислений помогло бы использовать ресурсы многих миллионов пользователей, которые имеют антивирусные приложения для увеличения общего уровня защищенности. Таким образом, существует необходимость в создании системы и способа для уменьшения времени выполнения решения задач компьютерной безопасности путем их распределенного выполнения.

Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяют получить новый результат, а именно способ для распределенного выполнения задач компьютерной безопасности.

Сущность изобретения

Технический результат настоящего изобретения заключается в уменьшении времени выполнения решения задач компьютерной безопасности путем их распределенного выполнения.

Согласно одному из вариантов реализации, предоставляется способ для распределенного выполнения задач компьютерной безопасности, содержащий этапы, во время которых выполняют следующие действия: определяют задачу компьютерной безопасности, цель ее выполнения и ее параметры, при этом задача выполняется в рамках распределенного выполнения; определяют компьютеры, подходящие под параметры определенной задачи; выполняют задачу компьютерной безопасности, которая выполняется в рамках распределенного выполнения с помощью определенных компьютеров; при достижении цели выполнении задачи, по меньшей мере, на одном из компьютеров заканчивают распределенное выполнение задачи на всех остальных определенных компьютерах.

В одном из частных вариантов реализации задачей компьютерной безопасности может быть: сбор WHOIS информации; создание и пополнение списка доверенных сайтов; тестирование различных модулей антивирусного приложения и антивирусных баз; проверка сайтов на предмет наличия вредоносных объектов; периодическая проверка сайтов с помощью модуля родительского контроля; обмен обновлениями антивирусных баз между пользователями; локальный обмен информацией о заражениях между пользователями; обнаружение неизвестных вредоносных программ на базе сравнения извлеченных характеристик с характеристиками известных вредоносных программ.

В одном из других частных вариантов реализации параметры задачи включают объекты для проверки и настройки для выполнения задачи, которые определяются алгоритмом работы задачи.

В еще одном частном варианте реализации задача компьютерной безопасности, которая может быть выполнена в рамках распределенного выполнения, задается исходным компьютером, который является источником задачи.

В другом частном варианте реализации задача компьютерной безопасности выполняется в рамках распределенного выполнения, если исходный компьютер, который является источником задачи, является тонким клиентом.

В одном из частных вариантов реализации задача компьютерной безопасности выполняется в рамках распределенного выполнения, если исходный компьютер, который является источником задачи, имеет недостаток ресурсов.

В еще одном из частных вариантов реализации исходный компьютер, который является источником задачи, также выполняет задачу компьютерной безопасности, которая может быть выполнена в рамках распределенного выполнения.

В другом частном варианте реализации определяют оптимальное количество компьютеров, подходящих под параметры определенной задачи.

В одном из частных вариантов реализации определяют доступное количество компьютеров, подходящих под параметры определенной задачи.

В одном из частных вариантов реализации выполняют задачу компьютерной безопасности, которая может быть выполнена в рамках распределенного выполнения с помощью оптимального количества определенных компьютеров в том случае, если оптимальное количество компьютеров, подходящих под параметры определенной задачи, меньше доступного количества компьютеров, подходящих под параметры определенной задачи.

В еще одном из частных вариантов реализации выполняют задачу компьютерной безопасности, которая может быть выполнена в рамках распределенного выполнения с помощью доступного количества определенных компьютеров в том случае, если оптимальное количество компьютеров, подходящих под параметры определенной задачи, больше доступного количества компьютеров, подходящих под параметры определенной задачи.

В другом частном варианте реализации для достижения цели выполнения задачи требуется передача параметров задачи хотя бы на один из определенных компьютеров, подходящих под параметры определенной задачи.

В одном из частных вариантов реализации для достижения цели выполнения задачи требуется выполнение задачи хотя бы на одном из определенных компьютеров.

В одном из частных вариантов реализации для достижения цели выполнения задачи требуется выполнение задачи на всех из определенных компьютеров.

В еще одном из частных вариантов реализации при определении компьютеров, подходящих под параметры определенной задачи, определяют производительность компьютеров.

В другом частном варианте реализации при определении компьютеров, подходящих под параметры определенной задачи, определяют потребление ресурсов компьютеров для выбора времени выполнения задачи.

Краткое описание чертежей

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления полезной модели со ссылкой на прилагаемые чертежи, на которых:

Фиг.1 показывает пример представления модели распределенных вычислений, где ресурсами выступают сами компьютеры пользователей.

Фиг.2 иллюстрирует рост количества уникальных вредоносных файлов в последние годы.

Фиг.3а показывает примерную схему состава модулей современного антивирусного приложения

Фиг.3б показывает способ выбора задач для исполнения на компьютере пользователя.

Фиг.4 показывает процесс оценки ресурсов компьютерной системы.

Фиг.5 отображает процесс определения потребления ресурсов компьютера для выбора времени выполнения задач.

Фиг.6 рассматривает различные варианты делегирования задач пользователям сервиса распределенных вычислений.

Фиг.7 отображает один из вариантов реализации системы выбора и делегирования задач пользователям сервиса распределенных вычислений.

Фиг.8 приводит вариант реализации взаимного делегирования задач пользователям сервиса распределенных вычислений.

Фиг.9 раскрывает способ взаимодействия компьютеров пользователей в рамках реализации взаимного делегирования задач пользователям сервиса распределенных вычислений.

Фиг.10 иллюстрирует пример распределенной задачи определения вредоносности неизвестной программы.

Фиг.11 представляет пример компьютерной системы общего назначения, на котором может быть реализовано настоящее изобретение.

Описание вариантов осуществления изобретения

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.

Как отмечалось в описании для фиг.2, производители антивирусного ПО (антивирусные компании) сталкиваются с непрерывно возрастающим количеством угроз, с которыми все тяжелее справиться с помощью стандартных методов обнаружения, таких как сигнатурный и эвристический анализ. Можно выделить следующие проблемы, которые стоят перед антивирусными компаниями:

- Рост количества вредоносного ПО, что затрудняет разработку новых антивирусных записей для обнаружения нового вредоносного ПО и последующей передачи пользователям, сказываясь на уменьшении уровня их защиты;

- Отслеживание сайтов в сети Интернет, с которых происходит распространение вредоносного ПО с последующим заражением компьютеров пользователей;

- Проверка растущего количества доверенных программ (технология whitelist, ведение "белого списка" программ).

Все эти проблемы приводят к тому, что антивирусные приложения могут пропускать вредоносное ПО (может быть связано с несвоевременным обновлением баз), допускать ошибки первого и второго рода при обнаружении ПО (например, доверенное приложение может быть распознано как вредоносное) и т.д. По мере роста перечисленных проблем, становится все труднее справиться с ними путем увеличения мощностей (как программно-аппаратных, так и человеческих) в рамках отдельной антивирусной компании. В то же время возможности антивирусных компаний - как аппаратные ресурсы для обработки нового вредоносного ПО, так и людские (эксперты по анализу вредоносного ПО) - достаточно ограничены и наращивать их теми же темпами, которыми растет количество вредоносного ПО, невозможно. Поэтому производители антивирусных приложений постоянно развивают и совершенствуют модули антивирусных продуктов, пытаясь улучшить возможности отдельно взятого приложения для защиты пользователя от вредоносных программ различного типа.

На Фиг.3а изображена примерная схема состава модулей современного антивирусного приложения 300, которое может быть установлено на стороне пользователя 100. Некоторые из модулей являются жизненно необходимыми для работы приложения - это такие модули, как модуль обновления или файловый антивирус. Модуль обновления предназначен в первую очередь для обновления антивирусных баз, актуальность которых позволяет обеспечивать надежность работы, которая заключается в своевременном обнаружении вредоносных программ и иных угроз. Сами антивирусные базы могут содержать, например, сигнатуры известных вредоносных программ, необходимый набор данных для работы модуля анти-спам и т.д. Также под антивирусными базами следует понимать и внешние сервисы, такие как базы данных на стороне антивирусных компаний, которые могут владеть большим банком знаний, как, например, база "белых списков" (whitelist), которая содержит информацию о доверенных программах. В зависимости от использования различных возможностей, вроде электронной почты или сети Интернет, требуются другие модули, такие как: почтовый антивирус, веб-антивирус, IM-антивирус (предназначен для проверки данных, передаваемых через средства мгновенного обмена сообщениями), сетевой экран. Другие являются вспомогательными инструментами; анти-спам модуль для фильтрации входящей электронной почты, модуль резервного копирования, менеджер личных данных (обеспечивает выделение и сохранность особо важных данных), виртуальная клавиатура, которая позволяет осуществлять безопасный ввод, не опасаясь работы таких программ как кейлоггеры (keylogger - программа для регистрации нажатия клавиш на клавиатуре). Некоторые модули, вроде анти-баннера, применимы при использовании веб-браузера при просмотре информации в сети Интернет. Иные модули требуют большого количества времени и ресурсов для проверки, однако способны справляться с еще неизвестными вредоносными программами и атаками. Такими модулями являются модуль HIPS (Host Intrusion Prevention System), который ограничивает доступ к ресурсам компьютера для неизвестных программ, модуль проактивной защиты (Proactive Defense Module), способный определить уже активную фазу заражения (т.е. в тот момент, когда вредоносная программа все же начала работу на компьютере), а также эмулятор и виртуальная машина, необходимые для безопасного запуска неизвестных исполняемых файлов. Приведенный список устройств может различаться от одного антивирусного приложения к другому - различные модули могут называться по разному, некоторые из модулей могут входить в состав других модулей и т.д.

Каждый из модулей, как правило, имеет свои собственные процедуры работы с пользователем. Так, модуль анти-спама предлагает возможность обучения самого модуля, формирование списков доверенных адресов и запрещенных отправителей, формирование списков разрешенных и нецензурных фраз и т.д. Модуль HIPS (Host Intrusion Prevention System) позволяет пользователю устанавливать и менять права доступа к ресурсам для определенных программ, делать различные программы доверенными и формировать группы программ по уровню доверия к ним. Таким образом, каждый из модулей имеет свою степень обращения к пользователю за дополнительной информацией. Несмотря на то что работа большинства модулей происходит в автоматическом режиме, часть действий все равно запрашивает решение пользователя. Все это дает понимание того, что в мире постоянно растущего количества компьютерных угроз конечные действия пользователя по-прежнему играют значительную роль, несмотря на автоматизацию большинства модулей антивирусного приложения.

Стоит отметить, что современные антивирусные приложения позволяют обнаруживать угрозы как при выполнении определенных заданий (например, при проверке жестких дисков), так и при активной работе пользователя, когда он пользуется браузером для просмотра интернет-сайтов, запускает приложения, переписывает данные и т.д. Если пользователь не проявляет активность за компьютером, то действия антивирусного приложения ограничиваются загрузкой обновлений и периодической проверкой (например, жесткого диска), что не позволяет использовать ресурсы как компьютера, так и антивирусного приложения в полной мере для повышения уровня компьютерной безопасности. Поэтому существует необходимость использования модулей антивирусного приложения для распределенного решения задач компьютерной безопасности.

В качестве задач рассматриваются те задачи, которые могут быть решены несколькими процессорами (или ядрами одного процессора) одного или нескольких компьютеров (т.е. представляют пример параллельных вычислений).

Примерами задач компьютерной безопасности, которые могут быть выполнены с помощью ряда компьютеров могут служить следующие задачи (сразу отметим, что подобный список является лишь примерным и может быть расширен и другими задачами, связанными с компьютерной безопасностью):

1. Сбор WHOIS информации. В данном случае под WHOIS информацией воспринимаются регистрационные данные о владельцах доменных имен, IP-адресов и автономных систем. Как правило, подобной информацией обладают регистраторы, но они не позволяют делать слишком частые обращения к их базам WHOIS информации с одного и того же компьютера (IP-адреса). Преимущество сбора такой информации заключается в том, что WHOIS информация очень важна для отслеживания репутации доменов, т.к. эта информация включает как адреса электронной почты, так и телефоны владельцев доменов, которые могут быть использованы при регистрации новых доменов.

2. Создание и пополнение списка доверенных сайтов (whitelist). Преимущество сбора такой информации заключается в глобализации подобного списка с возможностью ведения региональных списков.

3. Деление баз данных различных модулей антивирусного приложения на небольшие части для их использования (тестирования) на стороне пользователя. Преимущество такого метода тестирования заключается в уменьшении временных задержек при проверке новых записей в базах данных. Подобная проблема подробно освящена в патенте на полезную модель RU 92551. Дополнительно помимо баз данных модулей антивирусного приложения 300 могут тестироваться и сами модули.

4. Проверка сайтов на предмет наличия вредоносных объектов с помощью эмулятора сценариев на стороне пользователей. Результаты проверки (ссылка на сайт, вердикт) централизовано собираются в сервисе распределенных вычислений 110 (здесь и далее будем считать, что сервис распределенных вычислений 110 поддерживается антивирусной компанией для решения задач компьютерной безопасности). Преимущество такой проверки: постоянный контроль над большинством известных сайтов в Интернете (с учетом деления по вердиктам, т.е. категоризация сайтов).

5. Периодическая проверка сайтов с помощью модуля родительского контроля для предотвращения доступа к нежелательному контенту. Преимущество такой проверки заключается в своевременном исправлении ложных срабатываний и оперативная реакция на изменения на анализируемом сайте.

6. Обмен обновлениями антивирусных баз между пользователями с помощью пиринговых технологий. Преимущество такого обмена: экономия графика в рамках автономных систем и снижение нагрузки на сервис обновлений антивирусной компании.

7. Локальный обмен информацией о заражениях между пользователями (например, в общей локальной сети). В рамках данной задачи предусматривается возможность отсылки неизвестных файлов (или ссылок на них) на проверку более производительным (или более функционально богатым по модулям антивирусного приложения 300) пользователям. Преимущество такого обмена информацией: снижение нагрузки на сервера антивирусной компании.

8. Обнаружение неизвестных вредоносных программ на базе сравнения извлеченных характеристик с характеристиками известных вредоносных программ (файлов). Более подробно подобный анализ и сравнение характеристик раскрывается в заявке RU 2010154528. Подобная задача характеризуется большой ресурсоемкостью (сравнение с базой всех характеристик известных вредоносных программ может занимать минуты и часы), однако для достижения результата база всех характеристик известных вредоносных программ может быть разделена на несколько частей, каждая из которых может быть обработана на отдельном компьютере, что позволяет сократить время ответа до нескольких секунд.

Каждая задача, подобная приведенным выше, характеризуется рядом параметров: непосредственно параметрами задачи, а также ее условной ресурсоемкостью и средним временем выполнения. Условная ресурсоемкость динамически зависит от самих параметров задачи согласно заранее определенной формуле (как правило, вычисляется эмпирически или определяется на основании статистических данных, так как каждый из параметров прямо или косвенно влияет на ресурсоемкость, например, при увеличении количества объектов для проверки ресурсоемкость может расти прямо пропорционально количеству объектов). Среднее время выполнения определяет время выполнения задачи с определенными параметрами на компьютере с известной производительностью. Как правило, среднее время выполнения задачи может быть получено путем запуска задачи на тестовом компьютере с известной производительностью.

Одним из самых важных параметров является допустимое время выполнения задачи. Например, при обнаружении неизвестных вредоносных программ на базе сравнения извлеченных характеристик с характеристиками известных вредоносных программ время на подобное исследование не должно превышать несколько десятков секунд, так как пользователи не хотят долго ждать результатов анализа неизвестной программы. Таким образом, при нахождении компьютеров, подходящих под параметры определенной задачи, оценивают потребление ресурсов компьютеров для выбора времени выполнения задачи и если требуется выполнить задачу (или ее часть) за краткий промежуток времени, когда компьютер занят, то данный компьютер не будет использован для выполнения задачи.

В качестве параметров задачи могут выступать объекты для проверки, например, это может быть список адресов сайтов для проверки с помощью модуля родительского контроля или набор неизвестных файлов с целью их сравнения с базой характеристик известных вредоносных программ (файлов). Также в качестве параметров можно задавать и настройки для выполнения задачи, которые определяются алгоритмом работы задачи.

Еще одним важным параметром является количество компьютеров, с помощью которых задача может быть выполнена. Оптимальное количество компьютеров подразумевает необходимое количество компьютеров для выполнения задачи за заданное время. Доступное количество компьютеров подразумевает доступное количество компьютеров, которые могут быть использованы для выполнения задачи за заданное время. Задача может быть выполнена в рамках распределенного выполнения с помощью оптимального количества определенных компьютеров в том случае, если оптимальное количество компьютеров, подходящих под параметры определенной задачи, меньше доступного количества компьютеров, подходящих под параметры определенной задачи. Задача может быть выполнена в рамках распределенного выполнения с помощью доступного количества определенных компьютеров в том случае, если оптимальное количество компьютеров, подходящих под параметры определенной задачи, больше доступного количества компьютеров, подходящих под параметры определенной задачи.

Определив круг задач, следует рассмотреть ряд важных моментов, связанных с непосредственным выполнением подобных задач на ряде компьютеров 100, а именно: определение достаточной производительной мощности компьютера, определение доступности ресурсов компьютеров, определение доступных задач для исполнения.

Фиг.3б показывает способ выбора задач для исполнения на компьютере пользователя. На этапе 310 происходит проверка информации об используемом антивирусном приложении. В информацию об используемом антивирусном приложении входят данные о версии антивирусного приложения, его точный идентификатор, номер сборки, идентификаторы примененных патчей, информация о лицензии и т.д. Информация о лицензии особенно важна, так как лицензия напрямую связана с лицензионным соглашением пользователя (EULA), которое определяет объем прав на копию приложения. Например, при покупке платного антивирусного приложения пользователь получает лицензию на некоторый срок (например, 1 год), в то же время использование бесплатного антивирусного приложения не ограничивается сроками вообще. Кроме того, лицензионное соглашение пользователя также может определять объем действий, которые можно осуществлять с данными на компьютере пользователя, а также, в частности, какие распределенные задачи можно выполнять на компьютере пользователя. В том случае если, например, лицензия не позволяет использовать ресурсы компьютера, то способ завершается на этапе 360.

На этапе 320 проверяется производительность компьютера. Многие программы, вроде HD Tune, PCMark Vantage, 3DMark Vantage, SiSoftware Sandra, способны оценивать различные ресурсы в баллах, которые соответствуют подсчитанным в результате тестов значениям производительности. Например, это может быть некоторая оценка вычислительной мощности видеокарты или процессора, пропускная способность жесткого диска или сетевого соединения и другое. Отметим также, что в последних версиях Microsoft Windows также присутствует оценка производительности компонент компьютера.

Таким образом, используя различные известные методы оценки (или предоставляемые производителем характеристики), можно всегда получить информацию о ключевых характеристиках различных компонент (ресурсов) компьютера в некоторых условных единицах. Например, для следующих ресурсов можно получить следующие данные:

- Центральный процессор (производительность при вычислениях, количество ядер, тактовая частота, архитектура);

- Память (объем, пропускная способность Мбайт/сек);

- Жесткий диск (пропускная способность Кбайт/сек);

- Сеть (пропускная способность соединения Мбит/сек).

Для упрощения можно привязать к