Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты)
METHOD OF GENERATING A REQUEST FOR INFORMATION ON A FILE FOR PERFORMING ANTIVIRUS CHECKING AND A SYSTEM FOR REALIZING THE METHOD (VERSIONS)

Область техники
Изобретение относится к средствам компьютерной безопасности, а более конкретно к средствам увеличения эффективности проведения антивирусной проверки файлов.
Уровень техники
Компьютерные вирусы, черви, трояны, руткиты и шпионские программы являются примерами вредоносных программ, от которых страдают компьютерные системы во всем мире. Несмотря на наличие технических различий между каждым типом вредоносной программы, в большинстве случаев их называют «вирусами». Вся совокупность вирусов направлена как на нанесение ущерба самому компьютеру, так и личным данным пользователей.
Одним из самых эффективных способов противодействия вредоносным программам является использование антивирусного программного обеспечения (антивируса). Антивирус - программный пакет, предназначенный для обнаружения и удаления с компьютера вредоносных программ, а также для устранения последствий присутствия вредоносных программ. Для обнаружения вредоносных приложений антивирусная программа производит полную или выборочную проверку файлов, присутствующих на локальных и сетевых устройствах хранения данных, например жестких дисках.
Типичный антивирус включает в себя механизм сканирования файлов и базу данных. База данных содержит по крайней мере антивирусные записи для идентификации известных вредоносных программ. Каждая антивирусная запись может быть представлена в указанной базе данных в виде сигнатуры (контрольная сумма участка кода), эвристического правила и т.п. Чтобы проверить файл на наличие вредоносного кода, механизм сканирования открывает файл и сравнивает его содержимое с антивирусными записями из базы данных. Также в настоящее время может использоваться не прямое сравнение антивирусных записей, а хеш-суммы проверяемых файлов. Хеш-сумма файла - является результат преобразования файла путем применения алгоритма хеширования с помощью определенной хеш-функции, например, MD5 или SHA1.
Одним из моментов проведения антивирусной проверки является проверка при попытке доступа к файлу (OAS, On-Access Scan), например, при его запуске или открытии. В этот момент производится перехват запуска файла с последующей антивирусной проверкой. В процессе проведения антивирусной проверки файла может производиться подсчет хеш-суммы файла и его сравнение с базой данных, при этом база данных может быть размещена как совместно с антивирусным приложением (в той же компьютерной системе), так и удаленно - на удаленном (сетевом) сервере. Хотя подсчет хеш-суммы и проведения по нему сравнения является эффективным решением, но тем не менее на подсчет хеш-сумммы и последующее сравнение все равно затрачивается время, в течении которого нет доступа к файлу. При этом чем больше файл, тем дольше время подсчета хеш-суммы файла и больше времени займет антивирусная проверка.
Одним из вариантов решения данной проблемы при проведении антивирусной проверки может являться использование технологии синхронной и асинхронной проверки файлов. В синхронном режиме при попытке доступа к файлу все действия со стороны других программ над файлом, который проверяется, заблокированы антивирусной программой до тех пор, пока проверка не закончится. Блокирование файлов также позволяет предупредить выполнение вредоносного кода из файла и вовремя изолировать вредоносный файл. Асинхронная проверка файлов целесообразна в тех случаях, когда при обращении к файлу угроза выполнения вредоносного кода минимальна, а в блокировании файлов нет необходимости. В асинхронном режиме при доступе к файлу блокирования не происходит, а сам файл проверяется параллельно с другими происходящими действиями над файлом (например, его исполнением). Однако современные технологии антивирусной проверки использующие технологии проверки файлов различными способами описывают преимущественно именно возможность проверки файлов тем или другим способом, но при этом вопрос принятия решения о выборе необходимого (оптимального) типа соответствующей проверки не учитывается.
Также еще одним недостаткам антивирусных систем является то, что при антивирусной проверки есть вероятность возникновения ошибок при работе. Ошибки делятся на так называемые ошибки первого рода (англ. false positives) и ошибки второго рода (англ. false negatives). Ошибки первого рода появляются в том случае, когда антивирусная система обнаруживает вредоносный объект, хотя на самом деле объект не представляет никакой угрозы. Ошибки второго рода в отношении антивирусных систем связаны с той ситуацией, когда при наличии вируса или другого вредоносного объекта антивирусная система его не обнаруживает. Другими словами, возникает ложное срабатывание системы. Для повышения качества работы антивирусной системы возникает необходимость в снижении вероятности появления ошибок первого и второго рода.
Поэтому существует потребность в создании решения по уменьшению времени проведения антивирусной проверки (в частности подсчета хеш-суммы файла) и оптимального выбора типа антивирусной проверки. Настоящее изобретение позволяет более эффективно решать задачу проверки файлов, используя механизма формирования «короткой» хеш-суммы файла с последующим выбором синхронного или асинхронного режима работы.
Раскрытие изобретения
В целях решения указанных недостатков известного уровня техники настоящее изобретение предлагает решение, позволяющее уменьшить время задержки запуска файла на компьютере из-за проведения антивирусной проверки, а именно, способ формирования запроса информации о файле при осуществлении антивирусной проверки и систему для реализации способа. Кроме того, указанное решении позволяет также уменьшить время задержки запуска файла в случае проведения проверки на ложные срабатывания во время указанной антивирусной проверки.
Технический результат настоящего изобретения заключается в уменьшении времени задержки запуска проверяемого файла во время антивирусной проверки путем подсчета короткой хеш-суммы файла с последующим выбором оптимального типа формирования запроса информации о файле на основании результата поиска короткой хеш-суммы, где выбор производится таким образом, чтобы обеспечить безопасность компьютера.
Другой технический результат заключается в повышении скорости проведения антивирусной проверки.
В качестве одного варианта исполнения настоящего изобретения предлагается способ формирования запроса информации о файле, при этом способ содержит этапы, на которых: производят синхронный выбор части файла и подсчет первой хеш-суммы файла от выбранной части файла на компьютере; производят синхронный поиск первой хеш-суммы в кэше вердиктов, который содержит информацию по крайней мере об известных вредоносных файлах; в зависимости от результата поиска производят выбор синхронного или асинхронного типа формирования запроса информации о файле и последующего поиска информации согласно указанному запросу, где при синхронном типе выполнение указанного файла остается приостановленным, а при асинхронном типе - исполнение файла возобновляется, и дальнейшая антивирусная проверка производится параллельно исполнению файла, причем: если первая хеш-сумма файла найдена в кэше вердиктов, то выбирается синхронный тип формирования запроса информации с последующей передачей в упомянутый кэш вердиктов, где упомянутое формирование заключается в подсчете второй хеш-суммы файла на основании целого файла; если первая хеш-сумма файла не найдена в кэше вердиктов, то выбирается асинхронный тип формирования запроса информации с последующей передачей на удаленный сервер, где формирование содержит подсчет второй хеш-суммы файла на основании целого файла.
В другом варианте исполнения способа кэш вердиктов расположен либо на том же компьютере, либо на удаленном сервере.
В еще одном варианте исполнения способа дополнительно сформированный запрос направляют на другой удаленный сервер, в случае отсутствия решения на указанном ранее удаленном сервере.
В другом варианте исполнения способа формирования запроса информации о файле осуществляют для проведения антивирусной проверки файла.
В еще одном варианте исполнения способа после формирования запроса информации о файле производят поиск решения для файла согласно сформированному запросу для окончания проведения антивирусной проверки.
В другом варианте исполнения способа определение части файла для подсчета первой хеш-суммы файла производят на основании типа файла, где каждому типу файла соответствует свой участок файла для создания хеш-суммы.
В еще одном варианте исполнения способа для подсчета первой хеш-суммы файла выбор части файла производят на основании определенного алгоритма.
В другом варианте исполнения способа для подсчета первой хеш-суммы файла производят выбор части файла таким образом, чтобы подобрать наиболее уникальную часть файлов определенного размера.
В еще одном варианте исполнения способа выбор наиболее уникальной части файла производится на основании метаданных файла.
В качестве другого варианта исполнения настоящего изобретения предлагается способ формирования запроса информации о файле, при этом способ содержит этапы, на которых: производят синхронный выбор части файла и подсчет первой хеш-суммы файла от выбранной части файла на компьютере; производят синхронный поиск первой хеш-суммы в кэше вердиктов, который содержит информацию как об известных вредоносных файлах, так и о безопасных файлах; в зависимости от результата поиска производят выбор синхронного или асинхронного типа формирования запроса информации о файле и последующего поиска информации согласно указанному запросу, где при синхронном типе выполнение файла остается приостановленным, а при асинхронном типе - исполнение файла возобновляется, и дальнейшая антивирусная проверка производится параллельно исполнению файла, причем: если первая хеш-сумма файла найдена в кэше вердиктов и относится к вредоносным файлам, то выбирается синхронный тип формирования запроса информации с последующей передачей в упомянутый кэш вердиктов, где упомянутое формирование заключается в подсчете второй хеш-суммы файла на основании целого файла, если первая хеш-функция файла найдена в кэше вердиктов и относится к безопасным файлам, то выбирается асинхронный тип формирования запроса информации с последующей передачей в упомянутый кэш вердиктов, где формирование содержит подсчет второй хеш-суммы файла, если первая хеш-сумма файла не найдена в кэше вердиктов, то выбирается асинхронный тип формирования запроса информации с последующей передачей на удаленный сервер, где формирование содержит подсчет второй хеш-суммы файла на основании целого файла.
В другом варианте исполнения способа кэш вердиктов расположен либо на том же компьютере клиента, либо на удаленном сервере.
В еще одном варианте исполнения способа формирования запроса информации о файле осуществляют для проведения антивирусной проверки файла.
В другом варианте исполнения способа после формирования запроса информации о файле производят поиск решения для файла согласно сформированному запросу для окончания проведения антивирусной проверки.
В еще одном варианте исполнения способа подсчет первой хеш-суммы файла производится на основании типа файла, где каждому типу файла соответствует свой участок файла для создания хеш-суммы.
В другом варианте исполнения способа для подсчета первой хеш-суммы файла производится подбор части файла таким образом, чтобы подобрать наиболее уникальную часть файлов определенного размера.
В еще одном варианте исполнения способа подбор наиболее уникальной части файла производится на основании метаданных файла.
В другом варианте исполнения способа для подсчета первой хеш-суммы файла подбор части файла производят на основании определенного алгоритма.
В качестве еще одного варианта исполнения предлагается система, включающая постоянный машиночитаемый носитель, хранящий машиночитаемые инструкции, при выполнении которых система выполняет формирование запроса информации о файле для осуществления антивирусной проверки файла, согласно указанных выше вариантам реализации способов.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
На Фиг. 1 схематично представлена система, выполненная с возможностью реализовать различные варианты осуществления настоящего изобретения.
Фиг. 2 схематично иллюстрирует пример состава антивирусного агента в соответствии с вариантом осуществления настоящего изобретения.
На Фиг. 3 показана блок-схема, схематично иллюстрирующая способ формирование запроса информации о файле во время антивирусной проверки файла.
На Фиг. 4 показана блок-схема, схематично иллюстрирующая способ формирования запроса информации о файле для проверки отсутствия ложного решения.
Фиг. 5 иллюстрирует пример компьютерной системы общего назначения, на котором может быть реализовано заявленное изобретение.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.
На Фиг. 1 представлена система 100, выполненная с возможностью реализовать различные варианты осуществления настоящего изобретения. В одном из вариантов осуществления система 100 позволяет управлять формированием запросов информации о файле во время антивирусной проверки файла наиболее подходящим способом. Под запрашиваемой информацией по крайней мере понимаются сведения о вредоносности или безопасности проверяемого файла. В одном из примеров реализации указанные сведения представляют из себя метку, указывающую на те или иные сведения. Также информация, например, может содержать сведения о виде вредоносного файла, методах лечения, хеш-суммы файла и т.д. Таким образом система 100 позволяет оптимизировать работу антивирусных приложений путем снижения времени задержки файла при антивирусной проверке, перед его исполнением на компьютере.
Система 100 включает в себя по крайней мере один компьютер 110а. В общем случае реализации компьютером является компьютерная система, описанная на Фиг. 5. При реализации компьютера могут пониматься как персональные компьютеры, такие как настольные компьютеры, ноутбуки и нетбуки, так и электронные устройства с беспроводной связью, например, мобильные телефоны, смартфоны и планшеты. На Фиг. 1 компьютеры 110а, 110б и 110в реализованы в виде персональных компьютеров. Стоит отметить, что при дальнейшем упоминании одного из компьютеров аналогичная работа может производиться и на других компьютерах. Кроме случаев, когда специально указывается, что речь идет о конкретном варианте реализации.
Компьютер 110а включает в себя различное программное обеспечение, такое как: аппаратное, программное и/или системное. В одном из вариантов реализации компьютер 110а содержит по меньшей мере антивирусное приложение (не показано). В общем случае целью антивирусного приложения является обнаружения вредоносных файлов и противодействие атакам на данные пользователей, хранящиеся на компьютере 110а, через, например, вредоносные файлы. Антивирусное приложение и его компоненты реализуются в виде программного обеспечения, при этом указанная реализация никак конкретно не ограничена. Примером антивирусного приложения является приложение «Kaspersky Total Security» компании АО «Лаборатория Касперского». В одном из вариантов реализации антивирусное приложение может быть реализовано в виде антивирусного агента, отличительной чертой от антивирусного приложения которого является ограничения в составе компонентов защиты, при этом, как правило, антивирусный агент взаимодействует с удаленными системами безопасности, которые обладают более полным набором компонентов защиты и анализа. Таким образом, за счет антивирусного агента оптимизируется нагрузка на различные элементы компьютера, такие как носитель информации, процессор, память и прочее.
В одном из вариантов реализации со ссылкой на Фиг. 2, антивирусный агент 210 включает в себя по крайней мере такие компоненты как: средство мониторинга 230 и кэш вердиктов 250. Средство мониторинга 230 позволяет отслеживать запуск и исполнение файлов на компьютере 110а, производить перехват и остановку запуска файла до окончания антивирусной проверки файлов, а также и саму антивирусную проверку (в зависимости от реализации агента 210). В общем случае под файлом имеется виду исполняемый файл. Кэш вердиктов 250 антивирусного агента 210 предназначен для хранения информации, необходимой для исполнения предназначения антивирусным агентом. Примером хранимой информации служит информация о вредоносных и безопасных объектах, в частности, файлах. Хранимая информация в кэше вердиктов может быть актуализирована как с течением времени с некой периодичностью, так и по запросу. Информация в кэше вердиктов хранится и предоставляется (например, средству мониторинга 230) в предпочтительном виде для выполнения предназначений компонентов антивирусного агента, например в виде хеш-сумм (хешей) файлов. При этом кэш вердиктов 250 не содержит информацию о коротких хеш-суммах безопасных файлов, только о полных хеш-суммах. В тоже время антивирусный агент 210 может содержать и другие компоненты антивирусного приложения. Наличие того или иного компонента зависит от конкретной реализации антивирусного агента. При этом компоненты и их задачи могут быть различными. Примерами задач компонентов антивирусного агента являются следующие: антивирусная проверка файлов, хранящиеся на компьютере клиента, по требованию (on demand scanning); антивирусная проверка по доступу (on access scanning); защита от атак из сети; поведенческое детектирование; мониторинг системных событий; поиск системных аномалий; аналитические компоненты; экспертная оценка и т.д.
Антивирусный агент 210 имеет возможность взаимодействовать с другими компьютерами 110б и 110в и внешними серверами, например, сервером безопасности 130 и информационным сервером 160, т.е. с другими различными электронными устройствами. Взаимодействие компьютера 110а производится через различные сети. В зависимости от варианта осуществления настоящего изобретения сеть может быть, как глобальной сетью 150, например, информационно-коммуникационной сетью «Интернет», так и локальной сетью, например, сетью 140. Также сеть может характеризоваться как корпоративная, частная и т.п. Кроме того, связь через указанные сети будет осуществляться в зависимости от возможностей самих электронных устройств. Так, например, если компьютер клиента представляет собой беспроводное устройство связи (например, смартфон), то связь производится через беспроводную сеть. Примерами беспроводных сетей являются такие, как сети 3G, сети 4G, сети Wireless Fidelity (WiFi), Bluetooth и т.п. В тех случаях, когда компьютер представляет собой портативный компьютер, связи могут осуществляться как по беспроводным сетям, так и проводным (соединение на основе сети Ethernet).
В некоторых вариантах реализации антивирусный агент 210 будет взаимодействовать с сервером безопасности 130, размещенном в локальной сети 140, и/или с информационным сервером 160 через глобальную сеть 150. Оба сервера могут быть реализованы одним из вариантов компьютерной системы, представленной на Фиг. 5. В некоторых вариантах реализации сервер безопасности 130 представляет собой сервер, на котором используется приложение «Kaspersky Security Center», содержащее базу данных 120, а информационный сервер 160 представляет собой базу данных, используемую в рамках инфраструктуры Kaspersky Security Network. Kaspersky Security Network (KSN) - это сервис, предоставляющий доступ к базе знаний компании АО «Лаборатории Касперского» о репутации файлов, интернет-ресурсов и программного обеспечения и другой информации. Также один или оба сервера могут представлять собой любое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления серверы 130 и 160 представлены как одиночные серверы. В других вариантах осуществления настоящего изобретения функциональность серверов 130 и 160 может быть разделена и выполняться с помощью нескольких серверов.
В некоторых вариантах реализации функциональность антивирусного агента 210 для осуществления антивирусной проверки файла на компьютере 110а позволяет выполнять по меньшей мере одно из следующего: i) перехватывать открытие файла, например во время его запуска на компьютере, и приостанавливать таким образом выполнение исполняемого файла; ii) производить синхронный подсчет первой хеш-суммы файла на компьютере клиента; iii) производить синхронный поиск первой хеш-суммы в кэше вердиктов, который содержит хеш-суммы и решения по крайней мере об известных вредоносных файлах; iv) в зависимости от результата поиска производить выбор синхронного или асинхронного типа формирования запроса информации о файле и последующем поиске информации согласно запросу, где при синхронном типе выполнение файла остается приостановленным, а при асинхронном типе - запуск файла возобновляется, при этом упомянутое формирование заключается в подсчете второй хеш-функции файла; v) производить поиск решения (вердикта) для файла согласно сформированному запросу для окончания проведения антивирусной проверки; vi) выносить решение относительно проверяемого файла о вредоносности или безопасности. Антивирусный агент 210 также может иметь возможность выполнять проверку отсутствия ошибок первого и второго рода при вынесении решения о вредоносности или безопасности проверяемого файла, в частности об отсутствии ложного решения при определении файла как безопасного.
Работа антивирусного агента 210 для осуществления антивирусной проверки файла на компьютере клиента 110а с возможностью уменьшения времени задержки файла будет подробно описана далее.
Для целей настоящего описания предполагается, что на компьютере 110а осуществляется запуск процесса из исполняемого файла. В этом случае антивирусный агент 210 для проведения антивирусной проверки указанного файла производит перехват файла и таким образом приостанавливает исполнение файла. В зависимости от реализации изобретения выполнение указанной задачи может быть осуществлено как с помощью самого антивирусного агента 210, так и с помощью встроенных в него компонентов, например как упоминалось выше, с помощью средства мониторинга 230.
Далее антивирусный агент 210 производит антивирусную проверку файла, попытка доступа к которому была перехвачена. В зависимости от реализации для проведения антивирусной проверки антивирусный агент 210 проводит либо самостоятельно анализ файла на наличие вредоносного программного кода, либо использует для этого удаленный сервер, например, удаленный сервер безопасности 130, либо использует оба варианта анализа, при этом разделяя этапы анализа файла. Также антивирусный агент 210 во время проведения антивирусной проверки производит выбор оптимального типа проверки во время анализа файла с точки зрения его блокировки, а именно, на разных этапах анализа антивирусный агент 210 производит анализ и выбор между синхронным и асинхронным режимом проверки (формирования запросов информации о файле). Синхронный режим проверки указывает на удержании файла во время проведения антивирусной проверки, т.е. файл не исполняется. Асинхронный режим проверки указывает на запуск файла для дальнейшего исполнения, а сама антивирусная проверка продолжается параллельно исполнению файла. Выбор соответствующего типа проверки производится на основании подсчета хеш-сумм и их поиска в кэше вердиктов 250 с дальнейшим принятием решения.
Стоит отметить, что вне зависимости от реализации изобретения антивирусный агент 210 содержит кэш вердиктов 250. В одном из вариантов реализации кэш вердиктов 250 представляет собой базу данных, которая содержит информацию о файлах в виде хеш-сумм, при этом хеш-суммы имеют по крайней мер два вида: короткая хеш-сумма файла и полная хеш-сумма файла. Кэш вердиктов может также быть и частью другой базы данных, а также дополнительно содержать по крайней мере решения о вредоносности или безопасности файлов, которым соответствуют полные хеш-суммы файлов. В другом варианте реализации кэш вердиктов представляет собой область памяти, содержащую список хеш-сумм файлов и решений (вердиктов) по соответствующим файлам. Кроме того, кэш вердиктов может быть реализован как локально, так и удаленно (например, располагаться на сервере безопасности 130 в базе данных 120). В случае удаленного расположения предпочтительно, но необязательно, чтоб взаимодействие проводилось по проводной линии связи и сервер находился в одной сети с компьютером пользователя, на котором установлен антивирусный агент 210.
Короткая хеш-сумма файла или первая хеш-сумма файла рассчитывается только от какой-либо части или частей файла. Преимуществом такой хеш-суммы является уменьшение времени ее расчета по сравнению с хеш-суммой от целого файла, причем чем больше размер файла, тем существеннее это преимущество. Полная хеш-сумма файла или вторая хеш-сумма рассчитываются от всего файла. Преимуществом же такой хеш-суммы является минимальная вероятность коллизии (т.е. совпадение хеш-сумм у двух разных файлов), что позволяет с большой вероятностью точно определить наличие какого-либо решения о файле в базе данных или кэше вердиктов. В свою очередь короткая хеш-сумма файла может соответствовать нескольким файлам одновременно, что требует уточнения в дальнейшем анализе с целью устранения возможной коллизии. В одном из вариантов реализации методика выбора (определения) части файла для подсчета кроткой хеш-суммы файла формируется опытным путем. В зависимости от реализации изобретения выбор части файла для хеширования может быть сделан также на основании заранее определенного алгоритма. Например, выбор части файла может быть основан на типе файла и для каждого типа файла определен свой участок файла для создание первой хеш-суммы. В частности, для различных типов файлов будут подобраны различные уникальные части файлов определенного размера. Или же, например, методика выбора части файла для хеширования учитывает различные данные о файле (метаданные файла), которые позволяют подобрать наиболее уникальную часть файла для хеширования (подсчета первой хеш-суммы). Примерами метаданных файлов для подбора являются такие данные как размер, тип, имя, дата создания и редактирования, информация о создателе/владельце, значения полей заголовка (если предусмотрено форматом файла) и другие.
В общем случае осуществления антивирусный агент 210 после перехвата запуска процесса файла производит синхронный подсчет первой хеш-суммы файла на компьютере и производит его синхронный поиск в кэш вердиктов. В предпочтительном варианте кэш вердиктов размещен совместно с антивирусным агентом на одном компьютере. В зависимости от полученного результата поиска антивирусный агент 210 производит выбор дальнейшего анализа/оценки файла, а именно, производит выбор синхронного или асинхронного режима работы. В том случае, если первая хеш-функция была найдена в кэше вердиктов, то анализ файла продолжается в синхронном режиме, во время которого формируется второй запрос о файле к кэшу вердиктов 250. Формирование второго запроса включает синхронный подсчет второй хеш-суммы и ее передачу в кэш вердиктов 250. Далее производится синхронный поиск в кэше вердиктов. В противном случае, если первая хеш-сумма не найдена в кэше вердиктов, то выбирается асинхронный тип дальнейшей проверки, вовремя которого возобновляется исполнение/запуск процесса проверяемого файла и производится подсчет второй хеш-суммы файла с передачей в кэш вердиктов. После получения ответа из кэша вердиктов антивирусный агент 210 выносит решения о вредоносности файла на основании полученного ответа.
Кроме того, в одном из вариантов реализации, если на основании запроса в кэш вердиктов 250 по первой хеш-сумме файла было определено, что файл относится к безопасным файлам, то дальнейший подсчет второй хеш-суммы и запрос к кэшу вердиктов 250 и/или в удаленную базу данных 120 производится на основании асинхронного типа работы антивирусного агента 210 с целью исключения возможного вынесения ложного решения, т.е. ложного срабатывания антивирусного агента 210 при вынесении вердикта о файле как безопасном.
Стоит отметить, при выявлении первой хеш-суммы в кэше вердиктов, вторая хеш-сумма передается в этот же кэш вердиктов. В случае, когда первая хеш-сумма не найдена, то вторая хеш-сумма соответствующего файла направляется на удаленный сервер (сервер безопасности или информационный сервер) для исключения указанного ложного срабатывания, если кэш вердиктов содержит только информацию о вредоносных файлах.
В другом варианте осуществления кэш вердиктов размещен в базе данных 120 сервера безопасности 130 в локальной сети 140. В этом случае антивирусный агент производит взаимодействия аналогично варианту, описанному ранее, а именно, подсчет первой хеш-суммы файла и ее передачи в кэш вердиктов производится в синхронном виде, а формирование запроса информации о файле, во время которого производится подсчет второй хеш-суммы, с последующей передачей в кэш вердиктов производится на основании полученного ответа от кэша вердиктов по первой хеш-сумме. Так, если первая хеш-сумма не найдена в кэше вердиктов или найдена, но относится к безопасному типу файлов или совокупности безопасных файлов, то производится асинхронный подсчет второй хеш-суммы и дальнейшая асинхронная работа, а именно, передача, поиск и вынесение решения по проверяемому файлу. В противном случае, если первая хеш-сумма найдена, антивирусный агент 210 производит работу в синхронном режиме. Стоит отметить, что под совокупностью безопасных файлов понимаются по крайней мере два файла, у которых первая хеш-сумма идентичная.
В еще одном варианте осуществления изобретения антивирусный агент 210 после перехвата файла производит локальную антивирусную проверку файла, например, с помощью локальной базы данных 250. В случае, если файл определен как безопасный, то производится проверка на ложное срабатывание вынесенного решения. Для этого антивирусный агент 210 производит синхронный подсчет и поиск первой хеш-суммы файла в локальном кэше вердиктов, при этом локальный кэш вердиктов содержит первые хеш-суммы файлов только вредоносных файлов. Если первая хеш-сумма выявлена в локальном кэше вердиктов, то антивирусный агент 250 в синхронном режиме формирует вторую хеш-сумма файла и производит ее поиск в локальном кэше вердиктов. Если вторая хэш-сумма файла не выявлена в локальном кэше вердиктов, то антивирусный агент 250 возобновляет работа файла и осуществляет дополнительную проверку в асинхронном режиме, отправляя запрос информации о файле, содержащий вторую хеш-сумму файла, на удаленный сервер, например, сервер безопасности 130. После получения ответа из удаленного сервера, антивирусный агент 250 выносит повторное решение. Если полученный ответ подтверждает первое решение, то работа антивирусного агента 250 заканчивается с файлом. Если ответ содержит информацию опровергающую вынесенное решение, а именно то, что файл является вредоносным, то работу файла останавливают и проводят действия, связанные с лечением или удалением файла.
В другом варианте реализации антивирусный агент 210 производит проверку на ложное срабатывание после вынесения решения по файлу, при этом не важно, использовался ли ранее подсчет хеш-сумм или нет. В том случае, когда файл был определен как вредоносный, то дальнейший подсчет полной хеш-суммы файла и запрос на удаленный сервер 130 производится синхронно. В противном случае, когда файл определен как безопасный, то подсчет полной хеш-суммы и формирования запроса на удаленный сервер 130 производится асинхронно. После получения ответа антивирусный агент 210 либо заканчивает работу с проверяемым файлом, либо производит корректировку вынесенного решения, в зависимости от полученного ответа.
На Фиг. 3 показана блок-схема, схематично иллюстрирующая способ формирование запроса информации о файле во время антивирусной проверки файла в соответствии с вариантом осуществления настоящего изобретения. Представленный способ реализуется с помощью системы, описанной на Фиг. 1.
На этапе 305 во время запуска исполняемого файла на компьютере пользователя (например, таком как компьютер 110а на Фиг. 1) производится его перехват с целью проведения антивирусной проверки. В этом момент блокируется запуск создаваемого процесса из файла и дальнейшей выполнение файла будет произведено по окончании антивирусной проверки или после получения соответствующего указания на запуск файла от антивирусной системы. На этапе 310 производится синхронный подсчет первой хеш-суммы файла, при этом первая хеш-сумма подсчитывается только от части файла. Стоит отметить, что механизм подсчета первой хеш-суммы может быть реализован на основании современного уровня техники в наиболее предпочтительном варианте. Например, в одном из вариантов подсчета будет сформирован механизм подсчета, который содержит критерии выбора наиболее предпочтительной части файла для формирования первой хеш-суммы. Примерами критериев выбора являются такие данные как тип файл, размер файла и другие метаданные. Таким образом, для подсчета первой хеш-суммы выбор части файла основан на анализе метаданных файла с помощью критериев, позволяющих определить наиболее предпочтительную (уникальную) часть файла.
После формирования первой хеш-суммы на этапе 315 производится ее поиск в кэше вердиктов. В одном из вариантов осуществления способа кэш вердиктов является частью локальной базы данных, которая содержит кроме кэша вердиктов решения как о вредоносных файлах, так и доверенных файлах. Кэш вердиктов содержит по крайней мере информацию о короткой хеш-сумме (первой хеш-сумме) и целой хеш-сумме (второй хеш-сумме) файлов.
На этапе 320 определяется найдена ли первая хеш-сумма в кэше вердиктов. В том случае, если первая хеш-сумма обнаружена, на этапе 330 определяют относится ли файл (первая хеш-сумма) к вредоносным файлам. Если относится, то далее осуществляется переход к этапу 335, на котором производят синхронный подсчет второй хеш-суммы от файла. Стоит отметить, что подсчет второй хеш-суммы файла производится от целого файла. После того как вторая хеш-сумма сформирована, производят синхронный ее поиск в кэш вердиктов и при необходимости в базе данных 120 удаленного сервера безопасности 130. Согласно результатам поиска по второй хеш-сумме, на этапе 380 антивирусный агент 210 принимает окончательное решение о вредоносности файла.
В противном случае, если первая хеш-сумма, не относится к вредоносным файлам, то дальнейшие действие производится на этапе 350. Также, если на этапе 320 первая хеш-сумма файла не найдена в кэше вердиктов, производится переход на этап 350. На этапе 350 антивирусный агент разрешает запуск процесса файла на компьютере предоставляя доступ к файлу. Далее, на этапе 360, производится асинхронное формирование запроса информации о файле, во время которого подсчитывается вторая хеш-сумма. На этапе 370 производят асинхронный поиск информации о файле в базе данных 250 сервера безопасности 130 согласно второй хеш-сумме файла. На этапе 380 применяют результаты поиска для вынесения окончательного решения о вредоносности или безопасности файла.
В частном случае реализации изобретения этап 330 может быть исключен. В этом случае, кэш вердиктов будет содержать, либо только информацию о вредоносных файлах, либо первые хеш-суммы только для вредоносных файлов. Поэтому выявление первой хеш-суммы в кэше вердиктов говорит о том, что файл может относится к вредоносным файлам и, следовательно, из этапа 320 переходят к этапу 335.
На Фиг. 4 показана блок-схема, схематично иллюстрирующая способ формирования запроса информации о файле для проведения антивирусной проверки файла с исключением вынесения ложного решения в соответствии с вариантом осуществления настоящего изобретения. Представленный способ реализуется с помощью системы, описанной на Фиг. 1.
На этапе 405 производят перехват запускаемого исполняемого файла на компьютере клиента 110а с помощью антивирусного агента. Далее антивирусный агент производит проверку файла на наличие вредоносного кода. Для этого на этапе 410 формируется первая хеш-сумма от части файла, при этом используется синхронный тип проверки. Варианты формирования первой хеш-суммы были представлены при описании Фиг. 1. На этапе 415 антивирусный агент обращается к кэшу вердиктов, в котором, предположим, в данном варианте реализации содержится информация только о файлах, содержащих вредоносный код, т.е. о вредоносных файлах. На этапе 420 производится поиск сформированной первой хеш-суммы файла в кэше вердиктов. В том случае, если первая хеш-сумма найдена, антивирусный агент 210 производит переход к этапу 430. В противном случае, если первая хеш-сумма не найдена, то производит переход к этапу 450.
На этапе 430 остается синхронный тип проверки, во время которого антивирусный агент формирует вторую хеш-сумму файла от всего файла и передает/обращается в кэш вердиктов. На этапе 440 производится поиск второй хеш-суммы в кэше вердиктов. После чего на этапе 480 на основании результата поиска второй хеш-суммы антивирусный агент выносит окончательное решение о вредоносности файла. Так, если вторая хеш-сумма обнаружена в кэше вердиктов, то файл определяется вредоносным. После чего, может быть произведено удаление файла, либо его лечение, либо запрос к пользователю о дальнейших действиях с файлом. В противном случае, если вторая хеш-сумма не найдена, то файл определяется как безопасный. Далее производится предоставление доступа к файлу.
На этапе 450 предоставляется доступ к файлу для исполнения на компьютере. После чего антивирусный агент на этапе 460 асинхронно производит формирование запроса информации о файле для передачи на удаленный сервер для дальнейшего анализа. Во время формирования запроса производится подсчет второй хеш-суммы от всего файла.
Дополнительно на этапе 465 антивирусный агент перед передачей запроса на сервер может произвести проверку файла локальной базой данных (при ее наличии у антивирусного агента), которая содержит информацию о вредоносных и безопасных файлах. Такая поверка будет произведена также с помощью второй хеш-суммы на этапе 467. В случае отсутствия решения в локальной базе данных, запрос будет отправлен на удаленный сервер на этапе 470. В противном случае, если решение будет найдено, то антивирусный агент примет одно из следующих решений:
- если локальная база данных позволяет определить хеш-сумму, как хеш-сумма вредоносного файла, то антивирусный агент на этапе 469 произведет остановку файла и направит запрос на удаленный сервер для исключения ложного срабатывания при вынесении указанного решения, при этом далее будет использован синхронный тип проверки;
- если локальная база данных позволяет определить хеш-сумму, как хеш-сумма безопасного файла, то антивирусный агент заканчивает работу с файлом.
Далее на этапе 470 асинхронно производят передачу на удаленный сервер и ожидают ответа от удаленного сервера результатов поиска/анализа по второй хеш-сумме файла. После получения ответа на запрос, на этапе 480 применяют результаты поиска для вынесения окончательного решения о вредоносности файла.
Стоит отметить, что дополнительно, после определения на этапе 480 файла безопасным асинхронно может быть произведена проверка на ложное срабатывание при вынесении такого решения. Наиболее важно провести такую проверку, когда первая хеш-сумма файла была найдена в указанном кэше вердиктов и вторая хеш-сумма файла уже нет. Проверка на ложное срабатывание заключается в том, что антивирусный агент производит запрос на удаленный сервер, при этом запрос содержит вторую хеш-сумму. После получения ответа антивирусный агент принимает окончательное решение по файлу на основании информации, содержащейся в ответе: либо оставляет предыдущее решение в силе, либо изменяет его с вытекающими из этого последствиями (например, производит блокирование файла). Также дополнительно может быть произведена и проверка на ложное срабатывание, когда файл определен вредоносным. В этом случае проверка продолжается синхронным типом, т.е. файл будет заблокирован по крайней мере до окончания такой проверки.
В зависимости от реализации, решение будет заключаться либо в определении файла как вредоносного или безопасного, либо в исключении ранее принятого ложного решения.
Фиг. 5 представляет пример компьютерной системы 20 общего назначения, которая может быть использована как компьютер клиента (например, персональный компьютер) или сервер, представленные на Фиг. 1. Компьютерная система 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, представленного на Фиг. 1. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях компьютерная система (персональный компьютер) 20 подключена к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.