反恶意软件系统及其操作方法

文档序号:7702517阅读:243来源:国知局
专利名称:反恶意软件系统及其操作方法
技术领域
与本发明示例性实施例一致的方法和设备涉及一种反恶意软件系统及其操作方法。
背景技术
恶意软件是指扰乱系统的操作或者使系统受到威胁的软件或者代码,例如病毒、 广告软件、间谍软件或者特洛伊木马。恶意软件通过各种方式来感染系统。例如,系统可能只是通过打开电子邮件或者访问特定网站而受到恶意软件感染。反恶意软件系统是指这样一种系统,其防止可能由恶意软件引起的损坏并修复损坏,并且包括防火墙或者病毒扫描引擎。随着通信的发展,已经出现了新的恶意软件,并且现有的恶意软件已经变得多种多样。因此,反恶意软件系统除了检测现有恶意软件之外还应该检测新的恶意软件,因此反恶意软件系统需要作为可更新的配置操作,以对这种新的恶意软件做出响应。具体地讲,具有有限资源的移动终端需要一种能够使用较少资源高速地检测恶意软件的反恶意软件系统。

发明内容
一个或多个示例性实施例可克服上述缺点和以上没有描述的其他缺点。然而,应该理解,一个或多个示例性实施例不需要克服上述缺点,并且可不克服上述的任何缺点。—个或多个示例性实施例提供一种可高速地过滤包数据的反恶意软件系统及其操作方法。一个或多个示例性实施例还提供一种能够同时地对包数据执行过滤操作和病毒扫描操作的反恶意软件系统及其操作方法。根据示例性实施例的一方面,提供一种反恶意软件系统的操作方法,该方法包括 基于包规则对包数据执行过滤操作;在执行过滤操作的同时对包数据执行病毒扫描操作。根据另一示例性实施例的一方面,提供一种反恶意软件系统,包括防火墙引擎, 基于包规则对包数据执行过滤操作,并且确定该包数据是否包含将被扫描病毒的数据;反病毒引擎,如果防火墙引擎确定包数据包含将被扫描病毒的数据,则对包数据执行病毒扫描操作。根据另一示例性实施例的一方面,提供一种防火墙引擎,基于包规则对包数据执行过滤操作,并且确定该包数据是否包含将被扫描病毒的数据。
根据示例性实施例,高速地过滤包数据。根据示例性实施例,对包数据同时执行过滤和病毒扫描。将在详细描述中阐述示例性实施例的另外的方面和优点,通过详细描述,示例性实施例的另外的方面和优点将是明显的,或者可通过实施示例性实施例来学习示例性实施例的另外的方面和优点。


通过参照附图对示例性实施例进行的详细描述,本发明的上述和/或其他方面将会更加清楚,其中图1是示出根据示例性实施例的反恶意软件系统的框图;图2是示出根据另一示例性实施例的反恶意软件系统的框图;图3是示出根据另一示例性实施例的反恶意软件系统的框图;图4是用于解释根据示例性实施例的反恶意软件系统的操作的示图;图5是用于解释根据另一示例性实施例的反恶意软件系统的操作的示图;图6是用于解释根据另一示例性实施例的反恶意软件系统的操作的示图;图7是示出根据示例性实施例的匹配单元的框图;图8是用于解释根据示例性实施例的防火墙引擎的过滤操作的示图;图9是示出根据示例性实施例的用于防火墙引擎的过滤操作的表的示例的示图;图10是用于解释根据示例性实施例的反病毒引擎的扫描操作的示图;图11是示出根据示例性实施例的包过滤方法的流程图;图12是示出根据示例性实施例的包分类过程的流程图;图13是示出根据示例性实施例的IP匹配过程的流程图;图14是示出根据示例性实施例的协议匹配过程的流程图;图15是示出根据示例性实施例的端口匹配过程的流程图;图16是示出根据示例性实施例的反恶意软件系统的操作方法的流程图。
具体实施例方式现在,将参照附图对示例性实施例进行更全面地描述以使本发明的各方面、特征和优点清晰。然而,本发明可以以多种不同形式实施并且不应被解释为受限于这里阐述的示例性实施例。而是,提供这些实施例,从而使此公开将是彻底和全面的,并且将向本领域的普通技术人员全面传达本发明的范围。将理解,当元件、层或区域被称为在另一元件、层或区域“上”时,该元件、层或区域可直接位于另一元件、层或区域上或者位于中间元件、层或区域上面。这里使用的术语仅为了描述特定实施例的目的,而不意图限制本发明。如这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。还将理解的是,当在本说明书中使用术语“包含”和/或“包括”时,说明存在所述特征、整体、步骤、操作、层、 区域、元件、部件和/或其组,但不排除存在或附加一个或多个其它特征、整体、步骤、操作、 层、区域、元件、组件和/或其组。如这里所使用的,术语“和/或”包括一个或多个相关列出术语的任意或所有组合。
图1是示出根据示例性实施例的反恶意软件系统的框图。根据示例性实施例的反恶意软件系统100可被实现为片上系统(SOC)或者可被安装在可网络连接的装置(诸如,个人计算机(PC)或者移动装置)上。参照图1,反恶意软件系统100包括通信单元110、规则模式(rule pattern)数据库(DB) 120、防火墙引擎130、病毒模式(virus pattern)DB 140、反病毒引擎150和管理器 160。为了解释方便,还在图1中示出驱动器200和应用单元300,并且驱动器200和应用单元300是安装有反恶意软件系统100的装置的元件。驱动器200可支持反恶意软件系统100和应用单元300之间的接口。驱动器200 可将应用单元300的命令和用于更新规则模式DB 120或者病毒模式DB 140的命令引导到管理器160。应用单元300可包括反病毒用户接口(UI)应用、防火墙UI应用、web浏览器和网络应用。在本说明书中,反病毒UI应用和防火墙UI应用被统称为“反恶意软件(AM)应用”。 然而,如果在反病毒UI应用和防火墙UI应用之间的区分获得任何益处,则它们不被这样统称。通信单元110通过网络从外部源接收包数据。为了实现此目的,通信单元110可包括以下模块中的至少一个无线保真(WiFi)模块、局域网(LAN)模块、无线(OTA)模块、 蓝牙模块和4G模块。如果通信单元110从外部源接收到包数据,则包数据被发送到防火墙引擎130。规则模式DB 120是包括至少一个包规则的数据库。包规则用于确定是阻止从外部源发送的包数据还是让所述包数据通过。可由用户直接设置包规则,或者可将包规则设置为默认。由用户设置的规则被转换为可由反恶意软件系统100使用的格式,并且以规则模式DB 120的形式被实现。防火墙引擎130可基于包规则对包数据执行过滤操作,并且确定该包数据是否包含将被扫描的数据。换句话说,根据示例性实施例,防火墙引擎130可执行过滤操作以及确定该包数据是否包含将被扫描的数据的操作两者。在此实施例中,反病毒引擎150可对已经由防火墙引擎确定为包含将被扫描的数据的包数据执行病毒扫描操作。可在由防火墙引擎130执行过滤操作之前或之后执行病毒扫描操作,或者在过滤操作的同时执行病毒扫描操作。防火墙引擎130可对包数据执行过滤操作,但是可不确定该包数据是否包含将被扫描的数据。在此实施例中,反病毒引擎150对所有的包数据执行病毒扫描操作,而不对包数据进行区分。可选择地,反病毒引擎150可在执行过滤操作之前或者之后对包数据执行病毒扫描操作。可以用现有技术中公知的方法、将在未来开发的方法或者在本说明书中描述的方法中的任何一种来执行防火墙引擎130的过滤操作。可以用现有技术中公知的方法、将在未来开发的方法或者在本说明书中描述的方法中的任何一种来执行反病毒引擎150的病毒扫描操作。以下,将解释根据示例性实施例的防火墙引擎130的过滤操作。防火墙引擎130可通过将包数据与规则模式DB 120进行匹配来确定包数据是否满足包规则。根据示例性实施例,防火墙引擎130可通过将包括在包数据的头中的信息(IP 地址、协议和端口)与规则模式DB 120进行比较来确定该包数据是否满足包规则。更具体地讲,防火墙引擎130可通过将包括在包数据的头中的信息(IP地址、协议和端口)与哈希匹配器表和子匹配器表进行匹配来确定该包数据是否满足包规则。根据示例性实施例,防火墙引擎130可使用规则模式的哈希值和包数据的哈希值来执行匹配操作。尽管没有显示,反恶意软件系统100通过应用哈希函数来将包数据与规则模式DB 120进行匹配。例如,防火墙引擎130将规则模式的哈希值与至少一部分的包数据的哈希值进行匹配,并且仅在哈希值的匹配成功时,防火墙引擎130才将规则模式与包数据进行匹配。下面将参照图11-图15对防火墙引擎130的过滤操作的示例进行详细解释。根据示例性实施例,防火墙引擎130可确定包数据是否包含将被扫描病毒的数据。如果防火墙引擎I30确定包数据包含将被扫描病毒的数据,则反病毒引擎150对相应的数据执行病毒扫描操作。下面将参照图4和图5进行详细解释。根据可选择的示例性实施例,防火墙引擎130可确定包数据是否包含将被扫描病毒的数据,并且还确定将被扫描病毒的数据的类型。将被扫描病毒的数据的类型可被分类为文件数据和非文件数据,并且文件数据可被分类为脚本文件数据和一般文件数据。数据的这些类型仅是示例,并且可定义任何不同类型的数据。下面将参照图6对由防火墙引擎 130分类的数据的类型进行详细解释。根据另一可选择的示例性实施例,防火墙引擎130可在对包数据执行过滤操作之前,确定包数据是否包含将被扫描病毒的数据。如果防火墙引擎130确定包数据包含将被扫描病毒的数据,则反病毒引擎150对包数据执行病毒扫描操作,并且防火墙引擎130对包数据执行过滤操作。可不必同时执行扫描操作和过滤操作,并且可以顺序地执行扫描操作和过滤操作。病毒模式DB 140是包括至少一个病毒模式的数据库。根据示例性实施例,病毒模式DB 140可包括语法简单的病毒模式和/或语法复杂的病毒模式。在第10-2010-0049566 号的韩国专利申请(于2010年5月27日提交)和第10-2010-005^81号的韩国专利申请 (于2010年6月4日提交)中定义了语法定义简单的模式或者语法复杂的模式。除非这里有相反指示或者在上下文有明显的矛盾之处,这些文档被同等地引用于此。反病毒引擎150使用病毒模式DB 140确定在将被扫描病毒的数据中是否存在病毒。根据示例性实施例,将被扫描的数据可以是通过驱动器200接收的数据或者是从防火墙引擎130接收的包数据。反病毒引擎150可对包数据直接执行病毒扫描操作。然而,反病毒引擎150可能需要对包数据执行预处理。例如,为了执行预处理,反病毒引擎150可搜索与最小有意义单位缓冲器相应的数据中的脚本格式的病毒模式。预处理的另一示例可以是收集包含特定格式的文件的包数据并且识别文件格式的操作。反病毒引擎150可执行扫描操作以确定在与最小有意义单位相应的文件中是否存在病毒模式。这种预处理可根据反病毒引擎150的扫描方案或者病毒模式DB 140的格式而不同。然而,为了防止本公开的实施例被不必要地模糊,假设当反病毒引擎150对包数据执行扫描操作时执行必要的预处理,除非有相反说明。
参照回图1,反病毒引擎150可使用病毒模式DB 140来对通过通信单元110接收的包数据执行病毒扫描操作。根据示例性实施例,可在执行防火墙引擎130的过滤操作的同时或者在执行过滤操作之前或者之后,执行反病毒引擎150的扫描操作。例如,对于通过通信单元110接收的包数据,反病毒引擎150和防火墙引擎130同时或单独地执行扫描操作和过滤操作。反病毒引擎150可根据应用单元300的指令对通过驱动器200接收的数据执行病
毒扫描操作。根据示例性实施例,反病毒引擎150通过将包数据与病毒模式DB 140进行匹配来确定包数据是否包含病毒。根据示例性实施例,反病毒引擎150可使用哈希值来执行病毒扫描操作。例如,反病毒引擎150执行哈希值匹配操作以将病毒模式的哈希值与包数据的哈希值进行匹配,并且如果所述哈希值匹配,则执行轻模式匹配操作(light pattern matching operation)以将部分的包数据与部分的病毒模式进行匹配。如果轻模式匹配操作成功,则反病毒引擎150 执行精确模式匹配操作以将全部包数据与全部病毒模式进行匹配。管理器160解析从应用单元300接收的命令,确定该命令是涉及扫描操作还是涉及过滤操作,并且执行与该命令相应的操作。例如,如果管理器160从应用单元300接收到用于更新的病毒模式DB,则管理器 160可将用于更新的病毒模式DB加载到病毒模式DB 140。此外,管理器160可从应用单元300接收用于扫描的命令,并且可根据该命令控制反病毒引擎150执行扫描操作。此外,管理器160可从反病毒引擎150接收由反病毒引擎150进行扫描的结果,并将该结果通知给应用单元300。根据示例性实施例,如果管理器160从应用单元300接收到用于更新的规则模式列表,则管理器160可基于规则模式列表来产生规则模式DB 120。此外,管理器160可从防火墙引擎130接收过滤的结果,并且将结果通知给应用单元 300。在此实施例中,可由一个管理器160来管理防火墙引擎130和反病毒引擎150。然而,这仅是一个示例并且可为每个功能提供单独的管理器。例如,管理器160可包括涉及过滤操作的防火墙管理器、涉及扫描操作的反病毒管理器以及用于管理防火墙管理器和反病毒管理器的恶意软件管理器。在这种情况下,恶意软件管理器确定从应用单元300接收的数据或命令是涉及防火墙还是涉及反病毒,并且将该数据或命令发送给相应管理器。例如,如果恶意软件管理器从应用单元300接收到规则模式列表,则恶意软件管理器将规则模式列表发送给防火墙管理器。防火墙管理器基于规则模式列表形成规则模式 DB。如果恶意软件管理器接收到扫描命令,则恶意软件管理器将该扫描命令发送给反病毒管理器。反病毒管理器命令反病毒引擎150执行扫描操作,并且相应地反病毒引擎150执行扫描操作。图2是示出根据另一示例性实施例的反恶意软件系统的框图。参照图2,根据另一示例性实施例的反恶意软件系统与图1中的反恶意软件系统类似。在图1和图2中,相同或类似的元件被指定了相同的标号,并且以下将主要解释图1和图2之间的差别。在此实施例中,通过公共硬件来执行反病毒引擎150的病毒模式匹配操作和防火墙引擎130的规则模式匹配操作。匹配单元165可将病毒模式与包数据进行匹配,并且还将规则模式与包数据进行匹配。换句话说,在一些情况下,匹配单元165被操作为反病毒引擎150的一部分,而在不同的情况下,匹配单元被操作为防火墙引擎130的一部分。例如,如果匹配单元165被操作为反病毒引擎150的一部分,则匹配单元165将病毒模式DB 140与将被扫描的数据进行匹配。在这种情况下,匹配单元165可执行病毒模式 DB 140和将被扫描的数据之间的哈希值匹配操作、轻模式匹配操作和精确模式匹配操作。另一方面,如果匹配单元165被操作为防火墙引擎130的一部分,则匹配单元165 将规则模式DB 120与包数据进行匹配。在这种情况下,匹配单元165可执行规则模式DB 120和包数据之间的哈希值匹配操作、轻模式匹配操作和精确模式匹配操作。下面将参照图 7对匹配单元165的哈希值匹配操作、轻模式匹配操作和精确模式匹配操作进行详细解释。图3是示出根据另一示例性实施例的反恶意软件系统的框图。参照图3,根据本发明另一示例性实施例的反恶意软件系统100包括与图1或图2 类似的元件。因此,相同或类似的元件被指定了相同的标号,以下将对差别进行主要解释。在此实施例中,反病毒引擎150和防火墙引擎130包括单独的硬件来分别执行病毒模式匹配操作和规则模式匹配操作。参照图3,防火墙引擎130包括第一匹配单元152来执行规则模式匹配操作,并且反病毒引擎150包括第二匹配单元IM来执行病毒模式匹配操作。第一匹配单元152执行规则模式DB 120与包数据之间的匹配操作,第二匹配单元巧4执行病毒模式DB 140与包数据之间的匹配操作。第一匹配单元152和第二匹配单元 156中的每一个可执行哈希值匹配操作、轻模式匹配操作和精确模式匹配操作。此外,在语法复杂的模式的情况下,可还执行全模式匹配操作。图4是解释根据示例性实施例的反恶意软件系统的操作的示图。参照图4,反恶意软件系统包括通信单元110、防火墙引擎130、反病毒引擎150、反恶意软件管理器161、防火墙管理器162、反病毒管理器164、反病毒检查器170、辅助缓冲器 180、第一缓冲器182、第二缓冲器184、第三缓冲器185、发送器(TX)和接收器(RX)。通信单元110可与外部源交换数据。以下,将主要对此实施例与前述实施例之间的差别进行描述。根据示例性实施例,反恶意软件系统同时对包数据执行过滤操作和病毒扫描操作。可精确地同时执行过滤操作和病毒扫描操作,或者可首先执行它们中的任何一个。如果防火墙引擎130接收到包数据,则在执行过滤操作的同时或者之后,防火墙引擎130确定包数据是否包含将被扫描病毒的数据。如果确定包数据包含将被扫描病毒的数据,则防火墙引擎130不发送包数据并且临时保存包数据。例如,包数据被存储在备用缓冲器中。存储在备用缓冲器中的包数据处于备用状态,直到对包数据的病毒扫描的结果被接收。根据示例性实施例,如果防火墙引擎130接收到在包数据中不存在病毒的结果,则防火墙引擎130将处于备用状态的包数据发送给发送缓冲器。基于包数据并不违犯包规则的前提,将包数据发送给发送缓冲器。通过发送器(TX),发送给发送缓冲器的包数据可被发送到相应应用或者外部装置。如果防火墙引擎I30接收到在包数据中存在病毒的结果,则防火墙引擎130不将处于备用状态的包数据发送给发送缓冲器,并且丢弃该包数据。在此实施例中,防火墙管理器162可将对于包数据的过滤和病毒扫描的结果通知给用户应用。根据示例性实施例,如果防火墙引擎130向防病毒检查器170通知包数据包含将被扫描病毒的数据,则反病毒检查器170将该结果通知给反病毒引擎150。此外,反病毒检查器170从反病毒引擎150接收扫描的结果,并且将该结果通知给防火墙引擎130和防火墙管理器162。其后,防火墙引擎130基于扫描的结果将包数据发送给发送缓冲器,并且丢弃它。参照图4,将对同时过滤和扫描包数据的操作进行详细解释。在图4中,反恶意软件系统100的元件之间的操作被编号。标号被显示仅为了解释方便,而不是表示操作的顺序。防火墙引擎130读出存储在第一缓冲器182中的包数据,并且对包数据执行过滤操作。在过滤操作期间或者之后,防火墙引擎130确定包数据是否包含将被扫描病毒的数据,即是否扫描包数据。如果确定包数据不包含将被扫描的数据,即没必要进行扫描,则防火墙引擎130 将包数据发送给第三缓冲器185。根据示例性实施例,防火墙引擎130可确定是否在过滤操作期间进行扫描。在此实施例中,如果没必要进行扫描,则包数据可被发送给第三缓冲器185,而不用被存储在第二缓冲器184中。当然,可在将包数据存储在第二缓冲器184中之后,再将包数据发送给第三缓冲器185。根据另一示例性实施例,防火墙引擎130可确定是否在过滤操作之后进行扫描。 在此实施例中,在防火墙引擎130确定扫描的同时,将被扫描的包数据可被存储在第二缓冲器184中。如果没必要进行扫描,则防火墙引擎130将存储在第二缓冲器184中的包数据发送给第三缓冲器185。如果确定有必要进行扫描,则可执行将在下面进行解释的操作①- 。如果确定有必要进行扫描,则防火墙引擎130复制正被过滤或存储在第二缓冲器 184中的包数据,并将该包数据存储在辅助缓冲器180中(操作①)。此外,防火墙引擎130 通知反病毒检查器170 存在将被扫描病毒的包数据(操作②)。已经由防火墙引擎130通知了存在将被扫描病毒的包数据的反病毒检查器170访问辅助缓冲器180,并且识别辅助缓冲器180是否存储将被扫描病毒的数据(操作③),并且通知反病毒引擎150 存在将被扫描病毒的包数据(操作④)。反病毒引擎150访问辅助缓冲器180,从辅助缓冲器180读出包数据,并对包数据执行病毒扫描操作(操作⑤)。反病毒引擎150将包数据的病毒扫描操作的结果通知给反病毒检查器170(操作 ⑥)。反病毒检查器170将从反病毒引擎150接收的病毒扫描操作的结果通知给防火墙管理器162和防火墙引擎130 (操作⑦和⑧)。防火墙管理器162将从防病毒检查器170发送的病毒扫描的结果以及过滤的结果通知给反恶意软件管理器161 (操作⑨)。可由防火墙引擎130通知过滤的结果。反恶意软件管理器161可将由防火墙管理器162通知的扫描的结果和过滤的结果发送给应用单元(操作 )。如果反病毒检查器170通知防火墙引擎130:扫描的结果是存在病毒,则防火墙引擎130丢弃当前存储在第二缓冲器184中的包数据。如果不存在病毒,则防火墙引擎130 将存储在第二缓冲器184中的包数据发送给第三缓冲器185 (操作⑩)。在以上实施例中,存储在备用缓冲器(即,第二缓冲器184)中的包数据被复制并存储在辅助缓冲器180中,并且存储在辅助缓冲器180中的包数据被扫描病毒。然而,这不应认为是限制。例如,不设置辅助缓冲器180,反病毒引擎150直接访问第二缓冲器184,读出存储在第二缓冲器184中的包数据,并且对包数据进行病毒扫描。此外,存储将被扫描病毒的包数据的第二缓冲器184被布置在防火墙引擎130内部。然而,第二缓冲器184可被布置在防火墙引擎130外部。此外,反病毒检查器170被用作单独的元件,但是可无需使用反病毒检查器170来实现本公开。例如,反病毒管理器164可被调整用于执行反病毒检查器170的功能。在这种情况下,防火墙引擎130命令反病毒管理器164扫描存储在辅助缓冲器180中的包数据,反病毒引擎150根据反病毒管理器164的指令来执行病毒扫描操作,并且将病毒扫描的结果通知给反病毒管理器154。此后,反病毒管理器164将扫描的结果通知给反恶意软件管理器 161和/或防火墙管理器162。接下来的操作与在前述实施例中的操作相同。以上已经参照图1至图3描述了反病毒引擎150的病毒扫描操作和防火墙引擎 130的过滤操作。如在图3的实施例中,反病毒引擎150和防火墙引擎130可包括它们各自的匹配单元以执行它们的操作,或者如在图2的实施例中,反病毒引擎150和防火墙引擎 130可共享公共匹配单元来执行它们的操作。图5是解释根据另一示例性实施例的反恶意软件系统的操作的示图。以下,将主要解释图4和图5之间的差别。参照图5,防火墙引擎130确定存储在第一缓冲器182中的包数据是否包含将被扫描病毒的数据,并且如果确定包数据包含将被扫描的数据,则防火墙引擎130将包数据存储在第二缓冲器184中,并且通知反病毒检查器190:存在将被扫描的数据(操作①)。接下来的操作②和③与图4中的操作②和③相同。反病毒引擎150读出存储在第二缓冲器184中的包数据(操作④)并且执行病毒扫描操作。接下来的操作⑤至⑩与图4中的操作⑤至⑩相同。图6是解释根据另一示例性实施例的反恶意软件系统的操作的示图。以下,将主要说明图6和图4之间的差别。根据图6的实施例,防火墙引擎130确定包数据是否包含将被扫描的数据,并且如果作为确定的结果确定有必要进行扫描,则防火墙引擎130确定哪种类型的数据被包含在待扫描的包数据中(下文中的扫描数据的类型)。
如果作为确定的结果没必要进行扫描,则防火墙引擎130将包数据发送给第三缓冲器185。如果确定有必要进行扫描,则防火墙引擎130确定包含在包数据中的扫描数据的类型。如果扫描数据的类型是第一类型,则防火墙引擎130将包数据仅存储在第二缓冲器 184中,并且通知反病毒检查器190 包数据被存储在第二缓冲器184中(操作②)。另一方面,如果扫描数据的类型是第二类型,则防火墙引擎130还将包数据存储在辅助缓冲器180中。具体地讲,如果将被扫描病毒的数据是第二类型,则防火墙引擎130 将包含将被扫描的数据的包数据存储在第二缓冲器184中,并且还将该包数据存储在辅助缓冲器180中。防火墙引擎通知反病毒检查器190 存在将被扫描的数据(操作②)。当通知了反病毒检查器170存在将被扫描的数据时,防火墙引擎130可还通知哪个缓冲器存储将被扫描的数据,例如辅助缓冲器180是否存储将被扫描的数据。反病毒检查器170通知反病毒引擎150:存在将被扫描的数据(操作④)。此外, 反病毒检查器170可通知哪个缓冲器存储将被扫描的数据。反病毒引擎150读出存储在辅助缓冲器180或者第二缓冲器184中的数据(操作 ⑤’或⑤”),对该数据执行扫描操作,并将扫描的结果通知给反病毒检查器170 (操作⑥)。 反病毒检查器170将扫描的结果通知给防火墙引擎130 (操作⑧),防火墙引擎130根据扫描的结果将存储在第二缓冲器184中的包数据发送给第三缓冲器185,或者丢弃它。防火墙管理器162和反恶意软件管理器161的功能与图4中的防火墙管理器162 和反恶意软件管理器161的功能相同或类似,因此省略对其的详细描述。在此实施例中,不存在将数据的类型分为第一类型和第二类型的绝对标准。可使用合适的标准。例如,数据的类型可按照数据的大小被分为第一类型和第二类型。在这种情况下,例如,小尺寸的数据(诸如脚本文件)可被分类为第一类型,而大尺寸的数据可被分类为第二类型。图7是示出根据示例性实施例的匹配单元的框图。参照图7,根据示例性实施例的匹配单元包括系统接口 201、系统寄存器203、存储器接口 205、存储器207、缓冲器209、哈希匹配器211、偏移地址产生器213、哈希队列(Q)缓冲器215、轻模式匹配器217和扫描Q缓冲器219。根据示例性实施例,图7的匹配单元可用作图2或图3的匹配单元。系统接口 201支持反恶意软件系统100和外部装置之间的接口,并且存储器接口 205用于读出存储在反恶意软件系统100中的DB或文件。存储器207可存储哈希匹配器211所需的数据(例如,模式哈希值表)以执行哈希匹配操作。缓冲器209可存储由存储器接口 205读出的目标数据。在此实施例中,缓冲器209 可被配置为双存储体(dual bank)形式。目标数据被划分为与缓冲器209能够存储的大小相等的子数据,并且子数据被存储在两个缓冲器209中。如果图7的匹配单元被用作反病毒引擎的一部分,则目标数据可以是诸如文件的数据。另一方面,如果图7的匹配单元用作防火墙引擎的一部分,则目标数据可以是包数据。哈希匹配器211将目标数据的哈希值与哈希匹配器表43进行匹配。哈希匹配器 211将哈希值已经被成功匹配的目标数据存储在哈希Q缓冲器215中。
如果哈希值匹配成功,则偏移地址产生器213产生存储器地址,在该存储器地址中存储了在子匹配器表中匹配的哈希值。哈希Q缓冲器215使得移地址产生器213产生的地址对应于目标数据,并且存储它们。轻模式匹配器217将存储在哈希Q缓冲器215中的目标数据的一部分(例如,目标数据的中间值和尾值)与病毒模式(或者规则模式的IP哈希值、协议哈希值或者IP地址的中间值)彼此进行匹配。轻模式匹配器217将已经通过轻模式匹配操作成功匹配的目标数据存储在扫描Q缓冲器219中。扫描Q缓冲器219可存储已经通过轻模式匹配操作成功匹配的目标数据。如果图7的匹配单元117被用作反病毒引擎150的一部分,则反病毒引擎150可执行精确匹配操作以将存储在扫描Q缓冲器219中的目标数据与病毒模式精确匹配,并且如果精确匹配操作成功,则执行全模式匹配操作。如果数据具有语法复杂的模式,则执行全模式匹配操作。在语法简单的模式的数据的情况下,仅进一步执行精确模式匹配操作。另一方面,如果图7的匹配单元117被用作防火墙引擎130的一部分,则防火墙引擎130可执行精确匹配操作以将存储在扫描Q缓冲器219中的目标数据与规则模式精确地匹配。在上述匹配操作中,在下述韩国专利申请中详细描述了病毒模式匹配操作第 10-2010-0049566号韩国专利申请(于2010年5月27日提交)、第10-2010_005四81号韩国专利申请(于2010年6月4日提交)、第10-2011-0049249号韩国专利申请(于2011年 5月M日提交)。除非这里有相反指示或者在上下文有明显的矛盾之处,这些文档被同等地引用于此。图8是解释根据示例性实施例的防火墙引擎的过滤操作的示图。参照图8,防火墙引擎130使用由硬件配置的匹配单元117来将包数据与规则模式进行匹配。在此实施例中,防火墙引擎130将包括在包数据的头中的信息(诸如IP地址、 协议或者端口)与规则模式进行匹配。参照图8,规则模式DB 120可存储至少一个包规则,并且可包括包的方向、IP地址、协议、端口、许可/阻止信息。包的方向指示包被转发的方向并且通过“进入(In)”、“发出(Out),,和“两者(Both),,来表示,IP地址指示源IP地址和目的IP地址,IP地址协议指示使用的协议的类型(诸如,传输控制协议(TCP)、用户报文协议(UDP)、互联网控制消息协议(ICMP)以及全部),端口指示将被设置的端口号,许可/阻止消息指示是允许还是阻止该包。在此实施例中,哈希匹配器211使用哈希匹配器表305来执行哈希值匹配操作,并且轻模式匹配器217使用子匹配器表307来执行轻模式匹配操作。哈希匹配器211在硬件层将存储在缓冲器209中的数据的哈希值与哈希匹配器表305进行匹配。哈希值已经被匹配的数据被存储在哈希Q缓冲器215中,并且轻模式匹配器217在硬件层将存储在哈希Q 缓冲器215中的数据与子匹配器表进行匹配。如果轻模式匹配器217的匹配成功,则匹配的数据被存储在扫描Q缓冲器219中,并且防火墙引擎130执行精确模式匹配操作以在软件层确定存储在扫描Q缓冲器219中的数据和整个规则模式DB是否彼此相同。其后,防火墙引擎130根据精确模式匹配的结果让包数据通过或者阻止包数据。
参照图8,如果接收到将被过滤的包数据,则防火墙引擎130首先对包数据执行包分类过程,并且仅在包分类过程的结果是包数据需要被模式匹配时,防火墙引擎130才将包数据与规则模式DB进行匹配。当执行包分类过程时防火墙引擎130使用匹配单元177 至少一次,并且当将包数据与规则模式DB进行匹配时还使用匹配单元177。下面将参照图 11至图15来提供对上述内容的详细描述。图8的防火墙引擎130的配置仅是示例,并且可过滤包数据的任何配置可被应用到本公开中。图9是示出用于根据示例性实施例的防火墙引擎的过滤操作的表的示图。参照图9,(a)显示了头信息的示例,(b)显示了哈希匹配器表的示例,(C)显示了子匹配器表的示例。在此实施例中,防火墙引擎130可使用存储在规则模式DB 230中的规则模式来产生哈希匹配器表。更具体地讲,防火墙引擎130通过使用哈希函数来获取用于包括在规则模式中的IP地址的所有哈希值,并且基于哈希值来配置图9中的(b)的哈希匹配器表。参照图9的(b),哈希匹配器表包括索引项和指示索引是否存在的存在/不存在项。通过可由预定哈希函数获得的所有哈希值来确定索引,并且如果索引值与规则模式的 IP地址的哈希值相同,则在存在/不存在项中将索引设置为“ 1 ”。哈希匹配器表还包括协议的哈希值和端口的哈希值。防火墙引擎130可产生子匹配器表。每当规则模式DB更新时,防火墙引擎130重新产生子匹配器表和哈希匹配器表。防火墙引擎130可从规则模式DB和/或哈希匹配器表产生子匹配器表。子匹配器表包括索引项、中间项、尾项、ispro项、isport项、实际模式存储器地址项以及下一项。为了便于理解,将参照图9的(C)来解释子匹配器表。根据图9的(C)的第一记录,索引项是“X”,中间项是“0x03”,尾项是“(^21”,丨印1~0项是“1”、丨印0汁项是“1”、实际模式存储器地址项是“0x0001”,next (下一)项是“R”。在子匹配器表的索引项中显示的值是在哈希匹配器表的存在/不存在项中具有值“1”的值。换句话说,子匹配器表的第一记录的索引“X”还存在于哈希匹配器表中,并且在存在/不存在项中具有值“1”。另一方面,值“R”不存在于哈希匹配器表中,而是存在于子匹配器表中作为索引值。在规则模式不同而IP地址的哈希值相同的情况下,换句话说, 在哈希冲突发生的情况下,提供此值。例如,规则模式A和规则模式B具有不同的IP地址, 但是规则模式A的IP地址的哈希值和规则模式B的IP地址的哈希值相同(例如,哈希值 “X”)(哈希冲突)。在这种情况下,如在图9的(c)的子匹配器表所示,规则模式A的IP地址的哈希值被写为“X”,规则模式B的IP地址的哈希值被写为“R”,并且“R”被写在next 项中。如果作为对索引“X”的记录执行子匹配的结果是子匹配不成功,则用于索引“R”的记录的子匹配被再次执行。根据示例性实施例,写在next项中的“R”可被定义为存储索引 “X”的记录的存储器地址与存储索引“R”的记录的存储器地址之间的差别。写在子匹配器表的索引项中的值(例如,X、A或者B)可从哈希匹配器表中获得, 或者可直接从规则模式DB获得,而无需使用哈希匹配器表。换句话说,规则模式DB的规则模式拥有的IP地址的哈希值可被写作子匹配器表中的索引。
子匹配器表的第一记录的索引“X”是存储在由实际模式存储器地址项指定的存储器地址(“0x0001”)中的规则模式的IP地址的哈希值。子匹配器表的中间项中的值“0x03”是存储在由实际规则模式地址项指定的存储器地址(“0x0001”)中的规则模式的IP地址的中间字节的值。子匹配器表的尾项中的值“0x21”是存储在由实际规则模式地址项指定的存储器地址(“0x0001”)中的规则模式的IP地址的尾字节的值。子匹配器表的ispro项的值“ 1”是指存储在由实际规则模式地址项指定的存储器地址(“0x0001”)中的规则模式被应用到所有协议。子匹配器表的isport项的值“1”是指存储在由实际规则模式地址项指定的存储器地址(“0x0001”)中的规则模式被应用到所有端口。已经对IP匹配过程进行了以上解释,并且以上解释是关于在图9的子匹配器表中的标记为“子IP”的区域。下文中,将对图9的子匹配器表中的标记为“子端口”的区域进行解释。此区域中的值用于端口匹配过程。图9的(c)的子匹配器表中的索引“A”是指存储在由实际规则模式地址项指定的存储器地址(“0x2000”)中的规则模式的端口的哈希值被应用到所有端口。IP哈希项中的值“C”是包括在存储在由实际规则模式地址项指定的存储器地址(“0x2000”)中的规则模式中的IP地址的哈希值。协议哈希项中的值“D”是包括在存储在由实际规则模式地址项指定的存储器地址(“0x2000”)中的规则模式中的端口的哈希值。在IP哈希值冲突的情况下提供索引“B”。可由防火墙引擎130来产生上述哈希匹配器表和子匹配器表,并且还可由除了防火墙引擎130之外的单独提供的元件来产生上述哈希匹配器表和子匹配器表。图10是解释根据示例性实施例的反恶意软件系统中的另一匹配操作的示图。参照图10,反病毒引擎150执行哈希值匹配操作和轻模式匹配操作。如果轻模式匹配操作成功,则反病毒引擎150执行精确模式匹配操作以确定病毒模式是否与目标数据 (包数据)完全相同。根据精确模式匹配的结果,反病毒引擎150确定目标数据是否被病毒感染。参照图10,存储在病毒模式DB 120中的病毒模式被划分为多个子模式(“多模式形成过程”),并且多个子模式被加载到DB中。“多模式形成过程”是这样的过程在通过反病毒管理器将病毒模式DB 140加载到存储器中之前,根据相应的匹配器将每个病毒模式划分为多个子模式。通过用于“DB加载”的模块来将多个子模式加载到存储器中。如果病毒模式DB被加载,则反病毒引擎150的匹配单元117执行匹配操作。匹配单元117执行哈希值匹配操作和轻模式匹配操作。以上已经参照图7描述了匹配单元117的操作,因此省略对其的解释。此外,在第10-2010-0049566号的韩国专利申请(于2010年5月27日提交)和第 10-2010-0052981号的韩国专利申请(于2010年6月4日提交)以及第10-2011-0049M9 号的韩国专利申请(于2011年5月M日提交)中,详细地描述了用于产生哈希匹配器表和子匹配器表的方法以及哈希值匹配操作和轻模式匹配操作。除非这里有相反指示或者上下文有明显的矛盾之处,这些文档被同等地引用于此。图11是示出根据示例性实施例的包过滤方法的流程图。参照图11,如果防火墙引擎130接收到将被过滤的包数据(操作S401),则包数据的头被转换为模式格式(操作S403)。使用包数据的头信息来对包数据执行包分类过程 (操作S405)。操作S403中的模式格式可以是如图9的(a)中所示的格式。在此实施例中, 操作S403仅是示例,并且将被过滤的包数据的头可以不必被转换为图9的(a)中所示的格式。例如,图11的实施例可包括从包数据提取头信息的操作,来代替操作S403,并且使用头信息执行操作S405。下面将参照图12对包分类过程进行详细解释。如果完成对包数据的包分类过程,则确定是否将执行模式匹配操作S407。换句话说,防火墙引擎130不对所有的包数据执行模式匹配操作,并且通过将包分类过程(操作 S405)应用到包数据来确定是否对包数据执行模式匹配操作。只有确定将执行模式匹配操作,才执行模式匹配操作。在模式匹配操作S407中,包数据与存储在规则模式DB 120中的规则模式进行匹配。因此,检查包数据是否与规则模式匹配(操作S407)。例如,防火墙引擎130使用图8的硬件117来检查包数据的头信息(IP地址、端口号或者协议)是否与规则模式匹配。在使用图8的硬件117执行操作S407中,哈希匹配器 211将包数据的头的哈希值与规则模式的头的哈希值进行匹配,如果哈希值彼此匹配,则轻模式匹配器217将包数据的头的中间值和尾值与规则模式的头的中间值和尾值进行匹配。 如果中间值和尾值彼此匹配,则防火墙引擎130执行精确匹配操作以将包数据的头的全部与规则模式的头的全部进行匹配。如果精确匹配成功,则防火墙引擎130阻止包数据,将对其进行解释。如果包数据与规则模式匹配,则根据规则模式来允许或者阻止该包数据(操作409)。另一方面,如果包数据与规则模式不匹配,则确定匹配不成功,因此让包数据通过。图12是示出根据示例性实施例的包分类过程的流程图。参照图12,包分类过程包括操作S501至S519,如果作为包分类过程的结果,确定包数据需要被模式匹配,则防火墙引擎执行模式匹配操作(操作S521)。根据示例性实施例,防火墙引擎使用至少一个标志来执行包分类过程。标志可包括IP标志、协议标志、端口标志、指示包数据是否根据IP匹配而被分类的标志、指示包数据是否根据协议匹配而被分类的标志、以及指示包数据是否根据端口匹配而被分类的标志。在此实施例中,防火墙引擎可参照图9的(c)中显示的规则模式DB和 /或子匹配器表来设置每个标志的值。防火墙引擎可将标志值存储在系统寄存器203中,并且还可将标志值存储在除了系统寄存器203之外的存储器单元(未显示)中。如果在多个规则模式中存在允许所有IP地址通过的至少一个规则模式,则防火墙引擎将IP标志设置为“所有(All) ”。以相同的方式,如果在多个规则模式中存在允许所有协议通过的至少一个规则模式,则防火墙引擎将协议标志设置为“所有(All)”。此外,如果在多个规则模式中存在允许所有端口通过的至少一个规则模式,则防火墙引擎将端口标志设置为“所有(All) ”。 可在执行包分类过程之前或者在执行包分类过程的同时,来执行设置标志的以上操作。在IP匹配操作、协议匹配操作和端口匹配操作期间,由防火墙引擎将指示包数据是否被分类的标志设置为“是”或者“否”。以下将参照图13、14、15来对上述内容进行详细解释。如果防火墙引擎接收到将被过滤的包数据,则防火墙引擎通过检查IP标志来确定IP表示是否为“所有(All)”(操作S501)。如果IP标志不是“所有(All)”,则对包数据执行IP匹配过程(操作S503)。下面将参照图13对IP匹配过程进行详细解释。在完成IP匹配过程之后,如果指示包数据是否根据IP匹配而被分类的标志被设置为“否”(操作S505 否),则确定协议标志是否为“所有(All),,(操作S507)。在IP匹配过程期间,指示包数据是否根据IP匹配而被分类的标志被设置为“是” 和“否”之一,将参照图13进行解释。如果协议标志不是“所有(All)”,则防火墙引擎执行协议匹配过程(操作S509)。下面将参照图14对协议匹配操作进行详细解释。在完成协议匹配过程之后,如果指示包根据协议匹配而被分类的标志被设置为“否”(操作S511 否),则防火墙引擎确定端口标志是否被设置为“所有(All)”(操作S513)。如果端口标志被设置为“所有(All)”,则确定IP标志是否被设置为“所有 (All)”(操作S519)。如果IP标志被设置为“所有(All)”,则防火墙引擎完成对于包数据的规则模式匹配操作。然而,如果IP标志不是“所有(All)”(操作S519:否),则执行模式匹配操作(操作S521)。如果端口标志没有被设置为“所有(All) ”(操作S513 否),则防火墙引擎执行端口匹配过程(操作S5K)。下面将参照图15对端口匹配过程进行详细解释。在完成端口匹配过程之后,如果指示包数据根据端口匹配而被分类的标志被设置为“否”(操作S517 否),则对包数据执行模式匹配操作(操作S521)。另一方面,如果指示包数据是否被分类的标志被设置为“是”(操作S505 是,操作 S511 是,操作S517 是),则防火墙引擎完成对包数据的规则模式匹配操作。图13是示出根据示例性实施例的IP匹配过程的流程图。防火墙引擎执行哈希匹配过程以确定包括在包数据的头中的IP地址的哈希值是否与包括在规则模式DB中的规则模式的IP地址的哈希值匹配(操作S601)。根据示例性实施例,防火墙引擎的哈希匹配器211将包括在包数据的头中的IP地址的哈希值与图9的 (b)中显示的哈希匹配器表进行匹配。例如,如果包括在包数据的头中的IP地址的哈希值是“X”,则由于哈希匹配器表显示“X”存在,因此确定哈希值彼此匹配。如果哈希匹配过程没有实现匹配(操作S603),则防火墙引擎将指示包数据是否根据IP匹配而被分类的标志改变为“是”,这意味着包被分类(操作S613)。另一方面,如果哈希匹配过程实现了匹配(操作S603),则防火墙引擎执行子匹配过程,以使用子匹配器表对包执行匹配操作(操作S605)。根据示例性实施例,防火墙引擎的轻模式匹配器217将包括在包数据的头中的IP地址的中间值和尾值与图9的(c)中显示的子匹配器表进行匹配。如果子匹配过程没有实现匹配(操作S607),则防火墙引擎将指示包数据是否根据IP匹配而被分类的标志改变为“是”,这意味着包被分类(操作S613)。另一方面,如果子匹配过程实现了匹配(操作S607),则防火墙引擎识别ispro值和isport值,ispro值指示可应用于所有协议的规则是否存在于子匹配器表中,isport值指示可应用所有端口的规则是否存在(操作S608)。如果isport值为“1”,则在规则模式DB的多个规则模式中存在可应用于所有端口的至少一个规则模式,并且如果ispro值为“ 1 ”,则在规则模式DB的多个规则模式中存在可应用于所有协议的至少一个规则模式。在操作S609,如果ispro值不等于“1”,则防火墙引擎将协议标志改变为“不是所有(Not All)”(操作S615)。另一方面,如果ispro值为“1”,则防火墙引擎确定isport值是否等于1(操作S611)。如果isport值不等于“1”,则防火墙引擎将端口标志改变为“不是所有(NotAll)”(操作 S617)。图13的实施例中的指示包数据是否被分类的标志、协议标志、端口标志分别对应于使用在图12的操作S505中的指示包数据是否被分类的标志、在操作S507中使用的协议标志以及在操作S513中使用的端口标志。图14是示出根据示例性实施例的协议匹配过程的流程图。防火墙引擎执行哈希匹配过程以确定包括在包数据的头中的协议的哈希值是否与包括在规则模式DB中的规则模式的协议的哈希值匹配(操作S701)。根据示例性实施例,防火墙引擎的哈希匹配器211将包括在包数据的头中的协议的哈希值与图9的(b)中显示的哈希匹配器表进行匹配。例如,如果包括在包数据的头中的协议的哈希值是“Z”,则由于哈希匹配器表显示“Z”不存在,因此确定哈希值彼此不匹配。如果哈希匹配过程实现了匹配(操作S703),则防火墙引擎完成哈希匹配过程并且执行下一操作(例如,图12的操作S511)。另一方面,如果哈希匹配过程没有实现匹配, 则防火墙引擎将指示包数据是否根据协议匹配而被分类的标志改变为“是”,这意味着包被分类(操作S705)。指示包数据是否被分类的标志相应于图12的操作S511中使用的指示包数据是否被分类的标志。在此实施例中,由于执行了协议匹配的情况的数量少,因此仅通过哈希匹配过程来执行验证过程而不执行子匹配过程。然而,这仅是示例,可在协议匹配的情况下执行子匹配过程。图15是示出根据示例性实施例的端口匹配过程的流程图。防火墙引擎执行哈希匹配过程以确定包括在包数据的头中的端口的哈希值是否与包括在规则模式DB中的规则模式的端口的哈希值匹配(操作S801)。根据示例性实施例,防火墙引擎的哈希匹配器211将包括在包数据的头中的端口的哈希值与图9的(b)中显示的哈希匹配器表进行匹配。例如,如果包括在包数据的头中的协议的哈希值是“A”,则由于哈希匹配器表显示“A”存在,因此确定哈希值彼此匹配。如果哈希匹配过程没有实现匹配(操作S803),则防火墙引擎将指示包数据是否根据端口匹配而被分类的标志改变为“是”,这意味着包被分类(操作S809)。如果哈希匹配过程实现了匹配(操作S803),则防火墙引擎对包数据执行子匹配过程(操作S805)。根据示例性实施例,防火墙引擎的轻模式匹配器217将包括在包数据的头中的IP地址的哈希值和协议的哈希值与图9的(c)中的显示的子匹配器表进行匹配。如果子匹配过程没有实现匹配(操作S807),则防火墙引擎将指示包数据是否根据端口匹配而被分类的标志改变为“是”,这意味着包被分类(操作S809)。另一方面,如果子匹配过程实现了匹配,则防火墙引擎完成了端口匹配过程,并且执行图12的操作S517。在图15的操作S809中使用的指示包数据是否被分类的标志相应于在图12的操作S517中使用的指示包数据是否被分类的标志。图16是示出根据示例性实施例的反恶意软件系统的操作方法的流程图。通过但不限于图4至图6的反恶意软件系统中的任何一个来实现图16的操作方法。参照图16,如果防火墙引擎接收到包数据,则防火墙引擎对包数据执行过滤操作 (操作 S901)。如果包数据不满足过滤规则(操作S903-否),则防火墙引擎阻止包数据(操作S907)。即使包满足过滤规则,防火墙引擎也不立即让包数据通过而是临时保存包数据。反病毒引擎对处于备用状态的包数据执行病毒扫描操作(操作S905)。如果作为扫描的结果是病毒不存在于包数据中(操作S909-否),则包数据被发送到外部装置或者相应的应用(操作S911)。如果病毒存在于包数据中(操作S909-是),则单独地通过预定策略来丢弃或者管理包数据(操作S913)。图16的反恶意软件系统的操作方法可被如下修改。在第一方法中,如果目标数据满足过滤规则,则防火墙引擎确定目标数据是否包含将被扫描病毒的数据。只有存在将被扫描的数据时,才执行操作S905至S913。在第二方法中,反病毒引擎对所有包数据执行病毒扫描操作,而不管包数据是否满足过滤规则。换句话说,如果接收到包数据,则防火墙引擎和反病毒引擎执行它们各自的操作。在上述示例性实施例中,基于SOC来配置反恶意软件系统。然而,这仅是示例,并且本公开不必仅基于SOC被配置。例如,可以以安装在移动装置或者个人计算机中的应用的形式来实现反恶意软件系统。例如,可以以安装在应用单元300中的软件的形式来实现图1至图6中示出的管理器160、反病毒引擎150和防火墙引擎130。前述示例性实施例和优点仅是示例性的,并且不被解释为限制本发明构思。示例性实施例可被容易地应用到其他类型的设备。此外,示例性实施例的描述是出于示意性的目的,并且不限制权利要求的范围,并且对于本领域的技术人员来说,许多替换、修改和改变将是清楚的。
权利要求
1.一种反恶意软件系统的操作方法,该方法包括基于包规则对包数据执行过滤操作;在执行过滤操作的同时对包数据执行病毒扫描操作。
2.如权利要求1所述的方法,还包括确定正被过滤的数据是否包含将被扫描病毒的数据,其中,只有确定包数据包含将被扫描病毒的数据,才执行病毒扫描操作。
3.如权利要求2所述的方法,其中,如果作为执行过滤操作的结果,包数据满足包规则,并且如果作为执行病毒扫描操作的结果,确定包数据不包含病毒,则包数据被发送到使用该包数据的外部装置或者应用单元。
4.如权利要求2所述的方法,其中,如果作为执行过滤操作的结果,包数据满足包规则,并且如果作为执行病毒扫描操作的结果,确定包数据包含病毒,则包数据不被发送到使用该包数据的外部装置或者应用单元。
5.如权利要求2所述的方法,还包括如果在过滤操作中确定包数据满足包规则,则将满足包规则的包数据存储在备用缓冲器中。
6.如权利要求5所述的方法,其中,执行病毒扫描操作的步骤包括对存储在备用缓冲器中的包数据执行病毒扫描操作。
7.如权利要求5所述的方法,其中,只有存储在备用缓冲器中的包数据包含将被扫描病毒的数据,才执行病毒扫描操作。
8.如权利要求2所述的方法,还包括如果在过滤操作中确定包数据满足包规则,则将满足包规则的包数据存储在备用缓冲器中;如果在确定操作中确定满足包规则的包数据包含将被扫描病毒的数据,则将包数据复制到辅助缓冲器中并将包数据存储在辅助缓冲器中。
9.如权利要求8所述的方法,其中,对存储在辅助缓冲器中的包数据执行病毒扫描操作。
10.如权利要求8所述的方法,还包括把将被扫描病毒的包数据转换为适合于病毒扫描操作的格式的数据,其中,对转换的包数据执行病毒扫描操作。
11.如权利要求2所述的方法,还包括如果在确定操作中确定包数据包含将被扫描病毒的数据,则确定将被扫描病毒的数据的类型。
12.如权利要求11所述的方法,还包括如果将被扫描病毒的数据是第一类型,则将该包数据存储在备用缓冲器中,如果将被扫描病毒的数据是第二类型,则将该包数据存储在辅助缓冲器中。
13.如权利要求12所述的方法,其中,执行病毒扫描操作的步骤包括对存储在备用缓冲器或者辅助缓冲器中的包数据执行病毒扫描操作。
14.如权利要求1所述的方法,其中,执行过滤操作的步骤包括将包数据与规则模式进行匹配;根据匹配的结果来确定是否允许包数据,其中,执行病毒扫描操作的步骤包括将包数据与预定病毒模式进行匹配;根据匹配的结果确定包数据是否包含病毒。
15.如权利要求14所述的方法,其中,由单独的硬件来执行匹配操作。
16.如权利要求14所述的方法,其中,由公共硬件来执行匹配操作。
17.一种反恶意软件系统,包括防火墙引擎,基于包规则对包数据执行过滤操作,并且确定该包数据是否包含将被扫描病毒的数据;反病毒引擎,如果防火墙引擎确定包数据包含将被扫描病毒的数据,则对包数据执行病毒扫描操作。
18.如权利要求17所述的反恶意软件系统,其中,只有包数据满足包规则,防火墙引擎才确定包数据是否包含将被扫描病毒的数据。
19.如权利要求17所述的反恶意软件系统,还包括备用缓冲器,其中,防火墙引擎将满足包规则的包数据存储在备用缓冲器中。
20.如权利要求19所述的反恶意软件系统,其中,反病毒引擎对存储在备用缓冲器中的包数据执行病毒扫描操作。
21.如权利要求19所述的反恶意软件系统,其中,只有存储在备用缓冲器中的包数据包含将被扫描病毒的数据,反病毒引擎才执行病毒扫描操作。
22.如权利要求17所述的反恶意软件系统,还包括备用缓冲器和辅助缓冲器,其中,如果确定包数据满足包规则,则防火墙引擎将包数据存储在备用缓冲器中,并且如果满足包规则的包数据包含将被扫描病毒的数据,则将包数据存储在辅助缓冲器中。
23.如权利要求22所述的反恶意软件系统,其中,反病毒引擎对存储在辅助缓冲器中的包数据执行病毒扫描操作。
24.如权利要求17所述的反恶意软件系统,还包括反恶意软件管理器,把将被扫描病毒的包数据转换为适合于病毒扫描操作的格式的数据,其中,对转换的包数据执行病毒扫描操作。
25.如权利要求17所述的反恶意软件系统,还包括反病毒检查器,从防火墙引擎接收包数据包含将被扫描病毒的数据的通知,并且将包数据包含将被扫描病毒的数据通知给反病毒引擎。
26.如权利要求25所述的反恶意软件系统,其中,防火墙引擎将包数据包含将被扫描病毒的数据通知给反病毒检查器,并且将包数据存储在辅助缓冲器中,其中,反病毒引擎对存储在辅助缓冲器中的包数据执行病毒扫描操作。
27.如权利要求沈所述的反恶意软件系统,其中,反病毒检查器确认包数据被存储在辅助缓冲器中,并且将包数据包含将被扫描病毒的数据通知给反病毒引擎。
28.如权利要求27所述的反恶意软件系统,其中,反病毒引擎将对于存储在辅助缓冲器中的包数据执行病毒扫描操作的结果通知给反病毒检查器。
29.如权利要求27所述的反恶意软件系统,还包括反恶意软件管理器,接收执行防火墙引擎和反病毒引擎的操作的结果。
30.如权利要求四所述的反恶意软件系统,其中,反病毒引擎将对于存储在辅助缓冲器中的包数据执行病毒扫描操作的结果通知给反病毒检查器,其中,反病毒检查器将执行病毒扫描操作的结果通知给反恶意软件管理器。
31. 一种防火墙引擎,基于包规则对包数据执行过滤操作,并且确定包数据是否包含将被扫描病毒的数据。
全文摘要
提供了一种反恶意软件系统及其操作方法。该操作方法包括基于包规则对包数据执行过滤操作;在执行过滤操作的同时对包数据执行病毒扫描操作。因此,包数据的安全被加强。
文档编号H04L29/06GK102289614SQ201110170409
公开日2011年12月21日 申请日期2011年6月20日 优先权日2010年6月18日
发明者俞仁善 申请人:三星Sds株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1