Система и способ стойкой к атакам проверки ЭЦП файлов
SYSTEM AND METHOD OF PROOFING AGAINST SCANNING OF EDS FILES

Область техники
Изобретение относится к области проверки сертификатов ЭЦП файлов.
Уровень техники
Широкое распространение вредоносных приложений является причиной постоянного совершенствования антивирусных технологий, призванных защитить данные пользователя, а также его вычислительные устройства от несанкционированного доступа и использования. В этой постоянной гонке к улучшению антивирусных приложений перед их разработчиками стоит в том числе важная задача - снижение ошибок первого и второго рода при обнаружении вредоносных файлов. Ошибка второго рода - непризнание вредоносного файла таковым, ошибка первого рода (ложное срабатывание) - признание вредоносным файла, который не является таковым.
С целью снижения количества ошибок первого рода разработчики антивирусных приложений используют различные техники для того, чтобы файл, признанный вредоносным при помощи, например, эвристического анализа, не был удален или помещен в карантин. Одной из таких техник является проверка файла по базам данных доверенных файлов, в рамках которой идентификатор файла (например, контрольная сумма MD5 или SHA-1), признанного вредоносным, ищется в базе данных доверенных файлов, и, если такой же идентификатор там найден, то решение о признании файла вредоносным отменяется. Еще одним способом уменьшения ошибок первого рода является проверка ЭЦП (электронной цифровой подписи, упрощенно "цифровой подписи") файла, который был признан вредоносным. Если файл, признанный вредоносным, имеет действительную ЭЦП, при этом сертификат этой ЭЦП является доверенным, то решение о признании файла вредоносным отменяется.
Для проверки цифровых подписей антивирусные приложения часто прибегают к встроенным в ОС средствам проверки ЭЦП, в частности CryptoAPI. Например, в публикации US 20170257361 A1 описан подход к верификации исполняемого кода на основании результатов проверки ЭЦП файла, который этот код содержит.
Однако такой подход имеет ряд недостатков, таких как сравнительно невысокая скорость проверки ЭЦП, уязвимость к атакам злоумышленников, для решения которых предназначено настоящее изобретение.
Раскрытие изобретения
Настоящее изобретение предназначено для проверки ЭЦП файла.
Технический результат изобретения заключается в обеспечении проверки ЭЦП файла, осуществляемой при обнаружении атаки в отношении системных средств проверки ЭЦП. Технический результат достигается способом проверки ЭЦП файла в условиях атаки на вычислительное устройство пользователя, согласно которому: обнаруживают при помощи средства безопасности атаку на вычислительное устройство пользователя, которая осуществлена в отношении системных средств проверки ЭЦП; обнаруживают файл, категория которого неизвестна, при помощи средства проверки с целью определения ЭЦП файла и сертификата ЭЦП; признают при помощи средства проверки сертификат ЭЦП обнаруженного файла действительным, если сертификат ЭЦП целостный и сертификат удостоверяющего центра, выдавший упомянутый сертификат ЭЦП, также является действительным; при этом проверка действительности сертификата ЭЦП осуществляется с использованием сертификатов из базы данных сертификатов, которая хранит сертификаты для по меньшей мере двух операционных систем; признают при помощи средства проверки ЭЦП обнаруженного файла действительной, если сертификат ЭЦП является действительным, а файл целостным.
В другом варианте реализации способа дополнительно признают при помощи средства проверки действительный сертификат ЭЦП доверенным путем осуществления запроса к базе данных доверенных сертификатов; при этом база данных доверенных сертификатов хранит информацию о доверенности сертификатов для по меньшей мере двух операционных систем; а также признают при помощи средства проверки обнаруженный файл относящимся к категории доверенных файлов, если ЭЦП файла действительна, а сертификат ЭЦП является доверенным.
В другом варианте реализации способа блокируют при помощи средства обеспечения безопасности доступ к файлу, если он не был признан доверенным.
В другом варианте реализации способа системными средствами проверки ЭЦП являются программные средства, предоставляемые вместе с операционной системой и предназначенные для проверки сертификатов ЭЦП, а также самих ЭЦП.
В другом варианте реализации способа системными средствами проверки ЭЦП являются компоненты программного обеспечения Keychain для ОС macOS или библиотека Wintrust.dll для ОС Windows.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 иллюстрирует примерный вариант компонентов системы, реализующей настоящее изобретение.
Фиг. 2 иллюстрирует альтернативный вариант компонентов системы, реализующей настоящее изобретение.
Фиг. 3 показывает вариант реализации способа настоящего изобретения.
Фиг. 4 показывает альтернативный вариант реализации способа настоящего изобретения.
Фиг. 5 показывает пример компьютерной системы общего назначения.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является не чем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносное приложение - приложение, способное нанести вред компьютеру или данным пользователя компьютера (иными словами, компьютерной системы), например: сетевой червь, клавиатурный шпион, компьютерный вирус. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.
Доверенное приложение - приложение, которое не наносит вреда компьютеру или его пользователю. Доверенным приложением может считаться приложение, разработанное доверенным производителем ПО (программного обеспечения), загруженное из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или приложение, идентификатор (или другие данные, по которым можно однозначно определить приложение) которого (например, хеш-сумма файла приложения) хранится в базе данных доверенных приложений. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных приложений.
Недоверенное приложение - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи антивирусного приложения. При этом недоверенное приложение может впоследствии быть признано вредоносным, например, при помощи антивирусной проверки.
Вредоносный файл - файл, являющийся компонентом вредоносного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Недоверенный файл - файл, являющийся компонентом недоверенного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Доверенный файл - файл, являющийся компонентом доверенного приложения.
Проверка ЭЦП файла - проверка того, что именно проверяемый файл был подписан владельцем приложенного к ЭЦП сертификата. На первом этапе проверки осуществляется сравнение расшифрованной контрольной суммы файла из ЭЦП файла с контрольной суммой файла, полученной при помощи алгоритма, указанного в сертификате ЭЦП. Контрольная сумма из ЭЦП файла проверяется при помощи указанного в сертификате ЭЦП открытого ключа. Если контрольные суммы совпадают, то подтверждается целостность файла. Следующий этап проверки - подтверждение действительности сертификата ЭЦП, которое осуществляется аналогично: проверяется целостность сертификата ЭЦП файла и действительность сертификата соответствующего удостоверяющего центра, выдавшего сертификат ЭЦП файла (процесс может продолжаться вплоть до корневого сертификата). Сертификат считается действительным, если он целостный и сертификат удостоверяющего центра, выдавший упомянутый сертификат, также является действительным. В противном случае сертификат является недействительным. Если сертификат ЭЦП считается действительным, а файл целостным, то ЭЦП считается действительной. В противном случае ЭЦП считается недействительной. При этом под сертификатом ЭЦП понимают сертификат, прикрепленный к ЭЦП файла (листовой сертификат - англ. leaf certificate), позволяющий проверить действительность ЭЦП файла. При этом под сертификатом понимают сертификат в соответствии со стандартом Х.509.
Под средствами системы проверки ЭЦП файла в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 5). При этом компоненты системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Система проверки ЭЦП состоит из средства проверки и базы данных сертификатов. В еще одном варианте реализации система содержит средство обеспечения безопасности.
Фиг. 1 отображает вариант системы проверки ЭЦП файла. Средство проверки 120 в одном из вариантов реализации изобретения может быть расположено на устройстве передачи данных 135 - вычислительном устройстве, предназначенном для трансляции данных, например поступающих из сети на вычислительное устройство пользователя 140, в частности файла 110. Таким устройством передачи данных 135 может являться маршрутизатор или же любое другое вычислительное устройство, например прокси-сервер. В одном из вариантов реализации изобретения таким устройством 135 может являться вычислительное устройство, предназначенное для хранения данных с целью последующего распространения, например, сервер обновлений, получающий файлы обновлений для множества компьютеров сети некоторой компании с целью последующей передачи этих файлов на компьютеры сотрудников компании. В одном из вариантов реализации изобретения средство обеспечения безопасности 125 также располагается на устройстве передачи данных 135, а база данных сертификатов 130 и база данных доверенных сертификатов 131, связанные со средством проверки 120, могут располагаться как на устройстве 135, так и на удаленном сервере, связанном с устройством 135 посредством сети.
В одном из вариантов реализации изобретения файл 110 - файл, обладающий ЭЦП, например исполняемый файл или файл сценария. В еще одном варианте реализации изобретения исполняемым файлом является исполняемый файл для операционной системы из следующих семейств: Windows, Unix, в частности такими операционными системами являются операционные системы Windows, Ubuntu Linux или macOS и т.п.
Фиг. 2 отображает альтернативный вариант системы проверки ЭЦП файла, в котором средство 125 и средство 120 располагаются на вычислительном устройстве пользователя 140. При этом база данных сертификатов 130 и база данных доверенных сертификатов 131, связанные со средством проверки 120, могут располагаться как на устройстве 140, так и на удаленном сервере, связанном с устройством 140 посредством сети.
База данных сертификатов 130 предназначена для хранения сертификатов. В одном из вариантов реализации база данных 130 также для каждого сертификата хранит информацию, является ли он отозванным или нет. База данных сертификатов 130 хранит сертификаты (соответственно, и информацию о них) для нескольких (по меньшей мере двух) операционных систем (ОС). В одном из вариантов реализации изобретения такими операционными системами являются операционные системы семейств Windows и Unix, например: Windows, Ubuntu Linux или macOS. Таким образом, база данных сертификатов 130 может хранить сертификаты для различных операционных систем, что не позволяют системные средства проверки ЭЦП каждой из операционной системы по отдельности.
В одном из вариантов реализации изобретения база данных сертификатов 130 хранит только корневые сертификаты и сертификаты удостоверяющих центров.
База данных доверенных сертификатов 131 предназначена для хранения доверенных сертификатов. В одном из вариантов в базе данных 131 хранятся не сами сертификаты, которые считаются доверенными, а их идентификаторы (например, контрольная сумма SHA-1). В частном случае реализации в базе данных 131 также, как и в базе данных 130 хранится информация относительно сертификатов для нескольких ОС.
В контексте настоящего изобретения под понятием "сертификат для некоторой ОС" (упрощенно "сертификат некоторой ОС") будем понимать сертификат, который может присутствовать в системном хранилище сертификатов одной ОС (или одного семейства ОС) и не присутствует в системном хранилище ОС другого семейства. Такая ситуация возможна по нескольким причинам:
- Разработчики ОС могут не хранить сертификаты, целостность которых определяется при помощи алгоритмов шифрования, считающихся, по мнения этих разработчиков, не стойкими. Примером такой ситуации могут быть планы разработчиков ОС Windows отказаться от использования алгоритма шифрования SHA-1 (а, соответственно и сертификатов, где указан такой алгоритм) при проверке действительности ЭЦП в ОС Windows 10.
- Поддержка системным хранилищем сертификатов более стойких алгоритмов шифрования, используемых при проверке действительности ЭЦП, может либо отсутствовать, либо добавляться разработчиками ОС с задержкой. Пример такой ситуации может являться ОС Windows 7, где изначально была только поддержка алгоритма шифрования SHA-1, а поддержка SHA-256 была добавлена только с обновлением SP1.
- Разработчики ОС могут не добавлять в системное хранилище сертификаты, выданные разработчикам ПО, связанного с определенными подсистемами. Например, корневые сертификаты, используемые для проверки ЭЦП приложений Metro, которые появились только в ОС Windows 8, отсутствуют в системных хранилищах сертификатов ОС Windows 7.
- Разработчики ОС macOS не добавляют в системное хранилище сертификатов сертификаты (в частности, корневые), используемые для проверки ЭЦП исполняемых файлов для ОС Windows (и наоборот). Иными словами, системное хранилище одной ОС может не содержать сертификаты (в частности корневые), используемые для проверки исполняемых файлов для других ОС.
- Любые другие причины, приводящие к тому, что сертификат, например корневой, исключается из системного хранилища сертификатов или не добавляется туда.
При этом в одном из вариантов реализации изобретения под системным хранилищем сертификатов понимают базу данных, содержащую сертификаты, и используемую системными средствами проверки ЭЦП для проверки ЭЦП, например, файлов. Под разработчиками ОС в вышеупомянутом примере понимаются в том числе специалисты в области информационных технологий, определяющие содержимое системных хранилищ сертификатов, а также способы проверки ЭЦП при помощи системного хранилища сертификатов (в частности, алгоритмы шифрования, используемые для проверки действительности ЭЦП и сертификатов).
Стоит отметить, что данные, которые хранятся в базах данных 130 и 131 могут добавляться, изменяться и удаляться специалистом в области информационных технологий.
Средство проверки 120 предназначено для проверки ЭЦП файла 110 с целью признания ее действительной, а проверок сертификата ЭЦП файла 110 с целью признания сертификата действительным, а также доверенным. Действительность ЭЦП проверяется в два этапа, которые могут быть выполнены параллельно и независимо друг от друга. На одном этапе проверяется целостность файла 110. Для этого средство 120 осуществляет сравнение расшифрованной контрольной суммы файла 110 из ЭЦП файла 110 с контрольной суммой файла 110, полученной при помощи алгоритма, указанного в сертификате ЭЦП. Контрольная сумма из ЭЦП файла 110 проверяется при помощи указанного в сертификате ЭЦП открытого ключа. Если контрольные суммы совпадают, то средство проверки 120 подтверждается целостность файла, т.е. выявляет, что файл 110 является целостным. На другом этапе проверки ЭЦП файла 110 проверяется действительность сертификата ЭЦП.
Действительность сертификата проверяется средством проверки 120 при помощи построения цепочки сертификатов, например, до корневого сертификата из сертификатов, присутствующих в базе данных сертификатов 130. Сертификат ЭЦП файла 110 (как и любой другой сертификат) признается действительным, если он целостный (проверка целостности сертификата аналогична вышеописанной проверке целостности файла), а также сертификат удостоверяющего центра, выдавшего упомянутый сертификат ЭЦП файла 110 также является действительным. В одном из вариантов все сертификаты, используемые для проверки сертификата ЭЦП файла 110 хранятся в базе данных сертификатов 130. Последовательная проверка действительности сертификатов и является построением цепочки сертификатов. Если средству 120 в рамках проверки сертификата ЭЦП файла 110 удается построить цепочку сертификатов до корневого сертификата, который хранится в базе данных сертификатов 130, т.е. каждый из сертификатов в цепочке является целостным, и последний сертификат в цепочке - корневой, то сертификат ЭЦП файла 110 признается действительным. В противном случае сертификат ЭЦП файла 110 не признается действительным (признается недействительным).
В одном из вариантов реализации, если сертификат ЭЦП файла 110 недействительный, то средство проверки 120 признает его недоверенным.
Если же сертификат ЭЦП файла 110 действительный, то средство проверки 120 признает сертификат ЭЦП файла 110 доверенным, если выполняются следующие условия: сертификат ЭЦП (или идентификатор такого сертификата, например контрольная сумма SHA-1 или SHA-256, или вектор значений, однозначно характеризующий упомянутый сертификат) присутствует в базе данных доверенных сертификатов 131, или же сертификат удостоверяющего центра, выдавшего упомянутый сертификат, является доверенным. В одном из вариантов реализации для признания сертификата ЭЦП доверенным должно выполняться дополнительное условие - в базе данных сертификатов 130 отсутствует информация о том, что сертификат отозванный. В еще одном из вариантов реализации для признания сертификата ЭЦП доверенным должно выполняться дополнительное условие - сертификат ЭЦП не является просроченным (срок его действия, указанный в самом сертификате, не истек).
В одном из вариантов реализации изобретения для признания сертификата действительным достаточно присутствия в базе данных сертификатов 131 информации об этом сертификате (например, идентификатора). В таком случае признание сертификата ЭЦП файла 110 как выполнение отдельного этапа не производится - доверенность сертификата ЭЦП подтверждается на этапе проверки действительности упомянутого сертификата ЭЦП файла 110.
В одном из вариантов реализации изобретения средство проверки 120 также предназначено для определения категории файла 110 (или же отнесения файла к категории, иными словами, для признания файла относящимся к некоторой категории). Средство 120 признает файл 110 доверенным (определяет его относящимся к категории доверенных файлов, иными словами относит к категории доверенных файлов), если его ЭЦП действительна, а сертификат ЭЦП является доверенным.
Используя базу данных 130 для проверки действительности сертификата ЭЦП, а, соответственно и действительности ЭЦП файла 110 вместо системных средств проверки ЭЦП, средство проверки 120 пользуется следующим преимуществом: в отличии от системного хранилища сертификатов, являющегося частью некоторой ОС, и которое хранит сертификаты, используемые для подписи только для файлов определенных типов, соответствующих упомянутой ОС (например, системное хранилище сертификатов ОС Windows не хранит сертификаты, в том числе и корневые, для проверки ЭЦП исполняемых файлов Unix-подобных систем), база данных 130 содержит сертификаты, которые используются для подписи файлов, соответствующих любым ОС. В частном случае реализации файл соответствует ОС, если он является исполняемым файлов для этой ОС. Таким образом обеспечивается точность, а именно снижение ошибок первого рода, при признании сертификата ЭЦП файла 110 действительным, и, соответственно, ЭЦП файла 110 действительной, а также и при определении категории файла 110 на основании проверки ЭЦП и сертификата ЭЦП файла 110.
Средство обеспечения безопасности 125 предназначено для защиты устройства 140 от недоверенных файлов. В одном из вариантов реализации изобретения под защитой понимают запрет на исполнение недоверенных файлов или же запрет на открытие таких файлов. В еще одном варианте реализации средство обеспечения безопасности препятствует попаданию недоверенных файлов на вычислительное устройство 140, в частности блокирует передачу файла 110 на вычислительное устройство 140. В еще одном варианте реализации недоверенные файлы удаляются или помещаются в карантин при помощи средства обеспечения безопасности 125, так и не достигнув вычислительного устройства 140. Средство обеспечения безопасности 125 может быть реализовано при помощи антивирусного программного обеспечения, известного из уровня техники.
В одном из вариантов реализации изобретения средство обеспечения безопасности 125 также предназначено для обнаружения атаки на вычислительное устройство пользователя 140, которая осуществлена в отношении системных средств проверки ЭЦП. Под системными средствами проверки ЭЦП понимают программные средства, предоставляемые вместе с операционной системой и предназначенные для проверки сертификатов ЭЦП и/или самих ЭЦП. Например для ОС Windows таким средством является библиотека Wintrust.dll, а для ОС macOS - компоненты программного обеспечения Keychain или GateKeeper. В одном из вариантов реализации изобретения под атакой в отношении системных средств проверки ЭЦП понимают изменение или подмену одного или нескольких системных программных модулей для проверки сертификатов ЭЦП. При этом под обнаружением атаки в отношении упомянутых средств проверки сертификатов ЭЦП понимают в том числе признание при помощи средства обеспечения безопасности 125 одного или нескольких системных программных модулей для проверки сертификатов ЭЦП вредоносными. Признание программного модуля вредоносным может быть осуществлено средством обеспечения безопасности 125 любым из известных из уровня техники способов.
Стоит отметить, что возможности по проверке сертификатов ЭЦП при помощи системных средств ограничиваются в силу ограниченности набора сертификатов, находящихся в распоряжении системных средств проверки сертификатов ЭЦП (например, ограниченность набора сертификатов в хранилище сертификатов Windows или хранилище сертификатов Keychain для macOS).
На Фиг. 3 отображен вариант способа настоящего изобретения, реализуемого средствами системы, изображенной на Фиг. 1. На этапе 301 при помощи средства проверки 120 обнаруживают файл 110, предназначенный для последующей передачи. При этом файл 110 передается по сети через устройство передачи данных 135, в рамках которого расположено средство проверки 120, на вычислительное устройство пользователя 140. При этом в одном из вариантов реализации изобретения под обнаружением файла 110 понимают получение данных файла (например, байтового представления). В еще одном варианте реализации под обнаружением файла 110 также понимают приостановку, осуществляемую при помощи средства обеспечения безопасности 125, передачи файла 110 на вычислительное устройство 140, например, до того момента, как файл 110 не будет признан доверенным.
После этого осуществляется этап проверки ЭЦП файла: на этапе 302 при помощи средства проверки 120 осуществляют проверку сертификата ЭЦП файла 110 и признают сертификат ЭЦП действительным, если сертификат ЭЦП целостный и сертификат удостоверяющего центра, выдавший упомянутый сертификат ЭЦП, также является действительным. Для проверки действительности сертификатов может быть использована база данных сертификатов 130, которая может содержать сертификаты удостоверяющих центров с указанием доверенности каждого сертификата. Таким образом, доверенный сертификат из базы данных сертификатов 130 считается действительным. Процедура проверки действительности для цепочки сертификатов может продолжаться вплоть до первого доверенного сертификата или же до корневого сертификата в цепочке сертификатов.
На этапе 303 при помощи средства проверки 120 признают ЭЦП файла действительной, если сертификат ЭЦП является действительным, а файл 110 целостным.
После этого, на этапе 304 сертификат ЭЦП файла признают доверенным, если он действительный, и в базе данных сертификатов 130 присутствует информация о доверенности этого сертификата ЭЦП, или же сертификат удостоверяющего центра, выдавшего упомянутый сертификат ЭЦП, является доверенным.
Стоит отметить, что этапы 303 и 304 независимы друг от друга и могут быть выполнены в любой последовательности.
Если сертификат ЭЦП является доверенным, а ЭЦП действительна, то на этапе 305 файл 110 признается доверенным, иными словами определяется категория файла - файл признается относящимся к категории доверенных файлов. В противном случае на этапе 306 файл 110 не признается доверенным.
Если файл 110 не признается доверенным, то средство обеспечения безопасности 125 может не осуществлять его дальнейшую передачу на вычислительное устройство пользователя 140, удалить все данные, относящиеся к файлу 110 и находящиеся на устройстве передачи данных 135, или же поместить файл 110 в карантин.
Способ, осуществляемый системой, обладает следующими преимуществами по сравнению с решениями для проверки сертификатов, основанными на использовании системных средств - так как в базе данных сертификатов 130 находятся сертификаты для различных операционных систем, то заявленная система будет иметь меньше ложных срабатываний при определении категории файла 110, который передается по сети на числительное устройство пользователя 140, по сравнению с аналогичными системами, проверяющими только сертификаты для одного семейства операционных систем. Так, исполняемый файл 110, имеющий действительный (и доверенный) сертификат для macOS, не будет признан доверенным при помощи лишь хранилища сертификатов ОС Windows, соответственно заявленное изобретение решает эту проблему, а именно снижает количество ошибок первого рода (ложные срабатывания) при определении категории файла путем хранения сертификатов для различных семейств ОС. Данная задача особенно актуальна для ситуаций, когда средство проверки 120 расположено на маршрутизаторе или прокси-сервере корпоративной сети совместно со средством обеспечения безопасности 125, которое "фильтрует" загружаемые из Сети файлы (блокирует передачу файлов на вычислительные устройства 140, входящие в упомянутую корпоративную сеть), в которую входят вычислительные устройства пользователей 140 с разными операционными системам, и где через устройство передачи данных проходят файлы, сертификаты ЭЦП которых, соответственно, относятся к различным операционным системам.
В еще одном варианте реализации средства 120 и 125 расположены на вычислительном устройстве пользователя. А настоящий способ позволяет снизить количество ложных срабатываний при определении категории файла 110, который подписан ЭЦП и предназначен для запуска на виртуальной машине, установленной на устройстве 140, с ОС, отличной от той, под управлением которой находится вычислительное устройство пользователя 140. Преимущество достигается за счет того, что средство проверки может корректно проверить сертификат исполняемого файла для ОС, отличной от той, под управлением которой находится вычислительное устройство пользователя 140, так как в базах данных 130 и 131 содержится информация о сертификатах для различных ОС.
На Фиг. 4 отображен еще один вариант способа настоящего изобретения, реализуемого средствами системы, изображенной на Фиг. 2.
На этапе 400 средство обеспечения 125 обнаруживает атаку на вычислительное устройство пользователя 140 в отношении системных средств проверки ЭЦП файлов. После этого, на этапе 401, средство обеспечения безопасности 125 обнаруживает файл 110, категория которого неизвестна. Для этого средство безопасности способно осуществить поиск идентификатора файла 110 (например, контрольной суммы SHA-1 или MD5) в базе данных файлов (не отображена на фигурах), где для идентификаторов файлов указана принадлежность файла к некоторой категории файлов, например: доверенных или недоверенных файлов. Если при помощи запроса к упомянутой базе денных средство безопасности 125 не смогло осуществить определение категории файла 110, то выполняется следующий этап способа. При этом файлом 110, в отношении которого средство обеспечения безопасности 125 проверяет неизвестность категории файла, может являться любой новый или измененный файл на вычислительном устройстве 140, например загруженный из сети, созданный на самом вычислительном устройстве или полученный модификацией уже присутствовавшего на вычислительном устройстве 140 файла.
После этого осуществляется этап проверки ЭЦП файла: на этапе 402 при помощи средства проверки 120 осуществляют проверку сертификата ЭЦП файла 110 и признают сертификат ЭЦП действительным, если сертификат ЭЦП целостный и сертификат удостоверяющего центра, выдавший упомянутый сертификат ЭЦП, также является действительным. Для проверки действительности сертификатов может быть использована база данных сертификатов 130, которая может содержать сертификаты удостоверяющих центров с указанием доверенности каждого сертификата. Таким образом, доверенный сертификат из базы данных сертификатов 130 считается действительным. Процедура проверки действительности для цепочки сертификатов может продолжаться вплоть до первого действительного сертификата или же до корневого сертификата в цепочке сертификатов.
На этапе 403 при помощи средства проверки 120 признают ЭЦП файла действительной, если сертификат ЭЦП является действительным, а файл 110 целостным. После этого, на этапе 404 сертификат ЭЦП файла признают доверенным, если он действительный, и в базе данных сертификатов 130 присутствует информация о доверенности этого сертификата ЭЦП или же сертификат удостоверяющего центра, выдавшего упомянутый сертификат ЭЦП, является доверенным.
Стоит отметить, что этапы 403 и 404 независимы друг от друга и могут быть выполнены в любой последовательности.
Если сертификат ЭЦП является доверенным, а ЭЦП действительна, то на этапе 405 файл 110 признается доверенным, иными словами определяется категория файла - файл признается относящимся к категории доверенных файлов. В противном случае на этапе 406 файл 110 не признается доверенным.
Если файл 110 не признается доверенным, то средство обеспечения безопасности 125 может удалить все данные, относящиеся к файлу 110 (данные файла) и находящиеся на вычислительном устройстве пользователя 140, или же поместить файл 110 в карантин.
Упомянутый способ, осуществляемый системой, обладает следующими преимуществами по сравнению с решениями для проверки сертификатов, основанными на использовании системных средств - при атаке на системные средства проверки ЭЦП такие решения не смогут корректно проверять сертификаты ЭЦП файлов, что делает невозможным точно определять категории файлов, подписанных ЭЦП, на основании информации о действительности ЭЦП и доверенности сертификата, так как сами компоненты системных средств проверки ЭЦП могут быть подменены или повреждены и функционировать некорректно. Пример такой атаки - подмена компонентов системных средств проверки ЭЦП для того, чтобы средство обеспечения безопасности, в частности антивирусное приложение, признавало вредоносные файлы доверенными путем определения их категории на основании информации о действительности ЭЦП и сертификатов ЭЦП, предоставляемой скомпрометированными системными средствами проверки ЭЦП. Настоящее изобретение решает указанную техническую проблему путем обнаружения атаки на системные средства проверки ЭЦП и, в случае обнаружения таковой, определяет категорию файла 110 при помощи базы данных сертификатов 130, которая предоставляет достоверную информацию о действительности и доверенности сертификатов.
В одном из вариантов реализации изобретения атака на системные средства проверки ЭЦП является частью более сложной атаки, например целевой атаки (англ. Advanced Persistent Threat). В таком случае критично, чтобы средство обеспечения безопасности 125 смогло обезопасить вычислительное устройство 140 от такой атаки. Для этого средством обеспечения безопасности 125 может быть инициирована процедура определения категорий всех файлов, появившихся на устройстве 140 во время атаки в отношении системных средств проверки ЭЦП, а именно в пределах, например, 24 часов от даты атаки (именно даты атаки, а не даты обнаружения атаки) - например, даты модификации одного из компонентов системных средств проверки ЭЦП. При этом файлы, которые не были признаны доверенными при помощи средства проверки 120 в рамках инициированной средством обеспечения безопасности 125 проверки, признаются средством 125 потенциально вредоносными. Такие файлы могут быть переданы на удаленный сервер для более детального анализа, например при помощи классифицирующих алгоритмов или нейронных сетей, или же анализа специалистом в области информационной безопасности. Соответственно, решение о признании каждого такого файла поступает средству 125 со стороны удаленного сервера, и, в случае признания в рамках данной процедуры некоторого файла вредоносным, средство обеспечения безопасности 125 обнаруживает целевую атаку, а также принимает необходимые меры в отношении файла, признанного вредоносным - либо удаляет его, либо помещает в карантин.
В еще одном варианте реализации описанная в рамках изобретения система обладает преимуществом не только в момент, когда системные средства проверки ЭЦП атакованы, а когда в принципе нет возможности использовать их по тем или иным причинам: как при атаке на системные средства проверки ЭЦП, так и, например, до момента загрузки в оперативную память компонентов этих системных средства проверки ЭЦП, например при старте ОС Windows, когда компонент Wintrust.dll еще не загружен в оперативную память.
Использование средства проверки 120 для проверки действительности ЭЦП файла 110 помимо вышеописанных (связанных со снижением количества ошибок первого рода - признания действительной ЭЦП недействительной из-за отсутствия в системном хранилище сертификатов сертификатов для файлов нескольких ОС) обладает следующим преимуществом: проверка действительности ЭЦП осуществляется быстрее.
Одна из причин большей скорости проверки действительности ЭЦП при помощи средства 120 заключается в том, что системные средства проверки ЭЦП (в частности средства ОС Windows) для проверки действительности сертификатов загружают списки отозванных сертификатов для того, чтобы определить, является ли некоторый сертификат отозванным. При этом анализируется весь список отозванных сертификатов на предмет нахождения в нем проверяемого сертификата. При этом средство проверки 120 проверяет, является ли некоторый сертификат отозванным путем простого обращения к базе данных сертификатов 130, где каждый из сертификатов может быть помечен как отозванный. Таким образом средство проверки 120 проверяет действительность сертификата ЭЦП файла 110 быстрее по сравнению с системными средствами проверки ЭЦП.
Еще одной причиной большей скорости проверки действительности ЭЦП при помощи средства 120 является то, что база данных 130 не хранит дубликаты сертификатов, таким образом невозможно построение, а соответственно и проверка, нескольких цепочек сертификатов для одного сертификата ЭЦП файла 110. При этом обратная ситуация возможна при использовании системных средств проверки ЭЦП, например средств ОС Windows, когда в хранилище сертификатов Windows добавляется дубликат некоторого сертификата (происходит перевыпуск сертификата с идентичным открытым ключом).
Еще одной причиной большей скорости проверки действительности ЭЦП при помощи средства 120 является то, что системные средства проверки ЭЦП могут быть расширяемы, а именно для ОС Windows существует интерфейс CryptoAPI, который может быть использован сторонними приложениями, которые дополняют логику проверки действительности сертификатов ЭЦП выполнением собственных проверок, тем самым замедляя скорость принятия решения о действительности ЭЦП.
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.