ДИНАМИЧЕСКИЙ ИНДИКАТОР РЕПУТАЦИИ ДЛЯ ОПТИМИЗАЦИИ ОПЕРАЦИЙ ПО ОБЕСПЕЧЕНИЮ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ
DYNAMIC REPUTATION INDICATOR FOR OPTIMIZATION OF COMPUTER SECURITY OPERATIONS

УРОВЕНЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к системам и способам защиты компьютерных систем от вредоносного программного обеспечения.
[0002] Вредоносное программное обеспечение, также известное как вредоносные программы, негативно влияет на множество компьютерных систем по всему миру. Во многих своих видах, таких как компьютерные вирусы, черви, руткиты и шпионские программы, вредоносные программы представляют серьезную опасность для миллионов пользователей компьютеров, делая их уязвимыми к потере данных и конфиденциальной информации, вторжению в частную жизнь, краже личных данных, потере продуктивности работы и т.д.
[0003] Программное обеспечение безопасности может использоваться для обнаружения вредоносных программ, заражающих компьютерную систему пользователя, для удаления и/или обезвреживания таких вредоносных программ. В данной области техники известно несколько методов обнаружения вредоносных программ. Некоторые из них основаны на содержимом и сопоставляют фрагмент кода агента вредоносных программ с библиотекой сигнатур, характерных для вредоносных программ. Другие традиционные методы, обычно известные как поведенческие, обнаруживают ряд подозрительных или характерных для вредоносных программ действий агента вредоносных программ.
[0004] Программное обеспечение безопасности может оказывать значительную вычислительную нагрузку на компьютерную систему пользователя, зачастую заметно влияя на производительность и работу пользователя. Постоянное распространение вредоносного программного обеспечения также усложняет процедуры обнаружения вредоносных программ, а также размер баз данных сигнатур. Для снижения вычислительных затрат программное обеспечение безопасности может содержать различные процедуры оптимизации.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0005] В соответствии с одним аспектом предложена клиентская система, содержащая по меньшей мере один аппаратный процессор, конфигурированный для исполнения целевой сущности, диспетчер репутации и механизм защиты от вредоносных программ. Диспетчер репутации конфигурирован, чтобы в ответ на получение первого индикатора репутации целевой сущности от сервера репутации, причем первый индикатор репутации указывает на вероятность того, что целевая сущность является вредоносной, передавать индикатор репутации в механизм защиты от вредоносных программ. Диспетчер репутации дополнительно конфигурирован, чтобы в ответ на получение первого индикатора репутации, определять, выполнила ли целевая сущность любое действие из набора предварительно определенных действий в течение первого интервала времени. Если целевая сущность не выполнила любое действие из набора предварительно определенных действий в течение первого интервала времени, диспетчер репутации определяет второй индикатор репутации целевой сущности, причем второй индикатор репутации указывает на меньшую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации. Затем диспетчер репутации передает второй индикатор репутации в механизм защиты от вредоносных программ и в сервер репутации. Если целевая сущность выполнила первое действие из набора предварительно определенных действий, диспетчер репутации определяет третий индикатор репутации целевой сущности, указывающий на большую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации. После этого диспетчер репутации передает третий индикатор репутации в механизм защиты от вредоносных программ и в сервер репутации. Механизм защиты от вредоносных программ конфигурирован, чтобы в ответ на получение первого индикатора репутации, применять первый протокол для определения, является ли целевая сущность вредоносной. Механизм защиты от вредоносных программ дополнительно конфигурирован, чтобы в ответ на получение второго индикатора репутации, применять второй протокол для определения, является ли целевая сущность вредоносной, причем второй протокол является менее вычислительно затратным, чем первый протокол. Механизм защиты от вредоносных программ дополнительно конфигурирован, чтобы в ответ на получение третьего индикатора репутации, применять третий протокол для определения, является ли целевая сущность вредоносной, причем третий протокол является более вычислительно затратным, чем первый протокол.
[0006] В соответствии с другим аспектом предложена серверная компьютерная система, содержащая по меньшей мере один аппаратный процессор, конфигурированный для выполнения транзакций управления репутацией с множеством клиентских систем, причем транзакция управления репутацией включает в себя: в ответ на запрос, полученный от клиентской системы из множества клиентских систем, извлечение первого индикатора репутации целевой сущности из базы данных репутации сущности, причем первый индикатор репутации целевой сущности указывает на вероятность того, что целевая сущность является вредоносной. Упомянутая транзакция дополнительно включает в себя: передачу, в ответ на извлечение первого индикатора репутации, первого индикатора репутации в клиентскую систему и получение, в ответ на передачу первого индикатора репутации, второго индикатора репутации целевой сущности от клиентской системы. Транзакция дополнительно включает в себя, в ответ на получение второго индикатора репутации, сравнение первого и второго индикаторов репутации. В ответ, если второй индикатор репутации указал на меньшую вероятность вредоносности целевой сущности, чем, вероятность, указанная первым индикатором репутации, транзакция дополнительно включает в себя добавление второго индикатора репутации в группу индикаторов репутации, полученных от множества клиентских систем, причем все элементы группы определены для экземпляров целевой сущности. Транзакция дополнительно включает в себя, определение, выполнено ли условие обновления репутации в ответ на добавление второго индикатора репутации в группу, и, в ответ, если условие обновления выполнено, замену первого индикатора репутации в базе данных репутации на обновленный индикатор репутации, определенный в соответствии с группой. Определение второго индикатора репутации включает в себя использование клиентской системы для определения, в ответ на получение первого индикатора репутации, выполнила ли целевая сущность любое действие из набора предварительно определенных действий в течение первого интервала времени. Если целевая сущность не выполнила ни одного действия из набора предварительно определенных действий в течение первого интервала времени, определение второго индикатора репутации дополнительно включает в себя формулирование второго индикатора репутации для указания на меньшую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации, и, если целевая сущность выполнила первое действие из набора предварительно определенных действий, формулирование второго индикатора репутации для указания на большую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации.
[0007] В соответствии с другим аспектом предложен долговременный машиночитаемый носитель, хранящий набор инструкций, которые, при исполнении аппаратным процессором клиентской системы, обеспечивают формирование клиентской системой диспетчера репутации и механизма защиты от вредоносных программ. Клиентская система конфигурирована для исполнения целевой сущности. Диспетчер репутации конфигурирован, в ответ на получение первого индикатора репутации целевой сущности от сервера репутации, причем первый индикатор репутации указывает на вероятность вредоносности целевой сущности, передавать индикатор репутации в механизм защиты от вредоносных программ. Диспетчер репутации дополнительно конфигурирован, чтобы в ответ на получение первого индикатора репутации, определять, выполнила ли целевая сущность любое действие из набора предварительно определенных действий в течение первого интервала времени. Если целевая сущность не выполнила любое действие из набора предварительно определенных действий в течение первого интервала времени, диспетчер репутации определяет второй индикатор репутации целевой сущности, указывающий на меньшую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации. Затем диспетчер репутации передает второй индикатор репутации в механизм защиты от вредоносных программ и в сервер репутации. Если целевая сущность выполнила первое действие из набора предварительно определенных действий, диспетчер репутации определяет третий индикатор репутации целевой сущности, указывающий на большую вероятность вредоносности целевой сущности, чем вероятность, указанная первым индикатором репутации. После этого диспетчер репутации передает третий индикатор репутации в механизм защиты от вредоносных программ и на сервер репутации. Механизм защиты от вредоносных программ конфигурирован, чтобы в ответ на получение первого индикатора репутации использовать первый протокол для определения того, является ли целевая сущность вредоносной. Механизм защиты от вредоносных программ дополнительно конфигурирован, чтобы в ответ на получение второго индикатора репутации использовать второй протокол для определения того, является ли целевая сущность вредоносной, причем второй протокол является менее вычислительно затратным, чем первый протокол. Механизм защиты от вредоносных программ дополнительно конфигурирован, чтобы в ответ на получение третьего индикатора репутации, использовать третий протокол для определения того, является ли целевая сущность вредоносной, причем третий протокол является более вычислительно затратным, чем первый протокол.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Вышеизложенные аспекты и преимущества настоящего изобретения станут более понятными при прочтении нижеследующего подробного описания, данного со ссылкой на чертежи, на которых представлено следующее.
[0009] На фиг. 1 показана примерная система защиты от вредоносных программ, содержащая множество клиентских систем и сервер репутации, согласно некоторым вариантам осуществления настоящего изобретения.
[0010] На фиг. 2 показано примерный подробный вид изолированной среды, такой как корпоративная интрасеть, защищенной от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[0011]На фиг. 3 показана примерная запись базы данных репутации согласно некоторым вариантам осуществления настоящего изобретения.
[0012] На фиг. 4-A показана примерная аппаратная конфигурация клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0013] На фиг. 4-B показана примерная аппаратная конфигурация сервера репутации согласно некоторым вариантам осуществления настоящего изобретения.
[0014] На фиг. 5 показана примерный набор программных объектов, исполняемых в клиентской системе, включая приложение безопасности, конфигурированное для защиты клиентской системы от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[0015] На фиг. 6 показаны примерные компоненты приложения безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0016] На фиг. 7 изображен примерный обмен данными между компонентом диспетчера репутации и механизмом защиты от вредоносных программ согласно некоторым вариантам осуществления настоящего изобретения.
[0017] На фиг. 8 показан примерный обмен данными между клиентской системой и сервером репутации согласно некоторым вариантам осуществления настоящего изобретения.
[0018] На фиг. 9 показаны примерные компоненты цифрового отпечатка исполняемой сущности согласно некоторым вариантам осуществления настоящего изобретения.
[0019] На фиг. 10 показаны примерные наборы и расширенные наборы исполняемых сущностей согласно некоторым вариантам осуществления настоящего изобретения.
[0020] На фиг. 11 показана примерная структура данных, связанная с исполняемой сущностью, исполняемой в клиентской системе, согласно некоторым вариантам осуществления настоящего изобретения.
[0021] На фиг. 12-А показана примерная последовательность этапов, выполняемых компонентом диспетчера репутации в приложении безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[0022] На фиг. 12-B показано продолжение примерной последовательности этапов с фиг. 11-A согласно некоторым вариантам осуществления настоящего изобретения.
[0023] На фиг. 12-C показано другое продолжение примерной последовательности этапов с фиг. 11-A согласно некоторым вариантам осуществления настоящего изобретения.
[0024] На фиг. 12-D показано еще одно продолжение примерной последовательности этапов с фиг. 11-A согласно некоторым вариантам осуществления настоящего изобретения.
[0025] На фиг. 13 показано примерное изменение по времени индикатора репутации согласно некоторым вариантам осуществления настоящего изобретения.
[0026] На фиг. 14 показана примерная последовательность этапов, выполняемых механизмом защиты от вредоносных программ в приложении безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0027] На фиг. 15 показана примерная последовательность этапов, выполняемых сервером репутации, согласно некоторым вариантам осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0028] В нижеследующем описании подразумевается, что все перечисленные соединения между структурами могут быть непосредственными функциональными соединениями или опосредованными функциональными соединениями с использованием промежуточных структур. Набор элементов содержит один или более элементов. Любое упоминание элемента понимается как по меньшей мере один элемент. Множество элементов включает в себя по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном показанном порядке. Первый элемент (например, данные), полученный из второго элемента, охватывает первый элемент, эквивалентный второму элементу, а также первый элемент, генерированный путем обработки второго элемента и, опционально, других данных. Выполнение определения или решения в соответствии с параметром охватывает выполнение определения или принятие решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самих количества/данных. Компьютерная безопасность охватывает защиту пользователей и оборудования от непреднамеренного или несанкционированного доступа к данным и/или оборудованию, от непреднамеренного или несанкционированного изменения данных и/или оборудования, а также от уничтожения данных и/или оборудования. Компьютерная программа представляет собой последовательность инструкций процессора, выполняющих некоторую задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными сущностями или под-сущностями (например, подпрограммами, библиотеками) других компьютерных программ. Если не указано иное, процесс представляет собой экземпляр компьютерной программы, имеющий отдельное пространство памяти и по меньшей мере выполняемый поток, причем пространство памяти хранит закодированный набор инструкций процессора (например, машинный код). Если не указано иное, хэш-код является результатом работы хэш-функции. Если не указано иное, хэш-функция является математическим преобразованием, отображающим последовательность символов переменной длины (например, алфавитные символы, биты) в битовую строку фиксированной длины. Машиночитаемые носители включают в себя долговременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, динамическое запоминающее устройство с произвольной выборкой (DRAM)), а также каналы связи, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящего изобретения предусмотрены, помимо прочего, компьютерные системы, содержащие аппаратное обеспечение (например, один или более процессоров), запрограммированное для выполнения способов, описанных в данном документе, а также инструкции кодирования машиночитаемого носителя для выполнения способов, описанных в данном документе.
[0029] В дальнейшем описании раскрыты варианты осуществления настоящего изобретения с помощью неограничивающего примера.
[0030] На фиг. 1 показана примерная компьютерная система 5 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Система 5 содержит набор клиентских систем 10a-c и центральный сервер 14a репутации, соединенные по сети 20 передачи данных. Центральный сервер 14a репутации также может быть соединен с обеспечением сообщения с центральной базой данных 16a репутации. Сеть 20 может быть глобальной сетью, такой как Интернет, в то время как части сети 20 могут также включать в себя локальную сеть (LAN).
[0031] Система 5 также может содержать набор изолированных сред 12a-b, соединенных с сетью 20. Изолированная среда может представлять собой, например, интранет компании. Среды 12a-b могут быть отделены от остальной части сети 20 брандмауэрами и/или другими средствами круговой защиты. На фиг. 2 изображена такая изолированная среда 12, содержащая набор клиентских систем 10d-e и локальный сервер 14b репутации, соединенные с локальной сетью 120. Сеть 120 может представлять собой, например, локальную вычислительную сеть. В некоторых вариантах осуществления изолированная среда 12 может дополнительно содержать локальную базу данных 16b репутации, созданную с учетом специфики упомянутой среды и соединенную с возможностью сообщения с локальным сервером 14b репутации.
[0032] Клиентские системы 10a-e представляют компьютерные системы конечного пользователя, защищенные от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Примерные клиентские системы 10a-e включают в себя персональные компьютеры, мобильные вычислительные и/или телекоммуникационные устройства, такие как планшетные персональные компьютеры, мобильные телефоны, карманные персональные компьютеры (КПК), носимые вычислительные устройства (например, смарт-часы), бытовые устройства, такие как телевизоры или музыкальные проигрыватели или любое другое электронное устройство, имеющее процессор и память. Клиентские системы 10a-e могут представлять отдельных клиентов компании компьютерной безопасности, при этом одному клиенту могут принадлежать множество клиентских систем.
[0033] Клиентские системы 10a-e могут использовать данные о репутации для повышения эффективности операций компьютерной безопасности. В некоторых вариантах осуществления серверы 14a-b репутации обрабатывают данные о репутации по запросу клиентских систем 10a-e, например, для сохранения данных о репутации в базах данных 16a-b репутации и их выборочного извлечения из баз данных 16a-b репутации, а также для передачи таких данных запрашивающей клиентской системе. Подробности таких транзакций приведены ниже.
[0034] Базы данных 16a-b репутации могут быть конфигурированы для хранения данных о репутации, связанных с различными исполняемыми сущностями (приложениями, компонентами операционной системы, процессами, библиотеками, скриптами и т.п.). Данные о репутации могут быть сохранены в виде множества записей, при этом каждая запись соответствует отдельной исполняемой сущности. На фиг. 3 показана примерная запись 17 базы данных репутации, содержащая идентификационный маркер исполняемой сущности (в данном документе называемый цифровым отпечатком 70 сущности) и индикатор 60 репутации, указывающий на вероятность того, что соответствующая сущность является вредоносной. Каждая запись базы данных репутации также может содержать метку времени (обозначенную как TS0), указывающую на момент, когда был создан индикатор 60, и/или на момент последнего обновления соответствующего индикатора репутации. Запись 17 дополнительно может содержать индикатор времени жизни репутации (RL), указывающий на срок действия соответствующего индикатора репутации. Путем задания ограниченного времени жизни для данных о репутации в некоторых вариантах осуществления эффективно инициируют периодическое обновление таких данных, тем самым сдерживая распространение соответствующей сущностью потенциальной инфекции. Индикатор времени жизни может варьироваться от одной исполняемой сущности к другой, причем репутация некоторых сущностей, которые оказались вредоносными или безвредными, может иметь неограниченное время жизни. Цифровые отпечатки и индикаторы репутации описаны более подробно ниже.
[0035] В некоторых вариантах осуществления различают текущую репутацию сущности и историческую репутацию (HR) соответствующей сущности. Текущая репутация относится к репутации сущности, в настоящий момент загруженной или исполняющейся в клиентской системе. Историческая репутация в данном документе используется для обозначения значения индикатора репутации, ранее вычисленного для другого экземпляра соответствующей исполняемой сущности и хранимого в базах 16a и/или 16b данных. Исторические репутации могут содержать данные о репутации, собранные воедино из других клиентских систем и/или вычисленные в другое время в прошлом. Историческая репутация может включать репутацию, определенную для соответствующей сущности аналитиком по безопасности. В процессе принятия решений таким историческим репутациям может быть придан больший вес, чем репутациям, определенным автоматически, поскольку они, вероятно, будут более точными, чем последние.
[0036] Примерная система управления репутацией, показанная на фиг. 1 и 2, организована иерархически. Чтобы свести к минимуму задержку и улучшить работу пользователя, клиентские системы 10a-e могут сначала искать данные о репутации в локальной базе 16b данных репутации, а затем, при необходимости, могут запрашивать такие данные из центральной базы 16a данных репутации. Поэтому в некоторых вариантах осуществления локальная база 16b данных может рассматриваться как локальный кэш центральной базы 16a данных. Путем агрегирования данных о репутации из нескольких клиентских систем 10a-e центральная база 16a данных репутации может быстро получать информацию о новых угрозах и распространять ее среди других клиентских систем.
[0037] Конфигурации, показанные на фиг. 2, могут обеспечивать способ обработки данных о репутации, который зависит от среды. В некоторых вариантах осуществления в локальной базе 16b данных репутации хранятся индикаторы репутации, специально предназначенные для соответствующей изолированной среды. В одном из таких примеров в клиентских системах 10d-e корпоративной интрасети запускают широко распространенное программное приложение X, такое как Microsoft Office. Приложение X загружает исполняемый модуль Y, который является уязвимым для вредоносных программ, если соответствующая клиентская система соединена с Интернетом. Если клиентские системы 10d-e не соединены с Интернетом (например, когда среда 12 защищена средствами круговой защиты), приложение X больше не подвержено уязвимостям в связи с подключением к Интернету. Следовательно, отслеживание приложения X на предмет таких уязвимостей может не требоваться в системах 10d-e (то есть в изолированной среде 12), тогда как такое отслеживание может быть важно в системах, непосредственно соединенных с Интернетом. Аналогично, приложение X может иметь более высокую степень доверия в пределах среды 12, по сравнению со степенью доверия за пределами среды 12.
[0038] В другом примере зависимости от предприятие использует проприетарное программное приложение X, которое обычно не встречается за пределами изолированной среды 12. Поэтому данные о репутации, связанные с приложением X, вряд ли будут использоваться другими клиентскими системами. В некоторых вариантах осуществления такие данные о репутации хранятся только в базе 16b данных репутации, созданной с учетом среды, а не в центральной базе 16а данных репутации. Такие конфигурации могут повышать эффективность поиска в базе данных для клиентов, работающих за пределами изолированной среды 12, а также для клиентов, работающих внутри среды 12.
[0039] На фиг. 4-A показана примерная аппаратная конфигурация клиентской системы 10, такой как клиентские системы 10a-e, показанные на фиг.1 и 2, согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 10 может представлять собой корпоративное вычислительное устройство, такое как корпоративный сервер, или устройство конечного пользователя, такое как, среди прочего, персональный компьютер или смартфон. На фиг. 4-А показана иллюстративная компьютерная система, при этом другие клиентские системы, такие как мобильные телефоны или носимые устройства, могут иметь другую конфигурацию. Клиентская система 10 содержит процессор 32, блок 34 памяти, набор устройств 36 ввода, набор устройств 38 вывода, набор устройств 40 хранения и набор сетевых адаптеров 42, которые все соединены посредством контроллера-концентратора 44.
[0040] Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для выполнения вычислительных и/или логических операций с набором сигналов и/или данных. В некоторых вариантах осуществления такие логические операции передаются в процессор 32 в виде последовательности инструкций процессора (например, машинного кода или другого типа программного обеспечения). Блок 34 памяти может содержать долговременный машиночитаемый носитель (например, память с произвольным доступом, RAM), хранящий данные/сигналы, к которым обращается или которые генерирует процессор 32 в ходе выполнения инструкций. Устройства 36 ввода могут содержать, среди прочего, компьютерные клавиатуры, мыши и микрофоны, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в клиентскую систему 10. Устройства 38 вывода могут содержать, среди прочего, экраны дисплея и акустические колонки, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие системе 10 передавать данные пользователю. В некоторых вариантах осуществления устройства 36 ввода и устройства 38 вывода могут совместно использовать общую часть аппаратного обеспечения, как в случае устройств с сенсорным экраном. Запоминающие устройства 40 включают в себя машиночитаемые носители, обеспечивающие долговременное хранение, чтение и запись программных инструкций и/или данных. Примерные запоминающие устройства 40 включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как CD- и/или DVD- диски и приводы. Набор сетевых адаптеров 42 обеспечивает возможность соединения клиентской системы 10 с сетями 20, 120 и/или с другими устройствами/компьютерными системами. Контроллер-концентратор 44 в общем случае представляет собой множество системных, периферийных и микросхемных шин и/или все другие схемы, обеспечивающие взаимную связь проиллюстрированных аппаратных устройств. Например, концентратор 44 может содержать, в частности, северный мост, обеспечивающий подключение процессора 32 к памяти 34 и/или южный мост, обеспечивающий подключение процессора 32 к устройствам 36, 38, 40, 42.
[0041] На фиг. 4-B показана примерная аппаратная конфигурация сервера 14 репутации, который может представлять собой центральный сервер 14a репутации, показанный на фиг. 1, или локальный сервер 14b репутации, показанный на фиг.2. Сервер 14 содержит процессор 132 сервера, память 134 сервера, набор устройств 140 хранения сервера и набор сетевых адаптеров 142, которые все соединены с помощью контроллера-концентратора 144 сервера. Устройства 132, 134, 140 и 142 могут работать аналогично вышеописанным устройствам 32, 34, 40 и 42. Например, процессор 132 сервера может содержать интегральную схему, конфигурированную для выполнения вычислительных и/или логических операций с набором сигналов и/или данных. Память 134 сервера может содержать долговременный машиночитаемый носитель (например, RAM), хранящий данные/сигналы, к которым обращается или которые генерирует процессор 132 в ходе выполнения вычислений. Сетевые адаптеры 142 обеспечивают возможность подключения сервера 14 к компьютерной сети, такой как сети 20, 120. В некоторых вариантах осуществления сервер 14 репутации содержит программный компонент, выполняющийся в клиентской системе, как показано далее.
[0042] На фиг. 5 показан примерный набор программных объектов, исполняемых в клиентской системе 10, согласно некоторым вариантам осуществления настоящего изобретения. Гостевая операционная система (ОС) 46 содержит программное обеспечение, предоставляющее интерфейс с аппаратным обеспечением клиентской системы 10 и выполняющее роль хоста для набора программных приложений 52a-c и 54. ОС 46 может включать в себя, среди прочего, любую широкодоступную операционную систему, такую как Windows, MacOS, Linux, iOS или Android™. Приложения 52a-c обычно представляют собой любое пользовательское приложение, такое как, среди прочих, приложение для обработки текста, приложение для обработки изображений, приложение для работы с базой данных, браузерное приложение и приложение для электронной связи. В некоторых вариантах осуществления приложение 54 безопасности конфигурировано для выполнения защиты от вредоносного программного обеспечения и/или для других операций, как подробно описано ниже, чтобы защитить клиентскую систему 10 от угроз компьютерной безопасности. Приложение 54 безопасности может представлять собой отдельную программу или может являться частью программного пакета. Приложение 54 безопасности может выполняться, по меньшей мере частично, в таком привилегированном режиме работы процессора, как режим ядра.
[0043] В варианте осуществления, являющемся альтернативой варианту с фиг. 5, ОС 46 и приложения 52а-с могут выполняться в виртуальной машине (VM), которая предоставлена гипервизором, выполняющимся в клиентской системе 10. Такие варианты осуществления можно использовать для защиты облачных архитектур, таких как, среди прочих, серверные пулы и системы «инфраструктура как услуга» (IAAS). Виртуальная машина обычно известна в данной области техники как абстракция (например, программная эмуляция) физической вычислительной системы, причем упомянутая VM содержит виртуальный процессор, виртуальное запоминающее устройство и т.д. В таких вариантах осуществления приложение 54 безопасности может выполняться в пределах или за пределами соответствующей VM. При выполнении за пределами VM, приложение 54 безопасности может выполняться в таком привилегированном режиме работы процессора, как режим гипервизора, или в отдельной виртуальной машине. Одно приложение безопасности может защищать множество виртуальных машин, выполняющихся в соответствующей клиентской системе.
[0044] На фиг. 6 показаны примерные компоненты приложения 54 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Приложение 54 содержит механизм 56 защиты от вредоносных программ, связанный с возможностью передачи данных с диспетчером 58 репутации. Механизм 56 защиты от вредоносных программ конфигурирован для определения того, содержит ли клиентская система 10 вредоносное программное обеспечение. В некоторых вариантах осуществления механизм 56 дополнительно может удалять или иным образом обезвреживать вредоносные программы. Для обнаружения вредоносных программ механизм 56 может использовать любой метод, известный в данной области техники. Методы защиты от вредоносных программ обычно подразделяют на две большие категории: основанные на содержимом и поведенческие. Методы, основанные на содержимом, обычно сканируют код программной сущности на наличие шаблонов кода, характерных для вредоносных программ и обычно называемых сигнатурами. Поведенческие методы обычно выполняют отслеживание исполняющейся сущности на предмет обнаружения определенных действий, характерных для вредоносных программ и выполняемых соответствующей сущностью. Программную сущность считают вредоносной, если она конфигурирована для выполнения какой-либо операции из группы вредоносных операций, например операции, вызывающей потерю конфиденциальности, потерю личных или конфиденциальных данных или потерю производительности со стороны пользователя. Некоторые примеры включают в себя изменение, стирание или шифрование данных без ведома или разрешения пользователя и изменение выполнения легитимных программ, выполняемых в клиентской системе 10. Другие примеры вредоносных операций включают в себя извлечение личных или конфиденциальных данных пользователя, таких как, среди прочего, пароли, регистрационные данные, данные кредитной карты или банковского счета, или конфиденциальные документы. Другие примеры вредоносных операций включают в себя несанкционированный перехват или иное прослушивание разговоров пользователя и/или обмен данными с третьими лицами. Другие примеры включают в себя использование клиентской системы 10 для отправки нежелательных сообщений (спам, реклама) и использование клиентской системы 10 для отправки вредоносных запросов данных в удаленную компьютерную систему, как при атаке типа «отказ в обслуживании».
[0046] В некоторых вариантах осуществления диспетчер 58 репутации конфигурирован для определения данных о репутации для множества исполняемых сущностей (программных объектов), включая приложения, процессы и библиотеки, для хранения таких данных в базах данных репутации и/или извлечения из баз данных репутации и для передачи таких данных в механизм 56 защиты от вредоносных программ. В некоторых вариантах осуществления диспетчер 58 репутации содержит диспетчер 62 сущностей, монитор 64 активности, калькулятор 66 цифровых отпечатков и планировщик 68 обновления репутации. Работа этих компонентов будет подробно описана ниже. В альтернативном варианте осуществления с фиг.6 диспетчер 62 сущностей и монитор 64 активности могут быть частью механизма 56 защиты от вредоносных программ.
[0047] В некоторых вариантах осуществления база 16c данных репутации клиента, связанная с возможностью передачи данных с диспетчером 58 репутации, конфигурирована для временного хранения данных о репутации на машиночитаемом носителе соответствующей клиентской системы. Сервер 14c репутации клиента содержит компьютерную программу, исполняемую в клиентской системе 10, и конфигурирован для выборочного добавления данных о репутации в базу 16c данных репутации клиента и/или извлечения упомянутых данных из этой базы. База 16c данных образует часть иерархии вышеописанной базы данных и может функционировать, по меньшей мере частично, в качестве кэша локальных и/или центральных баз 16a-b данных репутации. В примерной конфигурации с фиг.6 диспетчер 58 репутации использует диспетчер 69 передачи данных для обмена данными с удаленными серверами 14a-b.
[0048] На фиг. 7 показан примерный обмен данными между диспетчером 58 и механизмом 56. Диспетчер 58 репутации взаимодействует с механизмом 56 защиты от вредоносных программ для повышения эффективности операций по защите от вредоносных программ, например, путем передачи механизму 56 индикатора 60 репутации, связанного с целевой сущностью. В некоторых вариантах осуществления индикатор 60 репутации указывает на вероятность того, что соответствующая исполняемая сущность является вредоносной. Примерные индикаторы 60 репутации включают в себя числовой индикатор репутации в диапазоне от минимального значения (например, 0) до максимального значения (например, 100). В одном примерном варианте осуществления высокий индикатор репутации указывает на высокую вероятность того, что соответствующая сущность является безопасной (не вредоносной), в то время как низкие индикаторы указывают на подозрение во вредоносности или на неизвестную либо неопределенную в настоящее время вероятность вредоносности. В других вариантах осуществления может использоваться обратная шкала, в которой низкий индикатор указывает на более высокую степень доверия, нежели высокий индикатор. Индикаторы репутации могут непрерывно изменяться между минимальным и максимальным значениями или могут изменяться скачкообразно и принимать значения из набора заданных дискретных отметок (например, 10, 25, 50, 100). В другом варианте осуществления индикатор 60 репутации может принимать значения из множества меток, например, «доверенный», «умеренно доверенный», «недоверенный» и «неизвестный».
[0049] В ответ на получение индикатора 60 репутации в некоторых вариантах осуществления механизма 56 защиты от вредоносных программ предоставляют привилегированный режим доверенным сущностям, в отличие от недоверенных или неизвестных сущностей. Например, механизм 56 может использовать более мягкий протокол безопасности для сканирования/отслеживания доверенного объекта и строгий протокол безопасности для сканирования/отслеживания неизвестного или недоверенного объекта, причем более мягкий протокол безопасности является менее затратным в вычислительном отношении, чем строгий протокол безопасности. В одном таком примере более мягкий протокол безопасности может дать указание механизму 56 использовать только подмножество методов обнаружения вредоносных программ и/или только подмножество эвристических алгоритмов, идентифицирующих вредоносные программы, для сканирования доверенного объекта, тогда как строгий протокол безопасности может использовать полный набор методов и/или эвристических алгоритмов, доступных для механизма 56. Вычислительные затраты, как правило, могут выражаться количеством тактовых циклов процессора и/или объемом памяти, необходимыми для выполнения конкретной процедуры. Таким образом, процедуры/протоколы, для которых требуется большее количество тактов и/или больший объем памяти, могут считаться более затратными в вычислительном отношении, чем процедуры/протоколы, для которых требуется меньшее количество тактов и/или меньший объем памяти.
[0050] В некоторых вариантах осуществления индикатор 60 репутации изменяется во времени, например, в ответ на различные действия, выполняемые соответствующей исполняемой сущностью. В одном примере, в котором высокие репутации указывают на доверие, репутация целевой сущности со временем повышается при условии, что соответствующая сущность не выполняет каких-либо действий, характерных для вредоносных программ. Соответствующая репутация может также понижаться в ответ на определенные действия целевой сущности. В некоторых вариантах осуществления репутация целевой сущности может изменяться в ответ на действия других сущностей, связанных с соответствующей целевой сущностью, например, в ответ на внедрение кода от другой сущности, в ответ на действие, характерное для вредоносных программ, выполняемое дочерней сущностью соответствующей сущности и т.п. Диспетчер 58 репутации может получать уведомления о безопасности от механизма 56 защиты от вредоносных программ в связи с различными действиями целевых сущностей, как показано на фиг.7.
[0051] В некоторых вариантах осуществления диспетчер 58 репутации ищет индикатор репутации целевой сущности в иерархии баз данных репутации. Для сведения к минимуму задержки связи и трафика данных диспетчер 58 репутации может сначала попытаться извлечь данные о репутации из базы 16с данных клиента. Затем, если диспетчер 58 не может найти совпадающие данные в базе 16c данных клиента, он может запросить локальную базу 16b данных. Затем, если искомые данные все еще не найдены, диспетчер 58 может запросить их из удаленной центральной базы 16а данных репутации. На фиг.8 показан обмен данными между клиентской системой 10 и удаленным сервером 14 репутации (в общем случае, представляющим серверы 14a, 14b и 14c, показанные соответственно на фиг.1, 2 и 6). В некоторых вариантах осуществления такая связь между клиентами и удаленными серверами репутации зашифрована во избежание атак типа «атака посредника». Клиентская система 10 может передавать запрос 71 о репутации на сервер 14, при этом запрос 71 указывает идентификационный маркер, такой как цифровой отпечаток целевой сущности. В ответ на это сервер 14 может выборочно извлекать индикатор 60 репутации, соответствующий соответствующей целевой сущности, из базы 16 данных (в общем случае представляющей базы 16a и/или 16b данных, показанные соответственно на фиг.1 и 2) и передавать индикатор 60 в клиентскую систему 10. Кроме того, клиентская система 10 может передавать на сервер 14 отчет 73 о репутации, указывающий на обновленный индикатор репутации, предназначенный для сохранения в базе 16 данных.
[0052] Для создания однозначной связи между исполняемыми сущностями и индикаторами репутации каждую исполняемую сущность идентифицируют с помощью уникального маркера, называемого в настоящем документе «цифровым отпечатком сущности». В некоторых вариантах осуществления калькулятор 66 цифровых отпечатков выполнен с возможностью вычисления таких цифровых отпечатков для целевых сущностей и исполняемых модулей. Цифровые отпечатки могут быть получены с использованием любого метода, известного в данной области техники, например с помощью хеширования. Хеширование включает в себя применение хэш-функции к части объекта (например, к секции кода или ко всему объекту) для получения числа или битовой строки фиксированного размера, известную как хэш-код соответствующего объекта. Примерные хэш-функции включают алгоритмы безопасного хеширования (SHA) и представления сообщения в краткой форме (MD).
[0053] В предпочтительном варианте осуществления цифровой отпечаток 70 сущности определяют в соответствии с набором цифровых отпечатков отдельных компонентов/структурных блоков соответствующей сущности. В примере, показанном на фиг.9, исполняемая сущность 80 содержит набор исполняемых модулей 82a-c. Например, в среде Windows модули 82a-c могут содержать, соответственно, основной исполняемый файл и две DLL. В других примерных вариантах осуществления модули 82a-c могут представлять другие компоненты сущности (например, скрипты, файлы JAR, внедренные фрагменты кода и т.п.). Специалисту в данной области понятно, что описанные здесь системы и способы могут быть преобразованы для других видов структурных блоков и других уровней детализации.
[0054] В некоторых вариантах осуществления цифровой отпечаток 74a-c модуля (например, хэш-код) вычисляют для каждого из компонентов исполняемой сущности 80. После этого калькулятор 66 цифровых отпечатков может определять цифровой отпечаток 70 сущности в виде комбинации цифровых отпечатков 74a-c модуля, например, путем размещения цифровых отпечатков 74a-c модуля в виде упорядоченного списка и/или путем объединения цифровых отпечатков модуля 74a-c. Чтобы облегчить сравнение и поиск цифровых отпечатков, в некоторых вариантах осуществления может быть использована вторая функция хеширования для объединения/создания списка цифровых отпечатков 74a-c модуля. В некоторых вариантах осуществления цифровой отпечаток 70 сущности дополнительно содержит список указателей пути, причем каждый указатель пути указывает на путь к соответствующему компоненту/модулю или на местоположение соответствующего компонента/модуля. Если соответствующий компонент является фрагментом внедренного кода, цифровой отпечаток 70 сущности может кодировать адрес памяти и/или размер соответствующего фрагмента.
[0055] Каждый цифровой отпечаток 70 сущности, конфигурированный как указано выше, представляет уникальным образом конкретный состав или расположение компонентов/структурных блоков, а не саму исполняемую сущность, как видно, например, самой операционной системой 46. Как правило, операционная система назначает каждой исполняемой сущности уникальный идентификатор (например, идентификатор процесса), который остается неизменным в течение всего времени жизни соответствующей сущности, даже в тех случаях, когда состав соответствующей сущности изменяется в течение времени жизни этой сущности. Напротив, в некоторых вариантах осуществления настоящего изобретения, когда состав исполняемой сущности изменяется (например, когда процесс динамически загружает и выгружает библиотеки), цифровой отпечаток 70 сущности и, следовательно, идентификация соответствующей сущности могут изменяться соответствующим образом. Иными словами, в некоторых вариантах осуществления при изменении состава сущности исходная сущность перестает существовать и создается новая сущность. Поскольку в некоторых вариантах осуществления индикатор репутации однозначно связывают с каждым цифровым отпечатком сущности, при изменении состава исполняемой сущности ее репутация также может измениться.
[0056] Конкретная комбинация компонентов/структурных блоков может появляться в нескольких исполняемых сущностях, как показано на фиг. 10. Сущность Y, имеющая все компоненты другой сущности X, в данном описании рассматривается как элемент расширенного набора сущности X. В примере, показанном на фиг. 9, набор 84a является расширенным набором сущности 80a, а набор 84b является расширенным набором обеих сущностей 80a и 80b. В отличие от этого, сущность 80d не является элементом расширенного набора любой из сущностей 80a-c, поскольку сущность 80d не содержит модуль A.exe. В некоторых вариантах осуществления репутация сущности может влиять на репутацию элементов расширенного набора соответствующей сущности и, в свою очередь, может зависеть от репутации указанных элементов, как подробно показано ниже. В примере, показанном на фиг.9, изменение репутации сущности 80a может вызывать изменение репутации сущностей 80b-c.
[0057] В некоторых вариантах осуществления диспетчер 62 сущностей (фиг. 6) поддерживает структуру данных, называемую в данном описании таблицей репутации, описывающую множество исполняемых сущностей, постоянно находящихся и/или исполняющихся в клиентской системе 10, а также совокупность отношений между такими сущностями. Примерная таблица репутации содержит множество записей, причем каждая запись соответствует исполняемой сущности. Одна такая запись 86 таблицы репутации проиллюстрирована на фиг. 11. Запись 86 содержит цифровой отпечаток 70 соответствующей сущности и идентификатор сущности (EID), назначенный соответствующей исполняемой сущности операционной системой 46. Если соответствующая сущность является процессом, примерный EID содержит идентификатор процесса (PID в Windows). Такая конфигурация может быть желательна потому, что она обеспечивает возможность непосредственной ассоциации цифрового отпечатка 70 с EID. Поскольку состав сущности может изменяться во времени (например, путем динамической загрузки библиотеки), в таблице репутации может быть множество записей, имеющих одинаковый EID, но разные цифровые отпечатки. Кроме того, может быть множество экземпляров одной и той же сущности, выполняющихся одновременно в клиентской системе 10, в связи с чем в таблице репутации может быть множество записей, имеющих одинаковый цифровой отпечаток, но разные EID. В принципе, каждый такой объект может иметь свое собственное поведение и репутацию, и поэтому его можно отслеживать/анализировать отдельно от других объектов.
[0058] В некоторых вариантах осуществления запись 86 может дополнительно хранить индикатор указания происхождения соответствующей сущности, например, идентификатор родительской сущности для соответствующей сущности (родительский идентификатор - PID) и/или идентификатор дочерней сущности для соответствующей сущности. Примерами дочерних сущностей являются дочерние процессы, например, созданные родительской сущностью при помощи функции CreateProcess операционной системы (ОС) Windows или с помощью механизма порождения нового процесса в Linux. Кроме того, запись 86 может включать набор идентификаторов исполняемых сущностей, внедривших код в соответствующую сущность, и/или набор идентификаторов сущностей, в которые внедрила код соответствующая сущность. Эти идентификаторы, которые могут быть цифровыми отпечатками сущностей, представлены идентификатором внедрения (INJID) сущности.
[0059] Запись 86 таблицы репутации может дополнительно содержать группу идентификаторов элементов расширенного набора текущей сущности (идентификатор элемента расширенного набора - SMID). В некоторых вариантах осуществления каждый SMID может состоять из цифрового отпечатка соответствующего элемента расширенного набора. В альтернативном варианте осуществления каждый SMID может содержать указатель на запись таблицы репутации, связанную с элементом расширенного набора соответствующей сущности. Связывание цифрового отпечатка 70 с PID, SMID и/или INJID может облегчить распространение информации о репутации между родительскими и дочерними сущностями, между сущностями и элементами расширенного набора, а также между сущностями, участвующими во внедрении кода, как показано более подробно далее.
[0060] Текущая репутация целевой сущности может изменяться во времени в зависимости от поведения соответствующей сущности и/или в соответствии с поведением других экземпляров соответствующей сущности. В некоторых вариантах осуществления, когда целевая сущность не выполняет каких-либо подозрительных действий или действий, характерных для вредоносных программ, репутация соответствующей сущности может повышаться со временем, например, в соответствии с заданным плановым графиком. Планировщик 68 обновления репутации (фиг. 6) может обеспечивать планирование обновления репутации для целевых сущностей, например, путем определения момента времени, когда должно произойти следующее обновление индикатора репутации, и приращения ΔR, на которое должно измениться текущее значение индикатора репутации.
[0061] Временные данные могут храниться (например, в виде метки времени) в наборе полей записи 86 таблицы репутации (см., например, индикаторы 88 времени на фиг. 11). Один такой индикатор времени может указывать на время последнего обновления индикатора репутации, соответствующего цифровому отпечатку соответствующей сущности. Другой индикатор времени может указывать на время следующего запланированного обновления соответствующего индикатора репутации. Соответственно, множество таких значений времени обновления репутации может подробно описывать процесс изменения репутации каждой целевой сущности. Другой примерный индикатор времени может указывать на время истечения срока действия исторической репутации соответствующей сущности, например, на момент, в который необходимо выполнить следующий поиск исторической репутации в базе данных. Значения времени жизни исторической репутации могут варьироваться от одной исполняемой сущности к другой. Путем указания ограниченного времени жизни для кэшированных данных о репутации в некоторых вариантах осуществления фактически принудительно обновляют данные о репутации с локальных или удаленных серверов 14 репутации, тем самым ограничивая возможность заражения.
[0062] В некоторых вариантах осуществления монитор 64 активности (фиг. 6) конфигурирован для обнаружения возникновения событий жизненного цикла сущностей, таких как приложения и процессы, выполняющиеся в клиентской системе 10. Примерные события жизненного цикла включают в себя, среди прочего, запуск и/или завершение выполнения исполняемой сущности, динамическую загрузку и/или выгрузку библиотек соответствующей сущностью, порождение дочерних сущностей и внедрение кода.
[0063] Монитор 64 активности может дополнительно определять отношения между объектами, например, какой исполняемый модуль каким процессом загружен, какая сущность по отношению к какой сущности является родительской или дочерней, какая сущность внедрила код в какую сущность или получила внедренный код от какой сущности и т.п. В некоторых вариантах осуществления монитор 64 активности взаимодействует с диспетчером 62 сущностей, чтобы поместить в запись 86 таблицы репутации каждой сущности необходимые данные (например, EID, PID, SMID, INJID и т.п.). Для выполнения таких задач, как обнаружение запуска на выполнение сущности и/или обнаружение внедрения кода, монитор 64 может использовать любой метод, известный в данной области техники, например, вызов или перехват определенных функций ОС. Например, в системе под управлением ОС Windows монитор 64 может перехватывать вызов функции LoadLibrary или функции CreateFileMapping, чтобы обнаружить загрузку исполняемого модуля. В другом примере монитор 64 может регистрировать запуск функции PsSetCreateProcessNotifyRoutine обратного вызова, чтобы обнаружить запуск нового процесса, и/или может перехватывать функцию CreateRemoteThread, чтобы обнаружить выполнение внедренного кода.
[0064] На фиг. 12-A показана примерная последовательность этапов, выполняемых диспетчером 58 репутации в некоторых вариантах осуществления настоящего изобретения. Последовательность этапов 302-304 может ожидать уведомления. В некоторых вариантах осуществления диспетчер 58 репутации уведомляет монитор 64 активности о наступлении события жизненного цикла сущности, такого как запуск процесса, загрузка DLL и т.п. Диспетчер 58 также может уведомлять планировщик 68 о необходимости обновления определенной записи таблицы репутации. Диспетчер 58 дополнительно может получать уведомления от механизма 56 защиты от вредоносных программ, когда целевая сущность выполняет определенные действия, которые могут иметь отношение к компьютерной безопасности (см. фиг. 7). Когда уведомление получено, на этапе 304 можно идентифицировать источник и/или тип соответствующего уведомления и дополнительно можно идентифицировать целевые сущности, вызвавшие возникновение соответствующего уведомления, и/или сущности, которые затрагивает соответствующее уведомление. В некоторых вариантах осуществления монитор 64 сущностей может идентифицировать такие сущности по структурам данных, используемым операционной системой 46 для представления каждой сущности, выполняемой в текущий момент. Например, в ОС Windows каждый процесс представлен в виде блока исполнимого процесса (EPROCESS), содержащего, среди прочего, дескрипторы для каждого потока соответствующего процесса и уникальный идентификатор процесса, позволяющий ОС 46 идентифицировать соответствующий процесс среди множества выполняющихся процессов. Подобные представления процессов доступны в Linux и в других операционных системах. Если уведомление затрагивает более чем одну сущность, на этапе 304 дополнительно можно определять взаимосвязи между соответствующими сущностями. Например, когда родительский процесс запускает дочерний процесс, монитор 64 сущностей может записывать идентификацию дочернего и родительского процессов и тип их взаимосвязи (отношение родства).
[0065] На фиг. 12-B показана примерная последовательность этапов, выполняемых диспетчером 58 репутации в ответ на получение уведомления от монитора 64 активности. Такие уведомления обычно сообщают о возникновении события жизненного цикла, относящегося к целевой сущности. На этапе 322 калькулятор 66 цифровых отпечатков может вычислять цифровой отпечаток соответствующей целевой сущности. Этап 322 может содержать составление списка модулей/структурных блоков целевой сущности, идентификацию раздела памяти, содержащего каждый такой модуль, вычисление цифровых отпечатков модулей и сборку цифрового отпечатка сущности в соответствии с цифровыми отпечатками отдельных модулей (см. фиг. 9 и соответствующее описание). На этапе 323 диспетчер 62 сущностей может выполнять поиск идентификатора (EID) целевой сущности в таблице репутации, чтобы определить, уже отслеживается/анализируется объект с таким же EID, или еще нет. Операционная система использует идентификатор сущности для идентификации целевой сущности; причем в среде Windows примерным EID является идентификатор процесса (PID), выполняющегося в текущий момент. Если соответствующий EID является новым (что указывает на то, что целевая сущность является новым экземпляром исполняемого объекта), на этапе 325 диспетчер 62 сущностей может создать новую запись таблицы репутации для отображения упомянутой целевой сущности. Если соответствующий EID не является новым (например, в случае изменения состава модуля целевой сущности, например, в результате загрузки библиотеки процессом), на этапе 324 можно определить, содержит ли таблица репутации в текущий момент сущность с цифровым отпечатком 70, являющимся таким же, как и цифровой отпечаток целевой сущности. Если таблица репутации уже содержит запись с таким же цифровым отпечатком, диспетчер 58 репутации может перейти к этапу 326, описанному ниже. Такие ситуации могут возникать, например, когда обнаруженное событие жизненного цикла ссылается на уже выполняемую целевую сущность. Если цифровой отпечаток целевой сущности является новым (в таблице репутации не указано ни одной сущности с таким же цифровым отпечатком), диспетчер 62 сущностей может создать новую запись в таблице для соответствующей целевой сущности.
[0066] В некоторых вариантах осуществления изменение состава модуля сущности вызывает изменение цифрового отпечатка сущности. Следовательно, хотя выполнение соответствующей сущности не было завершено, с точки зрения цифровых отпечатков дело может выглядеть так, как будто старая сущность перестала существовать, а в клиентской системе 10 появилась новая сущность. В таких случаях, а также в случаях, когда была запущена новая сущность, на этапе 336 диспетчер 58 репутации может попытаться найти исторические данные о репутации, связанные с цифровым отпечатком соответствующей сущности. Этап 336 может содержать, например, отправление диспетчером 58 репутации запроса 71 о репутации на сервер 14 репутации (см., например, фиг. 8). Если для соответствующего цифрового отпечатка действительно имеются исторические данные о репутации, сервер 14 может выборочно извлекать такие данные из базы 16 данных и передавать индикатор 60 в клиентскую систему 10. Такая ситуация может возникнуть, если ранее наблюдался экземпляр соответствующей сущности (комбинация исполняемых модулей), возможно, выполняющейся в отдельной клиентской системе, и репутация соответствующей сущности была вычислена и сохранена в базе 16 данных. На этапе 338, после получения индикатора 60 репутации, диспетчер 58 репутации может установить такое текущее значение индикатора репутации целевой сущности, которое определено в соответствии с исторической репутацией соответствующей сущности. В одном примерном варианте осуществления текущую репутацию устанавливают равной исторической репутации.
[0067] Если на этапе 337 определяют, что для целевой сущности историческая репутация недоступна, диспетчер репутации переходит к этапу 339. Эта ситуация может возникать, например, когда на рынке появляется новое программное обеспечение (например, новый продукт или обновление программного обеспечения), когда истек срок действия записи в базе данных для соответствующей сущности, или когда сервер 14 недоступен (например, отсутствует сетевое подключение или сервер выключен). На этапе 339 диспетчер 64 сущностей может определить, является ли целевая сущность дочерней сущностью для родительской сущности, указанной в текущий момент в таблице репутации. Если да, на этапе 340 в некоторых вариантах осуществления устанавливают такое значение репутации целевой сущности, которое определено в соответствии с репутацией родительской сущности (например, равное репутации родителя или ниже).
[0068] На этапе 341 диспетчер 64 сущностей может определить, имеются ли какие-либо элементы расширенного набора целевой сущности, присутствующие в текущий момент в таблице репутации. Если да, в некоторых вариантах осуществления диспетчер 58 репутации устанавливает текущую репутацию целевой сущности равной значению, определенному в соответствии с репутацией упомянутого элемента расширенного набора (например, равным репутации элемента расширенного набора). Основанием для такого выбора репутации является то, что, поскольку элементы расширенного набора представляют значительное большинство исполняемых модулей (или все модули) целевой сущности, репутация целевой сущности может быть получена на основе репутации элемента расширенного набора.
[0069] Если родительские сущности или сущности, являющиеся элементами расширенного набора, отсутствуют, на этапе 344 диспетчер 58 репутации может установить заданное по умолчанию значение текущей репутации целевой сущности. Например, значение репутации неизвестной сущности может быть установлено таким, чтобы оно указывало на низкую степень доверия (например, «недоверенный», «неизвестный», R = 0). Кроме того, начальная репутация может зависеть от типа целевой сущности или от набора функций целевой сущности. Например, сущность, загруженная из Интернета, может получить начальное значение репутации R = 0, если она не имеет цифровой подписи, и начальное значение репутации R = 20%, если она имеет цифровую подпись.
[0070] На этапе 326 планировщик 68 обновлений может запланировать следующее обновление записи таблицы репутации целевой сущности. В некоторых вариантах осуществления репутация целевой сущности изменяется во времени. Например, если соответствующая сущность не выполняет какого-либо действия, считающегося подозрительным или характерным для вредоносных программ, и/или если целевая сущность не содержит какого-либо шаблона кода, совпадающего с сигнатурой, характерной для вредоносных программ, индикатор репутации соответствующей сущности может постепенно изменяться на значения, указывающие на более высокий уровень доверия (например, R может увеличиться до 100% доверия). На фиг. 13 показан примерный сценарий изменения индикатора репутации для варианта осуществления, в котором более высокие значения R указывают на большее доверие. Показанный индикатор репутации может скачкообразно изменяться в соответствии с набором заданных значений R1, R2, R3 и т.п. Такие изменения репутации могут происходить в заданные моменты, например, R может возрастать от значения R2 до значения R3 в момент времени t2 (например, отсчитываемый относительно момента создания соответствующей целевой сущности).
[0071] Значение R может быть определено в соответствии со временем, прошедшим с момента создания/запуска соответствующей целевой сущности. В альтернативном варианте осуществления R может увеличиваться по истечении интервала Δt времени с момента возникновения предыдущего события (например, предыдущего повышения репутации, события, связанного с безопасностью, и т.п.). В некоторых вариантах осуществления интервалы Δt времени могут сами изменяться во времени. Например, повышение репутации может быть менее частым на начальном этапе жизни сущности, нежели на более позднем этапе. В другом примере длина интервала времени может зависеть от текущего значения репутации. Приращение репутации может быть пропорционально текущему значению репутации (например, каждый раз R может увеличиваться на 20%). Приращения ΔR репутации также могут изменяться во времени. Например, R может увеличиваться на небольшую величину начальном этапе жизни сущности и на большие величины на более поздних этапах. Целесообразность такого характера изменения репутации объясняется тем, что вредоносное программное обеспечение обычно выполняет свою деятельность на ранних этапах существования (т.е. вскоре после запуска), поэтому, если сущность «ведет себя хорошо» в течение достаточно длительного времени, можно с уверенностью предположить, что она не является вредоносной.
[0072] В некоторых вариантах осуществления интервалы Δt времени и/или приращения ΔR репутации могут зависеть от типа сущности, то есть они могут варьироваться в зависимости от типа соответствующей целевой сущности. Например, характер изменения репутации сущности, имеющей цифровую подпись, может отличаться от характера изменения репутации сущности, не имеющей такой подписи. В другом примере характер изменения репутации сущности может быть другим, в зависимости от того, конфигурирована ли соответствующая сущность для обеспечения доступа в Интернет, или нет.
[0073] В некоторых вариантах осуществления планирование обновления репутации (этап 326 на фиг. 12-B) содержит определение интервала времени для следующего обновления и/или повышения репутации. Затем на этапе 328 обновляют запись в таблице репутации соответствующей сущности. Изменения текущей репутации целевой сущности могут вызывать изменения текущей репутации других сущностей, например, родительской сущности для целевой сущности, или записи элемента расширенного набора целевой сущности. Если это так, на этапе 330 диспетчер 58 репутации выполняет упомянутые обновления. В последовательности этапов 332-334 диспетчер 58 репутации передает индикатор 60 репутации механизму 56 защиты от вредоносных программ и на сервер 14 репутации.
[0074] На фиг. 12-C показана примерная последовательность этапов, выполняемых диспетчером 58 репутации в ответ на уведомление от планировщика 68 обновлений (метка В на фиг. 12-A). Такое уведомление обычно идентифицирует целевую сущность и указывает на то, что индикатор репутации соответствующей целевой сущности должен быть обновлен. На этапе 356 диспетчер 58 репутации может обновить индикатор репутации соответствующей сущности, например, в соответствии с приращением репутации, сохраненным в поле записи таблицы репутации соответствующей сущности (см., например, фиг. 11). На этапе 358 планировщик 68 обновления репутации может запланировать следующее обновление репутации, например, путем определения интервала Δt времени и приращения ΔR репутации и записи этих значений в соответствующие поля записи таблицы репутации соответствующей целевой сущности (этап 360). Приращение ΔR репутации может быть определено в виде абсолютного значения или в виде доли текущей репутации (например, 20%). Последовательность этапов 360-364 обновляет записи таблицы других сущностей, связанных с целевой сущностью, и передает индикатор 60 репутации в механизм 56 защиты от вредоносных программ.
[0075] На дополнительном этапе 366 диспетчер 58 репутации может инициировать обновление базы 16 данных репутации, чтобы отразить изменение репутации целевой сущности и, возможно, других связанных сущностей. Этап 366 может включать в себя отправку отчета 73 о репутации, содержащего обновленные индикаторы репутации, на сервер 14 репутации (см., например, фиг. 8). Такое обновление делает новые репутации доступными для других клиентских систем, на которых запускают другие экземпляры той же целевой сущности, тем самым распространяя сведения, связанные с компьютерной безопасностью, по всей сети клиентов. Примерный способ, которым сервер 14 репутации обрабатывает отчет 73, описан ниже в описании к фиг.15.
[0076] На фиг. 12-D показана примерная последовательность этапов, выполняемых диспетчером 58 репутации в ответ на уведомление о безопасности от механизма 56 защиты от вредоносных программ (см., например, фиг. 7). Такие уведомления могут генерироваться в том случае, если механизм защиты от вредоносных программ определяет, что конкретная целевая сущность подозревается во вредоносных действиях. В некоторых вариантах осуществления упомянутый механизм 56 может уведомлять диспетчер 58 репутации о наступлении события, относящегося к безопасности, или события, характерного для вредоносных программ. Примерные события включают, среди прочего, попытку доступа к памяти способом, нарушающим разрешение на доступ к памяти, попытку выполнения определенной функции операционной системы (например, создание файла на диске, редактирование записи реестра и т.п.), попытку выполнения определенных операций (например, внедрение кода в другую сущность, загрузку файла с удаленного сервера). Уведомление 72 может содержать идентификатор сущности, вызвавшей соответствующее событие или затрагиваемой соответствующим событием, и индикатор типа соответствующего события. В качестве другого примера, может быть сгенерировано уведомление в ответ на обнаружение сканером сигнатур сигнатуры вредоносного кода при анализе кода целевой сущности.
[0077] На этапе 372, в ответ на получение уведомления 72 о безопасности, диспетчер 58 репутации может определить новое значение индикатора репутации соответствующей целевой сущности. В некоторых вариантах осуществления, если сущность выполняет действие, которое характерно для вредоносных программ или которое иным образом делает соответствующую сущность подозреваемой в совершении вредоносных действий, репутация соответствующей сущности изменяется в сторону более низкой степени доверия. Этот аспект проиллюстрирован на фиг. 13, где значение R снижается в ответ на событие, связанное с безопасностью. Величина снижения может быть определена диспетчером 58 репутации в соответствии с набором правил или политикой безопасности. Величина снижения может быть выражена в виде абсолютного значения или в виде доли текущего значения репутации (например, 50%).
[0078] В некоторых вариантах осуществления величина снижения репутации, происходящего в таком случае, варьируется в зависимости от типа события или типа уведомления о безопасности. Некоторые события/действия с большей очевидностью характерны для вредоносных программ и, следовательно, могут вызвать более сильное снижение репутации. Другие события не обязательно указывают на вредоносность, но могут быть таковыми, когда они происходят вместе с другими событиями или наряду с определенными действиями, выполняемыми целевой сущностью. Изменение репутации, вызванное такими событиями или действиями, может быть относительно меньше изменения, связанного с явно вредоносным событием/действием. Некоторые уведомления о безопасности могут привести к полной утрате репутации соответствующей целевой сущности. В некоторых вариантах осуществления снижение репутации может быть определено в соответствии с тем, были ли у соответствующего индикатора репутации другие случаи снижения в прошлом, в соответствии со временем, прошедшим с момента предыдущего снижения репутации, и/или в соответствии с типом уведомления о безопасности, вызванного предыдущим снижением репутации. Некоторые агенты вредоносных программ организуют вредоносные действия среди множества сущностей и распределяют такие действия во времени, чтобы избежать обнаружения. Условие текущего снижения репутации в предыдущей истории уведомлений безопасности может решить проблемы с некоторыми из таких сложных сценариев вредоносных программ. В некоторых вариантах осуществления изменение репутации, возникающее на этапе 372, вычисляют в соответствии с текущей репутацией целевой сущности и/или в соответствии с текущей репутацией других сущностей. В одном таком примере, когда сущность X внедряет код в сущность T, репутация более надежной из этих двух сущностей может стать равной текущей репутации менее надежной сущности.
[0079] На этапе 374 диспетчер 58 репутации может запланировать обновление репутации соответствующей целевой сущности, например, путем генерирования интервала Δt времени и приращения ΔR репутации. На следующем этапе 376 можно сохранить такие данные в записи таблицы репутации соответствующей сущности. В некоторых вариантах осуществления значения Δt и/или ΔR могут варьироваться в зависимости от типа уведомления о безопасности. В одном таком примере, когда сущность совершила действие, которое явно указывает на вредоносность, она может оставаться недоверенной в течение относительно длительного периода времени. Напротив, после снижения, вызванного менее критичным для безопасности событием, репутация целевой сущности может снова сравнительно быстро повыситься.
[0080] В некоторых вариантах осуществления в ходе последовательных этапов 376-380-382 можно обновлять записи таблицы репутации других сущностей, связанных с целевой сущностью (если таковая существует), можно передавать индикатор 60 репутации механизму 56 защиты от вредоносных программ и можно сообщать об изменениях репутации серверу 14.
[0081] На фиг. 14 показана примерная последовательность этапов, выполняемых механизмом 56 защиты от вредоносных программ согласно некоторым вариантам осуществления настоящего изобретения. Механизм 56 может быть конфигурирован для обнаружения вредоносных программ, предотвращения и/или выполнения подготовительных работ в соответствии с репутацией конкретной сущности (этап 392). Иными словами, механизм 56 защиты от вредоносных программ может отслеживать и/или анализировать каждую исполняемую сущность в соответствии с протоколом/политикой в отношении конкретной сущности, причем упомянутая соответствующая политика/протокол может варьироваться от одной сущности к другой в соответствии с индикатором репутации каждой сущности. В некоторых вариантах осуществления сущности, которые имеют репутацию, указывающую на высокое доверие, можно анализировать с использованием процедур, которые менее вычислительно затратны, чем сущности, являющиеся менее доверенными.
[0082] При поведенческом обнаружении вредоносных программ обычно используют набор правил, чтобы определить, является ли целевая сущность вредоносной. Такие правила часто называют эвристическими алгоритмами. Например, один примерный эвристический алгоритм может сказать, что если первая сущность внедряет часть кода во вторую сущность, и соответствующий код пытается загрузить файл из Интернета, то первая сущность, вероятно, является вредоносной. Для реализации такого эвристического алгоритма механизму 56 защиты от вредоносных программ может потребоваться отслеживание различных событий (например, внедрения кода и попытки соединения с удаленным сервером, в вышеприведенном примере). Некоторые такие события являются более вычислительно затратными, чем другие. Кроме того, некоторые эвристические алгоритмы могут быть по своей сущности более сложными и/или более затруднительными для применения, чем другие. Сложные эвристические алгоритмы могут содержать комбинацию более простых эвристических алгоритмов, например, «Применить метод А; если результат применения метода A равен X, применить метод B; если результат применения метода В равен Y, то проверить условие Z и т.п.»
[0083] Некоторые примерные затратные эвристические алгоритмы включают в себя эвристические алгоритмы, используемые для обнаружения программ-вымогателей (включающие в себя отслеживание всей активности файловой системы, то есть каждого чтения, записи и/или копирования файлов) и эвристические алгоритмы, касающиеся ключей реестра ОС (например, включающие в себя перехват каждой операции записи в реестр и определение того, содержит ли она попытку изменения конкретного ключа). Другой примерный затратный эвристический алгоритм требует обнаружения вызова часто используемой функции ОС (например, CreateFile, ReadFile), причем обнаружение таких вызовов может привести к значительным затратам вычислительных ресурсов. В отличие от этого, обнаружение вызова очень редко используемой в обычной работе функции ОС (например, CreateRemoteThread) может значительно снизить нагрузку на клиентскую систему 10.
[0084] В некоторых вариантах осуществления получение протокола обнаружения, зависящего от репутации, включает в себя отслеживание различных событий и/или сложности эвристических алгоритмов в соответствии с индикатором репутации. Иными словами, механизм 56 защиты от вредоносных программ может отслеживать доверенную сущность с использованием меньшего количества эвристических алгоритмов, которые при этом являются более простыми, чем в случае недоверенной сущности. Кроме того, механизм 56 может отключать обнаружение определенных событий или поведения при отслеживании доверенных сущностей. Методы защиты от вредоносных программ, основанные на содержимом, также могут быть привязаны к репутации, например, путем корректировки размера базы данных сигнатур в соответствии с репутацией. В одном таком примерном варианте доверенные сущности могут быть проверены на содержание относительно небольшого набора сигнатур, характерных для вредоносных программ, в то время как недоверенные сущности могут быть проверены с использованием существенно большего набора сигнатур.
[0085] Одна примерная настройка протокола отслеживания с помощью индикатора репутации показан в таблице 1.
Таблица 1
Индикатор репутации
Протокол
0% доверия
Максимальное отслеживание с использованием всех доступных эвристических алгоритмов
10% доверия
Отключение нескольких затратных эвристических алгоритмов
…
80% доверия
Отслеживание внедрения кода и удаления/копирования файлов
90% доверия
Отслеживание только внедрения кода
100% доверия
Отслеживания нет вообще
[0086] Согласно фиг. 14, в последовательности этапов 392-394 механизм 56 защиты от вредоносных программ конфигурирован для ожидания возникновения события, описанного в протоколе, зависящем от репутации. Помимо таких событий, связанных с безопасностью, механизм 56 может получать индикаторы репутации от диспетчера 58 репутации. Получение индикатора репутации может указывать на изменение репутации конкретной сущности. В ответ на получение индикатора репутации (этап 396), на этапе 398 механизм защиты от вредоносных программ может идентифицировать соответствующую целевую сущность и обновлять, в соответствии с полученным значением индикатора репутации, протокол/политику отслеживания, применяемый/применяемую к соответствующей сущности.
[0087] Если обнаруженное событие представляет собой событие, связанное с безопасностью (например, какая-то сущность внедрила код в другую сущность), на этапе 402 механизм 56 защиты от вредоносных программ может идентифицировать целевую сущность, которая вызвала соответствующее событие и/или на которую повлияло соответствующее событие. На следующем этапе 404, в соответствии с идентифицированной целевой сущностью и типом обнаруженного события, может быть сформулировано уведомление о безопасности, и диспетчеру 58 репутации может быть передано соответствующее уведомление о безопасности.
[0088] На фиг. 15 показана примерная последовательность этапов, выполняемых сервером 14 репутации (например, серверами 14a-b, показанными на фиг. 1-2), согласно некоторым вариантам осуществления настоящего изобретения. В ходе последовательных этапов 412-414 сервер 14 может ожидать сообщение от клиентских систем 10. Если сообщение получено, этап 416 может определить, является ли соответствующее сообщение запросом о репутации (см., например, фиг. 8). Если да, сервер 14 может искать исторические данные о репутации, связанные с цифровым отпечатком сущности, включенным в соответствующий запрос, и передавать данные запрашивающему клиенту (этапы 418-420).
[0089] Когда сообщение представляет собой отчет о репутации, на этапе 424 сервер 14 может искать данные о репутации, связанные с цифровым отпечатком сущности, включенным в соответствующий отчет о репутации. Когда отчет 73 указывает текущее значение репутации, указывающее, в отличие от исторической репутации, сохраненной в базе 16 данных, на меньшее доверие, в некоторых вариантах осуществления сервера 14 репутации на этапе 428 может быть немедленно изменена соответствующая запись базы данных, чтобы включить в нее значение индикатора репутации, полученное в отчете от клиента 10.
[0090] Если отчет 73 содержит индикатор репутации, указывающий, в отличие от сохраненного в данный момент значения, на большее доверие, в некоторых вариантах осуществления на этапе 430 отчет 73 о репутации может быть добавлен в коллекцию отчетов, полученных от различных клиентов. Затем на этапе 432 сервер 14 репутации может определить, выполнено ли условие обновления, и обновить запись базы данных только в том случае, если условие обновления выполнено. Условие обновления может быть сформулировано в соответствии с ограничением по времени и/или в соответствии с количеством отчетов, полученных для каждого отдельного цифрового отпечатка сущности. Например, обновление может произойти только по истечении определенного интервала времени с момента последнего обновления индикатора репутации, соответствующего соответствующему цифровому отпечатку сущности. В другом примере обновление может произойти только по истечении определенного интервала времени с момента последнего уведомления о безопасности относительно соответствующей целевой сущности. В одном примерном варианте осуществления, в котором высокую репутацию приравнивают к большему доверию, при выполнении условия обновления обновляют историческую репутацию целевой сущности до значения, равного минимальному значению из всех репутаций, сообщенных для соответствующей целевой сущности в течение последнего периода обновления.
[0091] Примерные системы и способы, описанные выше, позволяют защитить клиентскую систему, такую как персональный компьютер, планшет или смартфон, от вредоносного программного обеспечения. В некоторых вариантах осуществления диспетчер репутации выполняется одновременно с механизмом защиты от вредоносных программ. Механизм защиты от вредоносных программ выполняет такие операции, как обнаружение вредоносных программ, выполняемых в соответствующей клиентской системе, и/или удаление или обезвреживание таких вредоносных программ. Для каждой сущности (например, приложения, процесса, скрипта), выполняемого в клиентской системе, диспетчер репутации может передавать в механизм защиты от вредоносных программ индикатор репутации, указывающий на уровень доверия, является ли соответствующая сущность вредоносной.
[0092] В обычных системах безопасности программные сущности сканируют и/или отслеживают независимо от их репутации. В отличие от этого, в некоторых вариантах осуществления настоящего изобретения механизм защиты от вредоносных программ может предоставлять привилегированный режим доверенным сущностям. Например, механизм защиты от вредоносных программ может использовать менее вычислительно затратный протокол (например, для которого необходимо большее количество тактов процессора и/или больший объем памяти) для сканирования/отслеживания доверенной сущности, в сравнении с недоверенной или неизвестной/ранее не наблюдавшейся сущности. В одном таком примере может быть отключено некоторое подмножество правил при сканировании/отслеживании доверенных сущностей. Этот подход может существенно улучшить производительность защиты от вредоносных программ благодаря уменьшению вычислительной нагрузки, связанной со сканированием/отслеживанием доверенных сущностей.
[0093] В некоторых вариантах осуществления настоящего изобретения каждая исполняемая сущность рассматривается как уникальная комбинация компонентов/структурных блоков. Примеры таких структурных блоков включают в себя, среди прочего, основной исполняемый файл, совместно используемую библиотеку, скрипт и секцию внедренного кода. Каждая комбинация компонентов может быть идентифицирована при помощи цифрового отпечатка сущности, содержащего, например, комбинацию хэш-кодов отдельных компонентов. Затем с каждым цифровым отпечатком сущности может быть связан индикатор репутации. При изменении состава сущности (например, когда процесс динамически загружает библиотеку или получает фрагмент внедренного кода) изменяются цифровой отпечаток этой сущности и ее репутация.
[0094] В некоторых вариантах осуществления репутация сущности изменяется во времени. В то время как сущность не выполняет каких-либо подозрительных действий или действий, характерных для вредоносных программ, ее репутация может сместиться в сторону значений, указывающих на большее доверие. Напротив, если сущность выполняет действие, характерное для вредоносных программ, или иное действие, связанное с безопасностью, ее репутация может быть понижена до значений, указывающих на меньшее доверие. Такие изменения репутации могут быть сохранены в локальном кэше и/или переданы в центральную базу данных репутации. Такие конфигурации позволяют любому изменению репутации быстро распространяться на другие локальные процессы, использующие экземпляры соответствующей совместно используемой библиотеки, и далее на другие клиентские системы, соединенные с сервером репутации.
[0095] В некоторых вариантах осуществления снижение репутации (которое может указывать на подозрение во вредоносности) относительно быстро передается в базы данных репутации и оттуда в другие клиентские системы, тогда как повышение репутации (которое может указывать на повышение доверия) может вступить в силу только после того, как прошло достаточное количество времени без инцидентов, связанных с безопасностью, или после того, как от достаточного количества клиентских систем был получен отчет о «хорошем» поведении соответствующей сущности.
[0096] Системы и способы, описанные в данном документе, можно легко применить к разнообразному вредоносному программному обеспечению, в том числе к возникающим угрозам. Кроме того, поскольку диспетчер репутации функционирует независимо от механизма защиты от вредоносных программ, механизм защиты от вредоносных программ может быть модернизирован путем включения новых методов и процедур сканирования/отслеживания без влияния на работу диспетчера репутации.
[0097] Специалисту в данной области техники понятно, что указанные выше варианты осуществления изобретения могут иметь множество модификаций, не выходящих за рамки объема его правовой. Соответственно, объем правовой охраны изобретения определяется прилагаемой формулой изобретения и ее юридическими эквивалентами.