СИСТЕМА И СПОСОБ ДЛЯ АНТИВИРУСНОЙ ПРОВЕРКИ НА СТОРОНЕ СЕРВЕРА СКАЧИВАЕМЫХ ИЗ СЕТИ ДАННЫХ
SYSTEM AND METHOD FOR VIRUS-CHECKING DATA DOWNLOADED FROM NETWORK AT SERVER SIDE

Область техники
Изобретение относится к технологиям безопасности вычислительных систем, а более конкретно к системам и способам для антивирусной проверки скачиваемых из сети данных на стороне сервера.
Уровень техники
Современный мир переполнен различной информацией. Это происходит отчасти благодаря стремительному развитию сетевых технологий, в том числе и сети Интернет. В течение нескольких минут пользователь может найти любую информацию, а затем по мере необходимости скачать ее на персональный компьютер (ПК).
В связи с ростом и развитием сети Интернет растет и количество вредоносного программного обеспечения, распространяемого через сеть Интернет. Злоумышленники с помощью вредоносного программного обеспечения могут преследовать разные цели: от банального хулиганства до серьезных киберпреступлений, таких как воровство финансовых средств с банковских счетов.
Особенно остро проблема распространения вредоносного программного обеспечения стоит в корпоративных сетях. Заражение компьютера в корпоративной сети чревато не только влиянием на моральное состояние пользователя в связи невозможностью нормальной работы на ПК, но и материальными издержками, которые может понести компания в связи с настройкой или ремонтом ПК. Наиболее важной проблемой может стать кража конфиденциальных данных, принадлежащих компании из-за заражения вредоносным программным обеспечением.
В связи с вышеизложенной проблемой необходимо иметь надежное антивирусное решение. Особенно наличие антивирусного решения важно для корпоративных сетей.
На сегодняшний день известно огромное количество систем и способов для антивирусной проверки файлов, в том числе на удаленном компьютере или сервере.
В патенте US 7020895 описывается система, в которой антивирусная проверка подозрительных файлов осуществляется на удаленном компьютере. Для этого на компьютере пользователя установлен специальный агент, который "на лету" проверяет файл. Если файл определяется как подозрительный, то он или его часть отправляется на удаленный компьютер для проверки. Данная система не предполагает передачу на ПК данных во время их антивирусной проверки.
В патенте US 6088803 описывается система, в которой антивирусную проверку загружаемого пользователем ПК файла осуществляет сетевое устройство, которым может быть сервер или выделенный компьютер, причем скачиваемый файл разбивается на отдельные сегменты, для которых шаги проверки и загрузки на ПК выполняются отдельно. Минусом данной системы является отсутствие возможности регулирования глубины антивирусной проверки в зависимости от типа скачиваемых данных и источника данных.
В заявке WO 2008147737 A2 описывается система, в которой скачиваемый пользователем файл проходит через сетевую среду (шлюз), где порционно проверяется и по частям отдается пользователю. Данная система не может определить вероятность того, что скачиваемые данные содержат вредоносный программный код, и, исходя из этого, построить антивирусную защиту.
В заявке US 20070294373 A1 описывается система для проверки качаемого из сети Интернет наполнения сервера. Наполнение скачивается на сервер и в это же время пользователю направляется DME (download management entity). DME может быть интернет-страница, интернет-страница со сценарием, которая предоставляет пользователю информацию о скачивании контента и о его антивирусной проверке. В данной системе нет возможности адаптивного выбора алгоритма антивирусной проверки в зависимости от того, какой файл и откуда он скачивается.
В заявке US 2008301796 A1 описывается система для антивирусной проверки скачиваемых данных на стороне сервера. При этом в зависимости от различных данных настраивается глубина проверки путем подключения или отключения соответствующих антивирусных модулей. Данными, в зависимости от которых может настраиваться глубина проверки, могут быть тип скачиваемого файла и место, откуда этот файл качается. Скачиваемые данные проверяются и передаются по частям. Такая система не может передавать пользователю интернет-страницу или интернет-страницу со сценарием, которые отображают ход загрузки и антивирусной проверки данных, в зависимости от вероятности того, что скачиваемые данные содержат вредоносный программный код.
В патенте US 7640586 B1 описывается система, в которой одновременно с процессом загрузки из сети какого-либо файла осуществляется его антивирусная проверка. Антивирусная проверка может осуществляться в том числе и на удаленном сервере. В данной системе нет возможности адаптивного выбора алгоритма антивирусной проверки в зависимости от того, какой файл и откуда он скачивается.
Предложенные и описанные далее система и способ для антивирусной проверки скачиваемых из сети данных на стороне сервера обходят описанные выше недостатки.
Сущность изобретения
Настоящее изобретение предназначено для антивирусной проверки на стороне сервера скачиваемых из сети данных. Технический результат заключается в оптимизации антивирусной проверки скачиваемых данных на стороне прокси-сервера за счет выбора алгоритма антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код.
Способ для антивирусной проверки на стороне прокси-сервера скачиваемых на персональный компьютер данных содержит этапы, на которых:
- определяют параметры скачиваемых данных, сопоставляют эти параметры с правилами для этих параметров и определяют уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код;
- определяют глубину антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, при этом глубина антивирусной проверки зависит от того, какие типы анализа данных на присутствие вредоносного программного кода и в каком сочетании используются;
- проводят антивирусную проверку данных в соответствии с определенной глубиной антивирусной проверки и уровнем общей вероятности того, что скачиваемые данные содержат вредоносный программный код;
- по возможности проводят лечение данных, содержащих вредоносный программный код;
- передают данные на ПК в том случае, если вредоносного кода в скачиваемых данных не обнаружено или лечение данных, содержащих вредоносный программный код, удалось.
Система для антивирусной проверки на стороне прокси-сервера данных, скачиваемых с сервера данных по запросу с персонального компьютера содержит:
- модуль анализа и приема данных, связанного с базой данных прокси-сервера, антивирусным модулем и кэшем, и предназначенного для определения параметров данных, скачиваемых на ПК с сервера данных, сопоставления этих параметров с правилами для этих параметров из базы данных прокси-сервера, и для определения уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, при этом указанный уровень высокий или невысокий;
- если высок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, то модуль анализа и приема данных направляет скачиваемые данные в кэш и передает информацию о высоком уровне общей вероятности того, что скачиваемые данные содержат вредоносный программный код, а также информацию о ходе скачивания данных с сервера данных в кэш, на антивирусный модуль
- если невысок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, то модуль анализа и приема данных направляет скачиваемые данные на антивирусный модуль;
- базу данных прокси-сервера, связанной с антивирусным модулем и модулем анализа данных, содержащая правила для определения вероятностей того, что скачиваемые данные содержат вредоносный программный код, в зависимости от параметров данных, скачиваемых на ПК с сервера данных, а также правила для определения глубины антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, при этом;
- кэш, в который передаются скачиваемые с сервера данных данные в случае, если высок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, при этом кэш связан также с антивирусным модулем и модулем передачи данных и предназначен для передачи полученных данных для антивирусной проверки в антивирусный модуль и передачи данных после антивирусной проверки на модуль передачи данных;
- антивирусный модуль, связанного с кэшем модулем передачи данных и базой данных прокси-сервера, предназначенного для:
- антивирусной проверки данных, находящихся в кэше, в случае, если высок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код,
- антивирусной проверки данных, передаваемых модулем анализа и приема данных, и передачи данных порциями до окончания полной проверки на модуль передачи данных в случае, если невысок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код;
- упомянутый модуль передачи данных, предназначенного для передачи на ПК скачиваемых данных после антивирусной проверки в случае, если высок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, и передачи на ПК скачиваемых данных во время антивирусной проверки в случае, если невысок уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код.
Краткое описание прилагаемых чертежей
Сопровождающие чертежи, которые включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами, на которых:
Фиг.1 иллюстрирует схему работы системы для антивирусной проверки скачиваемых из сети данных на стороне сервера.
Фиг.2 иллюстрирует основные составляющие прокси-сервера.
Фиг.3 иллюстрирует пример взаимодействия сервера данных, модуля анализа и приема данных и базы данных прокси-сервера.
Фиг.4 иллюстрирует примерную реализацию алгоритма определения уровня общей вероятности того, скачиваемые файлы содержат вредоносный программный код.
Фиг.5 иллюстрирует пример взаимодействия сервера данных, модуля анализа и приема данных и базы данных прокси-сервера для определения уровня общей вероятности того, что скачиваемые файлы содержат вредоносный программный код.
Фиг.6 иллюстрирует возможную классификацию скачиваемых объектов в зависимости от уровня общей вероятности.
Фиг.7 иллюстрирует алгоритм работы антивирусной проверки на стороне сервера скачиваемых из сети данных.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
На Фиг.1 изображена схема работы системы для антивирусной проверки на стороне сервера скачиваемых из сети данных.
Далее в качестве одного из вариантов реализации будет рассмотрена проверка на стороне сервера данных, скачиваемых явным образом, то есть, например, когда пользователь нажимает в окне интернет-браузера на ссылку "скачать файл".
Основными составляющими системы для антивирусной проверки скачиваемых из сети данных на стороне сервера являются ПК 101, прокси-сервер 102, сеть Интернет 103 и сервер данных 104.
Для того чтобы скачать необходимые данные от сервера данных 104, которым могут быть HTTP или FTP, или SMTP, или РОР3 и другие серверы, ПК 101 формирует и направляет запрос на скачивание данных через прокси-сервер 102 и через сеть Интернет 103 на сервер данных 104. В ответ на запрос сервер данных 104 направляет нужные данные через Интернет на прокси-сервер 102. Прежде чем отправить на ПК 101 полученные от сервера данных 104 данные, они проверяются на наличие вредоносного программного кода на прокси-сервере 102.
На Фиг.2 изображены основные составляющие прокси-сервера 102.
Сервер состоит из модуля передачи данных 201, антивирусного модуля 202, базы данных прокси-сервера 203, модуля анализа и приема данных 204, модуля обратной связи 205 и кэша 206. Данные, направляемые сервером данных 104 в ответ на запрос, через сеть Интернет 103 на ПК 101 попадают на прокси-сервер 102, а более конкретно на модуль анализа и приема данных 204. Далее происходит определение уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код. Модуль анализа и приема данных 204 определяет такие параметры скачиваемых данных как, например, расширение скачиваемого файла, источник данного скачиваемого файла, а также размер скачиваемого файла, имя файла и его контрольную сумму. Параметры скачиваемых данных, определяемые модулем анализа и приема данных 204, не ограничиваются указанными примерами. Модуль анализа и приема данных 204 также связан с обновляемой базой данных прокси-сервера 203, которая содержит правила для определения вероятностей того, что скачиваемые данные содержат вредоносный программный код. Данные правила основаны на трех основных переменных, таких как расширение скачиваемого файла, уровень безопасности источника данного скачиваемого файла и существующий уровень угроз, и могут быть основаны на нечеткой или на классической логике. База данных прокси-сервера 203 также содержит правила для определения глубины антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код.
Рассмотрим процесс определения уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, более подробно на примере. На Фиг.3 изображено взаимодействие сервера данных 104, модуля анализа и приема данных 204 и базы данных прокси-сервера 203 для нашего примерного случая. На ПК 101 предпринимается попытка скачать данные с сервера данных 104 по адресу http://hotstuff.com (адрес вымышленный). Данные, которые хотят скачать, представляют собой исполняемый файл с расширением .ЕХЕ, например Hello.exe. Файл скачивается явным образом, то есть пользователь ПК 101 нажимает в окне интернет-браузера на ссылку "скачать файл". Подобную информацию о скачиваемом файле и о его источнике определяет модуль анализа и приема данных 204 и сопоставляет их с данными их базы данных прокси-сервера 203. Для определения вероятностей того, что скачиваемые данные содержат вредоносный программный код, в базе данных прокси-сервера 203 находятся три основных переменных: "Тип данных", "Источник" и "Уровень угроз". В базе данных прокси-сервера 203 в зависимости от реализации могут находиться и другие переменные, такие как, например, "Размер скачиваемых данных", "Уровень защиты" и т.д. В зависимости от определенного типа скачиваемых данных его источника и уровня угроз в базе данных прокси-сервера 203 выбираются правило 1, правило 2 и правило 3, основанные на нечеткой логике. Каждое правило определяет свою вероятность в нечетком виде. Далее вероятности, определенные таким способом, переходят от нечетких значений к четким и вносят свой вклад в значение общей вероятности того, что скачиваемые данные содержат вредоносный программный код. Далее значение общей вероятности вновь переводится в нечеткий вид, определяя таким образом уровень общей вероятности.
На Фиг.4 изображена примерная реализация алгоритма для определения уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, основанного на нечеткой логике. Алгоритм рассматривает предложенный ранее пример. На этапе 401, после того как пользователь ПК нажимает в окне интернет-браузера на ссылку "скачать файл", данные от сервера данных 104 поступают на модуль анализа и приема данных 204. Модуль анализа и приема данных 204 определяет, что скачиваемым контентом является исполняемый файл с расширением .ЕХЕ, адресом источника данного файла является http://hotstuff.com. На этапе 402 модуль анализа и приема данных 204 сопоставляет эти определенные данные с данными из базы данных прокси-сервера 203. После того, как данные сопоставлены, на этапе 403 для каждой из переменных находятся правила, основанные на нечеткой логике. В каждом правиле для каждой переменной будет присутствовать лингвистическая переменная "Вероятность", которой соответствуют, например, три определения, такие как "Низкая", "Средняя" и "Высокая". Подобным правилом для переменной "Тип данных", а именно для файла расширением .ЕХЕ, может быть подобное правило: "Если Разрешение скачиваемого файла .ЕХЕ, ТО Вероятность того, что скачиваемый файл содержит вредоносный программный код Высокая". О следующей переменной "Источник" может быть известно то, что он либо известен и безопасен, либо известен и опасен, либо неизвестно к какой категории он принадлежит. В связи с этим лингвистической переменной "Вероятность" также будут соответствовать три определения, такие как "Низкая", "Средняя" и "Высокая". Адрес источника данного файла является неизвестным и поэтому правило для него может быть следующим: "Если Источник скачиваемого файла не известен, ТО Вероятность того, что скачиваемый файл содержит вредоносный программный код Средняя". Как было сказано ранее, база данных прокси-сервера 203 периодически обновляется. В связи с этим обновляются и данные об уровне угроз на сегодняшний день. Поэтому переменной "Уровень угроз", которая не определяется модулем анализа и приема данных 204, и данные о которой находятся в базе данных прокси-сервера 203, всегда соответствует актуальное на текущий момент правило. Переменной "Уровень угроз" может соответствовать шкала от 1 до 10. Лингвистической переменной "Вероятность" в данном случае также будут соответствовать три определения, такие как "Низкая", "Средняя" и "Высокая". Правило для переменной "Уровень угроз" может быть следующим: Если Уровень угроз равен 8, ТО Вероятность того, что скачиваемый файл содержит вредоносный программный код Высокая". Таким образом, на выходе мы получили нечеткие значения и нам необходимо перейти обратно к четким значениям лингвистической переменной "Вероятность". Подобный процесс называется дефаззификация. На этапе 404 определяется диапазон значений из базы данных прокси-сервера 203, который соответствует тем определениям, которые принадлежат результирующей лингвистической переменной. Например, будет определено, что определению "Низкая" лингвистической переменной "Вероятность" будет соответствовать значение в диапазоне от 1 до 30%, определению "Средняя" лингвистической переменной "Вероятность" будет соответствовать значение в диапазоне от 31 до 50%, определению "Высокая" лингвистической переменной "Вероятность" будет соответствовать значение в диапазоне от 51 до 99%. Следует отметить, что количество определений для лингвистической переменной "Вероятность" может быть больше, чем представлено выше. Интервал значений для данных определений лингвистической переменной "Вероятность" для каждой переменной, такой как "Тип данных", "Источник", "Уровень угроз", может варьироваться. Далее на этапе 405 из этих значений вероятности, лежащих в определенных диапазонах, будут выбраны значения, которые будут отправлены на модуль анализа и приема данных 204. Модуль анализа и приема данных 204 в простейшем варианте посчитает среднее арифметическое из этих значений вероятностей, и это значение будет общей вероятностью того, что скачиваемые данные содержат вредоносный программный код. В базе данных прокси-сервера 203 также находится лингвистическая переменная "Общая вероятность", уровню которой соответствуют, например, пять определений, такие как "Низкая", "Выше низкой", "Средняя", "Ближе к высокой" и "Высокая", и заданы диапазоны значений, которые соответствуют тому или иному определению лингвистической переменной "Общая вероятность". Они также находятся в базе данных прокси-сервера 203. Например, в нашем случае определению "Низкая" будет соответствовать общая вероятность в диапазоне от 1 до 15%, определению "Выше низкой" будет соответствовать общая вероятность в диапазоне с 16 до 30%, определению "Средняя" будет соответствовать общая вероятность от 31 до 40%, определению " Ближе к высокой" будет соответствовать общая вероятность от 41 до 50%, определению "Высокая" будет соответствовать общая вероятность от 51 до 99%. Пусть общая вероятность в нашем примере после приведения к среднему арифметическому равна 65%. Соответственно на этапе 405 мы перейдем от четкого значения переменной "Общая вероятность" в 65% к нечеткому значению "Высокий", определяющему уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код. Данный этап называется фаззификация. Далее на этапе 406 в зависимости от уровня общей вероятности выбирается дальнейшее развитие алгоритма для антивирусной проверки на стороне сервера скачиваемых из сети данных.
В другой частной реализации системы для антивирусной проверки на стороне сервера скачиваемых из сети данных определение общей вероятности того, что скачиваемые данные содержат вредоносный программный код, может быть основано на классической логике.
i
i
i
На Фиг.5 изображено взаимодействие сервера данных 104, модуля анализа и приема данных 204 и базы данных прокси-сервера 203 для данной частной реализации системы для антивирусной проверки на стороне сервера скачиваемых из сети данных. Информацию о скачиваемом файле и о его источнике определяет модуль анализа и приема данных 204 и сопоставляет их с данными их базы данных прокси-сервера 203. В базе данных прокси-сервера 203 находятся три основных переменных: "Тип данных", "Источник" и "Уровень угроз", которые необходимы для определения уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код. В зависимости от определенного типа скачиваемых данных, его источника и уровня угроз в базе данных прокси-сервера 203 выбирается ряд правил, таких, как правило 1, правило 2 и правило 3, основанных на классической логике. Каждому правилу соответствует определенная вероятность p(i=1…n, где n - номер последнего правила), которая может изменяться только при изменении самого правила после обновления базы данных прокси-сервера 203. Коэффициент k, заложенный в правило, влияет на выставляемую правилом вероятность. Коэффициенты k также находятся в базе данных прокси-сервера 203 и обновляются. Для каждого скачивания данных может сработать сразу несколько правил. Каждое правило дает вклад в формирование конечного вывода о том, каков уровень общей вероятности того, что данные содержат вредоносный программный код. Вклад от каждого правила складывается из двух составляющих: базовой вероятности p и коэффициента k. Далее вклады от каждого правила суммируются, формируя уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код. Если уровень общей вероятности превышает некое пороговое значение, то процесс скачивания признается опасным, а соответствующий скачиваемый объект - содержащим вредоносный программный код. Пороговое значение может быть предустановлено на модуле анализа и приема данных 204 или же модуль анализа и приема данных 204 может запрашивать данные о пороговых значениях из базы данных прокси-сервера 203, которые могут там храниться и постоянно обновляться.
На Фиг.6 изображена возможная классификация скачиваемых объектов в зависимости от уровня общей вероятности. Например, в модуле анализа и приема данных 204 может быть предустановлено четыре порога по уровню общей вероятности, таких как "Вероятность высокая" 607, "Вероятность ближе к высокой" 606, "Вероятность средняя" 605 и "Вероятность выше низкой" 604. В зависимости от того, какой уровень общей вероятности предопределили правила для скачиваемых данных, могут выделяться три основных классификации этих данных. Если уровень общей вероятности ниже, чем порог "Вероятность выше низкой" 604, то скачиваемые данные с высокой долей вероятности не содержат вредоносного программного кода и являются безопасными 601, если уровень общей вероятности выше, чем порог "Вероятность выше низкой" 604, но ниже, чем порог "Вероятность ближе к высокой" 606, то скачиваемые данные могут содержать вредоносный программный код и являются подозрительными 602, если уровень общей вероятности выше, чем порог "Вероятность ближе к высокой" 606, то скачиваемые данные с высокой долей вероятности содержат вредоносный программный код и являются вредоносными 603. Стоит отметить, что если уровень общей вероятности превысит порог "Вероятность высокая" 607, то это предопределит одно из двух возможных развитий алгоритма для антивирусной проверки на стороне сервера скачиваемых из сети данных. Если уровень общей вероятности не превысит порог "Вероятность высокая" 607, то будет выбран второй вариант развития алгоритма для антивирусной проверки на стороне сервера скачиваемых из сети данных.
На Фиг.7 изображен общий алгоритм для антивирусной проверки на стороне сервера скачиваемых из сети данных.
На этапе 701 происходит описанное выше определение уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код. Например, данные могут скачиваться явным образом, то есть пользователь ПК 101 нажимает в окне интернет-браузера на ссылку "скачать файл". Далее, если на этапе 702 модулем анализа и приема данных 204 будет определено, что уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, высокий, то дальнейшее развитие алгоритма продолжится на этапе 703. На этом этапе модуль анализа и приема данных 204 передает информацию о высоком уровне общей вероятности того, что скачиваемые данные содержат вредоносный программный код на антивирусный модуль 202. После этого антивирусный модуль 202, а также модуль анализа и приема данных 204 работают в режиме высокой опасности. В данном режиме модуль анализа и приема данных 204 полностью скачивает данные от сервера данных 104 в кэш 206. В это же время антивирусный модуль 202 инициирует модуль обратной связи 205, который передает на ПК 101 HTML-страницу или HTML-страницу с Java-скриптом или HTML-страницу с AJAX. Эта HTML-страница автоматически открывается в интернет-браузере на ПК 101 и отображает ход скачивания запрашиваемых данных на прокси-сервер 102, а именно в кэш 206, а также их дальнейшей антивирусной проверки после скачивания антивирусным модулем 202, обеспечивая, таким образом, обратную связь. После того, как данные будут скачаны в кэш 206, антивирусный модуль 202 начнет выполнять антивирусную проверку. На этапе 704 проверка на присутствие вредоносного программного кода в скачиваемых данных антивирусным модулем 202 закончена и, если вредоносный программный код не обнаружен, то на этапе 705 антивирусный модуль 202 инициирует модуль передачи данных 201, который направляет данные на ПК 101 из кэша 206. Кэш 206 очищается. Если же вредоносный программный код обнаружен, то антивирусный модуль 202 предпринимает попытку лечения зараженных скачиваемых данных на этапе 706. Если на этапе 707 лечение удалось, то на этапе 705 модуль передачи данных 201 направляет данные на ПК 101 из кэша 206. Если же на этапе 707 лечение зараженных данных не удалось, то на этапе 708 антивирусный модуль 202 инициирует модуль обратной связи 205 на передачу на ПК 101 сообщения о том, что скачиваемые данные содержат вредоносный программный код. Данные не поступают к пользователю, соединение разрывается. Кэш 206 очищается.
Если на этапе 702 модулем анализа и приема данных 204 будет определено, что уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, невысокий, то дальнейшее развитие алгоритма продолжится этапом 709. На этапе 709 модуль анализа и приема данных 204 передает информацию о невысоком уровне общей вероятности того, что скачиваемые данные содержат вредоносный программный код на антивирусный модуль 202. После этого антивирусный модуль 202, а также модуль анализа и приема данных 204 работают в режиме низкой опасности. Далее модуль анализа и приема данных 204 начнет передавать поступающие от сервера данных 104 данные через антивирусный модуль 202 на модуль передачи данных 201, который в свою очередь будет передавать эти данные на ПК 101. Антивирусный модуль 202 отдает данные модулю передачи данных 201 небольшими порциями еще до окончания полной проверки. В зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, настраивается глубина антивирусной проверки, которая в свою очередь влияет на то, насколько быстро данные окажутся на ПК 101. Подобная настройка происходит на этапах 703 и 709 соответственно. Модуль анализа и приема данных 204 сообщает данные об уровне общей вероятности на антивирусный модуль 202, который, опираясь на правила для данных уровней общей вероятности, определяет глубину антивирусной проверки. Чем выше уровень общей вероятности, тем сложнее и дольше проверка. Варьирование глубины антивирусной проверки может осуществляться путем добавления различных типов анализа данных на присутствие вредоносного кода, таких как сигнатурный анализ, эвристический анализ и другие известные на сегодняшний день механизмы определения вредоносного программного кода. Определение глубины антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, может определяться с помощью правил, основанных как на классической, так и на нечеткой логике, находящихся в базе данных прокси-сервера 203. Например, в описываемой реализации системы для антивирусной проверки на стороне сервера скачиваемых из сети данных может быть предусмотрено правило, находящееся в базе данных прокси-сервера 203, что если уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, определенная модулем анализа и приема данных 204, высокий, то глубина антивирусной проверки максимальная. По-другому обстоят дела, если уровень общей вероятности того, что скачиваемые данные содержат вредоносный программный код, является невысоким. Помимо того, что в данном случае мы имеем другое развитие алгоритма для антивирусной проверки на стороне сервера скачиваемых из сети данных, а именно передачу на ПК 101 данных во время их проверки антивирусным модулем 202, можно в данном случае также варьировать глубину антивирусной проверки. Как было сказано ранее, для примерного случая лингвистической переменной "Общая вероятность" соответствуют определения "Низкая", "Выше низкой" "Средняя", "Ближе к высокой" и "Высокая". Для развития алгоритма, предполагающего передачу данных на ПК во время антивирусной проверки данных, интересны четыре первых определения. Для каждого такого определения в базе данных прокси-сервера 203 находится свое правило. Например, если уровень общей вероятности будет соответствовать определению "Низкая", то антивирусный модуль 202, основываясь на соответствующем правиле из базы данных прокси-сервера 203, выполнит только быструю сигнатурную проверку. Или же, если уровень общей вероятности будет соответствовать определению "Ближе к высокой", то антивирусный модуль 202, основываясь на соответствующем правиле из базы данных прокси-сервера 203, выполнит максимально тщательную проверку.
В зависимости от глубины антивирусной проверки меняется скорость передачи данных во время антивирусной проверки. Если проверка максимально глубокая, то скорость передачи данных на ПК 101 во время антивирусной проверки минимальная. Если проверка неглубокая, например только сигнатурный анализ, то скорость передачи данных на ПК 101 во время антивирусной проверки становится существенно выше. Также в частном варианте глубину антивирусной проверки пользователь может устанавливать самостоятельно.
В частном варианте реализации возможна потоковая проверка данных антивирусным модулем 202 во время передачи данных от модуля анализа и приема данных 204 на ПК 101 через антивирусный модуль 202 и модуль передачи данных 201. Таким образом, скачиваемые данные разбиваются в модуле анализа и приема данных 205 на блоки и эти блоки направляются в антивирусный модуль 202, где эти блоки данных проверяются, и, если скачиваемые данные не содержат вредоносный программный код, то они направляются на ПК 101 через модуль передачи данных 201. Подобный процесс происходит для всех блоков, на которые разбиваются поступившие от файлового сервера 104 данные.
Далее, если на этапе 710 при антивирусной проверке антивирусным модулем 202 не будет обнаружено вредоносного программного кода в передаваемых на ПК 101 данных, то на этапе 711, как только антивирусная проверка заканчивается, модуль передачи данных 201 будет передавать данные на ПК 101 с увеличенной скоростью за счет отсутствия фактора антивирусной проверки, который снижает скорость. Если же на этапе 711 антивирусным модулем 202 будет обнаружено, что данные содержат вредоносный программный код, то в данном случае лечение невозможно, так как часть данных уже поступила пользователю. В данном случае на этапе 712 происходит разрыв связи, антивирусный модуль 202 через модуль передачи данных 201 передает на ПК 101 информацию о том, что скачиваемые данные содержат вредоносный программный код.
i
Если при невысоком уровне общей вероятности того, что скачиваемые данные содержат вредоносный программный код, антивирусным модулем 202 было обнаружено присутствие вредоносного программного кода в данных, то из этого следует, что уровень общей вероятности был определен неверно, и правила, на основании которых определялись вероятности, вносившие вклад в уровень общей вероятности, неточны. Поэтому на этапе 713 происходит корректировка базы данных прокси-сервера 203. Правила, основанные на нечеткой логике, которые были выбраны для определения уровня общей вероятности, отправляются на сервер компании, которая отвечает за предоставление антивирусных услуг, для анализа и корректировки. Если правила основаны на классической логике и для определения общей вероятности важен суммарный рейтинг правил, то на сторону поставщика услуг могут отправляться для редактирования только коэффициенты k. Таким образом, помимо обычного обновления базы данных прокси-сервера 203 для надежности детектирования предусмотрена обратная связь с поставщиком услуг для корректировки правил в случае, если определенный по правилам уровень общей вероятности и, соответственно, развитие алгоритма для антивирусной проверки на стороне сервера скачиваемых из сети данных не соответствуют действительности.
В частной реализации в базу данных прокси-сервера 203 может собираться статистическая информация о скачиваемых данных. Как правило, через прокси-сервер 102 данные скачиваются на большое количество ПК 101. На многие ПК 101 могут быть скачаны одинаковые данные, например одинаковые файлы с одного и того же сервера данных 104. Собранная статистика в данном случае позволяет определить заранее, скачивает ли пользователь файл, содержащий вредоносный программный код, или нет. В подобной частной реализации база данных прокси-сервера 203 может быть разделена на два взаимосвязанных раздела. В первом разделе находятся обновляемые правила для определения вероятностей того, что скачиваемые данные содержат вредоносный программный код для всех параметров скачиваемых данных, а также правила для определения глубины антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код. В другом разделе находятся статистические данные обо всех скачанных объектах, в том числе о таких, которые содержат вредоносный программный код. Такой информацией могут быть имена скачиваемых файлов, контрольные суммы скачиваемых данных, количество скачиваний одинаковых файлов, количество скачиваний с одного и того же сервера данных 104, сколько файлов, содержащих вредоносный программный код и несодержащих, скачано с какого-либо сервера данных 104 и т.д. В первом разделе базы данных прокси-сервера 203, содержащей правила для определения вероятностей того, что скачиваемые данные содержат вредоносный программный код для всех параметров скачиваемых данных, а также правила для определения глубины антивирусной проверки в зависимости от уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код, содержатся приоритетные правила для статистических данных. Подобные правила могут быть основаны как на нечеткой, так и на классической логике, пользователи множества ПК 101, которые загружают данные с сервера данных 104 через прокси-сервер 102, могут создавать свои, привязанные к ним, правила. Таким правилом, например, может быть следующее правило, основанное на нечеткой логике: "Если Источник скачиваемого файла известен и безопасен И Количество скачиваний файла более 50 раз, то вероятность того, что скачиваемый файл содержит вредоносный программный код Низкая". На начальном этапе работы системы для антивирусной проверки на стороне сервера скачиваемых из сети данных параметры скачиваемых данных определяются модулем анализа и приема данных 204 и сопоставляются с правилами из первого раздела базы данных прокси-сервера 203 для определения уровня общей вероятности того, что скачиваемые данные содержат вредоносный программный код. В это же время набирается статистическая информация и помещается во второй раздел базы данных прокси-сервера 203. По мере накопления статистических данных модулем анализа и приема данных 204 начинают работать приоритетные правила, связанные со статистической информацией. Если, например, название данного скачиваемого файла и его контрольная сумма совпадают с названием и контрольной суммой файла из второго раздела базы данных прокси-сервера 203, содержащего статистическую информацию, который был скачан более пятидесяти раз и не содержал вредоносного программного кода, тогда важнее будет приоритетное статистическое правило для данного случая. Подобное правило может установить уровень общей вероятности на самый низкий уровень, предопределяя дальнейшее развитие алгоритма и минимально возможную глубину антивирусной проверки антивирусным модулем 202. Возможно также правило, благодаря которому антивирусная проверка для подобных файлов может отсутствовать для увеличения скорости передачи данных на ПК 101. В противном же случае, например, если название файла и его контрольная сумма соответствуют файлам, которые были скачаны более пятидесяти раз, и каждый раз антивирусная проверка выявляла содержание вредоносного программного кода в этих файлах, то тогда важнее будет приоритетное статистическое правило для данного случая. Подобное правило может установить уровень общей вероятности на максимальный уровень, предопределяя дальнейшее развитие алгоритма и максимально возможную глубину антивирусной проверки антивирусным модулем 202. В данном случае возможно также правило, предписывающее инициацию антивирусным модулем 202 модуля обратной связи 205 для передачи на ПК 101 сообщения о том, что скачиваемые данные содержат вредоносный программный код и последующий разрыв соединения без антивирусной проверки антивирусным модулем 202.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.