СПОСОБ И УСТРОЙСТВО ДЛЯ ПРОВЕРКИ ФАЙЛОВОЙ СИСТЕМЫ НА НАЛИЧИЕ ВИРУСОВ
METHOD AND APPARATUS FOR DETECTING VIRUSES IN FILE SYSTEM

Область техники, к которой относится изобретение
Настоящее изобретение относится к области сканирования файлов, хранящихся в файловой системе, на наличие вирусов.
Уровень техники
«Вредоносное ПО» представляет собой сокращенное наименование вредоносных программных средств, используемое в качестве термина, относящегося к любым программам, предназначенным для проникновения или повреждения компьютерной системы без информированного согласия владельца. Вредоносное ПО может включать вирусы, червей, троянских коней, руткиты, рекламное и шпионское ПО, а также любые другие вредоносные и нежелательные программы. Любое клиентское устройство, такое как настольный персональный компьютер (ПК), переносной компьютер, карманный персональный компьютер (КПК) или мобильный телефон могут подвергаться риску со стороны вредоносного ПО.
Когда устройство заражено вредоносным ПО, пользователь часто замечает непредусмотренное поведение или ухудшение характеристик системы, поскольку заражение может приводить к нежелательной активности процессора, использованию памяти и сетевому трафику. При этом могут также возникать проблемы со стабильностью, вызывающие аварийный отказ приложения или системы в целом. Пользователь зараженного устройства может ошибочно предположить, что неудовлетворительные характеристики являются следствием дефектов программного обеспечения или проблем, связанных с оборудованием, предпринимая неадекватные корректирующие меры, когда фактической причиной является заражение вредоносным ПО, о котором ему ничего не известно.
Обнаружение вредоносного ПО представляет сложность, поскольку создатели проектируют это программное обеспечение таким образом, чтобы его было трудно обнаружить, часто применяя технологию, которая специально скрывает наличие вредоносного ПО в системе, т.е. вредоносное приложение может не указываться в таблицах операционных систем, где приводятся выполняемые в данный момент процессы.
Для обнаружения и возможного удаления вредоносного ПО клиентские устройства используют антивирусные приложения. Антивирусное приложение может применять различные способы для обнаружения вредоносного ПО, включая сканирование, проверку целостности и эвристический анализ. Среди этих способов сканирование вредоносного ПО включает проверку антивирусным приложением объектов, таких как файлы, на наличие отпечатка или «сигнатуры» вируса, которые являются характерными для отдельной вредоносной программы. При сканировании объекта последовательно выполняются несколько операций. Первоначальные операции представляют собой простые и быстрые проверки, которые могут использоваться для исключения возможности того, что данный объект является вредоносным ПО. К примерам операций, выполняемых в начале последовательности, относятся сравнение контрольных сумм, информации о заголовке файла, количества секций файла и других свойств файлов, которые, как правило, различаются для чистых и зараженных объектов. При последовательном выполнении этих операций процесс сканирования ускоряется, так как тот или иной объект можно не принимать во внимание, пока не потребуется более подробное сканирование данного объекта.
Многие антивирусные приложения сохраняют результат сканирования в кэше, чтобы обеспечить лишь однократное сканирование чистого файла. Однако при каждом обновлении базы данных сигнатур необходимо сбрасывать содержимое кэша, так как не существует возможности узнать, какие из сохраненных в кэше результатов сканирования больше не являются достоверными с учетом новых сигнатур. Это означает, что после каждого обновления базы данных все файлы необходимо сканировать повторно, что занимает много времени и требует использования ресурсов процессора.
Раскрытие изобретения
Одной из целей настоящего изобретения является увеличение скорости сканирования файла, хранящегося в файловой системе, тогда как другая цель состоит в предоставлении антивирусному онлайн-серверу более полезной информации, позволяющей клиенту узнавать, когда необходимо повторно сканировать файл ранее сканированный файл, принимая во внимание выпуск нового вредоносного ПО.
Согласно первому аспекту настоящего изобретения предлагается способ выполнения антивирусного сканирования файловой системы. Для любого файла в файловой системе результаты промежуточного сканирования получают прежде, чем будет завершено сканирование файла. После этого результаты промежуточного сканирования сохраняют в базе данных. Результаты промежуточного сканирования могут использоваться для ускорения последующих циклов сканирования и предоставления другой полезной информации антивирусному онлайн-серверу. В ходе последующего антивирусного сканирования файловой системы и до выполнения промежуточного сканирования файла, хранящегося в файловой системе, определяют, доступны ли в базе данных результаты промежуточного сканирования, относящиеся к данному файлу. Если они доступны для того или иного конкретного типа промежуточного сканирования, то для данного файла не нужно выполнять этот тип сканирования. Если они отсутствуют, то такое сканирование может быть выполнено. Как вариант, результаты новых циклов промежуточного сканирования могут быть добавлены к базе данных.
Результаты промежуточного сканирования в некоторых случаях отбирают из данных сканирования, относящихся к контрольной сумме, информации о заголовке файла, количеству секций файла, хеш-значениям для файла, хеш-значениям для частей файла, ключевым данным эмуляции, значениям циклического контроля избыточности или результатам поиска байтов.
Как вариант, при наличии сигнатуры нового вредоносного ПО способ включает определение на основании результатов, хранящихся в базе данных, тех файлов, которые не соответствуют предварительно отфильтрованной информации, связанной с сигнатурой нового вредоносного ПО, и исключение этих файлов из последующего сканирования файловой системы. Предварительно отфильтрованную информацию опционально отбирают из данных, включающих дату последнего сканирования, тип файла, размер файла, количество секций файла, информацию о заголовке файла, хеш-значения для файла, хеш-значения для частей файла, значения циклического контроля избыточности и результаты поиска байтов.
Согласно другому варианту, способ включает хранение в базе данных даты последней модификации файла, оценку момента времени, когда впервые стало возможным заражение вредоносным ПО и, при последующем сканировании файловой системы, исключение из процесса сканирования тех файлов, которые в последний раз были модифицированы раньше, чем впервые стало возможным заражение вредоносным ПО. В качестве дополнительного варианта, способ включает хранение в базе данных даты последнего сканирования файла, сравнение даты последнего сканирования файла с датой, когда антивирусная база данных была обновлена с внесением определения нового вредоносного ПО и, при последующем сканировании файловой системы, исключение из сканирования тех файлов, которые в последний раз были сканированы после обновления антивирусной базы данных с внесением определения нового вредоносного ПО.
Согласно дополнительному варианту осуществления изобретения, база данных располагается удаленно по отношению к файловой системе. Это особенно полезно при антивирусном сканировании в режиме онлайн. В этом случае способ опционально включает, на удаленном антивирусном сервере и до передачи сигнатуры вредоносного ПО клиентскому устройству для сканирования файлов в файловой системе, использование результатов промежуточного сканирования, хранящихся в базе данных, для определения набора сигнатур вредоносного ПО, относящихся к файлам в файловой системе. После этого набор сигнатур вредоносного ПО может быть передан на клиентское устройство. Таким образом передают только сигнатуры, необходимые для клиента, тем самым уменьшая объем передачи сигналов.
В некоторых случаях способ включает также хранение в базе данных результатов промежуточного сканирования результаты промежуточного сканирования для любого множества файловых систем, хранящихся на множестве клиентских устройств. Для каждого клиентского устройства сохраняют дополнительные данные, содержащие географическое местоположение клиентского устройства или время, когда файл был сохранен в файловой системе на клиентском устройстве. На удаленном антивирусном сервере дополнительные данные используются для определения набора клиентских устройств, у которых запрашивается выборка всего или части файла, при этом запрос на выборку всего или части файла посылают на каждое клиентское устройство из набора клиентских устройств.
Согласно второму аспекту настоящего изобретения предлагается компьютерное устройство, которое обладает памятью для хранения файловой системы, антивирусной функцией для выполнения антивирусного сканирования, по меньшей мере, одного файла, хранящегося в файловой системе, причем антивирусная функция выполнена с возможностью осуществления, по меньшей мере, одного цикла промежуточного сканирования этого файла, и средствами хранения результатов, по меньшей мере, одного цикла промежуточного сканирования в базе данных результатов промежуточного сканирования. Антивирусная функция, кроме того, реализована с возможностью последующего сканирования файла в файловой системе и определения, перед выполнением промежуточного сканирования файла, имеются ли в базе данных результаты промежуточного сканирования. В случае когда результат промежуточного сканирования доступен в базе данных промежуточного сканирования, цикл промежуточного сканирования такого файла не выполняется, при этом в случае, когда результат промежуточного сканирования в базе данных отсутствует, цикл промежуточного сканирования файла выполняется.
Компьютерное устройство в некоторых случаях включает базу данных результатов промежуточного сканирования, хотя в других вариантах реализации она может располагаться дистанционно, и в этом случае компьютерное устройство содержит передатчик для передачи результатов промежуточного сканирования на удаленный узел с целью наполнения базы данных результатов промежуточного сканирования.
Согласно третьему аспекту настоящего изобретения предлагается антивирусный сервер для использования в коммуникационной сети. Антивирусный сервер содержит средства для поддержания связи с клиентским устройством, имеющим файловую систему, в которой хранится множество файлов, и процессор, выполненный с возможностью осуществления антивирусного сканирования, по меньшей мере, одного файла в файловой системе, при этом антивирусное сканирование включает, по меньшей мере, одно промежуточное сканирование файла. Предусматривается также хранение результатов промежуточного сканирования в базе данных результатов промежуточного сканирования.
Процессор в некоторых случаях выполнен также с возможностью использования результатов промежуточного сканирования, хранящихся в базе данных, для определения набора сигнатур вредоносного ПО, относящихся к файлам в файловой системе на клиентском устройстве, а средства для поддержания связи с клиентским устройством выполнены с возможностью передачи набора сигнатур вредоносного ПО на клиентское устройство. В качестве еще одного варианта, процессор выполнен также с возможностью использования данных, хранящихся в базе данных результатов промежуточного сканирования, для определения набора клиентских устройств, у которых запрашивается выборка всего или части файла, а средства для поддержания связи с клиентским устройством выполнены с возможностью передачи запроса на выборку всего или части файла с клиентского устройства.
Согласно четвертому аспекту настоящего изобретения, предлагается компьютерная программа, содержащая машиночитаемый код, которая, при запуске на программируемом компьютере, заставляет его выполнять антивирусное сканирование файловой системы. Компьютерная программа содержит команды получения результатов промежуточного сканирования для файла, хранящегося в файловой системе, прежде, чем будет завершено сканирование этого файла, и хранения результатов промежуточного сканирования в базе данных. Компьютерная программа содержит команды определения, в ходе последующего антивирусного сканирования файловой системы и до выполнения промежуточного сканирования файла, хранящегося в файловой системе, доступны ли в базе данных результаты промежуточного сканирования, относящиеся к файлу. Когда результаты промежуточного сканирования доступны в базе данных для конкретного типа промежуточного сканирования, промежуточное сканирование такого файла не выполняется. Когда результаты промежуточного сканирования в базе данных для конкретного типа промежуточного сканирования отсутствуют, выполняется промежуточное сканирование такого файла.
В некоторых случаях компьютерная программа содержит команды определения, при наличии сигнатуры нового вредоносного ПО и на основании результатов, хранящихся в базе данных, тех файлов, которые не соответствуют предварительно отфильтрованной информации, связанной с сигнатурой нового вредоносного ПО, и исключения этих файлов из последующего сканирования файловой системы.
Как вариант, компьютерная программа содержит команды хранения в базе данных даты последней модификации файла, оценки момента времени, когда впервые стало возможным заражение вредоносным ПО и, при последующем сканировании файловой системы, исключения из процесса сканирования тех файлов, которые в последний раз были модифицированы раньше, чем стало возможным заражение вредоносным ПО. Это обеспечивает невыполнение сканирования файлов, которые не могут быть заражены.
В качестве дополнительного варианта, компьютерная программа содержит команды хранения в базе данных даты последнего сканирования файла, сравнения даты последнего сканирования файла с датой, когда антивирусная база данных была обновлена с внесением определения нового вредоносного ПО и, при последующем сканировании файловой системы, исключения из сканирования тех файлов, которые в последний раз были сканированы после обновления антивирусной базы данных с внесением определения нового вредоносного ПО.
В случае когда база данных расположена удаленно, компьютерная программа содержит команды осуществления связи с удаленной базой данных. В качестве варианта, компьютерная программа содержит команды получения от удаленного антивирусного сервера набора сигнатур вредоносного ПО, определенных на удаленном антивирусном сервере при помощи результатов промежуточного сканирования, хранящихся в базе данных, с целью определения набора сигнатур вредоносного ПО, относящихся к файлам в файловой системе, что обеспечивает передачу компьютерному устройству только необходимых сигнатур.
Согласно пятому аспекту изобретения предлагается компьютерная программа, содержащая машиночитаемый код, который при запуске на программируемом компьютере заставляет его реализовывать способ, описанный выше в пятом аспекте изобретения.
Согласно шестому аспекту изобретения предлагается компьютерная программа, содержащая машиночитаемый код, который при запуске на компьютерном устройстве заставляет его вести себя как компьютерное устройство, описанное выше во втором аспекте изобретения.
Согласно седьмому аспекту изобретения предлагается компьютерная программа, содержащая машиночитаемый код, который при запуске на сервере заставляет его вести как антивирусный сервер, описанный выше в третьем аспекте изобретения.
Согласно восьмому аспекту изобретения предлагается носитель информации с записанной на нем компьютерной программой, описанной выше применительно к четвертому, пятому, шестому и седьмому аспектам настоящего изобретения.
Краткое описание чертежей
На ФИГ. 1 с помощью блочной диаграммы схематически показано клиентское устройство согласно одному из вариантов осуществления изобретения.
На ФИГ. 2 показана блок-схема, иллюстрирующая шаги одного из вариантов осуществления изобретения.
На ФИГ. 3 с помощью блочной диаграммы схематически показана архитектура сети согласно одному из вариантов осуществления изобретения.
Осуществление изобретения
На ФИГ. 1 показано клиентское устройство 1 согласно первому варианту осуществления изобретения. Клиентское устройство 1 имеет доступ к файловой системе 2, в которой хранится множество файлов, подлежащих сканированию. Предусмотрена антивирусная функция 3, которая может взаимодействовать с файловой системой 2, выполняя сканирование файлов, хранящихся в файловой системе 2, а также с антивирусной базой данных 4, содержащей информацию о сигнатурах вредоносного ПО.
Когда антивирусная функция 3 сканирует тот или иной файл в файловой системе 2, она выполняет несколько циклов промежуточного сканирования, в каждом из которых рассматривается один из аспектов файла. Информация о сигнатурах для каждого вируса содержит «предварительно отфильтрованную» информацию, которую можно использовать для быстрого исключения файла, прежде чем потребуется выполнить ресурсоемкое сканирование и детализированные программы обеззараживания, чтобы определить, является ли файл вредоносным. Промежуточный цикл сканирования используется, чтобы вычислить или иным способом получить промежуточные данные из файла для сравнения с предварительно отфильтрованной информацией, хранящейся в антивирусной базе данных 4. Полное сканирование осуществимо после того, как было выполнено достаточное количество циклов промежуточного сканирования. Цикл промежуточного сканирования может использоваться для получения информации, которая может включать результаты онлайн-проверки, соответствующие временные метки и результаты промежуточного сканирования, такие как результаты сравнения контрольной суммы, информация о заголовке файла, количество секций файла и так далее. Другие примеры результатов промежуточного сканирования включают результаты выполнения операций хеширования с полными и частичными файлами, ключевые данные эмуляции, значения циклического контроля избыточности (cyclic redundancy check, crc-значения), результаты поиска байтов и результаты статического анализа.
Предусмотрена база данных 5 результатов промежуточного сканирования, которая используется для хранения результатов промежуточного сканирования каждого файла. Благодаря хранению этой информации в базе данных результаты промежуточного сканирования, которые бывают необходимы часто или в начале процесса сканирования, или вычисление которых является дорогостоящим (с точки зрения потребления ресурсов обработки или дискового ввода-вывода), могут использоваться повторно. База данных 5 результатов промежуточного сканирования структурирована любым подходящим способом, обеспечивающим быстрый доступ к данным. Например, база данных 5 результатов промежуточного сканирования может индексироваться с помощью пути к файлу по всем вычисленным данным, обеспечивая очень быстрое выполнение запросов,
Чтобы обеспечить регулярное обновление базы данных 5 результатов промежуточного сканирования, при изменении какого-либо файла в файловой системе 2 относящиеся к этому файлу данные, которые хранятся в базе данных 5 результатов промежуточного сканирования, удаляются или помечаются как не являющиеся больше достоверными.
Когда антивирусная функция 3 выполняет затем сканирование файлов в файловой системе 2, она может использовать информацию, хранящуюся в базе данных 5 результатов промежуточного сканирования для ускорения процесса сканирования путем сравнения информации, хранящейся в базе данных 5 результатов промежуточного сканирования с предварительно отфильтрованной информацией, хранящейся в антивирусной базе данных 4. Это предотвращает ресурсоемкое сканирование каждого файла для получения промежуточных данных. В случае когда выясняется, что тот или иной файл в файловой системе 2 необходимо сканировать, базу данных 5 результатов промежуточного сканирования проверяют, чтобы определить, какие результаты промежуточного сканирования доступны. Вместо повторного вычисления результатов промежуточного сканирования операции сканирования могут, при наличии, использовать результаты промежуточного сканирования, хранящиеся в базе данных 5.
Информацию, хранящуюся в базе данных 5 результатов промежуточного сканирования, можно также использовать для предотвращения ненужных операций и ускорения процесса сканирования после обновления антивирусной базы данных 4. Когда антивирусная база данных 4 получает новые данные о вирусах с помощью устройства ввода-вывода 6, системы предшествующего уровня техники, не использующие базу данных 5 результатов промежуточного сканирования, должны повторно сканировать файлы, хранящиеся в файловой системе 2. Однако, согласно данному варианту осуществления изобретения, антивирусная функция 3 сравнивает информацию в базе данных 5 результатов промежуточного сканирования с предварительно отфильтрованной информацией для каждой обновленной или новой сигнатуры вредоносного ПО, включенной в новые данные о вирусах, исключая тем самым большое количество файлов, которые сканировались бы в противном случае. Кроме того, антивирусная функция 3 проверяет базу данных 5 результатов промежуточного сканирования для исключения любых сигнатур, которые нельзя сопоставить с каким-либо файлом в системе (например, обнаружение вредоносного ПО, заведомо связанного с каким-либо конкретным файлом, когда уже известно, что этот файл не хранится в файловой системе 2), и для исключения файлов, которые нельзя сопоставить с оставшимися сигнатурами. Это позволяет создать сокращенный набор файлов, которые необходимо сканировать, тем самым ускоряя процесс сканирования. При этом значительно ускоряется процесс сканирования после обновления антивирусной базы данных 4.
Данная операция может выполняться только для новых или модифицированных сигнатур, и в этом случае такие сигнатуры должны содержать временную метку или другую информацию счетчика. База данных 5 результатов промежуточного сканирования включает информацию, идентифицирующую время последнего сканирования того или иного файла, такую как временную метку или счетчик базы данных сигнатур, которая ранее уже использовалась для сканирования этого файла, поэтому повторное сканирование необходимо выполнять только применительно к сигнатурам, добавленным или модифицированным с момента предыдущего сканирования.
Сигнатуры, хранящиеся в антивирусной базе данных 4, могут включать информацию, идентифицирующую момент времени, когда конкретное вредоносное ПО, согласно оценке, было «выпущено на волю». Эта дата, как правило, определяется оператором антивирусной базы данных, например, на основе даты, когда оператор впервые узнал о вредоносном ПО. В этом случае файлы в файловой системе 2, которые не модифицировались со дня первого появления вредоносного ПО, не нужно сканировать, благодаря чему общее время сканирования сокращается.
База данных 5 результатов промежуточного сканирования минимизирует воздействие обновления антивирусной базы данных 4, поэтому поставщики обновлений антивирусной базы данных имеют возможность чаще предоставлять обновления меньшего объема, что позволяет им быстрее реагировать на появление новых угроз. Использование базы данных 5 результатов промежуточного сканирования также повышает скорость доступа к файлам. При использовании способов, относящихся к известному уровню техники, большинство антивирусных приложений проверяет файл только при следующем доступе к нему после обновления антивирусной базы данных 4. При использовании базы данных 5 результатов промежуточного сканирования полное сканирование системы может эффективно выполняться каждый раз при получении очередного обновления сигнатуры вируса на устройстве 1.
Использование базы данных 5 результатов промежуточного сканирования также улучшает время сканирования при сканировании по требованию (сканировании при выдаче пользователем соответствующей команды, а не в установленное время или после конкретного события, такого как обновление антивирусной базы данных 4). Обычно при сканировании по требованию сканируются все файлы в файловой системе 2, что делает его трудоемким и ресурсоемким процессом. Антивирусная функция 3 проверяет базу данных 5
результатов промежуточного сканирования для исключения любых обнаружений, которые нельзя сопоставить с каким-либо файлом в системе (например, обнаружение вредоносного ПО, заведомо связанного с каким-либо конкретным файлом, когда уже известно, что этот файл не хранится в файловой системе 2), и для исключения файлов, которые нельзя сопоставить с оставшимися обнаружениями. Это позволяет создать сокращенный набор файлов, которые необходимо сканировать при минимальном наборе обнаружений, тем самым ускоряя процесс сканирования.
Клиентское устройство 1 может также быть снабжено машиночитаемым носителем в виде памяти 7, на котором хранится компьютерная программа 8 в виде машиночитаемого кода. При реализации программы процессором на клиентском устройстве 1 последнее выполняет антивирусное сканирование.
На ФИГ. 2 показана блок-схема, иллюстрирующая шаги согласно первому варианту осуществления изобретения. Следует отметить, что блок-схема иллюстрирует процедуру для одного файла в файловой системе. Следует понимать, что процедура, по всей вероятности, будет повторяться для многих файлов, хранящихся в файловой системе. Следующая нумерация соответствует нумерации, приведенной на ФИГ. 2.
S1. Первоначальное сканирование выполняется для наполнения базы данных 5 результатов промежуточного сканирования. Пунктирная линия вокруг шагов S1-S4 обозначает шаги, выполняемые в ходе первоначального сканирования.
S2. Выполняется промежуточное сканирование одного из файлов в файловой системе. Оно может представлять собой любой тип промежуточного сканирования, такой как сравнение контрольной суммы, сrс-результаты и так далее, как описано выше.
S3. Результаты промежуточного сканирования сохраняются в базе данных 5 промежуточного сканирования.
S4. Если требуется дополнительный цикл промежуточного сканирования, процесс возвращается к шагу S2. Если нет, все промежуточные циклы сканирования для данного файла выполнены.
S5. Инициируется последующее сканирование файловой системы.
S6. Для данного файла, хранящегося в файловой системе, антивирусная функция 3 определяет необходимость промежуточного сканирования.
S7. Антивирусная функция 3 определяет, хранятся ли уже результаты промежуточного сканирования в базе данных 5 промежуточного сканирования. Если это так, результаты, хранящиеся в базе данных, используются антивирусной функцией, и процесс продолжается с шага 810, в противном случае процедура продолжается с шага S8.
S8. Поскольку какие-либо результаты промежуточного сканирования для такого файла отсутствуют, выполняется промежуточное сканирование данного файла.
S9. В дополнительном варианте осуществления изобретения результаты промежуточного сканирования сохраняются в базе данных 5 промежуточного сканирования для использования в последующих циклах сканирования файловой системы.
S10. Если для получения другой информации, относящейся к данному файлу, необходимо дополнительное промежуточное сканирование, процедура возвращается к шагу S6.
S11. Теперь сканирование для данного файла завершено. Следует отметить, что почти в каждом случае процедура последующего сканирования для шагов S5-S11 будет повторяться для множества файлов, хранящихся в файловой системе.
Во втором конкретном варианте осуществления изобретения база данных результатов промежуточного сканирования, относящаяся к тому или иному клиенту, расположена дистанционно по отношению к клиентскому устройству. Этот вариант предназначен для решения проблемы, возникающей при онлайн-сканировании вирусов. Онлайн-сканирование вирусов основано на антивирусном сканировании, которое, по меньшей мере, частично, выполняется дистанционно. Клиентское устройство устанавливает связь с антивирусным сервером для выполнения в режиме онлайн антивирусного сканирования файлов, хранящихся в файловой системе клиентского устройства.
Как показано на ФИГ. 3, предусматривается клиентское устройство 9, которое имеет устройство ввода-вывода 10, процессор 11 и файловую систему 12 и осуществляет связь по коммуникационной сети 13 с удаленным сервером 14. Удаленный сервер 14 имеет устройство ввода-вывода 15 для осуществления связи с клиентским устройством 9, процессор 16 и устройство ввода-вывода 17 для осуществления связи с удаленной антивирусной базой данных 18. Следует отметить, что база данных может быть расположена на сервере 14. Файлы, хранящиеся в файловой системе 12, сканируются дистанционно путем проверки на соответствие удаленной антивирусной базе данных 18. Это устраняет необходимость в предоставлении больших антивирусных баз данных сигнатур каждому клиенту и позволяет быстро вносить изменения в удаленную антивирусную базу данных 18, обеспечивая очень быстрый отклик на появление новых угроз.
Как описано выше, скорость сканирования можно значительно увеличить, исключая из сканирования известные чистые файлы, хранящиеся в файловой системе 12. Необходимо сканировать только неопределенные файлы. Один из способов идентификации известных чистых файлов состоит в использовании хеш-значения файла для предотвращения получения ложных положительных результатов.
Проблема, связанная со сканированием вирусов в режиме онлайн, состоит в наличии эффективного механизма публикации сигнатур. Когда антивирусная база данных 18 обновляется за счет добавления сигнатур для нового или модифицированного вредоносного ПО, клиентское устройство 9 обнаружит это изменение только после того, как направит на удаленный антивирусный сервер 14 следующий запрос в отношении неопределенных файлов, хранящихся в файловой системе 12. Один из способов решения этой проблемы состоит в том, чтобы каждый клиент 9 часто производил упорядоченный опрос удаленного сервера 14 для получения подробных сведений о новых сигнатурах, однако такой способ связан с большим объемом передачи сигналов (сервер может работать со многими тысячами клиентов) и является ресурсоемким для сервера 14. С другой стороны, если клиентское устройство 9 редко обращается к удаленному серверу 14, оно может быть заражено вредоносным ПО в течение некоторого времени, прежде чем это будет обнаружено с помощью антивирусного сканирования в режиме онлайн. Другой вариант состоит в присвоении каждой сигнатуре предписанного времени жизни. Значение предписанного времени жизни определяет период, в течение которого та или иная сигнатура может правомерно использоваться. Однако этот вариант также увеличивает сетевой трафик и нагрузку на сервер. Еще одна проблема состоит в получении выборок подозрительных файлов для дальнейшего анализа от клиентов, поскольку при их первом сканировании не существует правил или сигнатур (для последующего вредоносного ПО), которые позволяли бы помечать их в качестве вредоносных, поэтому они не будут передаваться на сервер 14 для дальнейшего анализа.
Второй вариант осуществления настоящего изобретения решает упомянутые выше проблемы, предусматривая базу данных 19 промежуточного сканирования, содержащую результаты промежуточного сканирования для каждого клиента, при этом база данных 19 результатов промежуточного сканирования доступна для сервера 14. Клиентское устройство 9 передает метаданные, относящиеся к
неопределенным файлам, на сервер 14. Эти метаданные могут включать результат локального сканирования с соответствующими временными метками и различные результаты промежуточного сканирования, описанные для первого варианта осуществления. К ним относятся простые контрольные суммы, информация о заголовке файла, количество секций и другие свойства файлов, которые в большинстве случаев различаются для чистых и зараженных файлов. Результаты промежуточного сканирования могут включать, по меньшей мере, несколько операций хеширования, хеш-значения как для полных, так и для частичных файлов, ключевые данные эмуляции, данные промежуточного сканирования (сrс-значения, результаты поиска байтов и т.д.) и результаты статического анализа.
База данных 19 результатов промежуточного сканирования используется для хранения результатов промежуточного сканирования, полученных на клиентском устройстве 9 для каждого конкретного файла, а также списка других клиентских устройств, на которых этот файл хранится в файловой системе. Существует несколько способов использования базы данных 19 промежуточного сканирования, описанных ниже.
База данных 19 результатов промежуточного сканирования может использоваться, чтобы обеспечить предоставление каждому клиенту только тех антивирусных сигнатур, которые соответствуют неопределенным файлам, хранящимся в файловой системе клиентского устройства. Сервер 14 использует данные, полученные из базы данных 19 промежуточного сканирования, для определения того, какие файлы подлежат сканированию с использованием конкретной сигнатуры обнаружения, и на каком клиентском устройстве. Только сигнатуры, которые могут иметь отношение к клиентскому устройству 9, передаются этому клиенту, чтобы каждый клиент передавал только те сигнатуры, которые относятся или могут относиться к этому клиенту. Это сокращает использование клиентских ресурсов, а также использование диапазона частот при распределении сигнатур.
В случае идентификации нового вредоносного ПО данные о сигнатуре для этого ПО могут либо активно «проталкиваться» на клиентское устройство 9, когда оно доступно, либо передаваться на клиентское устройство 9, когда оно в следующий раз свяжется с сервером 14. Клиентское устройство 9 использует эту информацию для запуска сканирования и возможного дезинфицирования вредоносного ПО. Это значительно ускоряет распределение информации о сигнатурах среди клиентов.
База данных 19 результатов промежуточного сканирования может также использоваться для определения количества клиентов, обслуживаемых сервером 14, имеющих копию конкретного файла, географического местоположения этих клиентов, времени, когда файл был сохранен в файловой системе, и так далее. Эта информация может использоваться для инициирования запросов на выборку со стороны клиента таким образом, чтобы запросы на выборку передавались только тем клиентам, у которых имеется подозрительный файл.
Еще один вариант использования базы данных 19 промежуточного сканирования состоит в оптимизации создания сигнатур. Нет причины для создания сигнатур, не содержащих обнаружения, которое могло бы соответствовать какому-либо файлу, имеющемуся у клиентов, поскольку это представляло бы собой непроизводительное расходование ресурсов обработки и полосы частот.
Использование базы данных 19 результатов промежуточного сканирования позволяет полностью идентифицировать список файлов, способных вызвать ложные позитивные результаты по всей клиентской базе для данной сигнатуры. Проверку ложных позитивных результатов можно оптимизировать и запускать только для этого ограниченного набора файлов.
Сервер 14 может также быть снабжен машиночитаемым носителем в виде памяти 20, на котором хранится компьютерная программа 21 в виде машиночитаемого кода. При реализации программы процессором на сервере 14, последний выполняет антивирусное сканирование.
Специалисту в данной области техники понятно, что описанный выше вариант осуществления может подвергаться различным модификациям без выхода за рамки настоящего изобретения. Например, в приведенных выше примерах показано клиентское устройство, имеющее только одну файловую систему. Следует понимать, что файловая система может храниться на жестком диске, оптическом диске, в памяти с произвольным доступом или памяти любого другого типа, и что может предусматриваться более одной файловой системы.