检测恶意软件的方法及装置的制造方法

文档序号:9911529阅读:326来源:国知局
检测恶意软件的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别涉及一种检测恶意软件的方法及装置。
【背景技术】
[0002] 计算机软件(Software)是指一系列按照特定顺序组织的计算机数据和指令的集 合。从计算机软件诞生不久,恶意软件就出现了。合法软件的开发目的,是加强和扩展计算 机的工作能力。而恶意软件的开发目的,则是为了对计算机数据进行窃取和破坏。传统的 恶意软件的检测方法,是基于特征码的比对来实现,但是,恶意软件常常通过变形、加壳等 手段逃避特征码对比,其中,变形,是指在软件的程序代码中加入大量混淆代码,令原有的 特征码失效;加壳,是将软件的程序代码进行加密和打包,令原有的特征码失效。
[0003] 为了避免上述缺陷,提出了采用沙箱技术检测恶意软件的方法,沙箱(也称沙盒, Sandbox)是一种软件的隔离运行机制,其目的是限制不可信软件的权限,沙箱技术经常被 用于执行未经测试的或不可信的软件。为了避免不可信软件可能破坏其他软件的运行,沙 箱技术通过采用为不可信软件提供虚拟化的磁盘、内存以及网络资源的方式来达到保护操 作系统的原有状态的目的。沙箱技术在具体实现过程中,不可信软件在沙箱内运行时所创 建、修改、删除的所有文件和注册表表项都虚拟化重定向到虚拟的操作系统,因此,不可信 软件的所有操作都是虚拟的,真实的文件系统和注册表不会被改动,这样可以确保携带病 毒的恶意软件无法对操作系统关键部位进行改动,破坏操作系统。
[0004] 采用沙箱技术检测恶意软件的具体的工作原理,是模拟出一个完全正常的环境, 供不可信软件在其中运行,并记录不可信文件在执行时的所有动作。将这些动作和恶意行 为库进行匹配,如果有匹配到恶意行为,则可以认为该不可信软件是恶意软件。由于该方法 能直接让恶意软件在沙箱中运行起来,所以能避免恶意软件通过变形、加壳等手段躲避检 测,因此,可以提高检测恶意软件的准确度。相对于传统的检测方法,利用沙箱检测恶意软 件的方法在检测能力上有了极大的提升。又由于它使用了通用的恶意行为库作为匹配方 式,所以可以避免相同类型恶意样本基数过大的问题。
[0005] 但是,在实际应用中,由于硬件资源和软件规格的限制,过长时间的监控是不现实 的,沙箱一般只能监控不可信软件开始运行后数分钟之内的行为。恶意软件利用该限制,在 恶意行为爆发前加入延时操作,例如,加入长时间的Sle印语句,此语句可以让软件运行过 程中的某些操作延后几十分钟甚至数小时,从而躲避检测,因此,目前检测恶意软件的方法 存在准确度较低的缺陷。

【发明内容】

[0006] 本发明实施例提供一种检测恶意软件的方法及装置,用以解决现有技术中存在的 准确度较低的缺陷。
[0007] 本发明实施例提供的具体技术方案如下:
[0008] 第一方面,提供一种检测恶意软件的方法,包括:
[0009] 在沙箱中运行待检测软件,并记录所述待检测软件在开始运行后预设时长内执行 的至少一个操作;
[0010] 在记录所述至少一个操作的过程中,检测所述沙箱中的至少一个具有延时属性的 接口是否被调用;
[0011] 在检测到任意一所述接口被调用时,判断被调用的所述接口的第一延时长度参数 对应的延时时长是否大于所述预设时长;
[0012] 若判定所述第一延时长度参数对应的延时时长大于所述预设时长,则将被调用的 所述接口的所述第一延时长度参数调整为第二延时长度参数,所述第二延时长度参数对应 的延时时长小于所述预设时长;
[0013] 将已记录的所述至少一个操作与恶意行为的操作进行比较,基于已记录的所述至 少一个操作中存在与恶意行为的操作相匹配的操作的比较结果,确定所述待检测软件为恶 意软件。
[0014] 结合第一方面,在第一种可能的实现方式中,将被调用的所述接口的第一延时长 度参数调整为第二延时长度参数,具体包括:
[0015] 将被调用的所述接口的所述第一延时长度参数调整为所述第一延时长度参数和 预设的调整参数的乘积,所述调整参数大于0且小于1。
[0016] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述预设 的调整参数包括第一调整参数和第二调整参数,所述第一调整参数大于所述第二调整参 数;
[0017] 所述将被调用的所述接口的所述第一延时长度参数调整为第二延时长度参数,具 体包括:
[0018] 获取所述沙箱所在设备的中央处理器的使用率;
[0019] 将获取的使用率与预设使用率门限值进行比较;
[0020] 基于所述使用率大于或者等于所述预设使用率门限值的比较结果,将被调用的所 述接口的所述第一延时长度参数调整为所述第一延时长度参数与所述第一调整参数的乘 积;或者
[0021 ] 基于所述使用率小于所述预设使用率门限值的比较结果,将被调用的所述接口的 所述第一延时长度参数调整为所述第一延时长度参数与所述第二调整参数的乘积。
[0022] 结合第一方面,在第三种可能的实现方式中,所述将被调用的所述接口的所述第 一延时长度参数调整为第二延时长度参数,具体包括:
[0023] 获取所述沙箱所在设备的中央处理器的使用率;
[0024] 将获取的使用率与预设使用率门限值进行比较;
[0025] 基于所述使用率大于或者等于所述预设使用率门限值的比较结果,将被调用的所 述接口的所述第一延时长度参数调整为第二延时长度参数;或者
[0026] 基于所述使用率小于所述预设使用率门限值的比较结果,将被调用的所述接口的 所述第一延时长度参数调整为第三延时长度参数;
[0027] 其中,所述第三延时长度参数对应的延时时长小于所述第二延时长度参数对应的 延时时长。
[0028] 结合第一方面,以及第一方面的第一种至第三种可能的实现方式,在第四种可能 的实现方式中,还包括:
[0029] 在所述预设时长到达前的预定时刻,将已记录的所述至少一个操作与恶意行为的 操作进行比较;
[0030] 基于已记录的所述至少一个操作中不存在与恶意行为的操作相匹配的操作的比 较结果,向所述沙箱发送软件运行结束消息;
[0031] 记录所述待检测软件在所述预定时刻至所述预设时长到达之间的时间段内执行 的至少一个操作;
[0032] 将已记录的所述待检测软件在所述预定时刻至所述预设时长到达之间的时间段 内执行的所述至少一个操作与恶意行为的操作进行比较,基于已记录的所述待检测软件在 所述预定时刻至所述预设时长到达之间的时间段内执行的所述至少一个操作中存在与恶 意行为的操作相匹配的操作的比较结果,确定所述待检测软件为恶意软件。
[0033] 结合第一方面,以及第一方面的第一种至第四种可能的实现方式,在第五种可能 的实现方式中,所述接口包括以下至少一个接口或多个接口的组合:
[0034] 延时一个进程的接口、延时多个进程的接口、延时定时器的接口、或获取系统时间 的接口。
[0035] 第二方面,提供一种检测恶意软件的装置,包括:
[0036] 运行单元,用于在沙箱中运行待检测软件;
[0037] 记录单元,用于记录所述待检测软件在开始运行后预设时长内执行的至少一个操 作;
[0038] 检测单元,用于在记录所述至少一个操作的过程中,检测所述沙箱中的至少一个 具有延时属性的接口是否被调用;
[0039] 判断单元,用于在检测到任意一所述接口被调用时,判断被调用的所述接口的第 一延时长度参数对应的延时时长是否大于所述预设时长;
[0040] 调整单元,用于若判定所述第一延时长度参数对应的延时时长大于所述预设时 长,将被调用的所述接口的所述第一延时长度参数调整为第二延时长度参数,所述第二延 时长度参数对应的延时时长小于所述预设时长;
[0041] 比较单元,用于将已记录的所述至少一个操作与恶意行为的操作进行比较,基于 已记录的所述至少一个操作中存在与恶意行为的操作相匹配的操作的比较结果,确定所述 待检测软件为恶意软件。
[0042] 结合第二方面,在第一种可能的实现方式中,所述调整单元具体用于:
[0043] 将被调用的所述接口的所述第一延时长度参数调整为所述第一延时长度参数和 预设的调整参数的乘积,所述调整参数大于〇且小于1。
[0044] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述预设 的调整参数包括第一调整参数和第二调整参数,所述第一调整参数大于所述第二调整参 数;
[0045] 所述调整单元将被调用的所述接口的所述第一延时长度参数调整为第二延时长 度参数时,具体为:
[0046] 获取所述沙箱所在设备的中央处理器的使用率;
[0047] 将获取的使用率与预设使用率门限值进行比较;
[0048] 基于所述使用率大于或者等于所述预设使用率门限值的比较结果,将被调用的所 述接口的所述第一延时长度参数调整为所述第一延时长度参数与所述第一调整参数的乘 积;或者
[0049] 基于所述使用率小于所述预设使用率门限值的比较结果,将
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1