СПОСОБ РАСПРЕДЕЛЕННОГО ВЫПОЛНЕНИЯ ЗАДАЧ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ Российский патент 2013 года по МПК G06F21/00 

Описание патента на изобретение RU2494453C2

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

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

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

В настоящее время в связи с бурным развитием естественных наук появляется необходимость в использовании все большего количества вычислительных мощностей. Подобные вычислительные мощности могут предоставить суперкомпьютеры вроде 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 также присутствует оценка производительности компонент компьютера.

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

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

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

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

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

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

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

Таким образом, можно получить оценку системы в виде некоторых условных баллов для каждого ресурса. Например, для компьютера с характеристиками процессор/память/жесткий диск/сеть, например, такими - Р4 3.0Ghz/512Mb/500Gb HDD 7200Rpm/10Mbit оценка может быть 3000/512/65000/10000. Для конфигурации вроде Core i7 2.66Ghz/4096Mb/SSD 160Gb/30Mbit оценка может составить 10000/4096/200000/30000. Конечно, приведенные цифры весьма условны и приведены только для примера и сравнения. Еще одним фактором, который влияет на производительность, является операционная система. Количество потребляемых ресурсов также достаточно хорошо известно, хотя для каждого компьютера эти значения могут разниться, но можно полагать, что средние значения являются известными. Можно также заложить некоторый предел потребления ресурсов в зависимости от количества установленных обновлений и настроек ОС.

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

Время выполнения задачи на приведенной системе = (Среднее время выполнения) * (производительность приведенной системы / производительность тестовой системы) * (модификатор параметров задачи),

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

Фиг.4 показывает процесс оценки ресурсов компьютерной системы, происходящий на этапе 320. На этапе 410 происходит оценка производительности ресурсов компьютера вышеприведенными способами. На этапе 420 также происходит оценка ОС, которая установлена на компьютере, после чего также происходит оценка потребления ресурсов различными установленными приложениями, которые использует пользователь, на этапе 430.

Для более качественной оценки может использоваться система нечеткой логики. Система нечеткой логики предполагает три этапа:

1. Фаззификация - введение нечеткости. Для выполнения этой операции для всех входных переменных определяются лингвистические переменные, для каждой лингвистической переменной формируются терм-множества, для каждого терма строятся функции принадлежности. Например, лингвистическая переменная «производительность процессора», для нее терм-множество будет иметь вид {«очень низкая», «низкая», «средняя», «высокая», «очень высокая»}, что позволяет отойти от большого количества чисел.

2. Создание и использование нечеткой базы знаний. Нечеткая база знаний состоит из продукционных правил вида ЕСЛИ <посылка правила> ТО <заключение правила>. Например, можно использовать следующее правило: «ЕСЛИ производительность процессора высокая, ТО производительность системы высокая». Построение таких правил обычно не вызывает затруднения, так как они понятны и являются своего рода «вербальным кодированием».

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

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

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

Один из вариантов определения оценки потребления ресурсов компьютера самим пользователем предусматривает отслеживание активности работы пользователя за компьютером. На сегодняшний день известно большое количество способов определения факта присутствия пользователя на рабочем месте за компьютером и определения факта работы пользователя на компьютере, а также задач, которые могут быть выполнены во время отсутствия пользователя. В заявке US 20070300312 A1 определяется отсутствие пользователя одним из известных способов, например, с помощью детектора, камеры или устройства ввода данных, после чего отключаются те порты и сервисы, которые с определенной долей вероятности могут быть атакованы в период отсутствия пользователя. В патенте US 7152172 описывается система, которая позволяет продлить время работы от батареи для ноутбуков, путем определения отсутствия пользователя и его работы на компьютере с помощью отслеживания мыши или клавиатуры, а так же камеры, для перехода в режим энергосбережения. В патенте US 6650322 для тех же целей могут быть использованы два тепловых сенсора.

Фиг.5 отображает процесс определения потребления ресурсов компьютера для выбора времени выполнения задач, который происходит на этапе 330. На этапе 510 происходит оценка времени работы компьютера, т.е. того времени, в течение которого компьютер находился во включенном состоянии. Далее на этапе 520 происходит оценка использования ресурсов компьютера пользователем любым из способов, приведенных выше. На опциональном этапе 530 (выделено пунктиром) определяются закономерности использования компьютера пользователем. В качестве примера можно привести временные рамки за сутки (или по дням недели), во время которых, пользователь обычно использует свой компьютер, но сам компьютер в то же время доступен. На этапе 540 определяется отношение времени использования ресурсов компьютера пользователем к времени работы компьютера, и определяется свободное время, которое можно использовать для выполнения задач.

На этапе 340 в учет могут быть приняты дополнительные параметры пользователя. В расчет могу браться такие параметры, как: большое количество заражений может послужить причиной отказа в работе антивирусного приложения, т.к. многие вредоносные программы пытаются завершить процессы всех известных антивирусных приложений, различные сведения о конфликтах антивирусного приложения с другими приложениями на компьютере, что может повлиять на эффективность выполнения задач и т.д. Также возможно использование ресурсов нелегальных пользователей для решения любых типов задач. Таким образом, на этапе 350 происходит определение возможности выполнения каких-либо задач для конкретного пользователя и его компьютера. Определение возможности выполнения задачи может быть реализовано в виде сравнения параметров задачи и параметров, определенных на этапах 320-340. После этого на этапе 370 на компьютер пользователя будет делегирована выбранная задача.

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

Фиг.6 рассматривает различные варианты делегирования задач пользователям сервиса распределенных вычислений. Самый простой вариант реализации предусматривает прямое делегирование задач от сервиса распределенных вычислений 110 непосредственно на компьютер пользователя 100. Вариант использования компьютера-посредника 610 позволяет снизить нагрузку на полосу пропускания сервиса распределенных вычислений 110. Выбор компьютера-посредника 610 может быть осуществлен, например, исходя из топологии локальной сети, где установлен компьютер-посредник 610. Подобный компьютер-посредник 610 может быть использован для аккумулирования задач и результатов их выполнения, что позволяет снизить объем графика к сервису распределенных вычислений 110.

Еще один вариант делегирования задач подходит для использования большого количества вычислительных ресурсов (выделенных серверов) 630 в целях выполнения распределенных задач. Для этого выделяется компьютер-посредник 620, который позволяет использовать антивирусное приложение 300 на ограниченном количестве компьютеров 630 с целью выполнения распределенных задач. Установленное на данных компьютерах антивирусное приложение имеет полный доступ к вычислительным ресурсам компьютера и может выполнять более широкий спектр задач, таких как использование модулей антивирусного приложения с настройками, ориентированными на максимальную защиту, что позволяет получать наиболее полные данные о неизвестных объектах. Например, таким образом можно получить полный журнал эмуляции неизвестной программы и проанализировать его.

Фиг.7 отображает один из вариантов реализации системы выбора и делегирования задач пользователям сервиса распределенных вычислений. За компьютером 100 работает пользователь 710, действия которого отслеживаются с помощью средства 720 отслеживания действий пользователя. Средство 720 отслеживания действий пользователя может регистрировать время, которое пользователь проводит за компьютером 100, так и уровень использования вычислительных ресурсов (отображено на Фиг.5). С другой стороны, средство 730 оценки производительности определяет уровень производительности как компьютера в целом, так и отдельных его компонент (отображено на Фиг.4), а также потребление этих ресурсов другими приложениями, которые использует пользователь. Полученные от средства 720 отслеживания действий пользователя и от средства 730 оценки производительности данные попадают на средство 740 запроса задач, которое определяет возможность делегирования задач на компьютер 100. Средство 740 запроса задач связано со средством 750 выполнения задач, которое отвечает за выполнение распределенных задач на компьютере 100 и в одном из вариантов реализации включено в антивирусное приложение 300.

В случае возможности делегирования задач на компьютер 100 средство 740 запроса задач отправляет запрос на средство 760 делегирования задач с указанием предоставить задачу и все необходимые для ее обсчета данные. Само средство 760 делегирования задач располагается в сервисе распределенных вычислений 110. Средство 760 делегирования задач перенаправляет полученные данные на средство 770 подбора задач, которое будет иметь следующую информацию для анализа: информация о производительности компьютера и его компонента, а также информация об использовании вычислительных ресурсов компьютера самим пользователем. Данная информация используется для определении задачи для выполнения путем запроса в базе данных 780 задач, которая содержит информацию о всех необходимых для выполнения задачах, так и в базе данных 790 оценки ресурсоемкости, которая содержит информацию о требованиях к вычислительным ресурсам для каждого определенного типа задач. Таким образом, задача определяется следующими параметрами:

- Тип задачи (например, тестирование баз данных различных модулей антивирусного приложения).

- Требования к производительности компьютера, так и к отдельным вычислительным ресурсам. Данная информация будет сопоставлена с данными от средства 730 оценки производительности и средства 720 отслеживания действий пользователя.

- Требования к установленным модулям антивирусного приложения 300. Данная информация может быть сопоставлена, например, с информацией об антивирусном приложении 300, которое установлено на компьютере 100.

- Объем данных, используемых самой задачей и ее параметры.

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

Определив задачу, которая подходит под приведенные выше параметры, средство 770 подбора задач выдает задачу и необходимые для ее исполнения данные на средство 760 делегирования задач, которое пересылает эту информацию на средство 740 запроса задач. Средство 740 запроса задач определяет время бездействия пользователя и отправляет задачу на выполнение на средство 750 выполнения задач. После выполнения задачи средство 750 выполнения задач передает результаты на средство 740 запроса задач, которое отправляет результаты выполнения в сервис распределенных вычислений 110 на средство 760 делегирования задач. Полученные результаты могут быть сохранены в базе данных 795 результатов.

На Фиг.8 приведен вариант реализации взаимного делегирования задач пользователям сервиса распределенных вычислений. Предложенный вариант предусматривает как использование компьютера-посредника 610 (рассмотрено на Фиг.6), так и непосредственное взаимодействие компьютеров 100 между собой при выполнении распределенных задач. Последний вариант требует отдельного пояснения.

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

Фиг.9 раскрывает способ взаимодействия компьютеров пользователей в рамках реализации взаимного делегирования задач пользователям сервиса распределенных вычислений. В рамках приведенной реализации на компьютеры 100 могут быть установлены все средства, которые приведены на Фиг.7, используемые в рамках сервиса распределенных вычислений 110, т.е. по крайней мере один из компьютеров 100 может выполнять функции сервиса распределенных вычислений 110. В одном из вариантов реализации каждый из компьютеров 100 может выполнять функции сервиса распределенных вычислений 110, что также позволяет задавать задачи на каждом из этих компьютеров. На этапе 910 определяется задача для распределенного выполнения. Типичным примером подобной задачи является определение вредоносности неизвестного файла на одном из компьютеров 100 или задача обновления баз, которая стоит особенно остро, если серверы антивирусной компании не могут своевременно ответить на запрос об обновлении (причиной может быть DDoS атака или блокирование доступа к серверам антивирусной компании со стороны неизвестной вредоносной программы). Задача для распределенного выполнения может быть решена с использованием компьютеров других пользователей также в случаях, когда задача не может быть решена на исходном компьютере, который являлся источником задачи (в случае тонкого клиента или недостатка ресурсов). Одним из компьютеров, выполняющих задачу для распределенного выполнения, может быть сам исходный компьютер, который являлся источником задачи. Затем, на этапе 920, происходит поиск компьютеров для выполнения подобной задачи. Подобный поиск может включать, например, широковещательный запрос в рамках доступного сегмента сети с целью обнаружения компьютеров с установленным антивирусным приложением 300. Еще один из вариантов обнаружения компьютеров с установленным антивирусным приложением 300 использует почтовые ячейки (mailslot) и более подробно описан в заявке RU 2010147724.

На этапе 930 определяется, были ли найдены компьютеры, которые удовлетворяют критериям для выполнения определенной задачи. Критерии могут включать требования к производительности компьютера и его доступности и подробно изложены на Фиг.3б-5. Если компьютеры найдены не были, то способ завершается на этапе 940, а в противном случае на этапе 950 задача разбивается с целью распределенного выполнения в соответствии с числом доступных компьютеров. Еще один вариант реализации подразумевает запрос оптимального количества компьютеров для выполнения задачи на этапах 920-930.

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

Стоит отметить, что в ряде случаев не требуется ждать выполнения всех частей задачи, которые были распределены на компьютеры на этапе 950. Приведем конкретный пример определения вредоносности неизвестной программы, который отображен на Фиг.10. На компьютере 100А с помощью антивирусного приложения 300 была обнаружена неизвестная программа X, однако достоверно уточнить, является ли эта программа вредоносной, не удалось (например, в силу того, что базы не были вовремя обновлены). С целью определения вредоносности данной программы эта программа или ее метаданные (например, хеш-сумма, размер, тип исполняемого файла, данные, взятые из заголовка файла, и т.д.) передаются компьютеры 100, каждый из которых располагает рядом техник проверки и/или набором признаков, обозначенных как А, В, С, с помощью которых может установлен факт вредоносности программы. Например, в качестве техники проверки может быть использован эмулятор, а также виртуальная машина или модуль проактивной защиты. В другом варианте реализации может использовать один модуль антивирусного приложения 300, но с различными настройками. В другом варианте реализации под А, В, С подразумеваются различные наборы признаков или фрагменты антивирусных баз, используемых модулями антивирусного приложения 300.

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

На Фиг.11 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS), содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс привода магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.

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

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35 и дополнительные программные приложения 37, другие программные модули 38 и программные данные 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонки, принтер и т.п.

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

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 51 и глобальную вычислительную сеть (WAN) 52. Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 51 через сетевой адаптер или сетевой интерфейс 53, При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью 52, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными, и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

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

Похожие патенты RU2494453C2

название год авторы номер документа
СИСТЕМА И СПОСОБ ДЛЯ ОПТИМИЗАЦИИ ВЫПОЛНЕНИЯ АНТИВИРУСНЫХ ЗАДАЧ В ЛОКАЛЬНОЙ СЕТИ 2010
  • Тихомиров Антон Владимирович
  • Кулага Андрей Александрович
RU2453917C1
СИСТЕМА И СПОСОБ РАСПРЕДЕЛЕНИЯ ЗАДАЧ АНТИВИРУСНОЙ ПРОВЕРКИ МЕЖДУ ВИРТУАЛЬНЫМИ МАШИНАМИ В ВИРТУАЛЬНОЙ СЕТИ 2014
  • Ярыкин Павел Николаевич
  • Годунов Илья Борисович
RU2580030C2
СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ ПАРАМЕТРАМИ ПРИЛОЖЕНИЙ НА КОМПЬЮТЕРНЫХ УСТРОЙСТВАХ ПОЛЬЗОВАТЕЛЯ 2013
  • Меркулов Петр Сергеевич
  • Дронов Виктор Феликсович
RU2571725C2
Способ ускорения полной антивирусной проверки файлов на мобильном устройстве 2019
  • Чебышев Виктор Владимирович
  • Главатских Дмитрий Николаевич
  • Филатов Константин Михайлович
  • Кусков Владимир Анатольевич
RU2726878C1
СПОСОБ ИСПОЛЬЗОВАНИЯ ВЫДЕЛЕННОГО СЕРВИСА КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ 2015
  • Ефремов Андрей Анатольевич
  • Лапушкин Антон Сергеевич
RU2601162C1
СПОСОБ АВТОМАТИЧЕСКОЙ НАСТРОЙКИ СРЕДСТВА БЕЗОПАСНОСТИ 2012
  • Зайцев Олег Владимирович
RU2514137C1
Способ выборочного повторного антивирусного сканирования файлов на мобильном устройстве 2019
  • Чебышев Виктор Владимирович
  • Главатских Дмитрий Николаевич
  • Филатов Константин Михайлович
  • Кусков Владимир Анатольевич
RU2726877C1
СПОСОБ ФОРМИРОВАНИЯ АНТИВИРУСНОЙ ЗАПИСИ ПРИ ОБНАРУЖЕНИИ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2592383C1
Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов 2017
  • Чистяков Александр Сергеевич
  • Лобачева Екатерина Максимовна
  • Романенко Алексей Михайлович
RU2659737C1
Система и способ формирования правила проверки файла на вредоносность 2020
  • Лопатин Евгений Игоревич
  • Снегирев Артем Игоревич
  • Лискин Александр Викторович
  • Акимов Иван Андреевич
RU2757408C1

Иллюстрации к изобретению RU 2 494 453 C2

Реферат патента 2013 года СПОСОБ РАСПРЕДЕЛЕННОГО ВЫПОЛНЕНИЯ ЗАДАЧ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ

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

Формула изобретения RU 2 494 453 C2

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

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

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

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

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

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

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

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

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2013 года RU2494453C2

Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
US 7243373 B2, 10.07.2007
ПРИСПОСОБЛЕНИЕ К ЗЕРНОВЫМ КОМБАЙНАМ ДЛЯ ВЫТИРАНИЯ И ОЧИСТКИ СЕМЯН ТРАВ 1950
  • Левкин А.Д.
SU91202A1
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
US 20070266436 A1, 15.11.2007
Машина для изготовления пустотелых железобетонных изделий 1952
  • Балакирев Н.Г.
  • Розенблит Я.И.
SU101229A1
US 7003547 B1, 21.02.2006.

RU 2 494 453 C2

Авторы

Духвалов Андрей Петрович

Машевский Юрий Вячеславович

Тихомиров Антон Владимирович

Даты

2013-09-27Публикация

2011-11-24Подача