СИСТЕМА ПРОВЕРКИ НА ПРИСУТСТВИЕ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИЗМЕНЯЕМЫМИ НАСТРОЙКАМИ ПРОВЕРКИ

Область техники
Полезная модель относится к обеспечению ускорения антивирусной проверки файлов за счет выбора типа антивирусной проверки.
Уровень техники
При выполнении антивирусной проверки на компьютере пользователя используется определенная часть ресурсов системы, иногда весьма значительная их часть, что приводит к тому, что пользователь может отменить продолжительную антивирусную проверку, полагая, что она является излишней. Обычно если перед запуском приложения пользователь не обращает внимания, если антивирусная проверка этого приложения заняла одну или две секунды. С другой стороны, за такой короткий промежуток времени можно успеть выполнить только самые элементарные антивирусные проверки, вроде проверки антивирусных сигнатур. Однако, более ресурсоемкие проверки вроде эмуляции или использования защищенной среды могут потребовать гораздо больше времени. Различные системы антивирусной проверки описаны в заявках и патентах, таких как WO0022710, CN1801033, WO04075056, JP2003216445, WO2007042975 и других. Однако, недостаток этих систем заключается в том, что не всегда требуется проводить ресурсоемкие антивирусные проверки в тех случаях, когда достаточно использовать только самые элементарные, например, основанные на временных метках, например, как описано в заявке US20080229419.
Отсюда вытекает задача оптимального использования времени, которое уходит на антивирусную проверку с одновременным обеспечением надежности такой проверки.
Раскрытие полезной модели
Технический результат полезной модели заключается в обеспечении ускорения антивирусной проверки файлов за счет выбора типа антивирусной проверки. Этот результат достигается за счет использования системы, которая содержит: средство перехвата запуска исполняемых файлов, предназначенное для перехвата попытки запуска исполняемого файла; средство оценки рисков, связанное со средством перехвата исполняемых файлов и базой данных рисков, при этом средство оценки рисков предназначено для использования базы данных рисков для того, чтобы оценить риск запуска исполняемого файла, данные о котором были получены от средства перехвата запуска исполняемых файлов; средство выбора техник проверки, связанное со средством оценки рисков, при этом средство выбора техники проверки предназначено для обеспечения ускорения антивирусной проверки файлов за счет выбора типа антивирусной проверки для исполняемого файла в зависимости от риска запуска исполняемого файла; средство проверки файлов, связанное со средством выбора техники проверки, при этом средство проверки файлов предназначено для использования выбранных средством выбора техник проверки всех необходимых типов антивирусной проверки и передачи полученных результатов на средство перехвата запуска исполняемых файлов для запрета или разрешения дальнейшего исполнения файла.
В частном варианте реализации средство оценки рисков учитывает источник происхождения файла, полный путь расположения файла, размеры файла, имеет ли файл цифровую подпись, является ли файл утилитой скачивания, запакован ли файл, получен ли файл с компакт-диска из привода CD-ROM, значение общего уровня угрозы, полученное от антивирусной компании.
В еще одном частном варианте реализации типы антивирусной проверки включают в себя эвристические алгоритмы обнаружения, статистический анализ, отсылку копии файла на сервер для проверки присутствия вредоносного функционала, отправку контрольной суммы файла на сервер для антивирусной проверки, запуск файла в защищенной среде.
Дополнительные преимущества данного полезной модели будут раскрыты в нижеследующем описании. Дополнительно будут приведены примеры использования полезной модели со ссылками на чертежи.
Краткое описание чертежей
Сопровождающие чертежи включены в описание для пояснения сути и основных принципов работы полезной модели. Нижеследующее описание раскрывает варианты реализации полезной модели со ссылками на позиции следующих чертежей:
Фиг.1 представляет временную диаграмму работы полезной модели.
Фиг.2 схематически представляет компьютер, на котором возможно использовать данную полезную модель.
Фиг.3 изображена примерная кривая роста риска в зависимости от количества факторов риска.
Фиг.4 иллюстрирует алгоритм выбора типов проверки в зависимости от степени риска для исполняемого файла.
Фиг.5 отображает один из вариантов реализации средств системы полезной модели.
Подробное описание вариантов осуществления
Детальное описание заявленной полезной модели будет содержать описания и примеры использования всех элементов и подсистем, из которых состоит полезная модель.
Первый вариант применения полезной модели состоит в выявлении различий между известными исполняемыми файлами (т.е. файлами, которые антивирусное программное обеспечение прежде проверяло на этом компьютере) и не известными исполняемыми файлами. Таким образом, когда запускают известную антивирусной системе программу (например, установленную копию Microsoft Word), то антивирусная проверка будет достаточно проста, т.е. ограничиться проверкой вирусных сигнатур динамических библиотек, которые подключаются при старте программы. С другой стороны, когда впервые запускается неизвестная программа, то она будет подвергнута исчерпывающей проверке. В такой ситуации пользователь может быть дополнительно проинформирован во всплывающем окне или другом элементе интерфейса, что была запущена новая неизвестная программа, несущая повышенный риск возможного заражения компьютера вирусом. В таких случаях появляется выбор: сделать полную проверку, не выполнять ее или выполнить быструю/упрощенную антивирусную проверку. Например, полная проверка активирует все возможные механизмы проверки, которые есть смысл выполнить (например, сигнатурная проверка, эвристический анализ, и т.п.). Следующий выбор состоит в применении более подходящих способов проверки, соответствующих условиям и предыстории появления файла в компьютерной системе.
Когда в Интернете появляется новое программное обеспечение, в том числе и вредоносное, может пройти от нескольких минут до нескольких часов до момента обновления баз данных поставщиков антивирусных продуктов. За это время проводятся дополнительные проверки программы, которую пользователь скачал и пытается впервые установить, при этом отсылаются запросы на сервер - т.к. это новое программное обеспечение может присутствовать в "белом списке" (базе данных программного обеспечения проверенных или надежных программ или их исполняемых файлов) или в "черном списке" (базе данных вредоносных программ).
Если программу нашли в черном списке, то это означает, что новое скачанное программное обеспечение с высокой вероятностью содержит вирус, потому что источник этого программного обеспечения прежде был замечен в распространении вредоносного программного обеспечения, или по причине того, что подобное программное обеспечение бывает часто заражено вирусами, а также по ряду других причин.
Присутствие программы в белом списке означает, например, что источник программного обеспечения или тип программы, относится к тем случаям, когда присутствие вирусов маловероятно; в таком случае достаточно провести упрощенную проверку, не требующую длительного использования ресурсов компьютера пользователя. Если программное обеспечение отсутствует как в белом, так и в черном списках, то в таком случае возможны варианты. Например, уровень антивирусной проверки (а значит и время, которое потрачено на проверку) может зависеть от способа попадания нового программного обеспечения на компьютер. Например, программное обеспечение, которое распространяется на носителях информации, таких как CD-ROM или DVD-ROM в меньшей степени подвержено заражению вирусами, чем программное обеспечение, распространяемое через Интернет. Для скачанных файлов имеет значение источник, из которого файл был получен, т.е. адрес URL. Эта разница также учитывается при выборе уровня антивирусной проверки исполняемого файла.
Также для каждого исполняемого файла выбирается набор настроек антивирусной проверки в зависимости от того, встречался ли ранее такой файл в системе. Например, для известных файлов выполняется относительно упрощенная проверка (например, на основе временных меток файлов), в то время как неизвестные файлы подвергаются более сложной антивирусной проверке. Для неизвестных файлов оценка рисков выполняется исходя из различных факторов, связанных с исполняемым файлом, после чего создается метрика файла. Таким образом, исходя из метрики файла, выполняют различные типы антивирусной проверки.
Если файл упакован (в упакованный файл записывается сжатая и/или видоизмененная и/или зашифрованная копия оригинального файла и программа для распаковки), то это также является фактором риска, поскольку
вредоносные программные файлы часто бывают упакованы (целью упаковки является обход сигнатурных проверок, используемых для обнаружения вирусов). Текущее местоположение или путь к файлу также стоит принимать во внимание, особенно в случае, если какие-либо из исполняемых файлов самоустанавливаются в отдельные директории (папки, каталоги), например, C:\Windows. Для подобных файлов следует устанавливать большой фактор риска.
Еще один фактор, принимаемый во внимание - это размер файла. Например, исполняемые файлы малого размера (несколько десятков килобайт) более подозрительны по сравнению с большими исполняемыми файлами (десятки и сотни мегабайт). Такой фактор обусловлен непрактичностью передачи многомегабайтных файлов, особенно при использовании компьютеров-"зомби" (т.е. компьютеров, которые используются третьими лицами без ведома владельцев для использования их ресурсов, например, для рассылки спама). Если компьютер-"зомби" отправляет очень большие зараженные файлы, то он не способен разослать достаточно много копий зараженных файлов по причинам ограниченности канала связи с сетью и ресурсов аппаратного обеспечения. Также практичной является рассылка большого количества почтовых электронных сообщений с достаточно небольшими вложениями. Типичные вредоносные файлы, рассылаемые таким образом, имеют размеры порядка 50-100 Кб. А если файл был упакован, то размер файла будет уменьшен примерно до 25-50 Кб. Таким образом, если исполняемый файл имеет малый размер, то для него повышается уровень риска его запуска на исполнение.
Следующий фактор риска могут представлять небольшие исполняемые файлы, самоустанавливающиеся в систему и сразу активирующие загрузку других файлов с веб-сервера или файлового сервера. В таком случае можно обнаружить вызов функций по загрузке файлов из источника в сети Интернет, чтобы затем проверить адрес ссылки (URL) источника по черному списку ссылок. В том случае, если исполняемый файл загружает вредоносные или неизвестные программы, риск является очень высоким. Еще одним фактором, повышающим общий уровень риска, является также тот факт, что исполняемый файл не предупреждал пользователя о собственном запуске и установке в систему.
Подозрительным является и способ создания файла, т.е. обнаружение процесса, который создал этот файл. Если другой файл был загружен перед тем, как этот файл был создан на диске - следовательно, зная адрес ссылки (URL) загруженного файла, появляется возможность оценить степень риска. Аналогично, принимается во внимание директория (папка, каталог), в которой был создан файл.
Следующим фактором риска является электронная подпись файла. Если подпись файла является доверенной (т.е. файл был подписан надежной организацией), то можно исключить антивирусные проверки для данного файла, так как степень риска является минимальной.
Еще одним фактором риска может являться и общий уровень угрозы, который имеют все крупные антивирусные компании. Как правило, ведется статистика по срабатываниям антивирусных приложений, и при всплесках различных срабатываний антивирусные компании регистрируют, так называемые, вирусные эпидемии и поднимают общий уровень угрозы. Подобный общий уровень угрозы можно считать в виде добавки к степени риска запуска каждого исполняемого файла.
Настройки для подробной антивирусной проверки содержат эвристический анализ, эмуляцию выполнения исполняемого кода, которая включает в себя эмуляцию в ограниченном окружении или эмуляция вторжений, при которой эмулятор выполняет только особые инструкции исполняемого кода в режиме отладки. Следующая настройка активирует статистический анализ файла, например, анализ количества повторений некоторых шаблонов инструкций и/или частоты соответствующих инструкций или групп инструкций (в том числе используемых для определения полиморфных вирусов, которые невозможно отследить, используя сигнатурные проверки). Другие техники содержат интерактивные проверки файла, в которых либо полностью файл, либо контрольная сумма от файла (например, хеш или контроль при помощи циклического избыточного кода, CRC), или некоторая порция файла (т.е. первые Х байт и последние Y байт) отсылаются для анализа на сервер третьей стороны, т.е. антивирусной компании.
Таким образом, можно сформировать некоторую зависимость риска запуска исполняемого файла от типа его анализа (антивирусной проверки). На фиг.3 изображена примерная кривая роста риска в зависимости от количества факторов риска. Часть факторов (например, размер файла или его местоположение) еще не указывает на то, что файл является зараженным, поэтому, даже просуммировав эти факторы, нельзя говорить о большой вероятности того, что файл является зараженным. Однако, другие факторы (например, местоположение файла или его источник) можно интерпретировать как сигнал для использования более ресурсоемких методов проверки (например, проведение эмуляции). Таким образом, в зависимости от уровня риска требуется более детальная проверка с использованием различных методов антивирусной проверки.
На фиг.5 изображен один из вариантов реализации средств системы полезной модели. Средство перехвата запуска исполняемых файлов 501 перехватывает попытку запуска исполняемого файла в системе и перенаправляет информацию об этом файле на средство оценки рисков 502, которое использует базу данных рисков 505 для того, чтобы оценить риск запуска исполняемого файла. Средство перехвата запуска исполняемых файлов 501 может быть выполнено в виде драйвера антивирусного приложения, который перехватывает все попытки запуска исполняемых файлов. Подобный драйвер работает в режиме супервизора (также говорят про работу на уровне ядра), что обеспечивает максимальный доступ к ресурсам системы. Средство оценки рисков 502 работает в соответствии с получаемыми данными о факторах риска, которые были описаны выше. Оценка рисков может быть выполнена, например, с помощью системы, описанной в патенте US 7530106, в котором оценка рисков производится на основе правил, каждое из которых описывает определенное действие в операционной системе и соответствующий это действию фактор риска. Полученное от средства оценки рисков 502 значение риска передается на средство выбора техник проверки 503, которое определяет тип антивирусной проверки для исполняемого файла. Затем средство проверки файлов 504 использует выбранные средством выбора техник проверки 503 все необходимые типы антивирусной проверки. Средство выбора техник 503 проверки и средство проверки файлов 504 могут быть выполнены в виде антивирусного приложения, которое использует различные алгоритмы проверки файлов, такие как сигнатурная проверка, эмуляция, эвристический анализ. Средство проверки файлов 504 также может быть реализовано не только на стороне пользователя, но и на стороне сервера. Также в одном из вариантов реализации средство выбора техник 503 может быть выполнено в виде планировщика задач в операционной системе, который оптимизирует нагрузку на систему путем сопоставления уровня рисков и планируемых затрат на антивирусную проверку. Подобный подход можно проследить в таких патентах, как US 7555621, US 7591019, US 7584508. После интерпретации полученных результатов ответ о возможности запуска исполняемого файла отправляется на средство перехвата запуска исполняемых файлов 501 для запрета или разрешения дальнейшего выполнения исполняемого файла.
На Фиг.1 отображена блок-схема действий средств реализации полезной модели в соответствии с фиг.5. На этапе 102 выполняется запуск файла. На этапе 104 анализируются риски с использованием различных техник для определения рисков (например, исходя из анализа рисков по URL, размеру файла, и др. факторов риска). На этом же этапе выполняют оценку рисков с использованием метрик, которые объединяют для оценки файла как представляющего высокий, средний и низкий уровни рисков. На этапе 106 выбирают тип антивирусной проверки, которая по ожиданиям в наибольшей степени соответствует полученному уровню риска. Затем на этапе 108 начинается проверка исполняемого файла с использованием всех выбранных методов антивирусной проверки. На этапе 110, по результатам проверки исполняемого файла на наличие вредоносного программного обеспечения выявилась вероятность его присутствия, то на этапе 112 выполнение файла блокируется. На этапе 114 разрешается выполнение файла при условии, что вредоносное программное обеспечение не было обнаружено.
На фиг.4 изображен алгоритм выбора типов проверки в зависимости от степени риска для исполняемого файла на этапе 106. Проверка может быть статической 401, что означает использование баз данных сигнатур как для вредоносных программ, так и для "белых списков". Динамическая проверка 402 означает использование методов эмуляции, а также запуск исполняемого файла в защищенной среде (sandbox), в то время как распределенная проверка 403 уже использует методы отсылки данных о файле на сторонние серверы (например, антивирусной компании) с целью выяснения, является ли файл вредоносным или нет. Наконец, отложенная проверка 404 означает запрет на выполнение исполняемого файла до тех пор, пока не будет подтвержден его статус.
На Фиг.2 показана примерная компьютерная система, которая может выступать в роли реализующего полезную модель компьютера 202. Компьютер 202 включает в себя один или более процессоров, таких как процессор 201. Процессор 201 соединяется с коммуникационной инфраструктурой 206, такой как шина или сеть.
Компьютер 202 включает в себя основную память 208, (RAM), и может также включать в себя вторичную память 210. Вторичная память 210 может включать в себя, например, внутренний диск или хранилище данных 212 (например, жесткий или оптический диск) и/или устройство чтения/записи 214 носителя данных 216 (устройство хранения данных на магнитной ленте, оптический привод и т.д.). Съемный запоминающий блок 216 представляет собой магнитную ленту, оптический диск или другие запоминающие носители, считываемые или записываемые с помощью соответствующего устройства чтения/записи 214 носителя данных 216. Съемный запоминающий блок 216 может включать в себя машиночитаемый запоминающий носитель, имеющий хранимое на нем компьютерное программное обеспечение и/или данные.
В альтернативном варианте осуществления вторичная память 210 включает в себя другие средства для загрузки компьютерных программ или других команд в компьютер 202. Она включает в себя, например, съемный блок памяти 222 и интерфейс 220. Она может включать в себя съемный чип памяти (такой как EPROM или PROM) и связанный с ним разъем или другие съемные блоки памяти 222 и интерфейсы 220, которые позволяют передавать программное обеспечение и данные со съемных блоков памяти 222 на компьютер 202.
Компьютер 202 также включает в себя один или более интерфейсов соединения, таких как сетевой интерфейс 224. Сетевой интерфейс 224 позволяет передавать данные между компьютером 202 и внешними устройствами. Например, сетевой интерфейс 224 включает в себя модем, сетевой интерфейс (например, карту Ethernet), порт соединения, PCMCIA слот и карту и т.д. Программное обеспечение и данные, передаваемые по сетевому интерфейсу 224, выполняются в форме сигналов 228, электронных, электромагнитных, оптических и других типов, которые могут быть приняты посредством сетевого интерфейса 224. Сигналы 228 выдаются сетевым интерфейсом 224 через канал связи 226. Этот канал 226 передает сигналы 228 и выполняется проводным или кабельным, оптоволоконным, РЧ каналом и другими каналами связи. В варианте осуществления полезной модели сигналы 228 содержат пакеты данных, отправленные процессору 201. Информация, представляющая обрабатываемые пакеты, может отправляться в форме сигналов 228 от про-цессора201 через канал связи 226.
Термином «машиночитаемый носитель программ» или «машиночитаемый носитель информации» обычно называют носитель, такой как съемные носители данных 216 и 222, жесткий диск, установленный в виде встроенного жесткого диска 212, и сигналы 228, которые обеспечивают передачу программного обеспечения на компьютер 202.
Компьютерные программы хранятся в основной памяти 208 и/или вторичной памяти. Компьютерные программы могут быть также получены через сетевой интерфейс 224. В частности, компьютерные программы при исполнении позволяют процессору 201 осуществлять настоящую полезную модель. Программное обеспечение может быть сохранено в компьютерном программном продукте и загружено в компьютер 202, используя съемное устройство хранения данных 214, жесткий диск 212 или интерфейс 224 связи.
Следует также отметить, что приведенные в описании примеры являются иллюстративными и не предназначены для ограничения объема и сущности заявленной полезной модели, которые установлены в прилагаемой формуле.