Способ выборочного повторного антивирусного сканирования файлов на мобильном устройстве
METHOD FOR SELECTIVE REPEATED ANTIVIRUS SCANNING OF FILES ON MOBILE DEVICE

Область техники
Настоящее изобретение относится к антивирусным технологиям, а более конкретно к способам избирательного проведения повторных антивирусных проверок архивных файлов на мобильном устройстве.
Уровень техники
В настоящий момент мобильные устройства - смартфоны, планшеты и т.п. - стали обязательным атрибутом практически каждого человека. При помощи таких устройств люди выполняют множество повседневных задач: от общения по электронной почте до оплаты покупок в магазинах. Широкое распространение таких устройств мотивирует злоумышленников создавать вредоносные программы - программы, предназначенные для неправомерного доступа к данным пользователя, а также к ресурсам мобильных устройств в целом.
На данный момент для борьбы с вредоносными программами широко используются антивирусы - программы, предназначенные для защиты вычислительных устройств от вредоносных программ. Для обеспечения такой защиты применяются различные подходы и технологии: сигнатурный анализ, поведенческий анализ, эвристические правила и т.д. Проведение полного антивирусного сканирования мобильного устройства - ресурсоемкая операция. Регулярные полные антивирусные сканирования приводят к быстрому разряду аккумулятора мобильного устройства, что в свою очередь негативно влияет на восприятие антивирусных продуктов их пользователями. На Android-устройствах, в силу специфики данной ОС, большую часть проверяемых файлов составляют архивы в ZIP-формате. Их распаковка и проверка вложенных в них объектов занимает подавляющую часть от общего времени сканирования. Таким образом существует необходимость развития антивирусных технологий для оптимизации расходования ресурсов при проведении повторных антивирусных сканирований на мобильном устройстве. Использование предлагаемой технологии позволяет сократить как время повторных сканирований архивных файлов, так и общий расход электроэнергии на Android-устройствах.
Раскрытие изобретения
Настоящее изобретение предназначено для избирательного проведения повторной антивирусной проверки файлов.
Технический результат настоящего изобретения заключается в снижении расхода ресурсов мобильного устройства при проведении повторных антивирусных проверок файлов.
Еще одним техническим результатом является расширение арсенала средств для проведения повторных антивирусных проверок файлов.
В одном из вариантов осуществления данного изобретения реализуется способ частичного сброса результатов предыдущей антивирусной проверки файлов, где файлы без информации о проведенной антивирусной проверке, содержащейся в базе данных, вновь подвергаются антивирусной проверке, реализуемый при помощи вычислительного устройства, согласно которому: (а) хранят локальную базу данных для файлов, где каждая запись добавляется в базу данных, когда соответствующий файл признается не вредоносным в результате антивирусной проверки, и содержит информацию, идентифицирующую файл, и информацию о проведенной антивирусной проверке, которая включает в себя по меньшей мере дату проведения антивирусной проверки файла; (б) устанавливают порог сброса записей; (в) после обновления антивирусных баз проводят оценку вероятности сброса результатов предыдущей антивирусной проверки для каждой записи из базы данных; при этом оценка тем выше, чем больше времени прошло с упомянутой даты проведения антивирусной проверки соответствующего файла, и чем большее количество обновлений антивирусных баз произошло с упомянутой даты проведения антивирусной проверки соответствующего файла; (г) удаляют из базы данных те записи, для которых упомянутая оценка вероятности сброса превышает установленный порог сброса записей.
В другом варианте осуществления данного изобретения вычислительное устройство является мобильным устройством.
Еще в одном варианте осуществления данного изобретения файл является архивным файлом.
В другом варианте осуществления данного изобретения, где информацией, идентифицирующей файл, является первая хеш-сумма файла и вторая хеш-сумма файла.
В другом варианте осуществления данного изобретения первая хеш-сумма считается от части содержимого файла.
Еще в одном варианте осуществления данного изобретения вторая хеш-сумма считается по всему содержимому файла.
В другом варианте осуществления данного изобретения время вычисления первой хеш-суммы файла меньше времени вычисления второй хеш-суммы файла.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 иллюстрирует структуру архивного файла на примере APK-файла.
Фиг. 2 отображает систему средств, реализующую настоящее изобретение.
Фиг. 3 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления на Android-устройствах. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться на любых вычислительных устройствах с отличными от Android операционными системами. Сущность, приведенная в описании, является не чем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Хеширование (от англ. hashing) - преобразование массива входных данных произвольной длины в (выходную) битовую строку установленной длины, выполняемое определенным алгоритмом.
Хеш-функция (или функция свертки) - функция, воплощающая алгоритм хеширования и выполняющая преобразование.
Хеш-код (или хеш-сумма, свертка) - результат хеширования. Хеш-код, как правило, записывается в шестнадцатеричном виде. Таким образом для некоторого заданного файла значением хеш-функции MD5 будет строка из 32 шестнадцатеричных цифр - например, 026f8e459c8f89ef75fa7a78265a0025. Для хеш-функции CRC32 хеш-код будет F6DE2FEA, а для SHA-1 - 7DD987F846400079F4B03C058365A4869047B4A0.
Вредоносное приложение - приложение, способное нанести вред компьютеру или данным пользователя компьютера (иными словами, компьютерной системы, например, изображенной на Фиг. 3), например: сетевой червь, клавиатурный шпион, компьютерный вирус. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.
Доверенное приложение (не вредоносное приложение) - приложение, которое не наносит вреда компьютеру или его пользователю. Доверенным приложением может считаться приложение, разработанное доверенным производителем ПО (программного обеспечения), загруженное из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или приложение, идентификатор (или другие данные, по которым можно однозначно определить приложение) которого (например, хеш-сумма файла приложения) хранится в базе данных доверенных приложений. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных приложений.
Недоверенное приложение (неизвестное приложение) - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи антивирусного приложения. При этом недоверенное приложение может впоследствии быть признано вредоносным, например, при помощи антивирусной проверки.
Вредоносный файл - файл, являющийся компонентом вредоносного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Недоверенный файл (неизвестный файл) - файл, являющийся компонентом недоверенного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Доверенный файл (не вредоносный файл) - файл, являющийся компонентом доверенного приложения.
Архивный файл - это специальным образом организованный файл, содержащий в себе один или несколько файлов в сжатом или несжатом виде и служебную информацию об именах файлов, дате и времени их создания или модификации, размерах и т.д.
На Фиг. 1 изображена структура архивного APK-файла для ОС Android. Дистрибутивы для ОС Android поставляются в виде архивных исполняемых APK-файлов (англ. Android Package). Каждое приложение Android скомпилировано и упаковано в один файл, который включает в себя весь код приложения (DEX-файлы), ресурсы и файл .manifest, а также CERT.RSA - сертификат, которым подписано приложение, и CERT.SF -файл-информацию о ресурсах и сертификате. Файлы формата APK не шифруются, являются подмножеством формата архива ZIP. Каждый APK-файл - это сжатый архив для исполнения виртуальной машиной (например, DalvikVM), которая может быть установлена не только на операционной системе Android. Каждый ZIP-архив 110 (а, следовательно, и APK-файл) содержит так называемый «центральный каталог» 120 (central directory), который находится в конце архива для обеспечения возможности добавления новых файлов в архив. Этот каталог содержит список записей 125 (имен файлов и каталогов), входящих в архив, а также заголовки о записях. Каждый заголовок внутри центрального каталога содержит:
- размер после сжатия;
- размер до сжатия;
- длину имени файла;
- размер дополнительных данных о файле;
- размер комментария к файлу;
- номер диска, с которого файл начинается;
- относительное смещение до локального заголовка файла (количество байт от начала диска, на котором файл начинается, до локального заголовка к файлу);
- имя файла;
- дополнительные данные о файле;
- комментарий к файлу.
Центральный каталог заканчивается записью об окончании 126 (EOCD record), которая содержит:
- номер текущего диска;
- номер диска, с которого начинается центральный каталог;
- количество записей в центральном каталоге на этом диске;
- общее количество записей в центральном каталоге;
- размер центрального каталога;
- смещение до центрального каталога относительно начала архива;
- размер комментария;
- комментарий;
Таким образом, после чтения и анализа центрального каталога можно получить доступ непосредственно к сжатым данным любой записи 140 (сжатым файлам), хранящейся в центральном каталоге, по смещению, описанному в заголовке.
Данные записи также начинаются с локального заголовка файла 141. Локальный заголовок файла частично включает в себя информацию, которая содержится в центральном каталоге, а именно:
- размер после сжатия;
- размер до сжатия;
- длину имени файла;
- размер дополнительных данных о файле;
- имя файла;
- дополнительные данные о файле.
Сжатые данные файла 142 начинаются непосредственно после заголовка. Данные записей внутри архива могут храниться в порядке, отличном от их последовательности внутри центрального каталога.
Для ускорения повторных антивирусных сканирований архивных файлов в рамках заявленного изобретения используется пара «длинный» -«короткий» хеш-коды, которые сохраняются в локальной базе данных вместе с информацией о ранее проведенной антивирусной проверке.
«Коротким» (или первой хеш-суммой) называется хеш-код, который считается только от части архивного файла (например, от всего центрального каталога 120 или какой-либо его части), в том числе при подсчете «короткого» хеш-кода может дополнительно использоваться метаинформация об архивном файле 110, такая как например: время создания/доступа/модификации архивного файла 110, сертификат, проверочные хеш-коды для вложенных объектов 140 и т.п.
«Длинным» (или второй хеш-суммой) называется хеш-код, который считается по всему содержимому архивного файла 110. Время его подсчета значительно (для больших архивных файлов на порядки) превосходит время подсчета «короткого» хеш-кода.
В одном из вариантов осуществления заявленного изобретения ключевым отличием первой хеш-суммы от второй хеш-суммы является время вычисления хеш-сумм. При этом обе хеш-суммы могут быть вычислены по содержимому всего архивного файла 100 (или от его частей, как одинаковых, так и разных), а выигрыш во времени вычисления может достигаться за счет использования разных алгоритмов хеширования (например, для первой хеш-суммы может использоваться алгоритм хеширования CRC, а для второй - MD5).
На Фиг. 2 приведен частный вариант системы средств, позволяющих реализовать способ проведения повторной антивирусной проверки архивного файла 110 (далее по тексту файла 110) в рамках заявленного изобретения. В общем случае система, предназначенная для реализации заявленного изобретения, включает в себя вычислительное устройство (например, компьютер общего назначения, который изображен на Фиг. 3, или частный вариант компьютера общего назначения - мобильное устройство 200), содержащее: по меньшей мере, один процессор; средство сетевого доступа, взаимодействующее, по меньшей мере, с одним процессором; и носитель информации, содержащий операционную систему (например, ОС Android), а также множество инструкций, при исполнении которых по меньшей мере на одном процессоре реализуется способ проведения повторной антивирусной проверки файла 110.
В частном варианте система, предназначенная для реализации способа проведения повторной антивирусной проверки файла 110, включает в себя: мобильное устройство 200, содержащее средство безопасности 210, базу данных 220 и антивирусные базы 230, и облачные сервисы 240.
Облачные сервисы 240 включают в себя: оперативно обновляемые базы знаний о репутации файлов (например, KSN от англ. Kaspersky Security Network), базы вредоносных файлов (так называемые «черные списки») и базы доверенных файлов («белые списки»). Облачные сервисы 240 позволяют средству безопасности 210 по хеш-коду файла 110 получать один из следующих вердиктов: вредоносный файл, не вредоносный файл (если файл 110 является доверенным файлом) и неизвестный файл.
В одном из вариантов реализации данного изобретения средство безопасности 210 является приложением безопасности (например, антивирусным приложением), установленным на операционную систему мобильного устройства 200. Средство безопасности предназначено для осуществления антивирусной проверки файла 110.
Антивирусная проверка файла 110 включает в себя комплекс мероприятий безопасности, направленных на определение, является ли файл 110 вредоносным файлом. В одном из вариантов реализации данного изобретения антивирусная проверка файла 110 включает в себя запрос вердикта для файла 110 от облачных сервисов 240 и антивирусное сканирование файла 110. В одном из вариантов реализации данного изобретения запрос вердикта осуществляется путем отправки при помощи средства безопасности 210 «длинного» хеш-кода файла 110 в облачные сервисы 240. Антивирусное сканирование файла 110 включает в себя по меньшей мере два широко известных из уровня техники метода анализа содержимого файла 110: сигнатурного анализа файла 110 и эвристического анализа файла 110. Сигнатурный анализ заключается в поиске соответствий какого-либо участка кода анализируемого приложения или его компонент известному коду (сигнатуре) из базы данных сигнатур вредоносных приложений и их компонент. Эвристический анализ включает в себя эмуляцию работы анализируемых приложений и их компонент, создание журналов эмуляции (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемых приложений и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных поведенческих сигнатур вредоносных приложений и их компонент.
Антивирусные базы 230 содержат регулярно обновляемые базы данных сигнатур вредоносных приложений и их компонент, используемых средством безопасности 210 для проведения упомянутого сигнатурного анализа, а также базы данных поведенческих сигнатур вредоносных приложений и их компонент, используемых средством безопасности 210 для проведения упомянутого эвристического анализа. В одном из вариантов реализации данного изобретения антивирусные базы 230 содержат информацию о дате каждого обновления.
База данных 220 предназначена для хранения информации полученной от средства безопасности 210. База состоит из записей, каждая из которых добавляется в базу данных, когда соответствующий файл (например, файл 110) признается не вредоносным в результате антивирусной проверки, и содержит информацию, идентифицирующую файл (пара «длинный» - «короткий» хеш-коды), а также информацию о проведенной антивирусной проверке, которая включает в себя по меньшей мере дату проведения антивирусной проверки файла и вердикт по файлу, полученный от облачных сервисов 240. Так как время вычисления «короткого» хеш-кода файла меньше времени вычисления «длинного» хеш-кода файла, то «короткий» хеш-код используется средством безопасности 210 для быстрого доступа к информации из базы данных 220, а «длинный» хеш-код файла используется средством безопасности 210 при проведении антивирусной проверки.
Даты обновления антивирусных баз и даты проведения антивирусной проверки файлов являются временными метками, содержащими информацию о времени наступления упомянутых событий с точностью, необходимой для реализации заявленного изобретения.
Описанные выше варианты системы (общий и частный варианты) позволяют осуществить в рамках заявленного изобретения следующие способы, которые подробно будут описаны далее: способ проведения повторной антивирусной проверки файла и способ частичного сброса результатов предыдущей антивирусной проверки файлов.
Способ проведения повторной антивирусной проверки файла 101, реализуемый при помощи систем, описанных выше, включает в себя этапы, на которых:
хранят на мобильном устройстве 200 локальную базу данных 220, где каждая запись добавляется в базу данных 220, когда соответствующий файл (файл 110) признается не вредоносным в результате антивирусной проверки при помощи средства 210, и содержит первую хеш-сумму файла 110, вторую хеш-сумму файла 110 и информацию о проведенной антивирусной проверке, которая включает в себя по меньшей мере дату проведения антивирусной проверки файла и вердикт от облачных сервисов 240;
вычисляют первую хеш-сумму файла 110 и находят (выявляют или извлекают, или определяют) в упомянутой базе вторую хеш-сумму файла 110 и информацию о проведенной антивирусной проверке, соответствующие первой хеш-сумме файла 110;
используя вторую хеш-сумму файла 110, запрашивают вердикт для файла 110 от облачных сервисов 240; и
проводят при помощи средства безопасности 210 антивирусное сканирование файла 110 всегда кроме случая, если полученный вердикт не изменился (в сравнении с вердиктом, содержащимся в информации о проведенной антивирусной проверке, полученной записи, соответствующей файлу 110), и с даты проведения антивирусной проверки не произошло ни одного обновления антивирусных баз (проверяется средством безопасности 210 путем сравнения упомянутой даты антивирусной проверки файла 110 с датой последнего обновления антивирусных баз 230).
Способ частичного сброса результатов предыдущей антивирусной проверки файлов, где файлы без информации о проведенной средством безопасности 210 антивирусной проверке, содержащейся в базе данных 220, вновь подвергаются антивирусной проверке при помощи средства безопасности 210, включает в себя этапы, на которых:
хранят на мобильном устройстве 200 локальную базу данных 220, где каждая запись добавляется в базу данных 220, когда соответствующий файл признается не вредоносным в результате антивирусной проверки при помощи средства 210, и содержит информацию, идентифицирующую файл, и информацию о проведенной антивирусной проверке, которая включает в себя по меньшей мере дату проведения антивирусной проверки файла;
устанавливают при помощи средства безопасности 210 порог сброса записей (или получают при помощи средства безопасности 210 удаленно установленный порог, например, вычисленный в соответствии с определенным профилем пользователя);
после обновления антивирусных баз 230 при помощи средства безопасности 210 проводят оценку вероятности сброса результатов предыдущей антивирусной проверки для каждой записи из базы данных 220; при этом упомянутая оценка тем выше, чем больше времени прошло с упомянутой даты проведения антивирусной проверки соответствующего файла, и чем большее количество обновлений антивирусных баз произошло с упомянутой даты проведения антивирусной проверки соответствующего файла (вычисляется средством безопасности 210 по информации из антивирусных баз 230 о датах всех обновлений);
удаляют при помощи средства безопасности 210 из базы данных 220 те записи, для которых упомянутая оценка вероятности сброса превышает установленный порог сброса записей.
В одном из вариантов реализации заявленного изобретения порогом является некоторое числовое значение, например, от 0 до 100. Чем ниже пороговое значение, тем больше записей из базы данных 220 будет удалено, после проведения средством безопасности 210 упомянутой оценки вероятности сброса результатов предыдущих антивирусных проверок. Порог может динамически изменяться средством безопасности 210. В другом варианте реализации данного изобретения порог может быть определен удаленно и передан средству безопасности 210.
Фиг. 3 представляет пример компьютерной системы (или вычислительного устройства) общего назначения, персональный компьютер, мобильное устройство или сервер 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, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.