Система и способ антивирусной проверки в зависимости от уровня доверия сертификата
Иллюстрации
Показать всеИзобретение относится к информационной безопасности. Технический результат заключается в увеличении производительности антивирусной проверки путем антивирусной проверки, процесс выполнения которой зависит от уровня доверия сертификата, определенного с использованием базы данных доверенных сертификатов. Способ антивирусной проверки в зависимости от уровня доверия сертификата открытого ключа цифровой подписи файла, в котором получают идентификатор конечного сертификата; выстраивают цепочку сертификатов от конечного сертификата, определяемого полученным идентификатором сертификата, до корневого сертификата; определяют с помощью базы данных доверенных сертификатов и в зависимости от цепочки сертификатов уровень доверия для конечного сертификата; проводят антивирусную проверку файла в зависимости от уровня доверия конечного сертификата, а также от правил проверки. 2 н. и 16 з.п. ф-лы, 6 ил., 1 табл.
Реферат
Область техники
Изобретение относится к области защиты целостности данных с помощью контрольных сумм, сертификатов и электронно-цифровых подписей, а именно к системам антивирусной проверки в зависимости от уровня доверия сертификата.
Уровень техники
В настоящее время для проверки целостности файлов, производители программного обеспечения (ПО) используют криптосистему с открытым ключом. Файл подписывается электронно-цифровой подписью (ЭЦП) производителя ПО. Вместе с файлом сохраняется ЭЦП и сертификат открытого ключа, подтверждающий принадлежность открытого ключа производителю ПО. Зная открытый ключ доверенного УЦ, подлинность цифровой подписи файла может быть легко проверена.
Сертификат имеет ограниченный срок действия, после окончания которого сертификат необходимо заменить. Проверка действительности сертификатов открытого ключа электронно-цифровой подписи файлов широко используется антивирусными приложениями в качестве одной из предварительных проверок, позволяющей определить файлы, имеющие недействительную цифровую подпись или отозванные сертификаты.
Согласно криптографическому стандарту X.509, сертификат включает в частности следующие поля:
- серийный номер, используемый для идентификации сертификата;
- субъект, представляющий сторону, которой был выдан сертификат;
- алгоритм электронной-цифровой подписи;
- электронно-цифровая подпись;
- издатель сертификата;
- срок действия сертификата;
- открытый ключ электронно-цифровой подписи;
- хэш-сумма открытого ключа;
- алгоритм хэширования открытого ключа.
Однако если секретный ключ производителя ПО был скомпрометирован, УЦ отзовет сертификат открытого ключа. Зачастую файлы подписываются не напрямую доверенным УЦ, а посредством цепочки, состоящей из нескольких удостоверяющих центров. При компрометации ключа одного из УЦ цепочки, сертификаты, подписанные этим ключом с момента его компрометации, также подлежат отзыву. Данное обстоятельство также учитывается при антивирусной проверке - файлы с отозванными сертификатами могут исполняться с ограничениями или могут быть вовсе блокированы.
Тем не менее подобная система имеет ряд недостатков при использовании антивирусными приложениями. Например, если на компьютере установлен руткит (вредоносная программа, предназначенная для сокрытия своего присутствия в системе путем перехвата системных функций или подмены системных библиотек), он может выдавать дискредитированные сертификаты за доверенные или наоборот. Кроме этого, вредоносное приложение может установить подложный корневой сертификат, в результате встроенная в операционную систему (ОС) проверка подлинности цифровой подписи не сможет определить дискредитированный сертификат. Встроенная проверка подлинности цифровой подписи зачастую может быть достаточно медленной из-за необходимости периодической загрузки из сети списка отозванных сертификатов и списка доверенных сертификатов (в некоторых случаях загрузка может занимать несколько десятков секунд, что непозволительно для антивирусной проверки файла).
Для решения проблемы проверки сертификатов в антивирусах в патенте US 8499150 B1 описывается способ формирования базы данных доверенных сертификатов и способ проверки сертификатов по сформированной базе. Если сертификат был скомпрометирован после подписания файла, такой файл все же будет считаться доверенным. Основной функционал по проверке сертификатов реализован на стороне сервера, тем не менее часть функционала может быть перенесена на сторону клиента.
В патенте US 7444509 B2 описывается система, в которой проверка сертификата в некоторых случаях осуществляется путем пересылки запроса удаленному серверу. Таким образом, изначально сертификат проверяется с помощью локальных баз данных, затем, в случае отсутствия записи для данного сертификата, запрос может быть отправлен на проверку удаленному серверу, содержащему большую базу данных. В патенте также описана возможность сохранения в кэш всей цепочки сертификатов - от промежуточного до корневого сертификата.
В патенте US 6215872 B1 описывается формирование списка доверенных сертификатов с использованием сообщества конечных пользователей.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно системой и способом антивирусной проверки в зависимости от уровня доверия сертификата.
Раскрытие изобретения
Настоящее изобретение относится к системам и способам защиты целостности данных с помощью контрольных сумм, сертификатов и электронно-цифровых подписей.
Технический результат настоящего изобретения заключается в увеличении производительности антивирусной проверки путем антивирусной проверки, процесс выполнения которой зависит от уровня доверия сертификата, определенного с использованием базы данных доверенных сертификатов.
Согласно варианту реализации используется способ изменения функционала приложения, в котором: с помощью средства проверки получают идентификатор конечного сертификата; с помощью средства проверки выстраивают цепочку сертификатов от конечного сертификата, определяемого полученным идентификатором сертификата, до корневого сертификата; с помощью средства задания уровня доверия определяют с помощью базы данных доверенных сертификатов и в зависимости от цепочки сертификатов уровень доверия для конечного сертификата; с помощью приложения проводят антивирусную проверку файла в зависимости от уровня доверия конечного сертификата, а также от правил проверки.
Согласно одному из частных вариантов реализации идентификатором сертификата служит один из параметров: серийный номер; открытый ключ; хэш-сумма от открытого ключа сертификата; имя субъекта и издателя сертификата.
Согласно другому частному варианту реализации уровень доверия принимает одно из значений: высокий, означающий, что файл является безопасным, дополнительная антивирусная проверка не проводится; средний, означающий, что будет проведена антивирусная проверка файла; низкий, означающий, что цифровая подпись владельца сертификата недействительна, будет проведена дополнительная антивирусная проверка файла.
Согласно еще одному из частных вариантов реализации уровень доверия конечного сертификата соответствует уровню доверия упомянутого конечного сертификата в базе данных доверенных сертификатов.
Согласно одному из частных вариантов реализации последовательно проверяют промежуточные сертификаты цепочки сертификатов с использованием базы данных доверенных сертификатов, когда конечный сертификат отсутствует в базе данных доверенных сертификатов.
Согласно другому частному варианту реализации для конечного сертификата определяют низкий уровень доверия, когда по крайней мере один из промежуточных сертификатов содержится в базе данных доверенных сертификатов с низким уровнем доверия.
Согласно еще одному из частных вариантов реализации для конечного сертификата определяют низкий уровень доверия, когда все сертификаты цепочки сертификатов отсутствуют в базе данных доверенных сертификатов.
Согласно одному из частных вариантов реализации для конечного сертификата определяют средний уровень доверия, когда выполняются следующие условия: по крайней мере один сертификат из цепочки сертификатов содержится в базе данных доверенных сертификатов; в цепочке сертификатов отсутствуют сертификаты с низким уровнем доверия.
Согласно другому частному варианту реализации правила включают по крайней мере следующие: когда конечный сертификат имеет высокий уровень доверия, файл считается легитимным и дальнейшая антивирусная проверка не требуется; когда конечный сертификат имеет средний уровень доверия, будет проверена дополнительная антивирусная проверка файла; когда конечный сертификат имеет низкий уровень доверия, будет выполнено одно из следующих действий: проведена наиболее тщательная дополнительная антивирусная проверка файла; запуск файла будет заблокирован.
Согласно еще одному частному варианту реализации с помощью приложения проводят дополнительную антивирусную проверку файла в зависимости от содержимого полей сертификата.
Согласно одному из частных вариантов реализации с помощью приложения отправляют средству проверки конечный сертификат для выполнения дополнительной проверки конечного сертификата, когда конечный сертификат отсутствует в базе данных доверенных сертификатов.
Согласно варианту реализации используется система антивирусной проверки в зависимости от уровня доверия сертификата, содержащая: средство проверки, предназначенное для получения идентификатора конечного сертификата; средство проверки, предназначенное для выстраивания цепочки сертификатов от конечного сертификата, определяемого полученным идентификатором сертификата, до корневого сертификата; средство задания уровня доверия, предназначенное для определения с помощью базы данных доверенных сертификатов и в зависимости от цепочки сертификатов уровень доверия для конечного сертификата; приложение, предназначенное для проведения антивирусной проверки файла в зависимости от уровня доверия конечного сертификата, а также от правил проверки.
Согласно одному из частных вариантов реализации идентификатором сертификата служит один из параметров: серийный номер; открытый ключ; хэш-сумма от открытого ключа сертификата; имя субъекта и издателя сертификата.
Согласно другому частному варианту реализации уровень доверия принимает одно из значений: высокий, означающий, что файл является безопасным, дополнительная антивирусная проверка не проводится; средний, означающий, что будет проведена антивирусная проверка файла; низкий, означающий, что цифровая подпись владельца сертификата недействительна, будет выполнено одно из следующих действий: проведена наиболее тщательная дополнительная антивирусная проверка файла с учетом того, что файл не был подписан ЭЦП владельца сертификата; запуск файла будет заблокирован.
Согласно еще одному из частных вариантов реализации уровень доверия конечного сертификата соответствует уровню доверия упомянутого конечного сертификата в базе данных доверенных сертификатов.
Согласно одному из частных вариантов реализации средство проверки предназначено для последовательной проверки промежуточных сертификатов цепочки сертификатов с использованием базы данных доверенных сертификатов, когда конечный сертификат отсутствует в базе данных доверенных сертификатов.
Согласно другому частному варианту реализации средство задания уровня доверия дополнительно предназначено для определения низкого уровня доверия для конечного сертификата, когда по крайней мере один из промежуточных сертификатов содержится в базе данных доверенных сертификатов с низким уровнем доверия.
Согласно еще одному частному варианту реализации средство задания уровня доверия дополнительно предназначено для определения среднего уровня доверия для конечного сертификата, когда все сертификаты цепочки сертификатов отсутствуют в базе данных доверенных сертификатов.
Согласно одному из частных вариантов реализации средство задания уровня доверия дополнительно предназначено для определения среднего уровня доверия для конечного сертификата, когда выполняются следующие условия: по крайней мере один сертификат из цепочки сертификатов содержится в базе данных доверенных сертификатов; в цепочке сертификатов отсутствуют сертификаты с низким уровнем доверия.
Согласно другому частному варианту реализации правила включают по крайней мере следующие: когда конечный сертификат имеет высокий уровень доверия, файл считается легитимным и дальнейшая антивирусная проверка не требуется; когда конечный сертификат имеет средний уровень доверия, будет проверена дополнительная антивирусная проверка файла; когда конечный сертификат имеет низкий уровень доверия, будет выполнено одно из следующих действий: проведена наиболее тщательная дополнительная антивирусная проверка файла с учетом того, что файл не был подписан ЭЦП владельца сертификата; запуск файла будет заблокирован.
Согласно еще одному частному варианту реализации приложение предназначено для проведения дополнительной антивирусной проверки файла в зависимости от содержимого полей сертификата.
Согласно одну из частных вариантов реализации приложение дополнительно предназначено для отправки средству проверки конечного сертификата для выполнения дополнительной проверки конечного сертификата, когда конечный сертификат отсутствует в базе данных доверенных сертификатов.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
На Фиг. 1 представлена общая схема системы верификации цифровой подписи.
На Фиг. 2 представлен способ формирования и пополнения базы данных.
На Фиг. 3 представлен способ антивирусной проверки в зависимости от уровня доверия сертификата.
На Фиг. 4 приведен способ обхода цепочки сертификатов.
На Фиг. 5 приведен возможный пример обхода цепочки сертификатов.
Фиг. 6 представляет пример компьютерной системы общего назначения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
На Фиг. 1 представлена общая схема системы верификации цифровой подписи. Система содержит компьютерное устройство пользователя 110 (далее для наглядности будет упоминаться как компьютер) с установленным приложением 101. Компьютер 110 может быть, например, персональным компьютером (ПК), ноутбуком, планшетом, смартфоном и пр. В предпочтительном варианте реализации приложение 101 является антивирусом. При выполнении антивирусной проверки файла будет также выполнена проверка действительности сертификата открытого ключа ЭЦП файла. Сертификат считается действительным, если выполнены следующие условия:
- электронно-цифровая подпись удостоверяющего центра верна;
- срок действия сертификата текущий момент времени не окончен;
- сертификат не был отозван.
Система также содержит сервер 120, связанный с компьютером 110 посредством компьютерной сети. Система содержит средство проверки 103, связанное с приложением 101 и предназначенное для получения конечного сертификата от приложения 101 при выполнении проверки сертификата. Конечный сертификат - сертификат открытого ключа производителя ПО, электронно-цифровой подписью которого был подписан файл. Средство задания уровня доверия 104 связано со средством проверки 103 и служит для определения уровня доверия для сертификатов с помощью базы данных доверенных сертификатов 105 (для иллюстративности, далее будет упоминаться как база данных 105). Уровень доверия в рассматриваемой системе выступает параметром (например целочисленным), определяющим действительность сертификата, и используется при антивирусной проверке. База данных 105 связана со средством задания уровня доверия 104 и содержит сертификаты, а также соответствующие им уровни доверия и идентификаторы, по которым однозначным образом можно определить каждый сертификат. Идентификатором сертификата может служить, например, серийный номер, открытый ключ, хэш-сумма от открытого ключа сертификата, имя субъекта и издателя и пр. В частном варианте реализации система также включает локальную базу данных 105a, связанную с базой данных 105. В частном варианте реализации полный или частичный список сертификатов с уровнями доверия периодически передается из базы данных 105 в локальную базу данных 105a.
Средство задания уровня доверия 104 также необходимо для пополнения базы данных 105 сертификатами полученных файлов и соответствующими им уровнями доверия.
Средство проверки 103 также служит для выстраивания цепочки сертификатов от конечного сертификата до корневого сертификата. Цепочка сертификатов состоит из множества сертификатов, необходимых для сертификации производителя ПО, идентифицируемого конечным сертификатом. Обычно цепочка сертификатов содержит конечный сертификат, множество промежуточных сертификатов и корневой сертификат - сертификат корневого удостоверяющего центра, которому доверяют все удостоверяющие центры в цепочке сертификатов. Каждый промежуточный УЦ в цепочке содержит сертификат, выданный удостоверяющим центром, находящимся на уровень выше в цепочке. При этом корневой сертификат был выдан собственным удостоверяющим центром, который также называется корневым (т.е. является самоподписанным сертификатом). Кроме этого, средство проверки 103 служит для определения одного из:
- первого сертификата из цепочки сертификатов, содержащегося в базе данных 105;
- конечного сертификата в цепочке сертификатов.
В частном варианте реализации система включает базу данных вредоносных файлов 106. База данных вредоносных файлов 106 для каждого вредоносного файла может содержать хэш-сумму, сертификат открытого ключа ЭЦП и его идентификатор, статус вредоносного файла (например вирус, руткит, червь, троян), исходный файл и пр.
В частном примере реализации приложение 101 и файл 102 расположены на компьютере 110, а средства 103-106 расположены на сервере 120. В другом примере реализации база данных 105 может быть расположена на компьютере 110.
На Фиг. 2 представлен способ формирования и пополнения базы данных 105. При запуске неизвестного файла 102 на компьютере 110, приложение 101 определяет сертификат открытого ключа цифровой подписи файла и отправляет идентификатор сертификата и файла (например хэш-сумма от файла) на сервер 120 средству проверки 103. Приложение 101 может быть установлено на множестве компьютерных устройств различных пользователей - таким образом, на сервер 120 поступают идентификаторы сертификатов от множества неизвестных файлов. С использованием базы данных 105 сертификат может быть однозначно определен по полученному идентификатору. В частном варианте реализации, если в базе данных 105 не был найден сертификат, определенный полученным идентификатором, средство проверки 103 может запросить неизвестный файл у приложения 101. В другом варианте реализации неизвестный файл может быть получен средством проверки 103 от производителя ПО.
В частном варианте реализации сервер проверки 103 периодически (например раз в сутки) ранжирует сертификаты по количеству пользователей, от которых был получен идентификатор соответствующего сертификата. На шаге 201 средство проверки 103 выбирает из ранжированного списка определенное количество наиболее популярных сертификатов (например первые десять сертификатов). В другом варианте реализации средство проверки 103 проверяет все сертификаты, идентификаторы которых были полученные от пользователей.
На шаге 202 происходит проверка действительности сертификатов из списка, выбранного на предыдущем этапе. Исходя из определения, действительность сертификата определяется путем проверки следующих условий:
- электронно-цифровая подпись удостоверяющего центра верна;
- срок действия сертификата на текущий момент времени не окончен;
- сертификат не был отозван.
Кроме этого, сертификат может быть недействительным по следующим причинам:
- истек срок действия одного из сертификатов цепочки сертификатов;
- сроки действия сертификатов цепочки сертификатов могут не пересекаться;
- цепочка сертификатов зациклена - один из сертификатов цепочки сертификатов издан УЦ, сертифицированным УЦ проверяемого сертификата.
Стоит отметить, что проверка действительности сертификата не ограничивается приведенными выше условиями, а может включать и другие условия, перечисленные, например, в стандарте X.509.
Проверка электронной подписи в частном варианте реализации может быть осуществлена системными средствами (в ОС Windows, например, с помощью программы Sign Tool). В другом варианте реализации проверка электронной подписи может быть осуществлена путем ее расшифровки открытым ключом, содержащимся в сертификате открытого ключа данной электронной подписи и последующего сравнения полученного значения хэш-функции от файла с вычисленным значением хэш-функции от файла.
На шаге 203 средство задания уровня доверия 104 задает средний уровень доверия для сертификатов, идентификаторы которых были получены от пользователей и являются действительными. Оставшимся недействительным сертификатам, идентификаторы которых были получены от пользователей, присваивается низкий уровень доверия. В частном варианте реализации, оставшиеся сертификаты могут быть проанализированы вручную на стороне сервера.
В частном примере реализации уровень доверия может принимать следующие значения: низкий, средний, высокий. Низкий уровень доверия может означать, что цифровая подпись владельца недействительна и требуется проведение дополнительной антивирусной проверки файла (например, с использованием более сложный и ресурсоемких алгоритмов в сравнении с обычной антивирусной проверкой). Средний уровень доверия может означать, что будет проведена обычная антивирусная проверка. Высокий уровень доверия, напротив, означает, что файл является безопасным и дополнительных антивирусных проверок не требуется.
Далее средство проверки 103 получает список вредоносных файлов и их сертификатов из базы данных вредоносных файлов 106. На этапе 204 для сертификатов открытого ключа электронно-цифровой подписи, которой были подписаны вредоносные файлы, задают низкий уровень доверия. На этапе 205 высокий уровень доверия задают для сертификатов, у которых удостоверяющий центр содержится в списке доверенных удостоверяющих центров. В частном варианте реализации доверенными удостоверяющими центрами могут быть УЦ наиболее крупных производителей программного обеспечения (ПО). В другом частном примере реализации список доверенных удостоверяющих центров может быть заранее сформирован сервером 120.
В частном варианте реализации на шаге 204 промежуточным сертификатам, встречающимся в цепочках сертификатов у определенного количества вредоносных файлов, может быть задан низкий уровень доверия. Например, если промежуточный сертификат присутствовал в десяти цепочках сертификатов, при этом шесть файлов, подписанных конечными сертификатами этих цепочек, были вредоносными, то рассматриваемому промежуточному сертификату будет присвоен низкий уровень доверия. В то же время, если вредоносных файлов оказалось, например, два - промежуточному сертификату может быть присвоен средний уровень доверия, т.к. нет достаточных оснований полагать, что промежуточный сертификат был дискредитирован.
В итоге, на шаге 206 средство задания уровня доверия 104 добавляет (если база данных была только создана и соответственно является пустой) или пополняет базу данных 105 сертификатами полученных файлов и соответствующими им уровнями доверия.
На Фиг. 3 представлен способ антивирусной проверки файла с использованием информации об уровне доверия сертификата. На первом шаге 301 средство проверки 103 получает идентификатор конечного сертификата открытого ключа ЭЦП файла, проверяемого приложением 101. Далее, на шаге 302 средство проверки 103 строит цепочку сертификатов от конечного сертификата до корневого сертификата. С использованием базы данных 105 сертификат может быть однозначно определен по полученному идентификатору. Построение цепочки сертификатов происходит известным из уровня техники способом. У конечного сертификата определяется первый УЦ, выдавший сертификат. Для сертификата первого УЦ определяется второй УЦ, выдавший сертификат первого УЦ и так далее, до определения корневого УЦ.
На шаге 303 средство проверки 103 последовательно обходит цепочку сертификатов, производя последовательно поиск каждого сертификата из цепочки в базе данных 105. Уровень доверия конечного сертификата будет обновлен в зависимости от результата обхода цепочки сертификатов. Способ обхода цепочки сертификатов будет рассмотрен ниже, при описании Фиг. 4.
В итоге на шаге 304 с использованием базы данных 105 определяют уровень доверия для конечного сертификата. В итоге, на шаге 305 приложение 101 на компьютере 110 проводит антивирусную проверку файла 102 в зависимости от уровня доверия конечного сертификата. Данная зависимость определяется правилами проверки, которые будут описаны ниже, в таблице 1. В частном варианте реализации способ антивирусной проверки зависит от содержимого полей сертификата, таких как, например: срок действия, страна выпуска сертификата и пр.
На Фиг. 4 приведен способ обхода цепочки сертификатов. Проверка сертификатов происходит последовательно, начиная от конечного сертификата и заканчивая корневым сертификатом. На шаге 410 проверяется, содержится ли конечный сертификат в базе данных 105. Если сертификат содержится в базе данных 105, дальнейший обход цепочки сертификатов не требуется.
В противном случае на шаге 420 обход продолжается со следующего сертификата в цепочке и до тех пор, пока на шаге 430 не будет определено, что рассматриваемый промежуточный сертификат содержится в базе данных 105 с низким уровнем доверия (шаг 431), или пока не будет достигнут корневой сертификат (шаги 440-441). При этом если промежуточный сертификат содержится в базе данных 105 с высоким или средним уровнем доверия, обход цепочки будет продолжен.
Если промежуточный сертификат содержится в базе данных 105 и имеет низкий уровень доверия, конечному сертификату также будет присвоен низкий уровень доверия. Этот шаг позволяет определить вредоносный файл, когда один из промежуточных сертификатов цепочки сертификатов имеет низкий уровень доверия, даже если по каким-либо причинам (например промежуточный сертификат был отозван из-за компрометации УЦ, в то время как родительские УЦ не были скомпрометированы) остальные сертификаты цепочки сертификатов имеют средний или высокий уровень доверия.
Если был достигнут корневой сертификат и при этом по крайней мере один из промежуточных сертификатов содержится в базе данных 105 со средним или высоким уровнем доверия, конечному сертификату файла будет присвоен средний уровень доверия.
Кроме этого, на шаге 441 проверяется, присутствовали ли в цепочке сертификатов промежуточные сертификаты с высоким уровнем доверия. Если да, конечному сертификату будет также присвоен высокий уровень доверия.
Последний из возможных результатов обхода цепочки сертификатов: ни один из сертификатов цепочки не содержался в базе данных 105. В этом случае конечному сертификату может быть присвоен низкий уровень доверия. Кроме этого, в частном варианте реализации идентификатор конечного сертификата может быть отправлен средству проверки 103, которое проанализирует сертификат в соответствии со способом, представленным на Фиг. 2. В другом варианте реализации, средству проверки 103 может быть также отправлен идентификатор файла (например хэш-сумма).
Ниже, в таблице 1 приведен пример правил проверки, в соответствии с которыми проводится антивирусная проверка после окончания обхода цепочки сертификатов.
Таблица 1 | ||
№ | Уровень доверия конечного сертификата | Правило |
1 | Высокий | Файл считается доверенным, дальнейшая антивирусная проверка не требуется |
2 | Средний | Необходимо провести дополнительную антивирусную проверку |
3 | Низкий | Необходимо провести более тщательную дополнительную антивирусную проверку файла |
Например, согласно первому правилу, если в приведенном на Фиг. 4 способе был найден сертификат, являющийся конечным сертификатом с высоким уровнем доверия, файл считается легитимным и дальнейшая антивирусная проверка не требуется. Согласно же второму правилу будет проведена дополнительная антивирусная проверка. Такой проверкой может быть, например, эвристические алгоритмы, использование облачных сервисов, эмуляция и пр.
Согласно третьему правилу таблицы 1 будет проведена дополнительная антивирусная проверка с учетом того, что файл не был подписан цифровой подписью владельца или цифровая подпись не верна. В этом случае будет проведена наиболее тщательная антивирусная проверка или комплекс проверок, позволяющих с большой вероятностью определить вредоносные файлы. Например, могут использоваться более ресурсоемкие эвристические алгоритмы, поведенческие алгоритмы и пр. В частном варианте реализации, если сертификат имеет низкий уровень доверия, он может быть заблокирован приложением 101 при запуске.
На Фиг. 5 приведен возможный пример обхода цепочки сертификатов согласно способу, приведенному на Фиг. 4. В рассматриваемом примере файл подписан конечным сертификатом 501. Цепочка сертификатов состоит из сертификатов 501-506. Т.е. конечный сертификат 501 был подписан УЦ 4, сертификат 502 которого был подписан УЦ 3 и т.д.
Средство проверки 103, на шаге 410 последовательно обходит сертификаты из цепочки сертификатов, начиная с корневого сертификата. Первый сертификат, который присутствует в базе данных 105 является сертификат 502, который, согласно базе данных 105 имеет высокий уровень доверия. Т.к. он не является корневым сертификатом, то согласно способу, приведенному на Фиг. 4 обход сертификатов цепочки сертификатов продолжается (шаг 440). Сертификат 503 не содержится в базе данных 105. Следующий сертификат 504 содержится в базе данных с низким уровнем доверия. Несмотря на то, что в цепочке сертификатов еще осталось два непроверенных сертификата, далее нет необходимости продолжать обход (шаг 431), т.к. был найден дискредитированный промежуточный сертификат 504. Согласно правилу 3 из таблицы 1 необходимо провести наиболее тщательную дополнительную антивирусную проверку файла.
Фиг. 6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 6. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.
1. Способ антивирусной проверки в зависимости от уровня доверия сертификата открытого ключа цифровой подписи файла, в котором:а) с помощью средства проверки получают идентификатор конечного сертификата;б) с помощью средства проверки выстраивают цепочку сертификатов от конечного сертификата, определяемого полученным идентификатором сертификата, до корневого сертификата;в) с помощью средства задания уровня доверия определяют с помощью базы данных доверенных сертификатов и в зависимости от цепочки сертификатов уровень доверия для конечного сертификата, при этом:- используют у