发明内容
本发明实施例提供了一种过滤规则的生成方法、装置、及存储介质、电子装置,以至少解决现有技术中的过滤规则的生成方法复杂、且不易确定过滤效果的问题。
根据本发明的一个实施例,提供了一种过滤规则的生成方法,包括:在多种预设行为中选取部分行为,得到行为组合;在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本,其中,软件行为数据库中包括多个软件样本的行为数据,每个软件样本的行为数据用于记录对应的软件样本在运行时产生的多个历史行为,且每个软件样本被预先标注有对应的安全等级;判断查询到的软件样本的安全等级是否满足预设需求;如果是,则将行为组合确定为过滤规则。
进一步地,在判断查询到的软件样本的安全等级是否满足预设需求之后,该方法还包括:如果否,则在多种预设行为中,选取部分行为之外的一个或多个行为,加入至行为组合中,得到更新的行为组合;利用更新的行为组合重新在软件行为数据库中查询,以判断是否将更新的行为组合确定为过滤规则。
进一步地,该方法还包括:利用预先在操作系统中注入的多个Hook点,监听在沙箱中运行的软件样本是否产生对应的行为,其中,每个Hook点用于监听对应的一种行为;记录在沙箱中运行的软件样本针对多个Hook点对应的行为的调用情况,得到对应的软件样本的行为数据;根据得到的软件样本的行为数据,生成或更新软件行为数据库。
进一步地,多种预设行为是与多个Hook点一一对应的行为。
进一步地,软件样本数据库按照预设周期更新,在将行为组合确定为过滤规则之后,该方法还包括:在软件样本数据库更新的情况下,在更新的软件样本数据库中查询行为数据中包括行为组合中所有行为的软件样本;判断在更新的软件样本数据库中查询到的软件样本的安全等级是否满足预设需求;如果否,则放弃过滤规则。
进一步地,行为组合是有序的,每个软件样本的行为数据记录的多个历史行为依照行为发生的时间顺序排列,在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本,包括:在软件行为数据库中,查询行为数据中包括行为组合中所有行为、且顺序与行为组合的顺序相同的软件样本。
进一步地,在软件行为数据库中,查询行为数据中包括行为组合中所有行为、且顺序与有序组合的顺序相同的软件样本,包括:根据有序组合生成查询语句;利用查询语句,在软件行为数据库中执行查询操作。
根据本发明的另一个实施例,提供了一种过滤规则的生成装置,包括:第一选取模块,用于在多种预设行为中选取部分行为,得到行为组合;第一查询模块,用于在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本,其中,软件行为数据库中包括多个软件样本的行为数据,每个软件样本的行为数据用于记录对应的软件样本在运行时产生的多个历史行为,且每个软件样本被预先标注有对应的安全等级;第一判断模块,用于判断查询到的软件样本的安全等级是否满足预设需求;确定模块,用于如果是,则将行为组合确定为过滤规则。
进一步地,该装置还包括:第二选取模块,用于在判断查询到的软件样本的安全等级是否满足预设需求之后,如果否,则在多种预设行为中,选取部分行为之外的一个或多个行为,加入至行为组合中,得到更新的行为组合;第二查询模块,用于利用更新的行为组合重新在软件行为数据库中查询,以判断是否将更新的行为组合确定为过滤规则。
进一步地,该装置还包括:监听模块,用于利用预先在操作系统中注入的多个Hook点,监听在沙箱中运行的软件样本是否产生对应的行为,其中,每个Hook点用于监听对应的一种行为;记录模块,用于记录在沙箱中运行的软件样本针对多个Hook点对应的行为的调用情况,得到对应的软件样本的行为数据;执行模块,用于根据得到的软件样本的行为数据,生成或更新软件行为数据库。
进一步地,多种预设行为是与多个Hook点一一对应的行为。
进一步地,软件样本数据库按照预设周期更新,该装置还包括:第三查询模块,用于在将行为组合确定为过滤规则之后,在软件样本数据库更新的情况下,在更新的软件样本数据库中查询行为数据中包括行为组合中所有行为的软件样本;第二判断模块,用于判断在更新的软件样本数据库中查询到的软件样本的安全等级是否满足预设需求;逻辑模块,用于如果否,则放弃过滤规则。
进一步地,行为组合是有序的,每个软件样本的行为数据记录的多个历史行为依照行为发生的时间顺序排列,第一查询模块包括:查询单元,用于在软件行为数据库中,查询行为数据中包括行为组合中所有行为、且顺序与行为组合的顺序相同的软件样本。
进一步地,查询单元包括:生成单元,用于根据有序组合生成查询语句;执行单元,用于利用查询语句,在软件行为数据库中执行查询操作。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过在多种预设行为中选取部分行为,得到行为组合;在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本,其中,软件行为数据库中包括多个软件样本的行为数据,每个软件样本的行为数据用于记录对应的软件样本在运行时产生的多个历史行为,且每个软件样本被预先标注有对应的安全等级;判断查询到的软件样本的安全等级是否满足预设需求;如果是,则将行为组合确定为过滤规则,解决了现有技术中的过滤规则的生成方法复杂、且不易确定过滤效果的问题。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本实施例提供了一种过滤规则的生成方法,可以应用于客户端侧,其中,客户端可以运行中移动终端、手持终端或其它运算设备之中。运行在不同的运算设备仅是方案在执行主体上的差异,本领域人员可预见在不同运算设备中运行能够产生相同的技术效果。
如图1所示,本实施例提供的过滤规则的生成方法包括如下步骤:
步骤101,在多种预设行为中选取部分行为,得到行为组合。
步骤102,在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本。
步骤103,判断查询到的软件样本的安全等级是否满足预设需求。
步骤104,如果是,则将行为组合确定为过滤规则。
软件行为数据库中包括多个软件样本的行为数据,每个软件样本的行为数据用于记录对应的软件样本在运行时产生的多个历史行为,且每个软件样本被预先标注有对应的安全等级。
具体而言,软件行为数据库中针对于每一个软件样本,都存储有历史行为的记录,并且,还存储有预先对软件样本标注的安全等级,如等级1(表示危险)、等级2(表示安全)、等级3(表示未知)、等级4(表示谨慎),等等;此外,针对于每一个软件样本,还存储有软件样本的唯一标识,以用于区分各个软件样本,具体的可以是采用MD5标识,或者用软件样本的名称来标识。
例如,软件行为数据库中包括如下条目的数据:
软件样本标识:S1安全等级:等级1行为名称:A,B,C,D
软件样本标识:S1安全等级:等级1行为名称:B,C,D,E,G
……
其中,对于行为数据中所记录的每一个行为,可以包括行为的名称(例如,拦截短信,发送短信)、行为API(例如,对于发送短信,调用了发送短信的API)、行为API参数(例如,对于发送短信,行为API参数有两个:发送的号码和发送的内容)等等。
在步骤101中,每种预设行为是软件的行为,例如,发送短信、读取通讯录、读取通话记录,等等。多种预设行为是预先提供的多个行为,在多种预设行为中选取一部分,形成行为组合。行为组合中包括选取的行为。例如,如果在多种预设行为中选取行为A、行为B、行为C,则行为组合为行为A、行为B和行为C。
步骤101选取部分行为的方式可以是随机选取,也可以是接收用户输入的选择,或者,可以根据一定的规则选取。例如,选取规则可以是:在需要生成一种用于识别出安全等级为危险的软件的黑规则时,选择匹配到的软件中危险软件的比例较高的行为,如行为A在软件行为数据库中匹配到了N个软件样本,其中M个软件样本的安全等级是危险,则危险软件的比例为M/N,如果M/N的数值大于预设的数值P,则选择行为A作为行为组合中的行为之一。
作为一种示例,生成或更新软件行为数据库的方法包括:
步骤1,利用预先在操作系统中注入的多个Hook点,监听在沙箱中运行的软件样本是否产生对应的行为。其中,每个Hook点用于监听对应的一种行为,例如,发送短信、读取通讯录、读取通话记录,等等。可选的,在选取行为组合时,是在多种预设行为中进行选取,其中,多种预设行为是与多个Hook点一一对应的行为,也即,是在预先需要监听的行为中选取部分行为,以得到行为组合。
步骤2,记录在沙箱中运行的软件样本针对多个Hook点对应的行为的调用情况,得到对应的软件样本的行为数据。
步骤3,根据得到的软件样本的行为数据,生成或更新软件行为数据库。
应用上述示例针对一个软件样本获取其行为数据的方式为,将软件样本放在沙箱中运行,通过预设的监控程序监控预先注入的多个Hook点,软件样本在运行时每产生一个Hook点对应的行为,监控程序会进行记录,在运行结束后,得到软件样本在沙箱运行过程中发生的所有历史行为的记录,得到该软件样本的行为数据。
在根据得到的软件样本的行为数据更新软件行为数据时,如果软件行为数据库中已存在该软件样本对应的行为数据,可以按照预设的方式对该软件样本的行为数据进行更新,例如,将软件行为数据库中的行为数据与得到的行为数据合并,或直接将得到的行为数据替换数据库中原有的行为数据。
上述示例描述了软件行为数据库的生成和更新方式。
在执行步骤102时,在当前的软件行为数据库中,查询与行为组合相匹配的软件样本。具体的,查询行为数据中包括行为组合中所有行为的软件样本。例如,如果行为组合是行为B和行为E,则查找到的与行为组合相匹配的软件样本的行为数据中包括行为B和行为E。
一种可选的查询方式为:采用与软件行为数据库的类别相对应的查询语句。例如,在软件行为数据库是SQL数据库的情况下,可以根据行为组合生成SQL查询语句,并通过查询语句在数据库中执行查询,找到行为数据包括行为组合中所有行为的软件样本;如果数据库是mongoDB,查询语句就采用mongodb的查询语句。
上述示例在查询时并未限定行为执行的顺序,可选的,可以以有序的行为组合在软件样本数据库中进行查询,相应的,软件样本数据库中记录的每个软件样本的行为数据按照时间顺序排列,在软件样本数据库中查询时,匹配到的软件样本不仅要包括行为组合中的所有行为,并且,顺序还要与行为组合的顺序相同。
在查询出匹配的软件样本之后,确定匹配的每个软件样本的安全等级,根据匹配到的每个软件样本的安全等级判断是否满足预设需求。其中,预设需求是对应于过滤规则的需求。
例如,如果需要生成一种用于仅能匹配到安全等级为“危险”的软件样本的过滤规则,那么利用行为组合查询到的软件样本中存在安全等级不是“危险”的软件样本,则确定不满足预设需求,以该行为组合作为过滤规则是无效的,不允许根据该行为组合作为过滤规则。而如果匹配到的所有软件样本的安全等级均为“危险”,则确定满足预设需求,该行为组合的过滤效果是有效的,允许将行为组合确定为过滤规则。
可选的,以该行为组合作为过滤规则不满足预设需求的情况下,可以继续在该行为组合中增加行为,在多个预设行为中,选取部分行为之外的一个或多个行为,加入至行为组合中,得到更新后的行为组合。并进一步地利用软件行为数据库测试过滤的效果,如果满足预设需求,则将更新后的行为组合确定为过滤规则,如果不满足,可以继续在行为组合中增加行为,直至行为组合中的行为个数达到预设个数。当行为组合中的行为个数达到预设个数时,重新选取行为组合。
可选的,在每生成一个过滤规则之后,可以将过滤规则保存至规则库中,以数据库的形式保存生成的过滤规则。
由于软件样本数据库可以按照预设周期更新,可以利用规则库中的过滤规则对更新后的软件样本数据库进行回扫,以判断过滤规则针对更新后的软件样本数据库是否依然有效。例如,可以将规则库中的过滤规则循环在软件行为数据库查询匹配的软件样本,判断过滤规则的过滤效果是否满足预设需求。
具体的,在将行为组合确定为过滤规则之后,如果软件样本数据库有更新,在更新的软件样本数据库中查询行为数据中包括行为组合中所有行为的软件样本,并判断在更新的软件样本数据库中查询到的软件样本的安全等级是否满足预设需求,如果否,则放弃过滤规则。
本实施例提供的过滤规则的生成方法,利用数据库保存软件样本的行为,无需每次重新在沙箱中重新运行软件样本;而且,在数据库中保存的每一个软件样本的行为数据用于记录软件样本的行为,相较于日志文件的数据量较小,可以快速准确的执行查询和匹配;此外,在数据库中查询时,可以利用数据库对应的查询语句快速的查询与选取的行为匹配的软件样本,定义过滤规则的方式简单易学习;根据匹配到的软件样本的安全等级判断是否达到了所需求的过滤效果,可以方便快速地确定行为组合的过滤效果;如果软件行为数据库有更新,也可以利用已经生成的过滤规则在更新后的软件行为数据库中进行回扫,快速地判断过滤规则是否仍然有效,实时地检测过滤规则的过滤效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种过滤规则的生成装置,该装置用于实现上述实施例1及其优选实施方式,对于本实施例中未详述的术语或实现方式,可参见实施例1中的相关说明,已经进行过说明的不再赘述。
如以下所使用的术语“模块”,是可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可以被构想的。
图2是根据本发明实施例的过滤规则的生成装置的示意图,如图2所示,该装置包括:第一选取模块10,第一查询模块20,第一判断模块30和确定模块40。
其中,第一选取模块用于在多种预设行为中选取部分行为,得到行为组合;第一查询模块用于在软件行为数据库中,利用查询语句查询行为数据中包括行为组合中所有行为的软件样本,其中,软件行为数据库中包括多个软件样本的行为数据,每个软件样本的行为数据用于记录对应的软件样本在运行时产生的多个历史行为,且每个软件样本被预先标注有对应的安全等级;第一判断模块用于判断查询到的软件样本的安全等级是否满足预设需求;确定模块用于如果是,则将行为组合确定为过滤规则。
可选的,该装置还包括:第二选取模块,用于在判断查询到的软件样本的安全等级是否满足预设需求之后,如果否,则在多种预设行为中,选取部分行为之外的一个或多个行为,加入至行为组合中,得到更新的行为组合;第二查询模块,用于利用更新的行为组合重新在软件行为数据库中查询,以判断是否将更新的行为组合确定为过滤规则。
可选的,该装置还包括:监听模块,用于利用预先在操作系统中注入的多个Hook点,监听在沙箱中运行的软件样本是否产生对应的行为,其中,每个Hook点用于监听对应的一种行为;记录模块,用于记录在沙箱中运行的软件样本针对多个Hook点对应的行为的调用情况,得到对应的软件样本的行为数据;执行模块,用于根据得到的软件样本的行为数据,生成或更新软件行为数据库。
可选的,多种预设行为是与多个Hook点一一对应的行为。
可选的,软件样本数据库按照预设周期更新,该装置还包括:第三查询模块,用于在将行为组合确定为过滤规则之后,在软件样本数据库更新的情况下,在更新的软件样本数据库中查询行为数据中包括行为组合中所有行为的软件样本;第二判断模块,用于判断在更新的软件样本数据库中查询到的软件样本的安全等级是否满足预设需求;逻辑模块,用于如果否,则放弃过滤规则。
可选的,行为组合是有序的,每个软件样本的行为数据记录的多个历史行为依照行为发生的时间顺序排列,第一查询模块包括:查询单元,用于在软件行为数据库中,查询行为数据中包括行为组合中所有行为、且顺序与行为组合的顺序相同的软件样本。
可选的,查询单元包括:生成单元,用于根据有序组合生成查询语句;执行单元,用于利用查询语句,在软件行为数据库中执行查询操作。
本实施例提供的过滤规则的生成装置,利用数据库保存软件样本的行为,无需每次重新在沙箱中重新运行软件样本;而且,在数据库中保存的每一个软件样本的行为数据用于记录软件样本的行为,相较于日志文件的数据量较小,可以快速准确的执行查询和匹配;此外,在数据库中查询时,可以利用数据库对应的查询语句快速的查询与选取的行为匹配的软件样本,定义过滤规则的方式简单易学习;根据匹配到的软件样本的安全等级判断是否达到了所需求的过滤效果,可以方便快速地确定行为组合的过滤效果;如果软件行为数据库有更新,也可以利用已经生成的过滤规则在更新后的软件行为数据库中进行回扫,快速地判断过滤规则是否仍然有效,实时地检测过滤规则的过滤效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,例如,电子装置可以是移动终端。电子装置中包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。