СИСТЕМА И СПОСОБ ПРОВЕРКИ ФАЙЛОВ НА ДОВЕРЕННОСТЬ
SYSTEM AND METHOD OF VERIFYING TRUSTED FILES

Область техники
Данное изобретение относится к системам проверки файлов на доверенность при антивирусной проверке и, более конкретно, к системам, применяющим кэширование списка доверенных файлов для уменьшения времени проверки.
Уровень техники
С развитием компьютерной техники еще более стремительными темпами увеличивается количество различного программного обеспечения (далее - ПО), используемого пользователями. Помимо безопасного ПО, которое выполняет правомерные действия и функции, например, почтовый клиент, графический редактор, и т.д., также существует вредоносное ПО, которое препятствует корректной работе или наносит вред безопасному ПО. Вредоносное ПО включает в себя различные вирусы, троянские программы, черви и т.д. Такое вредоносное ПО производит заражение компьютеров пользователей, что приводит к неправильной работе данных компьютеров и безопасного ПО, установленного на данных компьютерах. Например, возможна блокировка доступа к папкам, кража конфиденциальных данных пользователя, захват управления данных компьютеров для дальнейшего нанесения вредоносных действий непосредственно данным компьютерам либо другим компьютерам, находящимся в одной сети с ними.
В этой связи постоянно развиваются и совершенствуются средства антивирусной защиты. Существует множество различных программ и способов проведения проверок файлов на наличие вредоносного ПО на диске компьютера. Одним из таких способов проверки файлов является проверка по требованию пользователя. Во время данной проверки антивирус проверяет файлы с помощью различных способов, таких как проверка по сигнатурным базам, поведенческий анализ и т.д. В настоящее время главными недостатками проверки по требованию, т.е. «on demand scanning» (далее - ODS проверка), являются долгое время самой проверки файлов на диске и большая нагрузка на диск при проверке.
Существует много различных способов оптимизации проверки файлов, например, основанные на использовании так называемых «белых списков» (whitelist) и «черных списков» (blacklist) или основанные на отслеживании факта модификации файла, например, через временные метки.
Так, в заявке US 1009083852 A1 описано изобретение, в котором для оптимизации ODS проверки данных система передает структуру данных (например, каталог значений хеш-сумм файлов) на сервер белых и черных списков и при этом указывает время последней успешной связи с сервером (т.е. последнюю успешную проверку данных). Сервер с белыми и черными списками проверяет только новые или измененные данные после последней успешной связи. После чего система получает информацию по отправленным данным, которые являются новыми или измененными данными, и определяет, являются данные доверенными или вредоносными. При таком подходе проверки данных описанному изобретению необходимо постоянно делать запросы на сервер по проверяемым данным.
Второй приведенный вариант оптимизации проверки описан в патенте US 7591019 В1, в котором система при проверке файла запоминает контрольную сумму файла, и эта информация сохраняется в специальную таблицу. При последующей проверке файла сверяется предыдущая контрольная сумма с текущей суммой. В том случае, если контрольная сумма не была изменена, то файл не проверяется. Если контрольная сумма была изменена, то это означает, что файл был изменен и должен быть проверен повторно на наличие вредоносного кода. Особенностью данного изобретения является предварительное накопление контрольных сумм и периодическая проверка файлов, т.к. при долгом отсутствии проверки возможно изменение большого числа файлов, что приведет к их длительной проверке. Также можно отметить, что накопление контрольных сумм файла происходит во время самой проверки и контрольная сумма файла будет добавлена в таблицу при условии, что файл с данной сумой будет предварительно проверен.
Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяет получить новый результат, а именно систему для уменьшения времени антивирусной проверки файлов на диске с помощью предварительной проверки файлов на доверенность и кэширования списка доверенных файлов.
Сущность изобретения
Настоящее изобретение предназначено для оптимизации проверки файлов на диске на их доверенность при антивирусной проверке. Оптимизация проверки файлов на доверенность достигается за счет уменьшения времени самой проверки.
Технический результат данного изобретения заключается в оптимизации (уменьшение времени) антивирусной проверки файлов на диске, который достигается за счет исключения из данной проверки файлов, чьи идентификаторы находятся в кэше данных.
Система пополнения списка доверенных файлов в кэше данных, которая включает в себя: а) кэш данных, предназначенный для хранения списка идентификаторов доверенных файлов и предоставления указанного списка модулю анализа файлов; б) информационный сервис, предназначенный для определения принадлежности файла к доверенным ключевым файлам с помощью полученного идентификатора указанного файла от модуля анализа файлов и, если файл является доверенным ключевым файлом, передачи пакета идентификаторов доверенных файлов, связанных с данным доверенным ключевым файлом, в модуль анализа файлов; в) модуль анализа файлов, предназначенный для:
- поиска среди файлов файловой системы тех файлов, идентификаторы которых отсутствуют в указанном списке кэша данных,
- передачи, по меньшей мере, одного идентификатора файла из найденных файлов в информационный сервис,
- добавления пакетов идентификаторов доверенных файлов, полученных от информационного сервиса в ответ на переданный идентификатор, в список идентификаторов доверенных файлов, хранящийся в кэше данных.
В частном варианте реализации система также содержит антивирусный сканер, который взаимодействует с кэшем данных и предназначен для антивирусной проверки файлов файловой системы, во время которой обнаруживает и передает файлы, идентификаторы которых отсутствуют в указанном списке кэша данных, модулю анализа файлов.
В другом частном варианте реализации системы модуль анализа файлов является антивирусным сканером и предназначен для антивирусной проверки файлов файловой системы, во время которой использует список доверенных файлов, хранящейся в кэше данных.
Еще в одном частном варианте реализации системы в качестве идентификатора файла, по меньшей мере, является сам файл, значение хеш-суммы файла, метаданные файла, идентификаторы, присваиваемые файловой системой каждому файлу, или совокупности данных сущностей.
В другом частном варианте реализации системы в качестве идентификатора, присваиваемого файловой системой, по меньшей мере, является NTFS-идентификатор для файловой системы NTFS.
Еще в одном частном варианте реализации системы модуль анализа файлов производит поиск ключевых файлов в файловой системе, идентификаторы которых отсутствуют в списке идентификаторов доверенных файлов кэша данных, и передачу идентификаторов найденных ключевых файлов в информационный сервис.
В другом частном варианте реализации системы модуль анализа файлов производит проверку соответствия списка идентификаторов доверенных файлов, хранящегося в кэше данных, и идентификаторов файлов файловой системы.
Еще в одном частном варианте реализации системы в случае отсутствия идентификатора файла среди идентификаторов файлов файловой системы данный идентификатор будет удален из списка идентификаторов доверенных файлов.
В другом частном варианте реализации системы перед добавлением пакета идентификаторов доверенных файлов в список идентификаторов доверенных файлов модуль анализа файлов производит проверку идентификаторов из указанного пакета на их наличие среди идентификаторов файлов файловой системы.
Еще в одном частном варианте реализации системы идентификатор из пакета идентификаторов доверенных файлов не будет добавлен в список идентификаторов доверенных файлов в случае отсутствия указанного идентификатора среди идентификаторов файлов файловой системы.
В другом частном варианте реализации системы во время установки программного обеспечения на диск модуль анализа файлов определяет ключевой файл из указанного устанавливаемого программного обеспечения, идентификатор которого не содержится в списке идентификаторов доверенных файлов кэша данных, и передает идентификатор найденного ключевого файла в информационный сервис.
Еще в одном частном варианте реализации системы модуль анализа файлов проводит поиск файлов, идентификаторы которых отсутствуют в списке идентификаторов доверенных файлов кэша данных, среди файлов файловой системы:
- в фоновом режиме;
- во время проверки файлов;
- во время установки нового программного обеспечения.
В другом частном варианте реализации системы доверенным файлом является безопасный файл, который известен информационному сервису.
Еще в одном частном варианте реализации системы ключевым файлом является файл программного обеспечения, с помощью которого идентифицируются файлы, принадлежащие данному программному обеспечению.
В другом частном варианте реализации системы ключевым файлом, по меньшей мере, является хотя бы один из следующих типов файлов: исполняемый файл, установочный файл и архивный файл.
Еще в одном частном варианте реализации системы ключевым файлом является файл с одним из следующих имен: «setup» и «autorun».
В другом частном варианте реализации системы ключевым файлом является файл, подписанный электронной цифровой подписью производителя программного обеспечения.
Еще в одном частном варианте реализации системы ключевым файлом является файл, содержащий лицензионное соглашение производителя программного обеспечения.
В другом частном варианте реализации системы информационный сервис может находиться как на компьютере пользователя, так и на удаленном сервере.
Еще в одном частном варианте реализации системы информационный сервис, в случае если файл не является доверенным ключевым файлом, но является доверенным файлом, то передает только идентификатор указанного файла модулю анализа файлов.
В другом частном варианте реализации системы информационный сервис, в случае если идентификатор файла не является идентификатором доверенного ключевого файла, но является идентификатором доверенного файла, то формирует пакет идентификаторов доверенных ключевых фалов, с которыми связан указанный идентификатор доверенного файла и направляет указанный пакет в модуль анализа файлов; модуль анализа файлов проводит поиск идентификаторов файлов из полученного пакета идентификаторов доверенных ключевых файлов в файловой системе; и если модуль анализа файлов найден, по крайне мере, один из указанных идентификаторов, то модуль анализа файлов запрашивает пакет идентификаторов доверенных файлов, связанных с найденным идентификатором, у информационного сервиса для последующего добавления данного пакета в список идентификаторов доверенных файлов, хранящейся в кэше данных.
Способ пополнения списка доверенных файлов в кэше данных, содержащий этапы, на которых: а) получают файл для проверки, б) сравнивают идентификатор полученного файла с идентификаторами, содержащимися в списке идентификаторов доверенных файлов, в) проверяют, является ли идентификатор полученного файла идентификатором доверенного ключевого файла, если идентификатор полученного файла не содержится в списке идентификаторов доверенных файлов, г) формируют пакет идентификаторов доверенных файлов, связанных с идентификатором полученного файла, если идентификатор полученного файла был определен как идентификатор доверенного ключевого файла, д) добавляют сформированный пакет идентификаторов доверенных файлов в список идентификаторов доверенных файлов.
В частном варианте реализации способа заканчивают дальнейшую проверку полученного файла, если идентификатор полученного файла содержится в списке идентификаторов доверенных файлов.
В другом частном варианте реализации способа проверяют, является ли идентификатор полученного файла идентификатором доверенного файла, если указанный идентификатор не был определен как идентификатор доверенного ключевого файла.
Еще в одном частном варианте реализации способа добавляют идентификатор полученного файла в список идентификаторов доверенных файлов, если указанный идентификатор был определен как идентификатор доверенного файла.
В другом частном варианте реализации способа в качестве идентификатора файла, по меньшей мере, является сам файл, значение хеш-суммы файла, метаданные файла, идентификаторы, присваиваемые файловой системой каждому файлу, или совокупности данных сущностей.
Еще в одном частном варианте реализации способа в качестве идентификатора, присваиваемого файловой системой, по меньшей мере, является NTFS-идентификатор для файловой системы NTFS.
В другом частном варианте реализации способа доверенным файлом является безопасный файл и содержится в «белых списках» антивирусных компаний.
Еще в одном частном варианте реализации способа ключевым файлом является файл программного обеспечения, с помощью которого идентифицируются файлы, принадлежащие данному программному обеспечению.
В другом частном варианте реализации способа ключевым файлом, по меньшей мере, являются один из следующих типов файлов: исполняемый файл, установочный файл и архивный файл.
Еще в одном частном варианте реализации способа ключевыми файлами являются файлы с именами: «setup» и «autorun».
В другом частном варианте реализации способа ключевым файлом является файл, подписанный электронной цифровой подписью производителя программного обеспечения.
Еще в одном частном варианте реализации способа ключевым файлом является файл, содержащий лицензионное соглашение производителя программного обеспечения.
Краткое описание прилагаемых чертежей
Сопровождающие чертежи, которые включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием, служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами, на которых:
Фиг.1 представляет схему использования файловой системы при антивирусной проверке.
Фиг.2 иллюстрирует схему системы оптимизации антивирусной проверки файлов на диске.
Фиг.3 иллюстрирует способ, с помощью которого можно реализовать систему оптимизации антивирусной проверки файлов на диске.
Фиг.4 иллюстрирует схему частного варианта работы модуля анализа файлов и системы проверки файлов на доверенность.
На Фиг.5 показана компьютерная система, для которой может быть использовано описанное изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
На Фиг.1 представлена схема использования файловой системы при антивирусной проверке. В файловой системе находятся различные файлы, например, исполняемые файлы, системные файлы, текстовые файлы и т.д. Все файлы для заявленного изобретения разделяются на следующие типы файлов:
а) 101 - доверенные файлы, т.е. это файлы, которые являются безопасными файлами и известными файлами для заявленной системы, т.е. файлы, которые содержатся в «белых списках» антивирусных компаний;
б) 102 - неизвестные файлы, т.е. это файлы, которые неизвестны заявленной системе (т.е. файлы, которые не содержаться в списке доверенных файлов) и при этом могут быть как безопасными, так и вредоносными файлами;
в) 103 - доверенные ключевые файлы, т.е. это файлы, которые были выявлены из доверенных файлов 101. При этом ключевым файлом может быть файл, который можно быстро идентифицировать на ПК пользователя и по которому можно идентифицировать другие файлы ПО или всего пакета ПО. Как правило, ключевой файл будет размещен совместно с файлами, которые может идентифицировать, например, в одном корневом каталоге. Наиболее вероятно, что ключевым файлом будет являться какой-либо исполняемый файл ([имя файла].ехе), установочный файл ([имя файла].msi), архивный файл ([имя файла].rar). Еще одним примером ключевых файлов могут являться файлы с наиболее характерными именами, например, setup, autorun. Также ключевым файлом является любой постоянный (неизменчивый) файл из пакета файлов, например, файл, содержащий лицензионное соглашение производителя ПО или электронную цифровую подпись производителя ПО.
г) 104 - неизвестные доверенные ключевые файлы (далее - неизвестные ключевые файлы), т.е. это файлы являются файлами 103, но только неизвестны заявленному изобретению.
В одном из вариантов реализации заявленное изобретение при взаимодействии с файлами будет формировать значения хеш-сумм файлов, а дальнейший анализ будет происходить со сформированными значениями указанных хеш-сумм.
В частном случае заявленное изобретение может анализировать файл по метаданным файла. Метаданными файла является информация о файле, которая позволяет идентифицировать данный файл, например, имя файла, размер файла, формат файла, версия файла и т.д. Также возможен анализ по совокупности нескольких типов метаданных.
Фиг.2 иллюстрирует схему системы оптимизации антивирусной проверки файлов на диске.
В рамках данной схемы рассматривается частный вариант реализации системы оптимизации антивирусной проверки. Однако представленное изобретение не ограничивается данным применением. Также данная система оптимизации подходит и для проверки файлов на доверенность при применении других технологий, например, OAS (on access scanning -проверка по доступу), HIPS (Host-based Intrusion Prevention System - система предотвращения вторжений), WL (whitelisting - чистые списки).
Система оптимизации антивирусной проверки в одном из вариантов реализации состоит из следующих модулей:
кэша данных 230, который предназначен для хранения списка уникальных идентификаторов доверенных файлов и взаимодействует с модулем анализа файлов 240. В качестве уникального идентификатора файла и, следовательно, в качестве списка уникальных идентификаторов, может быть использована любая информация, с помощью которой можно точно идентифицировать данный файл, например, сам файл, значение хеш-суммы файла, метаданные файла, идентификаторы, присваиваемые самой файловой системой каждому файлу, например, NTFS-идентификаторы. Далее будет описан частный вариант, в котором в качестве уникального идентификатора будет использоваться значение хеш-суммы (далее - хеш) файла, и, следовательно, список хешей доверенных файлов;
информационного сервиса 220, который анализирует уникальные идентификаторы (далее - хеши) файлов на их доверенность (безопасность) и принадлежность к ключевым файлам, проводит поиск хешей доверенных файлов 101, связанных с хешом доверенного ключевого файла 103, формирует пакеты хешей доверенных файлов 225 и предоставляет данные пакеты хешей доверенных файлов 225 модулю анализа файлов 240;
модуля анализа файлов 240, который анализирует файлы, представленные в файловой системе 100, производит необходимые запросы по анализируемым файлам 102 и 104 в информационный сервис 220 и пополняет кэш данных 230 новыми пакетами хешей доверенных файлов 225.
В частном случае реализации представленной системы возможно наличие антивирусного сканера 210, который управляет процессами проверки файлов из файловой системы 100 и направляет запросы по неизвестным файлам 102 и/или 104 к модулю анализа файлов 240, а также взаимодействует с кэшем данных 230.
В еще одном варианте реализации представленной системы можно объединить модуль анализа файлов 240 и антивирусный сканер 210 в единый модуль. В этом случае единый модуль будет исполнять функции модулей 210 и 240.
Далее рассмотрим вариант реализации при антивирусной проверке файлов.
Во время антивирусной проверки файлов, представленных в файловой системе 100 компьютера, запускается антивирусный сканер 210. Во время работы антивирусный сканер 210 направляет запрос о наличии информации по проверяемым файлам в кэш данных 230. Кэш данных 230, содержащий список хешей доверенных файлов, отвечает по запрашиваемым файлам, согласно данному списку, антивирусному сканеру 210. Перед запросом по проверяемым файлам в кэш данных 230 антивирусный сканер 210 формирует хеши всех проверяемых файлов. Затем антивирусный сканер 210 сравнивает полученные хеши проверяемых файлов с информацией (т.е. с хешами) из списка хешей доверенных файлов, который был предоставлен кэшем данных 230. Формирование хешей проверяемых файлов и их сравнивание возможно как по очереди, так и всех сразу.
В том случае, если хеш проверяемого файла совпал с каким-либо хешом из списка хешей доверенных файлов, то проверяемый файл является доверенным файлом 101 и не подвергается дальнейшей проверке. В том случае, если хеш проверяемого файла не был найден в списке хешей доверенных файлов, то данный файл является неизвестным файлом 102. Антивирусный сканер 210 блокирует выполнение данного неизвестного файла 102 до окончания проверки и вынесения решения по данному файлу 102. Затем антивирусный сканер 210 направляет запрос на анализ этого неизвестного файла 102 к модулю анализа файлов 240. В качестве запроса от антивирусного сканера 210 может отправляться не сам неизвестный файл 102, а уникальный идентификатор неизвестного файла 102, например, хеш файла.
В частном случае антивирусный сканер 210 может проверять файлы в файловой системе 100 по любым идентификаторам файла, например, метаданным файла, идентификаторам, присвоенным самой файловой системой каждому файлу, например, NTFS-идентификаторы. В этом случае кэш данных 230 должен также хранить списки идентификаторов файлов, по которым проводится проверка файлов.
В частном случае антивирусный сканер 210 при запросе по проверяемым файлам в кэш данных 230 может не формировать хеш запрашиваемых файлов. В этом случае антивирусный сканер 210 будет сравнивать данные файлы с помощью проверки данных файлов с другим списком доверенных файлов, который также хранится в кэше данных. Примером такого списка доверенных файлов может являться список NTFS-идентификаторов доверенных файлов для файловой системы NTFS. В этом случае антивирусный сканер 210 будет сравнивать NTFS-идентификаторы проверяемых файлов с NTFS-идентификаторами из списка NTFS-идентификаторов доверенных файлов. В случае, когда NTFS-идентификаторы проверяемых файлов оказались в данном списке, проверяемые файлы пропускаются во время дальнейшей проверки. В случае, когда проверяемые файлы не оказались в данном списке, то направляется запрос на анализ данных файлов в информационный сервис 220. Список NTFS-идентификаторов доверенных файлов может наполняться, например, во время наполнения списка хешей доверенных фалов, т.е. когда новые хеши доверенных файлов попадут в список хешей доверенных фалов, то NTFS-идентификаторы данных доверенных файлов будут добавлены в список NTFS-идентификаторов доверенных файлов. Список доверенных файлов наполняется согласно способу, описанному на Фиг.4.
В данном варианте реализации модуль анализа файлов 240 при получении запроса по неизвестному файлу 102 обрабатывает данный запрос и формирует запрос по указанному неизвестному файлу 102 к информационному сервису 220. Информационный сервис 220 проверяет данный неизвестный файл 102 на его безопасность, например, наличие данного файла 102 в базе «белых списков», которая используется информационным сервисом 220. В том случае, если неизвестный файл 102 отсутствовал в базе «белых списков», то информационный сервис 220 прекращает анализ данного неизвестного файла 102 и отвечает модулю анализа файлов 240, что данный неизвестный файл 102 отсутствует в базе «белых списков». Тогда модуль анализа файлов 240 отвечает антивирусному сканеру 210 о том, что данный неизвестный файл 102 был не определен и является потенциально опасным. В этом случае антивирусный сканер 210 начинает проверку данного неизвестного файла 102 всеми доступными ему средствами, например, поиск по сигнатурным базам, эвристический анализ, поведенческий анализ и т.д.
В частном случае информационный сервис 220, кроме ответа модулю анализа файлов 240 об отсутствии в базе «белых списках» неизвестного файла 102, может сделать ответный запрос по данному неизвестному файлу 102 для последующего самостоятельного анализа данного файла 102. В виде запроса информационный сервис 220 задает модулю анализа файлов 240 ряд вопросов для последующего анализа, например, откуда был получен файл, когда файл был установлен и т.д. Еще одним способом анализа данного неизвестного файла 102 является проверка по базе «черных списков», которая также является инструментом информационного сервиса 220. Также в качестве способов анализа не безопасного неизвестного файла 102 информационный сервис 220 может применить технологии, описанные в патентах на полезную модель RU 91203 G06F 21/00 и RU 101224 G06F 15/00.
В том случае, когда неизвестный файл 102 является безопасным файлом, т.е. находится в базе «белых списков», то данный файл 102 становится доверенным файлом 101, а информационный сервис 220 проводит анализ данного доверенного файла 101. При анализе данного доверенного файла 101 информационный сервис 220 выявляет, является ли данный файл 101 доверенным ключевым файлом 103 или нет. Примером определения файла как доверенного ключевого файла является поиск по базе данных ключевых файлов, которая содержится в информационном сервисе 220.
Если информационный сервис 220 определил, что данный доверенный файл 101 является доверенным ключевым файлом 103, то информационный сервис 220 производит выборку всех доверенных файлов 101, связанных с данным доверенным ключевым файлом 103. Например, выборка всех доверенных файлов 101 производится с помощью базы данных связанных файлов, которая содержится в информационном сервисе 220. Затем информационный сервис 220 формирует пакет хешей 225 из всех найденных доверенных файлов 101 и передает данный пакет хешей 225 модулю анализа файлов 240. После получения пакета хешей доверенных файлов 225 модуль анализа данных 240 добавляет указанный пакет 225 в список хешей доверенных файлов, хранящийся в кэше данных 230. Кэш данных 230 хранит список хешей доверенных файлов для дальнейшего предоставления указанных хешей из данного списка для проверки файлов файловой системы на их доверенность, например, при антивирусной проверке.
Если доверенный файл 101 не является известным доверенным ключевым файлом 103, то в кэш данных 230 будет добавлен только хеш данного доверенного файла 101.
В частном случае, когда доверенный файл 101 не является доверенным ключевым файлом 103, информационный сервис 220 проводит поиск на принадлежность данного доверенного файла 101 к какому-либо доверенному ключевому файлу 103 или нескольким доверенным ключевым файлам 103. Если будет обнаружена принадлежность данного доверенного файла 101 к какому-либо одному или нескольким доверенным ключевым файлам 103, то информационный сервис 220 отправит запрос к модулю анализа файлов 240 с целью поиска данных обнаруженных доверенных ключевых файлов 103 в файловой системе 100. В предпочтительном варианте реализации запрос будет направлен во время передачи хеша данного доверенного файла 101 в список хешей доверенных файлов. При поиске доверенных ключевых файлов 103, которые были отправлены из информационного сервиса 220, модуль анализа файлов 240 может ограничить сам поиск, например, задав границы данного поиска каталогом, в котором находился неизвестный файл 102. В том случае, если модуль анализа файлов 240 найдет какой-либо доверенный ключевой файл 103 из запрашиваемых доверенных ключевых файлов 103 в файловой системе 100, то направит ответ в информационный сервис 220 в виде информации о найденном доверенном ключевом файле 103. В этом случае информационный сервис 220 будет искать доверенные файлы 101, связанные с данным доверенным ключевым файлом 103. В том случае, если не будет обнаружен ни один из предлагаемых доверенных ключевых файлов 103 в файловой системе 100, то модуль анализа файлов 240 сообщит информационному сервису 220 об отсутствии данных доверенных ключевых файлов 103 в файловой системе 100. Тогда информационный сервис 220 не будет искать доверенные файлы 101, связанные с данным доверенным ключевым файлом 103, а закончит работу с данными доверенными ключевыми файлами 103.
В частном случае в качестве ответа на запрос по неизвестному файлу 102 информационный сервис 220 может передавать только признак, например, выраженный в виде флага (отдельного бита). Данный признак будет информировать модуль анализа файлов 240, что запрашиваемый файл 102 является доверенным ключевым файлом 103, и сформирован пакет хешей доверенных файлов 225, связанных с данным доверенным ключевым файлом 103. В случае необходимости данного пакета 225 модуль анализа файлов 240 отправит повторный запрос в информационный сервис 220.
В предпочтительном варианте реализации система не имеет антивирусного сканера 210. В этом случае модуль анализа файлов 240 имеет следующий ряд функций: поиск неизвестных файлов 102 и 104 в файловой системе 100, формирование запросов по неизвестным файлам 102 и 104 к информационному сервису 220, анализ полученных пакетов хешей доверенных файлов 225 от информационного сервиса 220 и передача пакетов хешей доверенных файлов 225 в кэш данных 230. Также возможно объединение модулей 210 и 240 в единый модуль и в этом случае единый модуль будет выполнять функции обоих представленных модулей.
Модуль анализа файлов 240 при взаимодействии с информационным сервисом 220 делает запрос по неизвестному файлу 102 и получает ответ от информационного сервиса 220 в виде:
1) хеша доверенного файла 101, если неизвестный файл 102 является доверенным файлом 101,
2) пакета хешей доверенных файлов 225, связанных с данным неизвестным файлом 102, если неизвестный файл 102 является доверенным ключевым файлом 103,
3) только информации о самом неизвестном файле 102.
Ответ будет зависеть от того, каким является неизвестный файл 102 - доверенным файлом 101, доверенным ключевым файлом 103 или неизвестным файлом 102.
В частном случае модуль анализа файлов 240 предварительно может определить, является ли неизвестный файл 102, полученный от антивирусного сканера 210 или найденный самостоятельно, неизвестным ключевым файлом 104 или нет. В этом случае модуль анализа файлов 240 будет делать запросы к информационному сервису 220 только по неизвестным ключевым файлам 104. Тогда информационный сервис 220 будет определять, является ли данный неизвестный ключевой файл 104 доверенным ключевым файлом 103. В том случае, если запрашиваемый неизвестный ключевой файл 104 является доверенным ключевым файлом 103, то информационный сервис 220 будет искать все доверенные файлы 101, связанные с данным доверенным ключевым файлом 103, и формировать пакет хешей доверенных файлов 225. Сформированный пакет хешей доверенных файлов 225 информационный сервис 220 будет направлять в модуль анализа файлов 240, который в свою очередь указанный пакет 225 будет добавлять в список хешей доверенных файлов, хранящийся в кэше данных 230. В том случае, если запрашиваемый неизвестный ключевой файл 104 не является доверенным ключевым файлом 103, то информационный сервис 220 проинформирует об этом результате модуль анализа файлов 240 и закончит работу.
Также в одном из вариантов реализации модуль анализа файлов 240 после получения от информационного сервиса 220 пакета хешей доверенных файлов 225, проводит предварительный поиск каждого хеша файла из полученного пакета хешей доверенных файлов 225 на его наличие в файловой системе 100. Для этого модуль анализа файлов 240 формирует хеш каждого файла из файловой системы 100. В том случае, когда хеш файла из полученного пакета 225 был найден среди хешей файлов файловой системы 100, то данный хеш файла добавляется в список хешей доверенных файлов, находящейся в кэше данных 230. В том случае, когда хеш файла из полученного пакета 225 не был найден, то данный хеш не добавляется в список хешей доверенных файлов и удаляется.
В частном случае модуль анализа файлов 240 проводит поиск неизвестных ключевых файлов 104 в файловой системе 100 с целью предварительного наполнения кэша данных 230 доверенными файлами 101. В предпочтительном варианте реализации поиск проводится в фоновом режиме и когда антивирусный сканер 210 не работает и находится в режиме ожидания. В этом случае модуль анализа файлов 240 проводит поиск по файловой системе 100 на наличие установленного нового ПО. После определения ключевых файлов в новом ПО модуль анализа файлов 240 проверяет хеши найденных ключевых файлов в списке хешей доверенных файлов из кэша данных 230. Если хеши данных ключевых файлов уже находятся в списке хешей доверенных файлов, то модуль анализа файлов 240 пропускает их. Если хеши данных ключевых файлов отсутствуют в списке хешей доверенных файлов, то данные ключевые файлы являются неизвестными ключевыми файлами 104. После чего модуль анализа файлов 240 делает запрос, по крайне мере, по одному из найденных неизвестных ключевых файлов 104 в информационный сервис 220. Информационный сервис 220 исследует полученный хеш неизвестного ключевого файла 104. Если будет определено, что данный хеш принадлежит доверенному ключевому файлу 103, то будет сформирован пакет хешей доверенных файлов 225, связанный с запрашиваемым хешом. Затем данный пакет 225 будет передан в кэш данных 230, а именно в список хешей доверенных файлов. В том случае, если пакет хешей 225 был передан в модуль анализа файлов 240, то модуль 240 предварительно проверит хеши полученного пакета хешей доверенных файлов 225 на наличие файлов с данными хешами в файловой системе 100. В том случае, если были обнаружены данные хеши, то модуль анализа файлов 240 передает данные хеши в кэш данных 230. В том случае, если не были найдены данные хеши, то модуль анализа файлов 240 удаляет данные хеши из пакета хешей доверенных файлов 225.
В частном случае модуль анализа файлов 240 проводит проверку хешей полученного пакета хешей доверенных файлов 225 на наличие файлов с данными хешами не по всей файловой системе 100, а по наиболее вероятным местам их нахождения, например, C:/Program Files.
В одном из вариантов реализации модуль анализа файлов 240 выполняет функцию проверки актуальности списков хешей доверенных файлов в кэше данных 230, т.е. на наличие файлов с данными хешами в файловой системе 100, т.к. файлы могли быть удалены. Поиск файлов может проводиться как по всей файловой системе 100, так и только по пути (адресу), по которому файл был первоначально обнаружен.
В еще одном варианте реализации модуль анализа файлов 240 отслеживает операции с файлами (во время работы пользователя), например, установку ПО, изменение уже существующих файлов, удаление файлов и т.д., при этом модуль 240 ведет запись изменений в файловой системе. После того как пользователь закончил работу, модуль анализа файлов 240 проводит соответствующие изменения в кэше данных 230. Если изменения были произведены над существующими файлами, то данные файлы стали неизвестными файлами 102. В этом случае модуль 240 сделает запрос по данным файлам в информационный сервис 220 и согласно ответу исправит записи по данным файлам в кэше данных 230. Если ответ положительный, т.е. файлы являются доверенными файлами 101, то модуль 240 добавит хеши данных файлов 101 в кэш данных 230. Если ответ будет отрицательный, т.е. файлы являются неизвестными файлами 102, то модуль 240 передаст данные файлы 102 антивирусному сканеру 210 для последующего анализа. Если была произведена установка ПО, то модуль 240 выявит из данного ПО ключевые файлы 103 или 104 и проведет анализ файлов. Также возможен вариант, когда модуль 240 не будет дожидаться окончания работы пользователя, а параллельно будет работать с ним.
В одном из вариантов реализации модуль анализа файлов 240 не будет делать запросы в информационный сервис 240 по анализируемым файлам для получения пакета хешей доверенных файлов 225, а будет производить анализ самостоятельно. Данный анализ возможен при установке нового ПО на компьютер пользователя. Любое ПО состоит из одного или множества файлов, которые при установке ПО копируются на компьютер пользователя. Как правило, данное ПО предоставляется в сжатом (упакованном) виде, например, инсталлятора ПО. При этом данный инсталлятор ПО должен быть удостоверенным (подписанным) контейнером. Удостоверенным контейнером является контейнер, который подписан производителем ПО. Примером подписи производителя ПО может являться электронная цифровая подпись разработчика ПО. В этом случае модуль анализа файлов 240 отметит все файлы данного ПО как доверенные файлы 101 и хеши данных файлов направит в список хешей доверенных файлов, который находится в кэше данных 230. При данной реализации модуль 240 впоследствии должен будет проверить достоверность данной цифровой подписи. Модуль 240 может проверить достоверность данного ПО, в частности цифровой подписи, сделав запрос в информационный сервис 220, или самостоятельно определить подлинность данной цифровой подписи. В случае самоопределения подлинности модуль 240 может руководствоваться, например, списком достоверных цифровых подписей, который может храниться на компьютере пользователя.
В частном случае реализации антивирусный сканер 210 параллельно с проверкой неизвестных файлов 102 может сделать запрос на анализ неизвестных файлов 102 в информационный сервис 220 с целью проверки только данного файла 102 без анализа, является ли данный неизвестный файл 102 ключевым файлом. В этом случае информационный сервис 220 выдаст ответ только на запрашиваемый неизвестный файл 102.
Фиг.3 иллюстрирует способ, с помощью которого можно реализовать систему оптимизации антивирусной проверки файлов на диске.
Представленная система начинает работу во время проверки файлов программного обеспечения в файловой системе 100. На этапе 300 антивирусный сканер 210 начинает проверку файлов в файловой системе 100. На этапе 305 антивирусный сканер 210 начинает перебирать все файлы в файловой системе 100. Во время проверки на этапе 307 антивирусный сканер 210 формирует хеш каждого проверяемого файла. Сформированный хеш проверяемого файла сравнивается со списком хешей доверенных файлов, который хранится в кэше данных 230. Если на этапе 310 хеш проверяемого файла был найден в кэше данных 230, то проверяемый файл является доверенным файлом 101. Антивирусный сканер 210 на этапе 305 начинает анализ следующего файла. Если на этапе 310 хеш проверяемого файла не был найден в списке хешей доверенных файлов, то антивирусный сканер 210 устанавливает, что проверяемый файл является неизвестным файлом 102. На этапе 315 хеш неизвестного файла 102 с помощью модуля анализа файлов 240 передается в информационный сервис 220, при этом выполнение данного неизвестного файла 102 блокируется до того момента, пока не будет окончена проверка и вынесено решение по данному файлу 102. На этапе 320 информационный сервис 220 проверяет полученный хеш неизвестного файла 102 на его наличие в базе «белых списков». Если хеш неизвестного файла 102 не был найден, то анализ хеша неизвестного файла 102 прерывается и направляется уведомление в антивирусный сканер 210 через модуль анализа файлов 240 о том, что данный файл неизвестен информационному сервису 220. В свою очередь антивирусный сканер 210 на этапе 325 начинает проверять данный неизвестный файл 102 на безопасность другими средствами, например, эмулятором. После данной проверки антивирусный сканер 210 выносит решение по данному неизвестному файлу 102 и на этапе 305 переходит к проверке следующего файла. Если на этапе 320 хеш неизвестного файла 102 был найден в базе «белых списков» информационного сервиса 210, то файл становится доверенным файлом 101, и данный файл 101 передается на этап 330 для его последующего анализа. На этапе 330 определяется, является ли данный доверенный файл 101 для какого-либо пакета файлов доверенным ключевым файлом 103 или нет. Пакетом файлов является совокупность файлов, которые связаны с доверенным ключевым файлом 103.
Если доверенный файл 101 не является доверенным ключевым файлом 103, то данный файл передается на этап 335. На этапе 335 принимается решение информационным сервисом 220 о поиске доверенных ключевых файлов 103, с которыми может быть связан данный доверенный файл 101. Решение о данном поиске принимается согласно предварительным настройкам проверки файлов. При реализации представленной системы предварительная настройка возможна как в автоматическом режиме, так и с помощью пользователя. Также возможно заменить выбор предварительной настройки на одно из принимаемых решений. В этом случае данная система будет работать только по одному из решений в зависимости от реализованного решения.
Если было принято решение о поиске ключевых файлов 103, то данный файл 101 обрабатывается на этапе 340. На этапе 340 проводится поиск всех известных ключевых файлов 103, которые могут быть связаны с данным доверенным файлом 101. На этапе 345 в антивирусный сканер 210 передается информация о том, что запрашиваемый неизвестный файл 102 является доверенным фалом 101. В том случае, когда были найдены доверенные ключевые файлы 103, связанные с запрашиваемым файлом, то передаются хеши данных доверенных ключевых файлов 103 для последующего поиска данных ключевых файлов 103 в файловой системе 100. На этапе 350 антивирусный сканер 210 проводит поиск найденных доверенных ключевых файлов 103. В разных вариантах реализации возможен различный выбор поиска, например, поиск по всей файловой системе 100, или поиск только по каталогу, в котором находится запрашиваемый доверенный файл 101, или поиск доверенных ключевых файлов 103 в наиболее возможных местах их расположения, например, C:/Program Files и т.д.
Если на этапе 350 переданные хеши известных ключевых файлов 103 не были найдены, то на этапе 355 добавляется в список хешей доверенных файлов в кэше данных 230 только хеш проверенного файла 101. Если какой-либо хеш из переданных хешей доверенных ключевых файлов 103 был найден в файловой системе 100, то данный хеш передается на этап 360 для дальнейшей работы с данным хешом доверенного ключевого файла 103.
Если на этапе 335 антивирусный сканер 210 принял решение не проводить поиск доверенных ключевых файлов 103, связанных с доверенным файлом 101, то этапы 340, 345, и 350 пропускается. Например, данное решение связано с тем, что информационный сервис 220 точно знает, что данный файл не связан ни с каким доверенным ключевым файлом 103 или, наоборот, связан со слишком большим количеством доверенных ключевых файлов 103. В этом случае информационный сервис 220 передает в антивирусный сканер 210 информацию о том, что запрашиваемый неизвестный файл 102 является доверенным файлом 101, и на этапе 355 хеш данного файла добавляется в список хешей доверенных файлов в кэше данных 230. Затем заканчивается работа с данным файлом 101 и антивирусный сканер 210 возвращается к этапу 305, где переходит к следующему файлу.
Если на этапе 330 доверенный файл 101 был определен как доверенный ключевой файл 103, то данный доверенный файл 101 является доверенным ключевым файлом 103, и способ переходит к этапу 360. На этапе 360 информационный сервис 220 проводит поиск доверенных файлов 101, связанных с данным доверенным ключевым файлом 103. Например, поиск может производиться по базе «белых списков». После этого на этапе 365 формируется пакет хешей всех найденных доверенных файлов 101, связанных с данным доверенным ключевым файлом 103. На этапе 370 сформированный пакет хешей доверенных файлов 101 передается в список хешей доверенных файлов, который находится в кэше данных 230. При последующем нахождении файлов в файловой системе 100 с данными хешами, данные файлы будут исключаться из дальнейшей проверки. Затем антивирусный сканер 210 возвращается к этапу 305, где переходит к следующему файлу или заканчивает работу, если все запрашиваемые файлы для проверки из файловой системы 100 были проверены.
Фиг.4 иллюстрирует схему частного варианта работы модуля анализа файлов 240 и системы проверки файлов на доверенность.
В частных случаях модуль анализа файлов 240 является частью заявленной системы, которая была описана на Фиг.2. Модуль анализа файла 240 необходим для поиска неизвестных файлов 102 в фоновом режиме и анализа найденных неизвестных файлов 102. В представленной системе модуль анализа файлов взаимодействует со всеми модулями данной системы. Также из системы, которая описана на Фиг.2, можно исключить антивирусный сканер 240, тогда модуль анализа файлов 240 будет выполнять функции, которые касаются работы с неизвестным файлом 102, а именно определение, является ли этот файл неизвестным ключевым файлом 104, выявление доверенных ключевых файлов 103 и взаимодействие с информационным сервисом 220. Также модуль анализа файлов самостоятельно проводит поиск и неизвестных файлов 102 в файловой системе 100, добавляет пакеты хешей известных файлов 101 в список хешей доверенных файлов, находящийся в кэше данных 230. Еще одной функцией модуля анализа файлов 240 является анализ актуальности списка доверенных файлов в кэше данных 230, т.е. соответствие данного списка хешей доверенных файлов хешам файлов из файловой системы 100.
На Фиг.4 описана работа модуля анализа файлов 240 при поиске неизвестных ключевых файлов 104 в файловой системе 100. Также модуль анализа файлов определяет, является ли данный файл 104 доверенным ключевым файлом 103 и добавляет все хеши доверенных файлов 101, связанные с данным доверенным ключевым файлом 103, в список хешей доверенных файлов, находящийся в кэше данных 230. Поиск, как правило, проводится в фоновом режиме, чтоб не перегружать компьютер пользователя. Первым этапом 410 является определение места поиска неизвестного ключевого файла 104. Поиск может проводиться как по всем каталогам файловой системы 100, так и ограничиваться наиболее вероятным местом расположения ключевых файлов 103 и 104, например, в каталоге C:\Program Files. На этапе 415 каждый раз выбирается и передается на этап 420 следующий файл из каталогов файловой системы 100 для проверки. На этапе 420 проводится поиск в кэше данных 230 полученного файла с этапа 415. На этапе 420 проверка проводится с помощью сравнения хеша полученного файла со списком хешей доверенных файлов, находящимся в кэше данных 230. В том случае, если хеш файла был найден в данном списке, то данный файл является доверенным файлом 101 или 103 и пропускается, а модуль анализа файлов 240 переходит к этапу 415, где выбирается следующий файл. В том случае, если хеш полученного файла не был найден в списке хешей доверенных файлов, то данный файл определяется как неизвестный файл 102 и передается на этап 430. Затем на этапе 430 модуль анализа файлов 240 определяет, является ли файл 102 неизвестным ключевым файлам 104. В том случае, если данный файл 102 не является неизвестным ключевым файлом 104, то модуль 240 пропускает его и переходит на этап 415. В том случае, если данный файл 102 является неизвестным ключевым файлом 104, то модуль анализа файлов 240 формирует запрос по данному неизвестному ключевому файлу 104 в информационный сервис 220. Информационный сервис 220 определяет, является ли данный неизвестный ключевой файл 104 безопасным или нет. Безопасность определяется, например, с помощью поиска файла в базе «белых списков». В качестве запроса передается хеш неизвестного ключевого файла 104 в информационный сервис 220.
В том случае, если данный неизвестный ключевой файл 104 будет найден в базе «белых списков», то данный файл 104 станет доверенным ключевым файлом 103 и модуль 240 переходит на этап 440. В том случае, когда неизвестный ключевой файл 104 не будет найден в базе «белых списков», то работа с данным файлом 104 прекратится, и информируется об этом модуль анализа файла 240, который вернется к этапу 415. Данный неизвестный ключевой файл 104 будет проверен другими средствами анализа, например, сигнатурными базами, эвристическим анализом.
На этапе 440 производится поиск всех доверенных файлов 101, связанных с найденным доверенным ключевым фалом 103. После чего на этапе 450 формируется пакет хешей 225 найденных доверенных файлов 101. На этапе 460 пакет хешей доверенных файлов 225 передается в кэш данных 230. Затем модуль анализа файлов 240 возвращается к этапу 415, где начинает анализ следующего файла или прекращает работу, если больше не обнаружено файлов для проверки.
В частном случае реализации пакет хешей доверенных файлов 225 передается в модуль анализа файлов 240. В этом случае модуль анализа файлов 240 проверяет полученный пакет хешей доверенных файлов 225 на актуальность хешей данного пакета 225 в файловой системе 100. В том случае, если полученные хеши совпали с хешами файлов из файловой системы 100, то данные хеши будут добавлены в список хешей доверенных файлов в кэше данных 230. В том случае, если хеши файлов не были найдены, то данные хеши удаляются.
На Фиг.5 показана компьютерная система, для которой может быть использовано описанное изобретение.
Фиг.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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются только примерами описывающие основной изобретательский замысел автора, которые не ограничивают объем настоящего изобретения теми примерами, которые упоминались ранее. Приведенные сведения, прежде всего, предназначены для решения узкой задачи. С течением времени и с развитием технического прогресса такая задача усложняется или эволюционирует. Появляются новые средства, которые способны выполнить новые требования. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.