反病毒分析期间选择同或异步文件访问方法的系统和方法
【专利摘要】反病毒分析期间选择同或异步文件访问方法的系统和方法。所公开的是用于实施文件的反病毒分析的系统、方法和计算机程序产品。具体地,反病毒软件检测在计算机上执行文件的尝试并收集关于当前文件属性的信息。软件检索关于旧文件属性的信息。软件随后将当前文件属性与旧文件属性加以比较来确定文件是否已被修改。当确定文件被修改时,软件同步地访问文件来实施其反病毒分析。在文件的同步访问期间,禁止一个或多个其他程序访问所分析的文件。当确定文件未被修改时,软件异步地访问文件。在文件的异步访问期间,允许其他程序中的一个或多个访问所分析的文件。
【专利说明】反病毒分析期间选择同或异步文件访问方法的系统和方法
[0001]相关申请的交叉引用
[0002]本申请根据美国法典第35篇119条(a) - (d)项要求享有于2012年12月25日提交的2012156434号俄罗斯申请的优先权,本文通过援引的方式对其加以合并。
【技术领域】
[0003]本公开总地涉及计算机安全领域,并且更具体地,涉及用于在文件的反病毒分析期间选择同步或异步文件访问方法的系统、方法和计算机程序产品。
【背景技术】
[0004]近些年来,有害程序的数目已明显增加,有害程序诸如病毒、蠕虫和木马以及其他类型的恶意软件。恶意软件对商业和个人计算机用户造成显著危害和经济损失。抵制这些威胁的最有效方法之一是使用反病毒软件。反病毒软件从计算机中检测并移除恶意程序并保护计算机和网络免受恶意软件的传播。为检测恶意程序,反病毒软件对计算机或网络驱动器上的文件实施单独文件扫描或全面扫描。
[0005]有时,在文件的反病毒分析期间反病毒软件可同步或者异步地访问文件。具体地,在同步访问期间,反病毒软件阻止任何通过其他程序的进程或线程来访问所分析的文件的尝试,直到文件的反病毒分析完成并且文件被确定是干净的。在异步访问期间,在文件正由反病毒软件分析的同时反病毒软件允许其他程序的进程或线程访问文件。
[0006]当例如在第一次反病毒扫描上未被反病毒软件检测到的恶意程序感染用户计算机上的文件时,附加的反病毒扫描可能是必要的。文件的第一次同步分析未检测到任何恶意软件并允许对程序的访问。某个时刻后,由反病毒软件所使用的恶意软件签名的集合更新,并且新签名集合包含错过的恶意软件的签名。在像这种情况相当经常地发生时,需要使用经更新的恶意软件签名集合重新扫描所有近期经扫描的文件。在后续扫描期间,同步文件访问可能不是最适当的,因为其通过暂停对文件的访问而影响用户的工作。因此,在后续扫描期间一些反病毒程序实施对文件的异步访问,使得在文件正由反病毒软件所扫描的同时用户可以用该文件继续工作。此外,如果文件是干净的,则无论如何反病毒软件都将允许其他程序来访问文件。另一方面,如果文件被恶意软件所感染,那么在后续的反病毒扫描中对受感染文件的异步访问不影响反病毒软件的有效性,因为自第一次反病毒扫描以后和签名集合的更新之前受感染文件已经在使用中,其给予恶意软件足够的时间来在用户计算机上实施恶意动作。
[0007]因此,存在着对于用于在反病毒分析期间选择对计算机文件实施同步还是异步访问的有效机制的需要。
【发明内容】
[0008]所公开的是用于在文件的反病毒分析期间选择同步或异步文件访问方法的系统、方法和计算机程序产品。在本发明的一个示范性方面中,反病毒软件检测在用户计算机上执行文件的尝试。软件收集关于当前文件属性的信息。软件还检索关于旧文件属性的信息。软件随后将当前文件属性与旧文件属性加以比较来确定文件是否已被修改。当确定文件被修改时,软件同步地访问文件来实施文件的反病毒分析。在文件的同步访问期间,禁止一个或多个其他程序访问所分析的文件。当确定文件未被修改时,反病毒软件异步地访问文件。在文件的异步访问期间,允许其他程序中的一个或多个访问所分析的文件。
[0009]示范性实施例的以上经简化的概要用来提供本发明的基本理解。该概要不是本发明的所有所预期的方面的广泛概述,并且既不意图标识所有实施例的关键或重要元素也不意图描绘任何或所有实施例的范围。其唯一目的是以简化形式呈现一个或多个实施例作为对本发明接下来的更详细描述的前序。为完成前述内容,一个或多个实施例包括在权利要求中所描述并特别指出的特征。
【专利附图】
【附图说明】
[0010]附图被并入并构成本说明书的一部分,示出本发明的一个或多个示范性实施例,并且与详细描述一起用来解释它们的原理和实现方案。
[0011]图1A和IB示出同步和异步文件访问方法。
[0012]图2示出反病毒软件的实现方案的一个示范性实施例的高层次示意图。
[0013]图3示出用于选择反病毒软件的文件访问方法的系统的一个示范性实施例的操作的更详细的示意图。
[0014]图4示出选择文件访问方法的示范性方法的流程图。
[0015]图5示出根据所公开的方法的、适合于实现用于实施文件的反病毒分析的系统的通用计算机的框图。
【具体实施方式】
[0016]本文围绕用于在由反病毒软件进行计算机文件的反病毒分析期间选择同步或异步文件访问方法的系统、方法和计算机程序产品来描述本发明的示范性实施例。本领域的普通技术人员将意识到接下来的描述仅是示例性的而且不意图以任何方式进行限制。从本公开受益的本领域技术人员将易于理解其他实施例。现在将对如附图中所示出的示范性实施例的实现方案做详细参考。贯穿附图和接下来的描述将尽可能使用相同的参考指示符来指代相同或相似项。
[0017]在一个方面,反病毒软件可使用同步或异步访问方法来访问各种软件对象,诸如文件、URL、数据流等等,以实施这些对象的反病毒分析(或扫描)。在本公开的下文中将使用文件作为所分析的软件对象的示例,然而也可使用其他类型的软件对象。反病毒分析可包括但不限于签名分析、启发式分析、行为分析或其他已知的恶意软件检测技术。
[0018]图1A示出在同步文件访问期间,其他程序的进程(或线程)和反病毒软件的交互的示意图。在点101处,反病毒软件接收命令来分析文件。当例如用户尝试打开文件时可发起该命令。在由反病毒软件进行的同步文件访问期间,访问文件的其他进程(或线程)在时间段102期间被停止(暂停),同时反病毒软件实施文件的反病毒分析。诸如MicrosoftWord的文本编辑器应用的进程可用来作为访问文件的进程的示例。当反病毒软件同步地访问Word文档时,文本编辑器应用在文档于点104处由反病毒软件释放之前,等待反病毒软件在点103处完成文档的分析。
[0019]图1B示出在异步文件访问期间,其他程序的进程和反病毒软件的交互的示意图。在点101处,反病毒软件接收命令来分析文件。在异步访问期间,当文件正由反病毒软件所分析的同时允许请求访问文件的任何进程在间隔104期间访问文件。反病毒软件与也访问所分析的文件的其他程序的进程(或线程)同时并独立地实施文件的反病毒分析102。使用文本编辑器应用的以上示例,当反病毒软件和文本编辑器应用异步地访问Word文档时,在反病毒软件分析文档的同时,文本编辑器应用可编辑该文档。
[0020]例如,在Windows操作系统环境中,进程通过在dwFlagsAndAttributes参数中规定FILE_FLAG_OVERLAPPED标记而在其对CreateFile (创建文件)的调用中打开文件用于异步访问。如果FILE_FLAG_OVERLAPPED未被规定,那么打开文件用于同步访问。当已打开文件用于异步访问时,指向OVERLAPPED结构的指针被传递到对ReadFile (读取文件)和WriteFile (写入文件)的调用中。当实施同步访问时,在对ReadFile和WriteFile的调用中不要求该结构。
[0021]在一个示范性方面中,给出同步和异步文件访问方法之间的不同,反病毒软件可通过选择两个文件访问方法之一来开始文件的反病毒分析。无论选择哪种文件访问方法,当反病毒分析产生相同结果时(例如确定所分析的文件或者是干净的或者是恶意的),这种选择可以特别有用。为了防止首次加载恶意文件,当首次打开文件时反病毒软件可同步地访问文件。但在当文件之前已被打开过的情况下,访问的同步性可以不是必要的,因为恶意代码可能已经在工作。因此,由同步访问方法所提供的数秒的延迟将无法防止文件的感染。使用适当的文件访问方法,可能减少由反病毒软件进行的对应用和系统进程的不必要的阻止,其转而可改进反病毒软件和计算机系统作为整体的效率。
[0022]在一个方面中,考虑到反病毒软件的特异性,可能基于与由反病毒软件所先前扫描的文件有关的统计信息来选择最适当的文件访问方法。例如,一些反病毒程序计算并收集所扫描文件的校验和(例如散列),其可用来挑选适当的文件访问方法。例如,考虑什么文件被改变以及何时可用来对先前(或最近,例如数天内)未被修改的文件选择异步文件访问方法。另一方面,当所收集的关于文件的信息指示文件先前(或最近,例如数天内)已被修改时,那么同步文件访问方法可更适合于分析这种文件。在一个方面中,对文件所收集的更大数量的信息将提供对适当的文件访问方法的更好的确定。
[0023]图2示出反病毒软件200的实现方案的一个示范性实施例的高层次示意图。反病毒软件200包括对同步或异步文件访问方法进行选择的用于选择文件访问方法的系统220其、实施文件的反病毒扫描诸如签名分析的反病毒引擎230、以及在签名分析期间由反病毒引擎230所使用的签名数据库235。在一个示范性实施例中,用于选择文件访问方法的系统220包括文件分析模块221、文件数据库222、文件访问方法选择模块223、以及规则数据库224。在对文件210进行访问的尝试处,文件由文件分析模块221分析,其确定标识符(例如文件名称)以及文件属性的当前值。在一个示范性实施例中,文件属性可包括但不限于:文件的最后反病毒扫描的日期;在最后反病毒扫描中所使用的签名数据库更新的日期;文件的NTFS标识符;文件的检核和(control sum)等。唯一地标识文件的任何散列和或任何其他信息可用作文件标识符。
[0024]已经标识了当前文件属性的值,文件分析模块221配置为使用文件标识符在文件数据库222中调查文件属性的旧值。随后文件分析模块221随将文件属性的旧值与当前值加以比较来标识文件的改变。随后文件分析模块221将关于文件改变的信息传送到模块223。文件分析模块221还可在文件数据库222中用当前值来更新文件属性的值。如果使用所分析的文件的标识符在数据库222中未找到所分析的文件,那么文件分析模块221可确定文件属性的当前值、在数据库222中创建用于文件的新文件条目、并在数据库222中记录文件属性的当前值。
[0025]在一个示范性实施例中,文件访问方法选择模块223通过将文件的改变与基于文件的改变的总体(total ity )而规定应使用什么文件访问方法的规则加以比较来确定使用同步还是异步文件访问方法用于文件的反病毒分析。在一个方面中,当确定文件被修改时,模块223可选择同步文件访问方法来实施文件的反病毒分析。在文件的同步访问期间可禁止其他程序访问所分析的文件。在另一方面中,当确定文件未被修改时,模块223可选择异步文件访问方法来实施文件的反病毒分析。在文件的异步访问期间可允许其他程序访问所分析的文件。在由模块223选择文件访问方法的类型之后,具有所选择的文件访问方法的参数的文件被发送到反病毒引擎230。反病毒引擎230使用所选择的文件访问方法来访问文件,并使用例如签名分析、启发式分析、仿真分析或其他恶意软件检测方法来实施文件的反病毒分析。
[0026]文件数据库222和规则数据库224可使用各种数据库架构来实现,诸如层次数据库(例如 IMS、TDMS、系统 2000)、网络数据库(例如 Cerebreum、Cronospro> DBVist)、关系数据库(例如DB2、Informix、微软SQL服务器)、面向对象数据库(例如Jasmine、Versant、POET)、对象关系数据库(例如Oracle数据库、PostgreSQL/J)、功能数据库等。并且,文件数据库222和规则数据库224可被来自反病毒服务器240的数据所填充。
[0027]图3示出用于选择由图2的反病毒软件所使用的文件访问方法的系统的一个示范性实施例的操作的更详细的示意图。文件数据库222包含针对先前所扫描的文件的标识符和属性。当在计算机上访问(例如加载或执行)文件210时可由反病毒软件200来激活文件分析模块221。文件分析模块221计算正被分析的文件的散列和并确定该文件的当前属性。在那之后,文件分析模块221在文件数据库222中搜索文件属性的旧值。假如使用文件的散列和在文件数据库中找到关于文件的信息,那么文件分析模块221将文件属性的当前值与文件属性的旧值加以比较,并且基于比较来标识哪些文件属性已改变。模块221收集关于所改变的属性的信息并将其传送到模块223。在传送之后,文件分析模块221在数据库222中用文件属性的当前值更新文件属性。模块223转而标识在文件属性改变的总体(例如,一个或多个属性改变)与选择适当的文件访问方法的规则之间的对应。在一个方面中,每个规则定义一组文件属性改变,用来确定文件访问方法的最优类型。
[0028]不同类型的规则可用来确定不同的文件访问方法。例如,一些规则可基于由反病毒引擎230所使用的签名数据库的发布日期来选择文件访问方法。在该情况下,如果最后扫描的日期和恶意软件签名的发布日期差异很大(例如数个月),那么规则可在反病毒分析期间要求同步文件访问,因为当文件长期未经扫描时文件可能已被恶意软件感染的可能性很大。相反地,如果最后扫描的日期和恶意软件签名的发布日期差异不是很大(例如数天或数周),那么规则可在反病毒分析期间允许异步文件访问。在另一个示例中,可基于在文件的位置中的改变而使用不同的规则来选择文件访问方法。在该情况下,如果文件NTFS ID的位置属性已改变,但文件ID保持相同,那么规则可允许异步文件访问。而在另一个示例中,可基于系统中的文件的拷贝的数目而使用其他规则来选择文件访问方法。在该情况下,如果文件的拷贝的数目从最后的反病毒检查起已改变很大(例如3个或更多个),那么规则可在反病毒分析期间要求异步文件访问来实施文件和其可疑行为的更详细的分析。
[0029]在文件访问方法选择模块223已选择了文件访问方法的类型之后,模块223指派文件访问方法(例如同步或异步)的参数并将文件传送到反病毒引擎230用于分析。
[0030]图4示出由图2和3的反病毒软件所实现的、选择文件访问方法的示范性方法。在步骤400处,反病毒软件拦截在用户计算机上执行文件的尝试。在步骤410处,文件分析模块221分析文件并确定标识符和不同文件属性的当前值。在步骤420处,模块221使用标识符来在文件数据库222中搜索文件属性的旧值、确定文件属性的改变、并将该信息传送到文件访问方法选择模块223。如果文件属性已改变,模块221还在文件数据库222中更新文件属性的值。在步骤430处,文件访问方法选择模块223调查在文件改变的总体(例如文件属性中的一个或多个改变)与数据库224中的规则之间的对应。这些规则基于文件是否被修改来挑选适当的文件访问方法用于文件的反病毒分析。如果在步骤440处选择同步文件访问方法,那么在步骤450处,反病毒软件阻止由其他进程访问文件并且使用反病毒引擎230来实施文件的反病毒分析。如果在步骤440处针对文件选择异步文件访问方法,那么在步骤460处,在文件由反病毒引擎230所分析的同时反病毒应用允许其他进程对文件的访问。在步骤470处,反病毒软件完成了文件的分析,并且如果确定文件是恶意的那么采取适当的补救动作,诸如隔离、修复或删除文件。
[0031]图5描绘计算机系统5的一个示范性实施例,其可用来实现图1-4中所示出的、用于计算机文件的反病毒分析的系统和方法。计算机系统5可包括但不限于个人计算机、笔记本电脑、平板计算机、智能电话、网络服务器、路由器、或其他类型的处理设备。如所示,计算机系统5可包括由系统总线10所连接的一个或多个硬件处理器15、存储器20、一个或多个硬盘驱动器30、光驱动器35、串行端口 40、图形卡45、音频卡50以及网卡55。系统总线10可以是数个类型的总线结构中的任何一个,包括使用多种已知总线架构中的任何一个的存储器总线或存储器控制器、外围总线以及局部总线。处理器15可包括一个或多个丨ntel?Core2Quad2.33GHz处理器或其他类型的微处理器。
[0032]系统存储器20可包括只读存储器(ROM) 21以及随机存取存储器(RAM) 23。存储器20可实现为DRAM (动态RAM)、EPR0M、EEPR0M、闪存或其他类型的存储器架构。R0M21存储基本输入/输出系统22(B10S),包含帮助在计算机系统5的部件之间传送信息的基本例程,诸如在启动期间。RAM23存储操作系统24 (OS),诸如Windows? XPProfessional或其他类型的操作系统,在计算机系统5中负责进程的管理和协调以及硬件资源的分配和分享。存储器20还存储应用和程序25。存储器20还存储各种由程序25所使用的运行时数据。
[0033]计算机系统5可进一步包括硬盘驱动器30,诸如SATA磁性硬盘驱动器(HDD),以及用于从可移动光盘中读取或写入可移动光盘的光盘驱动器35,可移动光盘诸如CD-ROM、DVD-ROM或其他光学介质。驱动器30和35和其相关联的计算机可读介质提供对实现本文所公开的算法和方法的计算机可读指令、数据结构、应用和程序模块/子例程的非易失性存储。尽管示例性计算机系统5采用磁盘和光盘,但本领域技术人员应予以理解的是,在计算机系统5的替代性实施例中也可使用可存储由计算机系统5可访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字视频光盘、RAM、ROM、EPROM和其他类型的存储器。
[0034]计算机系统5进一步包括多个串行端口 40,诸如通用串行总线(USB),用于连接数据输入设备75,诸如键盘、鼠标、触摸板和其他。串行端口 40还可用来连接数据输出设备80,诸如打印机、扫描仪和其他,以及其他外围设备85,诸如外部数据存储设备等。系统5还可包括图形卡45,诸如nVidia'? GeForce? GT240M或其他图形卡,用于与监视器60或其
他视频重放设备进行接口。系统5还可包括音频卡50用于经由内部或外部扬声器65重现声音。此外,系统5可包括网卡55,诸如以太网、WiF1、GSM、蓝牙或其他有线、无线或蜂窝网络接口,用于将计算机系统5连接到网络70,诸如因特网。
[0035]在各种实施例中,可在硬件、软件、固件或其任何组合中实现本文所描述的系统和方法。如果在软件中实现,那么方法可在非暂时性计算机可读介质上存储为一个或多个指令或代码。计算机可读介质包括数据存储。以示例的方式而非限制,这种计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM、闪存或其他类型的电、磁或光学存储介质,或可用来以指令或数据结构的形式承载或存储所期望的程序代码并可由计算机所访问的任何其他介质。
[0036]为了清楚起见,本文未公开实施例的所有例程特征。应予以理解的是,在本发明的任何实际实现方案的开发中,必须做出大量特定于实现方案的决策以达到开发者的具体目标,并且这些具体目标针对不同实现方案和不同开发者将发生变化。应予以理解的是这种开发工作可能是复杂且耗时的,但对于从本公开中受益的本领域普通技术人员将仍是工程的常规工作。
[0037]此外,应予以理解的是,本文所使用的措辞或术语是出于描述的目的而并非限制,使得本领域的技术人员将结合相关领域的技术人员的知识根据本文所呈现的教导和指导来对本说明书的术语或措辞进行理解。此外,除非本身明确地阐释,否则对于说明书或权利要求中的任何术语不意图将其归于不常见的或特殊的意义。
[0038]本文所公开的各种实施例包含在本文通过示出的方式所指出的已知成分的目前和未来已知的等同物。此外,虽然已示出并描述实施例和应用,但对从本公开中受益的本领域技术人员来说将显而易见的是,许多比上述所提及内容的更多修改是可能的而不脱离本文所公开的发明概念。
【权利要求】
1.一种用于实施文件的反病毒分析的计算机实现的方法,包括: 由硬件处理器检测在计算机上执行所述文件的尝试; 收集所述文件的标识符和所述文件的一个或多个当前属性; 使用所述标识符在数据存储中搜索所述文件的一个或多个旧属性; 将所述文件的所述当前属性中的一个或多个与在所述数据存储中所找到的所述文件的所述旧属性中的一个或多个相比较以确定所述文件是否被修改; 当确定所述文件被修改时,由反病毒软件同步地访问所述文件以实施所述文件的反病毒分析,其中在所述文件的所述同步访问期间禁止一个或多个其他程序访问所分析的文件; 当确定所述文件未被修改时,由所述反病毒软件异步地访问所述文件以实施所述文件的反病毒分析,其中在所述文件的所述异步访问期间允许所述其他程序中的一个或多个访问所述所分析的文件。
2.根据权利要求1所述的方法,其中当文件的一个或多个当前属性与所述文件的一个或多个旧属性实质上不同时,确定所述文件被修改。
3.根据权利要求2所述的方法,进一步包括,当确定所述文件被修改时,用所述文件的所述当前属性更新所述数据存储。
4.根据权利要求1所述的方法,其中当文件的一个或多个当前属性与所述文件的一个或多个旧属性没有实质上不同时,确定所述文件未被修改。
5.根据权利要求1所述的方法,其中所述文件的标识符包括所述文件的散列和。
6.根据权利要求1所述的方法,其中一个或多个文件属性包括以下各项中的一个或多个:所述文件的校验和、所述文件的最后反病毒分析的日期、在所述文件的所述最后反病毒分析中所使用的反病毒签名的发布日期、和所述文件的NTFS标识符。
【文档编号】G06F17/30GK103631904SQ201310597847
【公开日】2014年3月12日 申请日期:2013年11月22日 优先权日:2012年12月25日
【发明者】米哈伊尔·A·帕夫柳席奇卡 申请人:卡巴斯基实验室封闭式股份公司