СПОСОБ УМЕНЬШЕНИЯ ВРЕМЕНИ ПРОХОЖДЕНИЯ ИСПОЛНЯЕМОГО ФАЙЛА ЧЕРЕЗ КОНТРОЛЬНУЮ ТОЧКУ
METHOD OF REDUCING TRANSMISSION TIME OF RUN FILE THROUGH TEST POINT

Область техники, к которой относится изобретение
Настоящее изобретение относится к области техники обнаружения злоумышленного содержимого. Более конкретно, настоящее изобретение относится к способу сокращения времени передачи исполняемого файла через контрольную точку (к примеру, шлюз), в которой проверяется целостность этого исполняемого файла.
Предшествующий уровень техники
Термин "шлюз" в данной области техники относится к мосту между двумя сетями. Для каждой сети шлюз - это точка, которая выступает в качестве входа в другую сеть. С точки зрения реализации шлюз часто ассоциативно связан с маршрутизатором, который знает, куда направлять данный пакет, который поступает в шлюз, и коммутатором, который предоставляет пакету фактический путь в и из шлюза. Вследствие своей природы шлюз к локальной сети - это надлежащая точка проверки файлов, которые проходят через него, с тем, чтобы обнаруживать вирусы и другие формы злонамеренных действий ("проверка") до их попадания к пользователю.
Поскольку процесс проверки отнимает время, проверка оказывает существенное влияние на скорость трафика через контрольную точку, к примеру шлюз. Патентная заявка (США) номер 10/002407, озаглавленная "Security Router", посвящена проблеме скорости посредством пропуска проверки доверенных файлов. Согласно этому изобретению, поскольку мультимедийные файлы (к примеру, файлы JPG) не содержат исполняемого кода (согласно их описанию), проверка может пропускать эти файлы и тем самым уменьшать задержку, вызываемую процессом проверки.
В этом отношении файлы, которые содержат исполняемый код, делятся на две категории: файлы, которые должны быть полностью доступны для средств проверки в ходе процесса проверки, и файлы, которые могут быть частично доступны для средств проверки в ходе процесса проверки, к примеру файлы HTML. Файлы, которые должны быть полностью доступны для проверки (упоминаемые в данном документе файлы FA), могут вызывать существенную задержку прохождения трафика через контрольную точку, поскольку проверка может начинаться только после того, как весь файл доступен средствам проверки. Патентная заявка (США) номер 09/498093, озаглавленная "Protection of computer networks against malicious content", посвящена проблеме задержки посредством удержания в контрольной точке только последнего пакета файла и освобождения его после того, как файл помечен как безопасный.
Настоящее изобретение посвящено исполняемым файлам, которые могут быть частично доступны средствам проверки в ходе процесса проверки, таким как файлы HTML. Эти файлы упоминаются в данном документе как файлы PA. В случае файлов PA удержание последнего пакета в контрольной точке не является корректным решением, поскольку файлы HTML исполняются/отображаются обозревателем в момент, когда первый пакет поступает на машину пользователя, и поэтому, если они содержат злонамеренное исполняемое содержимое, злонамеренное содержимое может начать действовать до того, как прибудет последний пакет. Удержание всего файла в шлюзе также не является корректным решением, поскольку задержка может быть интерпретирована пользователем как проблемы связи.
Поэтому цель настоящего изобретения - предоставить способ уменьшения времени прохождения исполняемого файла, особенно файлов PA, через контрольную точку, в которой проверяется целостность упомянутого исполняемого файла.
Другие цели и преимущества изобретения станут очевидными из нижеследующего описания.
Сущность изобретения
Способ уменьшения времени прохождения исполняемого файла (файла HTML, файла сценария, веб-страницы, файла EXE, сообщения электронной почты и т.п.) через контрольную точку (к примеру, шлюз), в которой проверяется целостность упомянутого исполняемого файла, при этом упомянутый способ содержит этапы, на которых: принимают и накапливают части упомянутого исполняемого файла, которые достигают упомянутой контрольной точки; проверяют целостность накопленных частей; освобождают и отправляют накопленные части, которые помечены как безопасные, по адресу назначения ускоренным способом; освобождают и отправляют накопленные части, которые не помечены как безопасные, или злоумышленные по их адресу назначения замедленно; и после отметки о злоумышленности упомянутых накопленных частей выполняют процедуру оповещения. Согласно предпочтительному варианту осуществления изобретения прием и/или отправка данных осуществляется на нижних уровнях модели OSI, главным образом на сетевом уровне.
Краткое описание чертежей
Настоящее изобретение может быть лучше понято совместно со следующими чертежами.
Фиг.1 схематично иллюстрирует систему, которая может быть использована для реализации настоящего изобретения.
Фиг.2 - это блок-схема последовательности операций процесса проверки целостности файла PA в контрольной точке согласно предпочтительному варианту осуществления изобретения.
Фиг.3a - это блок-схема последовательности операций подпроцесса, в котором пакеты, которые приходят в контрольную точку, накапливаются в хранилище согласно предпочтительному варианту осуществления изобретения.
Фиг.3b - это блок-схема последовательности операций подпроцесса, в котором проверяются данные, находящиеся в хранилище согласно предпочтительному варианту осуществления изобретения.
Фиг.3c - это блок-схема последовательности операций подпроцесса, в котором данные, которые помечены как безопасные, передаются в точку назначения согласно предпочтительному варианту осуществления изобретения.
Подробное описание предпочтительных вариантов осуществления
Фиг.1 схематично иллюстрирует систему, которая может быть использована для реализации настоящего изобретения. Вычислительные машины 21 подключены к локальной вычислительной сети 20. Локальная вычислительная сеть 20 подключена к Интернету 10. Шлюзовой сервер 30 размещен между локальной вычислительной сетью 20 и Интернетом 10. Интернет-сервер 40 размещает веб-узлы. Обозреватель, исполняемый на вычислительной машине 21, который переходит по адресу на веб-узел, размещенный на Интернет-сервере 40, обуславливает передачу файлов из Интернет-сервера 40 на вычислительную машину 21 посредством шлюзового сервера 30.
OSI, акроним от взаимодействия открытых систем (OSI), - это стандарт, который задает то, как сообщения передаются между двумя точками в телекоммуникационной сети. OSI делит телекоммуникации на семь уровней. Верхние четыре уровня (4-7) задают то, как сообщения проходят от и к пользователю. Нижние три уровня (1-3) используются, когда сообщение проходит через узловую вычислительную машину.
Семь уровней модели OSI следующие:
Уровень 7 - прикладной уровень, который работает со службами к приложениям;
Уровень 6 - уровень представления, который преобразует информацию;
Уровень 5 - сеансовый уровень, который обрабатывает проблемы, которые не являются вопросами, связанными со связью;
Уровень 4 - транспортный уровень, который предоставляет протокол сквозной связи;
Уровень 3 - сетевой уровень, который маршрутизирует информацию в сети;
Уровень 2 - канальный уровень, который предоставляет контроль ошибок между соседними узлами;
Уровень 1 - физический уровень, который соединяет объектную сущность со средой передачи.
Уровень 7, прикладной уровень, предоставляет службы для приложений, которые конкретно направлены на то, чтобы выполняться по сети. Он реализован как шлюз и поддерживает такие протоколы, как DNS, FTP, SMTP и SNMP.
Уровень 3, сетевой уровень, маршрутизирует информацию в сети, т.е. главным образом транслирует логический сетевой адрес и имена в их физический адрес. Например, если маршрутизатор не может отправить такой объемный кадр данных, как отправленный исходной вычислительной машиной, сетевой уровень корректирует посредством разбиения данных на меньшие блоки. Он реализуется посредством маршрутизаторов, коммутаторов и т.д. и поддерживает такие протоколы, как IP, IPE и OSI.
В отношении настоящего изобретения разница между прикладным уровнем и сетевым уровнем заключается в типе доступных данных. Более конкретно, тогда как программа, исполняемая на прикладном уровне OSI, может осуществлять доступ к файлам, программа, исполняемая на сетевом уровне, может осуществлять доступ к пакетам.
Фиг.2 - это блок-схема последовательности операций процесса проверки целостности файла PA в контрольной точке согласно предпочтительному варианту осуществления изобретения.
Прохождение данных между уровнями OSI не имеет значения при рассмотрении отдельного файла, но при рассмотрении тысяч файлов как в сервере, который фильтрует данные, пришедшие в организацию, эта задержка имеет влияние на производительность сервера. Поэтому реализация способа на нижних уровнях модели OSI, к примеру сетевом уровне, уменьшает задержку, вызываемую проверкой данных. Тем не менее следует отметить, что способ, описанный в данном документе, может быть реализован на других уровнях модели OSI. Таким образом, хотя в данном документе делается ссылка на пакеты, способ может быть реализован также посредством форм данных, которые доступны в рамках модели OSI, к примеру порций данных.
Процесс начинается на этапе 100, когда пакет файла PA, к примеру файла HTML принимается в контрольной точке.
На этапе 101 пакет добавляется в хранилище, к примеру в буфер памяти. Поскольку данные, заключенные в один пакет, могут быть недостаточны для проверки и поскольку пакеты не обязательно должны достигать контрольной точки в том же порядке, в каком они были отправлены, данные должны быть временно сохранены в хранилище до тех пор, пока накопленные данные не станут доступны для проверки.
Типично пакет имеет два типа информации - необработанные данные и заголовок, который содержит такую информацию, как IP-адрес назначения и IP-адрес источника пакета, положение необработанных данных в файле и т.д. Размер выходного пакета из контрольной точки не обязательно должен быть таким же, как размер входного пакета. Фактически, выходные данные могут быть разделены на пакеты различного размера по сравнению с их соответствующими входными пакетами. Например, пакет из 100 байт данных, который входит в шлюз, может быть выпущен посредством двух пакетов по 50 байт. Более того, выходной пакет может быть составлен из данных соседних пакетов и т.д.
От этапа 102, если данные, сохраненные в хранилище, достаточны для проверки, процесс переходит к процессу проверки (этап 104). Очевидно, что проверка может выполняться только над данными, доступными в хранилище. Если данных, сохраненных в хранилище, недостаточно для проверки, данные выпускаются замедленно 103, как описано далее.
С этапа 105:
Если проверенных данных недостаточно для того, чтобы указать их как безопасные или злоумышленные, процесс переходит к этапу 107, на котором данные, сохраненные в хранилище, отправляются по адресу назначения замедленно, чтобы удовлетворять двум целям - с одной стороны, не приводить к ошибке тайм-аута (превышения предела ожидания), с другой стороны, не позволить получателю (к примеру, обозревателю) принимать исполняемые данные, которые все же не были помечены как безопасные. Это может быть выполнено множеством способов, например, посредством периодической отправки небольших объемов данных (к примеру, пакета с 1 байтом данных) после умышленной задержки и т.д.
Если проверенные данные помечены как злоумышленные, процесс переходит к этапу 106, на котором выполняется процедура оповещения, и типично передача файла HTML по адресу назначения прерывается на этапе 109.
Тем не менее, если данные, сохраненные в хранилище, помечены как безопасные, процесс переходит к этапу 108, на котором проверенные данные отправляются по адресу назначения ускоренным способом, чтобы убыстрить передачу доверенных данных по адресу назначения. Это может быть выполнено множеством способов, например составлением более крупных пакетов и отправкой данных без задержки.
Вообще говоря, когда пакет отправлен от источника по адресу назначения, подтверждение, касающееся приема пакета, должно быть принято источником в течение заранее определенного периода, иначе источник интерпретирует задержку как проблемы связи и повторно отправляет пакет по адресу назначения. Таким образом, средство, размещенное между источником и адресом назначения (к примеру, контрольная точка), чтобы задерживать пакет, должно обмениваться данными и с источником, и с адресом назначения. Промежуточное средство обменивается данными с источником и отправляет подтверждение приема пакета по адресу назначения и обменивается данными с адресом назначения в то время, когда отправляется пакет. Чтобы обмениваться данными и с источником, и с адресом назначения, промежуточное средство выполняет имитацию. Оно обменивается данными с источником, "притворяясь" адресом назначения, и обменивается данными с адресом назначения, "притворяясь" источником. Специалисты в данной области техники должны принимать во внимание, что эта методика хорошо известна в данной области техники и реализуется множеством сетевых средств проверки, например, eSafe Appliance компании Aladdin Knowledge Systems.
Этап 107 направлен на "выпускание" данных, которые поступают в контрольную точку, замедленно. С одной стороны, пакет должен задерживаться в контрольной точке до тех пор, пока не будет определена целостность его данных; с другой стороны, эта задержка может приводить к ошибкам тайм-аута. Согласно настоящему изобретению этот конфликт может быть разрешен посредством выпускания небольших объектов данных в течение разрешенного периода (согласно правилам передачи сети). Например, пакет в 1024 байта данных восстанавливается как 1024 пакета по 1 байту каждый. Поскольку каждый пакет имеет дополнительные данные, такие как источник пакета, адрес назначения, его размер и т.д., отправка 1024 пакетов по одному байту отнимает больше времени, чем отправка одного пакета в 1024 байта.
Это одно решение по отправке данных замедленно. Фактически отправка данных замедленно может быть выполнена множеством способов. Например, вместо отправки принимаемых пакетов данных сразу после их приема в контрольной точке пакеты отправляются периодически таким образом, чтобы период был меньше, чем предел времени ожидания в сети передачи данных. Разумеется, пакет может быть отправлен сразу, но умышленная задержка может быть вставлена между двумя последовательными пакетами. Более того, посредством отправки небольших объемов данных (к примеру, пакет с 1 байтом данных) передача служебных данных увеличивается и поэтому скорость передачи снижается. В читаемых файлах, таких как HTML, могут быть вставлены фиктивные данные, например комментарии HTML. При этом когда выполняется сеанс связи, исполняемый код не поступает в обозреватель до тех пор, пока содержимое не помечается как безопасное.
С точки зрения реализации существует несколько процессов, которые могут выполняться параллельно: получение пакетов от источника, процесс проверки и выпускание пакетов по адресу назначения.
Фиг.3a - это блок-схема последовательности операций первого процесса, при котором сервер, работающий в контрольной точке, ищет новые пакеты проверяемого файла, которые приняты на этапе 210 в контрольной точке, и в случае положительного ответа необработанные данные новых пакетов добавляются в хранилище на этапе 212. Первый подпроцесс завершается после того, как новые пакеты добавлены на этапе 213 в хранилище или если нет доступных новых пакетов проверяемого файла (этап 211).
Фиг.3b - это блок-схема последовательности операций второго процесса, при котором, если новые данные доступны в хранилище (этап 220), данные в хранилище проверяются на этапе 222. После этапа 223, если проверенные данные помечены как злоумышленные, на этапе 224 активируется процедура оповещения и затем передача файла может прекратиться на этапе 226. Если после этапа 223 проверенные данные помечены как безопасные, то некоторые данные, обычно проверенные данные, помечаются как доступные, чтобы быть отправленными по адресу назначения на этапе 225. Подпроцесс завершается, если нет доступных новых пакетов в хранилище на этапе 221; после отправки данных, которые помечены как безопасные, по адресу назначения на этапе 228; или если данные в хранилище не могут быть проверены (этап 227).
Фиг.3c - это блок-схема последовательности операций третьего процесса, на котором с этапа 230, если новые данные доступны, чтобы быть отправленными по адресу назначения, доступные данные составляются как пакеты 232, которые отправляются по адресу назначения 233. После этого отправленные данные удаляются из хранилища и т.п. на этапе 234. Третий процесс завершается, если нет новых данных, которые должны быть отправлены по адресу назначения (этап 231) или после того, как доступные данные были отправлены (этап 235).
Изобретение также может быть реализовано для файлов FA или других типов файлов. Фактически, изобретение может быть реализовано в любых случаях, когда файл, передаваемый от источника адресу назначения, должен быть задержан в точке между источником и адресом назначения без нарушения правил передачи (к примеру, тайм-аута).
Специалисты в данной области техники должны принимать во внимание, что изобретение может быть осуществлено посредством других форм и способов без отступления от области применения изобретения. Варианты осуществления, описанные в данном документе, должны рассматриваться как иллюстративные, а не ограничивающие.