专利名称:抵制有害代码和数据的扩散的制作方法
技术领域:
本发明涉及一种用于抵制有害代码和数据的扩散的系统和操作 该系统的方法。
背景技术:
在过去的十年中,计算机系统越来越多地受到有害(unwanted) 代码的攻击。(到目前为止)最极端的有害代码的示例是计算机病毒。 如同其生物学上的同名物,计算机病毒能够使一台机器感染,然后从 这台机器开始,通过征用电子邮件系统的资源,利用其所登陆(land) 的每台计算机的地址簿,将包含病毒的电子邮件从一台计算机发送到 许多其它台计算机,从而感染其它机器。
所产生的浪费的带宽令用户十分烦恼。此外,许多病毒在所登陆 的每台计算机上执行一些有害的动作,例如可能包括擦除文件。
典型地,病毒作为单独的附件中的可执行代码而到达,但是它们 也可以隐藏于电子邮件的一部分中,从而可以在不需要用户明确地分 离并执行代码的情况下变得活跃。诸如字处理器、电子表格和数据库 之类的许多应用包括强大的宏脚本语言,它允许看似文档的文件包括 能够执行特定操作的脚本。病毒编写者利用这种脚本语言来编写宏病 毒,从而包括看似文档的文件的电子邮件附件可能包含隐藏的病毒。
病毒不是有害代码的唯一形式。常见的是,待分发的"免费"软 件具有隐藏的"Spyware",其被隐蔽地安装在用户的计算机上,并随 后把所访问的网站或其他事务报告给远端计算机。 一些Spyware将导 致有害广告的显示。 一些Spyware将试图使调制解调器重复拨出高价 号码,Spyware的编写者借此从电信运营商处获得收益。其它类型的 有害代码包括Malware、蠕虫和陷门(Trapdoor)。
尽管病毒是从一台计算机至另一台计算机自我传播的,但是其它 形式的有害代码通过垃圾电子邮件、在盘上的隐藏分布、或者日益增 多地,从不经意访问的网站下载而得以分发。所有这些类型的有害代 码具有共同点其存在或其真实目的对它们锁定为目标的计算机的所 有者和用户都是隐藏的。尽管一些类型的有害代码相对无害,但是其 它的有害代码能够擦去有价值的商业数据,因而用于提供反病毒软件 的行业得以发展。
目前己知的反病毒软件包括在待保护的计算机上执行的程序。典 型地,这种程序在监控模式下操作,其中每次访问文件时都对要访问 的文件检査病毒;以及在扫描模式下操作,其中对特定位置(如盘驱 动器)中的所有文件进行扫描。反病毒程序提供商监控病毒的爆发, 并且当检测到新病毒时,反病毒程序公司分析该病毒并提取可以用于 检测该病毒的数据。然后,这个数据可用于运行所涉及的特定反病毒 程序的计算机;典型地,通过在反病毒程序公司的网站上提供该数据
以便下载。
以各种不同方式检测病毒。可以存储形成该病毒一部分的特征代 码串,并针对输入的文件扫描该串的存在,因而该串用作病毒的"签
名"或"指纹"。可选地,可以通过病毒的预期行为来检测病毒;可以 解析源代码或脚本文件,以检测作为病毒特征的预定操作。
不幸地,类似于它们的生物学同名物,病毒很容易"变异";代 码中的微小改变(等同于大小写字母的替换)会改变病毒的签名。因 此,无论通过什么方法来检测病毒的数据文件变得极大,相应地,反 病毒程序所花费的时间也随着待检査的签名或规则的个数的增加而增 加。尽管这在病毒扫描模式下是可接受的,但是在监控模式下,它给 访问文件所花费的时间增加了不断增长的等待时间。此外,随着下载 量变大并且需要更加频繁地下载,用户将无法下载必要的更新、以及 因而将无法针对最新(因而是最危险)的病毒而获得保护的风险非常 高。
发明内容
因此,本发明采用了防止有害代码的完全不同的保护方法。根据 本发明的一方面,提供了一种接收包含预定数据格式的内容数据的电 子文件的方法,所述方法包括以下步骤接收电子文件;确定数据格 式;解析内容数据,以确定其是否符合预定数据格式,以及如果所述
内容数据符合所述预定数据格式,则重新生成解析后的数据,以创建 具有所述数据格式的重新生成的电子文件。
还提供了相应的计算机系统、程序和承载该程序的介质。 本发明的实施例操作地用于分析每个所接收的文件,然后从中重 新构造替代文件。因为并不在要保护的计算机上直接存储或访问原始 文件本身,所以原始文件本身不能危害该计算机。例如,可以将原始 文件以比特反转形式或不能被执行的其它形式来存储。另一方面,将 使用仅会生成"干净"代码和数据的生成器例程来生成该替代文件。 因而不能够生成与所接收文件中的任何代码相匹配的有害代码。
本发明的一部分可以基于与计算机文件有关的某些长久已知的 事实的新应用。目前,输入计算机的大多数文件具有标准化的文件格 式。专有程序创建其自有的文件格式(以及要由那些程序所使用的数 据必须符合那些格式),但是存在在不同的专有程序之间交换数据的充 分需求,即首先,通常向一个专有程序提供输入过滤器以读取由另一 专有程序所写的数据,以及其次,存在不与任何专有程序相关联的若
干格式。这些通用格式的示例是ASCII文本、丰富文本格式(RTF)、 超文本标记语言(HTML)和可扩展标记语言(XML)。
因此,如果要通过任意应用程序来读取文件中的数据,则该数据 必须精确地符合严格的标准,而且不同的文件所使用的格式是公知的。 本发明的发明人实现了尽管允许文件所使用的格式有很宽的变化, 但是大多数文件包含满足某些相对窄的实用(pragmatic)限制的数据。 例如,大多数操作系统和应用将会接受很长的文件标题,但是大多数 用户在大多数时间使用简短并且易于识别的文件名。
因此,本发明实施例所执行的分析可以包括检测在其他方面符 合所声称的文件类型的规范的数据是否违反了实用限制。这些"现实 世界"的约束使本发明能够检测'正常'的可接受文件。不与该类型的实用限制相对应的任何文件内容不被传递至生成器程序,因而不会 以可执行的形式到达用户的计算机。
因此将会看出,本发明的实施例以和已知的反病毒程序本质上不 同的方式而操作。己知的反病毒程序旨在检测病毒,并使没有被检测 为病毒的所有事物通过。因此,这些反病毒程序总是不能保护用户免
受最大的危险;即,未知病毒的危险。所运行的每个新病毒在引起反
病毒公司的注意之前,必然已经感染了多台计算机。
此外,甚至在安装了反病毒软件、并且拥有更新的被检测数据集 的情况下,在可以由反病毒软件检测到之前,病毒也通常会存储在受 保护的计算机的硬驱动器或其它介质上。如果处于某种原因反病毒软 件不能运行,则病毒处于适当的位置并可被激活。
美国公开申请US 2003/0145213公开了一种系统,其中在文件中检 测宏或恶意代码。然后在模板中对该文件进行重构,并从该模板中删 除恶意代码,从而提供干净版本的文件。
通过完全的对比,本发明并不旨在检测病毒,或甚至典型地拒绝 类似于病毒的行为。相反,本发明可以拒绝所有输入的文件,并在其 可能的位置处以不包含有害代码和数据的所生成的文件进行替代。因 此,可以防止有害代码和数据以可执行的形式不断地到达要保护的计 算机的硬驱动器,并且不会从一台计算机传播到另一台计算机。
就此,可以提及的是,美国公开申请2003/229810公开了一种用于 保护免受病毒侵害的"光防火墙"的建议。出于那些将很快变得显而 易见的原因,并不认为该系统已经实现(或者可能实现)。它描述了一 种系统,其中防火墙计算机接收到诸如图像文件之类的文件,并在防 火墙计算机的显示器上显示该图像。光传感器阵列扫描该图像,然后 将扫描后的图像提供给意向接收者。隐藏于图像中的任何病毒没有被 显示,因而没有在扫描后的图像中传递。在变体中,可以使用屏幕的 位图来取代实际的屏幕显示器。
出于多种原因,在上述美国专利申请中提供的"光耦合器"防火 墙不能提供有效和可靠的反病毒保护。
例如,使用光学字符识别(OCR)软件进行再现可以提供不准确
的信息。此外,使用视频技术再现图像可以提供比预期较低质量的图 像。此外,如果输入的文件包含病毒,则接收输入的文件的计算机将 受到感染。
另一方面,通过分析然后重新生成文件而不是执行文件、显示文 件、并对文件进行光学扫描,本发明的实施例能够提供在大多数情况 下紧密地模仿原始文件(如果它没有有害代码)的替代文件,从而使 该替代是透明的。
文件格式的复杂度有所不同。在一种极端情况下,文本文件具有 简单格式。可以包含脚本或宏(如文字处理或电子表格文件)的文件 具有中等复杂度,而包含代码的文件仅能通过代码解析器进行完全的 分析。尽管根据本发明,这种代码分析从长远来看是可能的,但是本 发明的实施例可以方便地操作以从文档文件中删除所有宏和脚本,并 且不使单独包括程序、代码、宏或脚本的任何文件通过。
立即可以看出,存在用户希望接收这种文件的频繁的时机
(occasion)。因此,在优选实施例中,本发明可以和过滤器并排 (alongside)操作,所述过滤器被设置用于根据源对文件进行过滤, 从而总是使来自特定源的文件(或特定类型的文件)通过,而拒绝来 自其它源的文件。
因此,尽管本发明的实施例可以阻止用户接收来自所有源的文件 中的代码,但是并行滤波器仅允许来自已知源的这种文件。因此,用 户可以接收来自系统管理员或经证明的网站的文件,这将是本发明所 拒绝的。通过仅识别用户希望从其接收代码的那些源,本发明可以阻 断有害代码。
因为本发明可以通过检测与文件标准的符合度以及典型的用户行 为、而不是通过检测病毒而操作,所以不需要频繁的更新;这种更新 仅在大的变动获得普遍接受、或者用户行为发生实质改变的情况下才 需要,与分发反病毒更新所需的疯狂速度相比,这两种情况均是缓慢 的过程。同样地,由于要执行的测试个数在一段时间内或多或少保持 稳定,所以在启动程序的等待时间上花费的时间不会增加。
将在以下的说明书和权利要求中对本发明的这些和其他方面、实 施例和优点进行讨论。参照附图,将仅通过示例对本发明的实施例进 行描述,其中
图1A示出了根据本发明实施例的电子文件系统的框图1B示出了适用于本发明实施例的计算机系统;
图1C示出了根据本发明实施例的过程的流程图2示出了根据本发明第二实施例的电子邮件系统的框图3示出了根据本发明第二实施例的过程的流程图4示出了形成电子邮件的不同部分的示例性布局;
图5示出了根据本发明第三实施例的过程的流程图。
具体实施方式
第一实施例
图1A中示出了本发明第一实施例的基本系统布局。在源处创建 电子文件101,并通过传输介质103传输该电子文件101。传输介质 103可以是用于传输电子文件的任何适合的介质,包括硬连线 (hardwired)系统和无线系统。电子文件101以正常方式通过传输介 质103,直至到达其目的地。在该实施例中,将AV (反病毒)应用 105安装在目的地系统中。AV应用105进行操作,使得不允许输入电 子文件中的数据进入目的地操作系统107,直到参照预定义的可允许 格式进行了分析为止,以及如果确定该数据是可允许的,则重新生成 数据。因此,AV应用105确定是否允许电子文件101通过并到达操 作系统107。
图1B示出了适于实现本发明实施例的计算机系统。计算机109 在输入接口 111处接收输入电子文件101。输入接口 111与微处理器 113连接,微处理器113被设置用于对所接收的文件执行各种处理。 微处理器113包括解析器115。微处理器113还与存储设备117、盘驱 动器119和能够与诸如显示器125和键盘127之类的输出设备相连的 多个接口 (121, 123)连接。
从而,当输入的可执行文件进入AV应用时,不允许这些文件自 动运行,该系统对组成输入电子文件的数据进行布置,使其以任何适 当的加扰(scrambled)格式存储在存储器中。
在本实施例中,加扰方法对字节中的比特的顺序进行反转。艮P, 按顺序接收到比特0至7,但是将它们以比特反转方式进行存储,从 而比特0与比特7交换、比特1与比特6交换、比特2与比特5交换、 以及比特3与比特4交换。因此,作为示例,包括IOI IOOOO的字 节将以如下顺序存储0 0 0 0 1 1 0 1。以这种方式,任何可执行代码 都不能自动运行,所以任何受到感染的电子文件都不能够感染AV应 用或目的地操作系统。
作为位于文件的意向目的地的AV应用的备选,AV应用还可以位 于源、传输介质中的某处、或者只要能够在沿电子文件的传输路径的 某点处分析该电子文件的其他地方。
图1C示出了第一实施例中的AV应用105所执行的基本步骤的 流程图,以确定是否允许电子文件101通过并到达目的地操作系统 107。在步骤S109处,使用任何适当的手段将电子文件101输入AV 应用105。该输入手段可以取决于所接收的电子文件的类型和通过其 进行传输的介质。在该实施例中,将电子文件101接受至AV应用。
在步骤Slll中,通过符合度分析设备来执行分析,以确定电子 文件101是否符合预定格式。AV应用仅被设计用于允许符合多个所 存储的己知的、可允许的、预定格式之一的电子文件通过。通常,文 件包括根据包括特定规则组的文件类型规范而编码和设置的内容数 据,每种类型的文件(文本、HTML、 XML、电子表格等)具有相关 联的规则组。有时,通过文件名的后缀(例如.pdf、 .text、 .doc)来指 示公共文件类型,以及此外或可选地,通过文件中数据的前几个字节 来指示公共文件类型。许多文件类型包括指示与文件的结构有关的信 息的报头,之后是内容数据(例如,文本、数字、音频或图像数据)。
内容数据可以包括参数(例如,指示内容数据将以粗体呈现的标 签)。构成文件类型规范的规则可以规定这些参数能够采取的值或范 围。例如,这些规则还可以规定可允许的值或内容数据能够采取的值的范围。
能够打开特定类型文件的应用程序包括解析器,用于将构成文件 类型规范的规则应用于文件,以提取内容数据进行呈现或处理。例如,
文字处理应用能够打开其专有的文件格式(例如,Microsoft Word )、 其他文字处理应用的专有文件格式、以及诸如丰富文本格式(RTF)、 ASCII和HTML之类的通用文件格式的文件。能够将内容数据存储为 特定类型文件的应用程序包括生成器,用于将构成文件类型规范的规 则应用于内容数据,以生成所需格式的文件。
在本实施例中,对于每种文件类型而存储预定格式。通常,预定 格式包括构成文件规范的规则。然而,预定格式仅包括与格式中频繁 使用的部分有关的规则。此外,预定格式包括约束内容和参数可以采 取的值和/或范围的附加规则,从而仅包括通常和频繁使用的值和范 围。因此,根据该实施例相应存储的预定格式,仅能够对给定类型文 件中独占地包括频繁或通常出现的数据和参数的那些部分进行分析。
不允许通过系统的数据类型的组分(因为其不常使用,所以预定 格式并不包括与之有关的规则)的示例是文字处理后的文件中的复杂 宏和HTML页面中的I帧。不允许通过系统的不常使用的数据值(因 为预定格式被限制为排除了这些不常使用的值的值)的示例是ASCII 文件中除了通常使用的TAB、 CR/LF和LF字符的控制字符。
符合度分析设备确定电子文件是否是它所说的格式,以及所有参 数是否符合与该特定电子文件类型相关联的预定格式。如果电子文件 并不符合任何预定格式,则不重新生成该电子文件,从而有效地阻断 该电子文件,优选地在步骤S113中擦除该电子文件。然而,如果电 子文件符合预定格式,则从中提取内容数据(并临时存储于数据结构 中),并由符合度分析设备以和该电子文件类型相关联的预定格式重新 生成(根据临时数据结构),以构成替代文件,如步骤S115中所示。
例如,在步骤S117将重新生成的文件转发至操作系统,以便以 正常方式对该文件进行处理。对能够使用构成预定格式的规则从该文 件中提取出的所有内容数据进行提取和重新生成,而不能重新生成不 能被提取的任何部分。
以这种方式,由于对文件的符合度检查和重新生成,病毒不能进
入并感染操作系统;事实上,提取并因而重新生成的是通常出现的格
式的内容数据。
在可以将电子消息分为子部分的情况下,电子消息的一些子部分 可能符合预定格式,而其他子部分可能不符合预定格式。在像这样的
情况下,AV应用确定符合预定格式的子部分的总数是否满足实质性 测试(例如,是否大部分或最重要的部分符合),以及如果是,则重新 生成电子消息中符合预定格式的子部分。
不会重新生成消息中不符合的子部分。而是,AV应用将相关的 警告文本插入电子消息,向接收者告知消息中的一部分不允许通过。 作为选项,该警告文本可以指示不允许子部分通过的原因。
此外,如果电子文件的子部分内的一部分不符合针对该部分的可 允许的预定格式,则还可以阻断该部分(即不重新生成)并优选地擦 除。就是说,例如如果ASCJI电子文件中的字符串包括控制字符(例 如,'BEL,字符),则该字符串可以被替换为由AV应用插入的文本 警告,以告知意向接收者这个串已经从重新生成的电子文件的该部分 中省去,因为该部分不符合预定格式。符合度分析设备并不特别寻找 不允许的控制字符(例如,'BEL,字符),而是仅使那些被允许的控 制字符(由预定的可允许格式所定义)通过。
可选地,不符合的控制字符可以被空格替换、或完全地被删除。 例如,所选择的不同选项取决于AV应用所运行的环境、以及它对于 至少最少的符合信息被允许通过AV应用到达目的地的重要性。
现在将描述第一实施例的另一备选。在通过AV应用确定电子文 件或其子部分不符合因而不允许通过以到达目的地操作系统时,使原 始电子文件通过威胁过滤应用,威胁过滤应用确定是否存在与该电子 文件或其子部分相关联的任何威胁。
基于系统期望从特定源接收到什么来做出确定。系统通过参照存 储在存储器中的预定的源列表来查看数据类型列表,从而做出该确定, 以査看是否接受来自该源的数据类型;换言之,通过源来过滤电子邮 件。因此,如果从相同的源接收到包含不符合的数据的文件(其中已
知不符合的数据不是威胁),则允许原始的不符合的数据通过并到达操 作系统。以这种方式,包括AV应用和威胁过滤应用的系统动态地允 许多数安全的电子文件通过并到达其意向目的地。
第二实施例
在以下描述的第二实施例中,电子文件是通过因特网从发起者传 输至因特网服务提供商(ISP)的电子邮件。ISP将电子邮件转发至电 子邮件客户端服务器,在接收到时,电子邮件客户端服务器将电子邮 件转发至意向接收者的收件箱。
图2示出了根据这个实施例的电子邮件系统的布局,其中包括本 发明的AV应用。发送者从源位置201转发电子邮件。经由因特网203
将电子邮件转发至由电子邮件内包含的域名所确定的因特网服务提供 商(ISP) 205。接收者的电子邮件客户端服务器207通过直接开放连 接与ISP 205连接。第一连接是简单邮件传输协议(SMTP)输出连接, 用于将输出的电子邮件从电子邮件客户端服务器207转发至ISP 205。 第二连接是POP (邮局协议)输入连接211,其从ISP205获取电子邮 件。
AV应用105位于ISP 205处。AV应用105驻留在与接收者电子 邮件客户端服务器207相连的输入/输出端口上,以便分析由电子邮件 客户端服务器207所发送和接收的所有输出和输入的电子邮件。
在该实施例中,AV应用105是使用已知的计算机编程技术而实 现的计算机代码块。在发送至电子邮件客户端服务器207的所有电子 邮件能够进入电子邮件客户端服务器207之前,这些电子邮件必须通 过AV应用105。同样,由电子邮件客户端服务器转发至ISP205的所 有电子邮件在进入ISP205之前,必须通过AV应用105。
AV应用105通过在电子邮件消息数据进入该应用时对该数据进 行解析而分析输入的电子邮件消息。如在第一实施例中,数据以加扰 模式而存储,以便停止任何可执行文件的运行。AV应用105确定输 入的电子邮件的独立部分是否符合预定的可允许格式,以及如果该部 分符合,则重新生成电子邮件消息的每一部分。因此,既不允许任何
电子邮件内的任何病毒通过以感染接收者的系统,也不允许这些病毒
从接收者的系统传递至isp。
在该实施例中,符合度分析设备用于分析特定数据类型,以查看 其是否符合针对该数据类型的预定格式(如在第一实施例中所讨论 的),并提取符合的内容数据。然后,符合度分析设备使用针对该数据 类型的预定可允许格式来重新生成数据。通过其自有的特定的符合度 分析设备,每种类型的数据都得以分析和重新生成。
每个符合度分析设备依据所接收数据的类型而对数据运行特定 的规则组。这些规则由针对文件类型的官方预定义的规范以及现实世 界通常出现(因而是安全的)的己知数据类型的示例来定义。通常, 该规则仅允许符合文件类型规范的文件的子集,但是会放松普遍被违 背的官方规范的特定规则。例如,电子邮件地址应当不包含空格,但 是一些流行的电子邮件应用违背了该规则,从而就这点上违反了规范 的电子邮件是普遍的,因而根据该实施例的用于分析电子邮件的预定 格式接受包含空格的电子邮件地址,因而实施例对这种电子邮件地址 进行分析和提取。
此外,符合度分析设备可以检査数据文件内的特定参数。例如,
如果报头声明该文件是RTF (丰富文本格式)文件,则读取数据的头 几个字节以确定其是否正确。
图3示出了系统如何工作的流程图,其包括根据这个实施例的AV 应用。如图3所示,在步骤S301,通过SMTP输入连接,在ISP处接 收电子邮件。
在步骤S303,协议符合度分析设备执行读取输入的电子邮件的基 本格式的过程,并重新生成电子邮件,使得其符合基本电子邮件协议。 不符合的电子邮件读取器读取该电子邮件。然后,将所读取的数据传 递至符合基本电子邮件协议的电子邮件书写器。以这种方式,将普通 的不符合转换为符合的电子邮件。例如,如果较差地形成了接收者的 电子邮件地址,则电子邮件书写器重写该地址,以使其符合。
另一示例是当接收到电子邮件消息时没有'From:'报头。在这种情 况下,将电子邮件消息封装于包括'From:'报头的全新的电子邮件消息
中。
也使电子邮件中的其它参数相符合。例如,行长、所使用的正确
的ASCII字符代码、在适合的情况下所使用的正确的Base 64编码、 完整的报头信息(To:', 'Subject:'等)、电子邮件的报头与主体之间的 间隔等。
如果较差地形成了电子邮件,使得其中的一部分不能被重写,则 在不符合的部分丢失的情况下,确定是否仍存在合理的电子邮件。如 果确定该过程仍将导致合理的电子邮件,则在不符合的部分丢失的情 况下重写电子邮件。可以将警告文本插入其位置。
此外,协议符合度分析设备可以拒绝整个电子邮件。例如,如果 协议符合度分析设备检测到针对电子邮件内的大数据块正在使用不符 合的Base 64编码,则在步骤S305完全拒绝该电子邮件。
如果协议符合度分析设备确定电子邮件符合电子邮件协议,则通 过协议符合度分析设备重新生成该电子邮件,并将其传递至过程中的 下一步骤。
所有电子邮件应当符合当前针对电子邮件的RFC标准(即,RFC 822及其后继)。该标准定义了如何形成电子邮件。在电子邮件通过协 议符合度分析设备之后,RFC 822符合度分析设备检査电子邮件是否 符合RFC 822标准。RFC 822符合度分析设备通过如下步骤来执行这 个符合度检查首先通过发现电子邮件内的边界(如以下所述)而将 电子邮件分为独立的组成部分,然后解析电子邮件的每个组成部分以 查看其是否符合RFC 822。
将会理解,当RFC标准被更新时将会需要更新,以确保RFC822 符合度分析设备能够检查所有已知数据类型的符合度。
如公知地,电子邮件由多个独立的部分构成,例如图4中所示。 电子邮件以RFC 822报头401开始,该RFC 822报头401定义了多个 字段,如'From:'、 'To:'和'Subject:'等。接下来是MIME报头403,其定
义了用于扩展协议中的多个字段,如定义了用于指示电子邮件中不同 部分之间的边界的'Content-Type:'。
在报头(401 & 403)之后,指示第一边界405。电子邮件的下一
部分以另一 MIME报头407开始,其定义了用于该部分的格式。在这 个示例中,该部分包括要以文本格式显示的文本内容。因此,接下来 是文本块409。在文本块409的结尾是另一边界411。
另一 MIME报头413指示电子邮件的下一部分将会是何种格式。 在本示例中,电子邮件的下一部分是混合的文本和HTML格式的块 415。另一边界417指示电子邮件该部分的结尾。
针对电子邮件的最后一部分,最后的MIME报头419指示电子邮 件附件的数据类型,在本例中是zip文件。ZIP文件421是Base 64编 码的,并被添加至电子邮件。然后,最后的边界423指示电子邮件的 结尾。
在图3中的步骤S307, RFC 822符合度分析设备使用解析器对形 成电子邮件的ASCII字符进行解析。这样,RFC 822符合度分析设备 能够检测电子邮件中的边界,并检查特定参数是否符合已知的可接受 的预定格式。例如,RFC 822符合度分析设备检査行长以查看其是否 符合RFC 822标准,所以仅重新生成2000或更短的行长。
可以进行其它检查以查看所解析的电子邮件中的数据是否符合 RFC 822标准。例如,检査电子邮件中的字符是否是如标准中所定义 的已知的可接受的ASCII字符、报头中的信息是否如标准中所定义、 以及报头长度是否符合标准定义。所列出的这些检查仅是RFC 822符 合度分析设备所执行的一大组不同检查中的示例(其它将是对本领域 技术人员所显而易见的),同样,本发明并不限于以上所列。
不光分析解析后的数据以查看该数据是否符合基本RFC 822标 准,RFC 822符合度分析设备还检查特定参数是否符合现实世界中的 RFC 822标准电子邮件的示例。即,特定参数的规范可以对用户幵放, 从而在现实世界中定义仅会使用合理的值。例如,电子邮件通常仅包 括最小数量的部分。所以,如果接收到包括IOOO个边界的电子邮件, 则这不会是现实世界中的RFC 822标准电子邮件的示例,所以其将被 RFC 822符合度分析设备阻断,即不会重新生成并优选地擦除。
在该实施例中,对于包括需要进一步的符合度检查的数据的电子 邮件的每个组成部分,在步骤S309,取决于该部分所对应的数据类型,
把该组成部分并行地转发到单独的符合度分析设备。即,如果所分析
的电子邮件部分被定义为文本,则把构成该文本的ASCII字符转发至 文本符合度分析设备。如果被分析的电子邮件部分被定义为TIFF文 件,则把构成TIFF文件的字符转发至TIFF符合度分析设备。
在步骤S309,每个符合度分析设备对转发给它的数据进行分析, 以查看该数据是否符合其声称(purported)格式。如果该数据符合, 则通过符合度分析设备来重新生成该数据。如果数据中存在任何的不 符合,则该数据要么被省去,或者如果可能,要么通过符合度分析设 备重新生成以使其符合。重新生成该数据以使其符合的一个示例是 在RFT文件中丢失嵌套括号的地方添加嵌套括号。
如果电子邮件包括不同类型数据的嵌套,则递归地调用符合度分 析设备,从而按顺序地运行若干个特定设备,并且每当发现其他数据 类型时,每个设备均被推迟(putonhold)。以这种方式,具有包括文 字处理文档(包括JPEG图像文件)的zip文件的电子邮件可以通过不 同的符合度分析设备(zip、文字处理、JPEG)的序列,以便脱去文件 嵌套并顺序地分析每个文件。在分析结束时,使用所符合的重新生成 的部分来重组文件。
在步骤S311中确定重新生成了电子邮件的足够部分以形成合适 地相干的、可理解的以及值得的电子邮件时,如步骤S313所示,使 用RFC 822符合度分析设备并利用重新生成的部分来重组数据。这确 保了以正确的格式转发重新生成的电子邮件。
然后,如步骤S315所指示,AV应用使用SMTP协议,将重新生 成的电子邮件转发至意向接收者。
然而,如果AV应用在步骤S311确定没有重新生成电子邮件的足 够部分以形成有用的电子邮件,则在步骤S317拒绝该电子邮件。在 步骤S317期间,将警告文本转发至电子邮件的意向接收者,向其告 知系统拒绝了意欲发给他们的电子邮件。警告文本可以包括为何删除 消息的细节,以及意欲帮助接收者识别发送者、或者电子邮件被拒绝 的原因的进一步信息。
以下详细描述的是用于本实施例中的一些示例性的符合度分析
设备,其可以在步骤S309期间使用。如在步骤S309处所示,将电子 邮件中声称是文本(取决于RFC 822报头、MIME报头或文件扩展中 的信息)的组成部分传递至文本符合度分析设备。文本符合度分析设 备对文本数据进行解析,以确定它是否符合其预定的可允许格式,如 下文所述。
由于存在多种不同类型的文本文件,如逗号分隔变量(CSV)和 丰富文本格式(RTF),所以文本符合度分析设备必须首先区分所解析 的数据所声称的文本文件的类型。附到电子邮件的所有文件将具有与 指示文件类型相关联的文件扩展。文本符合度分析设备对MIME报头 内所解析的文件扩展进行分析,从而确定该文本文件是否是纯ASCII 文件。如果是,则仅需要使用ASCII符合度分析设备,如下所述。
然而,如果文本符合度分析设备在分析时确定该文本文件是不同 于纯ASCII的文件类型,例如CSV文件,则也将调用CSV符合度分 析设备以进行分析,并重新生成CSV数据。然而,首先ASCII符合 度分析设备对构成电子邮件内的文本文件的ASCII字符进行分析,以 査看文本串是否符合ASCII预定格式,以及如果存在符合度,则重新 生成ASCII文件。
ASCII符合度分析设备对数据进行解析以确保该文件符合最小 ASCII预定义格式。例如,ASCII符合度分析设备仅允许ASCII字符 32至127和四个控制字符'换行'(LF=10)、'回车'(CR=13)、'制表符' (TAB:9)和'垂直TAB' (VT-ll)重新生成并通过系统。
如报警字符(BEL=7)之类的其它控制字符并不具有如AV应用 所定义的ASCII文件的预定可允许格式。所以ASCII符合度分析设备 不会重新生成所解析的ASCII代码块中的'BEL'字符,而是会拒绝该 ASCII字符。
ASCII符合度分析设备所执行的分析的其它示例是 自然行长小于1024个字符? *字长小于25个字符?
空格对字符的百分比在预定义的界限以下? 如果在任何时候ASCII符合度分析设备不能够重新生成针对该部分ASCII代码的数据(因为其不符合基本预定格式),则ASCII符合 度分析设备检查该数据,以查看其是否符合某个其它类型的ASCII代 码。例如,源代码、BinHex、 Base 64。如果该数据符合另一类型的 ASCII代码,则将该数据转发至与该ASCII类型有关的符合度分析设 备,对于以上所示示例,其可以是源代码符合度分析设备、BinHex符 合度分析设备或Base 64符合度分析设备。将会理解,Base 64 ASCII 代码文件在编码后的数据中还可以包括其它类型的文件。然后,这些 其它类型的文件还将被转发至有关文件类型的符合度分析设备,等等。 用于其它类型的ASCII代码的符合度分析设备针对该部分电子邮
件内的数据具有其它的符合度限制。例如,检查文件以査看其是否为 适当构造的代码、是否具有正确的行长等。 一旦每个符合度分析设备 已经确定内容和参数数据相符合,并因而进行提取,则使用该符合度 分析设备以可允许的预定义格式重新生成所提取的内容数据。
一旦ASCII符合度分析设备完成了它的任务,则重新生成的 ASCII数据被转发至与该数据所声称有关的文本符合度分析设备。在 这个实施例中,文本文件是CSV文件,所以将数据转发至CSV符合 度分析设备。
以下是CSV符合度分析设备所执行的检查的示例。CSV符合度 分析设备对ASCII数据进行解析,以确保不存在长文本段落,因为段 落并不是CSV文件的预定义格式的一部分。CSV符合度分析设备拒 绝由于不符合而不能被解析的任何数据。例如,CSV符合度分析设备 还检査限定符(de-limiter)的个数是否符合CSV文件中的限定符的常 规预定个数。当CSV符合度分析设备确定该数据符合时,将该数据重 新生成为相同的格式。
以这种方式,仅允许文本文件中符合预定格式的部分传递至AV 应用的下一级。在被重组并转发至目的地之前,利用其它重新生成的 数据类型部分仅重新生成文本文件中的符合部分。因此,包含病毒的 电子邮件的任何部分将不会符合,所以将被阻断,即不会重新生成并 优选地被擦除。任何不符合的部分都不允许通过AV应用并感染操作 系统。
另一示例符合度分析设备是用于分析和重新生成TIFF文件的 TIFF (标签图像文件格式)符合度分析设备。
TIFF文件具有以预定义的格式而布置的一组目录和标签的结构 化格式。不能确定图像数据本身是否表示有意义的图像。然而,TIFF 符合度分析设备解析并分析图像数据,以确保该数据落入预定义的界 限。
对TIFF文件中的报头信息进行解析并分析,以查看正确的信息 是否完整和完好。例如,TIFF符合度分析设备检査报头信息是否包括 位于TIFF图像的合理界限内的分辨率、大小和深度字段。此外,TIFF 符合度分析设备确定报头中指示的条带(strip)数是否与图像数据相 匹配。
典型地,通常使用LZW (Lempel-Ziv-Welch)压縮技术对TIFF 文件进行压縮。每个TIFF条带通过符合度分析设备而解压缩,以查 看条带长度是否处于合理的预定义界限之内。例如,如果条带长度不 等于或小于最大图像大小限制(例如,大于标准AO纸张大小),则拒 绝该条带。一旦TIFF符合度分析设备拒绝一个条带,则拒绝整个TIFF 文件。
TIFF符合度分析设备还对TIFF文件内的标签(即,参数数据) 进行分析。参照预定义的可允许格式来检查标签,以查看例如该标签 是否具有特定顺序(根据报头中的标签信息的目录)以及该标签是否 以正确的方式相互有关。
当TIFF符合度分析设备确定该数据符合预定义的可允许格式时, 重新生成该数据以创建具有原始文件名的重新生成的TIFF文件(其 中文件名符合预定格式)。重新生成的TIFF文件被转发至电子邮件服 务器以重组到电子邮件中。
TIFF文件本身内还可以具有其它图像类型。例如,可以将JPEG 图像封装于TIFF文件中。如果TIFF符合度分析设备检测到不同的图 像类型,则其将与该图像相关联的数据转发至另一符合度分析设备, 在本例中是JPEG符合度分析设备。然后,JPEG符合度分析设备解析 并分析该数据,以查看它是否符合期望的JPEG格式,而且如果符合,
则重新生成JPEG格式的数据。然后,重新生成的数据被重组为重新
生成的TIFF文件,然后将重新生成的TIFF文件用于重组重新生成的 电子邮件。接下来将该电子邮件传递至电子邮件服务器。
该实施例中的另一选项是关于AV应用插入警告文本以取代电子 邮件中的不符合部分。即,如果符合度分析设备解析不符合部分的数 据,并确定该部分中的一份(portion)不符合预定的可允许格式,则 在重新生成电子邮件时,符合度分析设备插入警告文本以取代不符合 部分,向电子邮件的意向接收者告知该电子邮件的一份被AV应用拒 绝。备选地,如果符合度分析设备由于不符合的原因而拒绝了电子邮 件的完整部分,则AV应用将警告文本插入电子邮件,向意向接收者 告知电子邮件的一部分被AV应用阻断,即不重新生成并优选地被擦 除。
第三实施例
参照图5,现在将描述本发明的第三实施例。
该第三实施例结合了第二实施例的所有特征,包括关于第二实施 例所讨论的任意选项。
图5示出了根据这个第三实施例的过程的流程图。
该实施例涉及AV应用阻断了电子邮件的一份、部分或全部的情 况(在该实施例中被称为'不符合部分')。在步骤S501, AV应用做 出该部分是否不符合并因而被阻断的确定。如果AV应用做出阻断, 则把不符合部分转发至威胁-过滤应用,以确定不符合部分是否为威 胁,如步骤S503所示。
威胁-过滤应用基于系统的用户偏好来确定是否认为不符合部分 是真正的威胁。系统在其存储器内存储有文件类型和与这些文件类型 相关联的、不被认为是威胁的源的列表。因此,系统可以基于文件的 发送者和文件类型来确定是否允许该文件通过。
如果在步骤S503确定该文件类型不是根据相关联的源所允许的 那些所列出的文件类型之一,则在步骤S505阻断该文件类型。
如果认为该文件类型是可允许的,则在步骤S507,不符合部分绕
过(bypass) AV应用。在步骤S509, AV应用重新生成所接收文件的 剩余部分,并在步骤S511,对文件中所重新生成的符合部分和所绕过 的不符合部分迸行重组。
例如,如果银行系统从已知的发送者处接收包括具有复杂的宏的 电子表格的大量电子邮件,这些宏可能处于针对电子表格附件内的宏 的预定可允许格式之外,所以宏符合度分析设备将阻断电子邮件的这 部分。
然而,因为银行系统能够确定谁发送了电子邮件,并将发送者作 为银行系统的可靠伙伴输入针对这些文件类型的数据库,所以不会认 为电子邮件内的电子表格是威胁。因此,系统用户可以建立威胁-过滤 应用以允许这些不符合的宏部分绕过AV应用,并与电子邮件中重新 生成的部分一同被重组为电子邮件。
备选地,威胁-过滤应用可以在这样的模式下操作,即通过该模式 确定从AV应用接收到的重新生成的文件是否应当被允许继续通过并 到达目的地系统。如果AV应用接收到包括不符合部分(其自身的不 符合度不足以使AV应用完全拒绝整个文件,而是导致与原始文件实 质上不同的重新生成的符合文件)的文件,则把重新生成的文件转发 至威胁-过滤应用。例如,由于AV应用没有对宏内大量的重写单字 (single word)进行重新生成而导致原始文件大小可能明显大于重新 生成的符合文件的大小。
威胁-过滤应用确定文件类型是否从针对该文件类型的被认可的 源而发送,而且如果是的话,将会允许该文件类型通过系统。
其他实施例
可以理解,这里本发明的实施例仅作为示例来描述,并且可以在 不偏离本发明范围的情况下做出各种改变和修改。
将会理解,本发明可以在把电子文件从源移至目的地的任何系统 中实现。用于本发明目的的发送电子文件的方法并不限于任何特定方 法。即,例如,电子文件可以从计算机系统的硬件中的一个组件传递 至另一组件。备选地,例如,可以通过空中接口,从基站向移动电话
设备传递电子文件。此外,例如,电子邮件可以通过局域网(LAN)、 广域网(WAN)或通过因特网进行传输。
此外,将会理解,作为先前所描述的任何实施例的其他选择,当 接收到电子文件时,可以向用户提供忽略(overriding)工具,以手动 地忽略AV应用或威胁-过滤应用做出的任何确定。即,当AV应用内 的符合度分析设备由于其不符合而阻断了电子邮件中的一份、 一部分 或全部时,向用户给出仍允许该不符合在电子邮件中重新生成和重组 的选择。
执行该选择的一个示例是向意向接收者提供文本警告,询问其是 否应当允许不符合的分析后的电子邮件通过系统,好似它符合预定义 的可允许格式。对该警告的响应为符合度分析设备提供了如下指令 重新生成(如果可能)并重组电子邮件。或者备选地,允许原始电子 邮件绕过AV应用和威胁-过滤应用以通过系统而不重新生成。
此外,将会理解,第二实施例中所描述的AV应用可以位于除了 ISP电子邮件服务器的某处。例如,AV应用可以位于并安装在接收者 的电子邮件客户端服务器上。以这种方式,由电子邮件客户端服务器 转发至硬盘驱动器上的接收者的收件箱的任何电子邮件都是如前所述 的重新生成的电子邮件。
此外,将会理解,AV应用可以是半导体设备中硬连线的,例如 但不限于硅、砷化镓(GaAs)、铟磷化物(InP)。艮卩,AV应用具有可 计量的任务,该任务不需要更新至定义了预定义的符合格式的过程。 执行AV应用的任务(包括解析、分析、重新生成和重组)所需的指 令可以在任何适合的半导体设备中实现。此外,实现AV应用所需的 指令可以存储于半持久性或持久性存储设备中。这样,该存储设备将 可操作地与所连接的处理器来运行AV应用。在这些情况下,可以独 立于要保护的计算机来提供本发明,如包括独立于要保护的计算机中 的处理器和存储硬件的处理器和存储硬件的独立设备(例如,在诸如 调制解调器卡、网络适配器卡之类的卡或盘驱动控制器中)。这具有以 下优点将输入的电子文件与要保护的计算机的文件系统和其他资源 完全隔离,并将该文件存储在通常不能被写入或更新的位置,从而避
免AV应用本身上的"陷门"攻击;换言之,物理安全等级。半导体 设备可以包括处理器和存储设备,其中处理器运行来自存储设备的AV
应用,并将输入的文件存储在存储设备中以将其隔离。
此外,将会理解,可以使用传统方法,将以上所描述的半导体设 备提供作为任何适合的网卡上的一部分。以这种方式,可以在通信网 络中,通过使用所描述的方法重新生成所接收的电子文件,利用该网 卡作为确保网络不受有害代码和数据的侵害的装置。
此外,将会理解,可以通过计算设备接收第一实施例中所描述的 电子文件,其中,将电子文件存储在可移动的存储设备上。例如,可 以将电子文件存储在USB盘设备、智能卡、安全数字(SD)存储设 备、多媒体(SM)卡、XD卡、软盘、ZIP驱动器、便携式硬驱动器 或可以直接或通过无线介质与计算设备连接的任何其他适合的存储设 备上。
此外,将会理解,本申请中所描述的操作系统可以是使用文件的 任何系统。例如,嵌入式系统、路由器、网卡等。
此外,将会理解,其他加扰方法可以用来确保不能自动执行任何 所接收的可执行文件。例如,加扰方法使用字节交换方法来存储每对 输入字节。在这个例子中,如果AV应用接收到6个字节,ABCDE F,且首先接收到字节A,最后接收到字节F,则将它们按照以下顺序 存储在存储器中BADCFE。第一字节(A)存储在第二存储位置, 第二字节(B)存储在第一存储位置。这个反转针对所接收的每对字 节在后续存储位置中出现。以这种方式,任何可执行代码不能自动运 行,因而任何受到感染的文件不能感染AV应用或目的地操作系统。
为了避免疑问,单独地或结合地针对以上所描述的新颖的实施例 中的任何和全部来寻求保护。
已经描述了本发明的各种方面和实施例及其修改,本领域技术人 员将会理解,本发明可以在不偏离其原理的情况下在设置和细节上进 行修改。要求保护进入所附权利要求的精神和范围内的所有实施例、 变体和修改。
权利要求
1、一种用于接收输入的电子文件的方法,所述输入的电子文件包含与规则组相对应的预定文件类型的内容数据,所述方法包括接收所述输入的电子文件,确定所声称的预定文件类型,根据包括与所确定的所声称的预定文件类型相对应的规则组的预定数据格式,对所述内容数据进行解析,以及如果所述内容数据符合所述预定数据格式,则重新生成相符合的解析后的内容数据,以创建具有所声称的文件类型的替代的重新生成的电子文件,所述替代的重新生成的电子文件包含重新生成的内容数据。
2、 如权利要求1所述的方法,其中,所述数据格式与针对每个 文件类型的预定规则组的子集相对应。
3、 如权利要求1所述的方法,包括确定所述内容数据是否符 合现有已知的可接受数据的示例。
4、 如权利要求3所述的方法,其中,所述数据格式仅包括可允 许的控制字符。
5、 如权利要求3所述的方法,其中,所述数据格式包含多个数 据项,每个数据项具有相关联的预定大小限制。
6、 如权利要求5所述的方法,其中,所述预定大小限制是图像 文件中的行大小。
7、 如权利要求1所述的方法,还包括将所述输入的电子文件 以加扰格式存储在存储器中。
8、 如权利要求7所述的方法,其中,数据的每个字节以比特反 转顺序而存储。
9、 如权利要求7所述的方法,其中,存储所述数据,使得所接 收的每对数据字节以反转的存储顺序而放置。
10、 如权利要求l所述的方法,还包括仅在来自电子文件内的 所有内容数据都符合预定数据格式的情况下,才转发替代的重新生成 的电子文件。
11、 如权利要求10所述的方法,还包括在内容数据的一份、 一部分或全部不符合的情况下,仅当电子文件的意向接收者在与电子 文件的发送者相关联时已经预先认可预定文件类型时,才会转发输入 的电子文件。
12、 如权利要求10所述的方法,还包括在内容数据的一份、 一部分或全部不相符,而且电子文件的意向接收者没有预先认可预定 数据格式以及电子文件的发送者的情况下,仅当意向接收者在接收时 认可该电子文件时,才会转发输入的电子文件。
13、 如权利要求1所述的方法,还包括使用警告文本来替换不 符合预定格式的任何内容数据。
14、 如权利要求l所述的方法,其中,所述输入的电子文件是电 子邮件,而且所述方法还包括如果内容数据符合预定数据格式,则 把重新生成的电子邮件转发至意向接收者。
15、 如权利要求14所述的方法,其中,将替代的重新生成的电 子邮件从电子邮件客户端转发至硬盘驱动器。
16、 如权利要求14所述的方法,其中,将替代的重新生成的电子邮件从因特网服务器提供商服务器转发至电子邮件客户端服务器。
17、 如权利要求l所述的方法,还包括从可移动的存储设备接 收输入的电子文件,并把替代的重新生成的电子文件转发至计算设备。
18、 一种计算机可读介质,包括适于执行如权利要求1至17之一所述的方法的计算机程序。
19、 一种半导体设备,包括具有用于执行如权利要求1至17之 一所述的方法的指令的存储装置。
20、 如权利要求19所述的半导体设备,其中,所述半导体设备 是半持久性或持久性存储设备。
21、 一种网卡,包括如权利要求19所述的半导体设备。
22、 一种适于拒绝不相符文件的计算机系统,所述系统包括 接收装置,适于接收输入的电子文件,所述文件包含预定数据文 件类型的内容数据;确定装置,适于确定所声称的预定数据文件类型;解析装置,适于根据与所述文件类型相关联的预定数据格式对所述内容数据进行解析;确定装置,适于确定所述内容数据是否符合所声称的预定数据格式;重新生成装置,适于根据来自所述确定装置的肯定性确定,重新 生成相符合的解析后的内容数据,以创建具有所声称的预定数据文件 类型的替代的重新生成的电子文件,所述替代的重新生成的电子文件 包含重新生成的内容数据。
23、 一种适于拒绝不相符文件的计算机系统,所述系统包括 计算机,适于接收输入的电子文件,所述文件包含预定文件类型的内容数据;处理器,适于确定所声称的预定数据文件类型;所述处理器包括解析器,所述解析器适于根据与所述文件类型相 关联的预定数据格式对所述内容数据进行解析;所述处理器还适于确定所述内容数据是否符合所声称的预定数 据格式;以及,根据肯定性确定,所述处理器还适于根据来自所述确定装置的肯定性确定,重新生 成相符合的解析后的内容数据,以创建具有所声称的预定文件类型的 替代的重新生成的电子文件,所述替代的重新生成的电子文件包含重 新生成的内容数据。
24、 一种用于接收包含预定数据格式的内容数据的电子文件的方 法,所述方法包括以下步骤-接收所述电子文件, 确定所述数据格式,对所述内容数据进行解析,以确定所述内容数据是否符合预定数 据格式,以及如果所述内容数据符合所述预定数据格式,则重新生成 解析后的数据,以创建具有所述数据格式的重新生成的电子文件。
25、 如权利要求24所述的方法,包括如果任何内容数据均不 符合所述预定数据格式,则阻断不符合所述预定数据格式的内容数据, 使其不包含在重新生成的电子文件中。
全文摘要
一种用于接收包含预定数据格式的内容数据的电子文件的方法或系统,所述方法包括以下步骤接收电子文件;确定数据格式;对内容数据进行解析,以确定所述内容数据是否符合预定数据格式;以及如果所述内容数据符合所述预定数据格式,则重新生成解析后的数据,以创建具有所述数据格式的重新生成的电子文件。
文档编号G06F21/56GK101194264SQ200680020707
公开日2008年6月4日 申请日期2006年6月9日 优先权日2005年6月9日
发明者尼古拉斯·约翰·斯卡莱斯 申请人:格拉斯沃(Ip)有限公司