具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
本说明书一个实施例提供的业务接口安全评估方法可以应用于如图1所示的安全评估系统中。图1中,安全评估系统可以包括:业务数据获取模块10、业务接口安全分析模块20以及业务接口安全评估模块30。
业务数据获取模块10用于通过流量镜像或者日志打印的方式,从业务服务端获取某个业务接口(Operation Type)在整个生命周期内与用户交互的所有业务数据,或者也可以是抽样获取上述业务数据。本说明书中的业务数据是与业务接口相对应的。此处的业务接口可以是业务服务端处理业务的最小单位,通常一个业务接口可以只处理一种业务,如,余额查询的业务、添加好友的业务或者好友信息查询的业务等等。上述业务数据可以包括用户的请求数据和业务服务端的返回数据。需要说明的是,此处的请求数据可以是指脱敏处理后的数据。脱敏处理为本领域常规技术手段,在此不复赘述。
业务接口安全分析模块20用于对业务数据获取模块10获取的业务数据进行多维度分析。业务接口安全分析模块20具体可以包括:聚合统计分析模块201、安全漏洞分析模块202、安全特征提取模块203、业务场景分析模块204以及敏感信息检测模块205中的一个或多个。
聚合统计分析模块201用于对业务数据进行聚合统计,得到业务接口的安全相关属性。还用于对安全相关属性进行分析,以得到安全相关属性分析结果。此处的安全相关属性可以包括但不限于业务接口的重要性信息、业务接口的访问量波动信息以及业务接口的访问用户波动信息等。其中,业务接口的重要性信息可以是基于接口名称对业务数据进行聚合后得到的。需要说明的是,由于同一业务接口的接口名称相同,所以也可以理解为是对所有的业务数据进行聚合统计。业务接口的访问量波动信息可以是基于时间点对业务数据进行聚合后得到的。业务接口的访问用户波动信息可以是先基于时间点对业务数据进行聚合,之后再进行去重处理后得到的。
安全漏洞分析模块202用于根据预设的专家规则对业务数据进行分析,以得到安全漏洞分析结果。此处的预设的专家规则例如可以为:如果业务数据中包含报错堆栈信息,则可能存在SQL注入漏洞;如果业务数据中包含关键信息(key)(如,账号、订单号或者业务流水号等),则可能存在越权访问的安全漏洞等。举例来说,在业务数据中包含关键信息时,可以通过分析关键信息与请求用户的对应关系,来确定安全漏洞分析结果。在一种实现方式中,可以预先配置关键信息与请求用户的对应关系。之后,可以根据业务数据中的关键信息,从上述对应关系中查找对应的请求用户。如果查找到的请求用户与业务数据中的请求用户不相一致,则得到的安全漏洞分析结果为:存在越权访问的安全漏洞;否则不存在。在另一种实现方式中,也可以根据上述对应关系,修改业务数据中的关键信息或者请求用户的方式,来确定安全漏洞分析结果。具体地,如果修改后的业务数据不能被正常响应,则得到的安全漏洞分析结果为:存在越权访问的安全漏洞;否则不存在。
安全特征提取模块203用于对业务数据中所包含的关键词、关键词的类型和/或业务数据的数据类型进行分析,以得到安全特征分析结果。此处的安全特征分析结果可以包括但不限于是否涉及登录、是否涉及密码修改、是否涉及用户信息返回、是否涉及交易以及是否涉及内容风险等。
举例来说,可以通过分析业务数据中是否包含关键词:login,来确定业务数据是否包含登录的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及登录。再如,可以通过分析业务数据中所包含的关键词类型是否为:加密的类型,来确定业务数据是否包含密码修改的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及密码修改。又如,可以通过分析业务数据中所包含的数据类型是否为:汉字或者图片,来确定业务数据是否包含内容风险的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及内容风险等。
业务场景分析模块204用于对业务数据的数据格式和/或数据类型进行分析,以得到业务场景分析结果。以聊天场景为例来说,该场景下的业务数据的数据格式以及数据类型通常是固定的。因此,通过分析业务数据的数据格式以及数据类型,就可以确定是聊天场景。再以查询场景为例来说,该场景下的业务数据中返回数据的数据格式通常是固定的。因此,通过分析业务数据中返回数据的数据格式,就可以确定是查询场景。在一个例子中,上述得到的业务场景分析结果可以为:涉及聊天场景或者涉及查询场景等。
敏感信息检测模块205用于通过正则匹配的方式,对业务数据进行检测,以得到敏感信息分析结果。此处的敏感信息例如可以为银行卡号或者身份证号等。可以理解的是,如果业务数据中的请求数据是脱敏处理后的数据,那么此处检测的可以是脱敏后的请求数据。敏感信息传输属于信息安全的风险,通过敏感信息检测模块205的检测功能,可以提高信息传输的安全性。
业务接口安全评估模块30用于根据业务接口安全分析模块20分析得到的多维度分析结果,对业务接口进行安全评估。如,评估业务接口的安全等级以及安全风险等。
可选地,上述安全评估系统还可以包括业务数据清洗模块40。业务数据清洗模块40用于对业务数据进行清洗。此处的数据清洗可以包括数据格式化、异常数据过滤以及类型转换中的至少一种。数据格式化可以是指将经过特殊处理后的业务数据转化为正常数据。如,将压缩后的业务数据进行解压缩,从而转化为正常数据。或者,将编码后的业务数据进行解码,从而转化为正常数据。此处的正常数据可以是指key-value格式的数据。异常数据过滤可以是指将格式化失败的业务数据和/或异常业务数据移除。此处的格式化失败的业务数据可以是指经过解压缩或者解码处理后的业务数据为错误的数据等。异常业务数据可以是指数据内容为空或者乱码的数据等。类型转换可以是指将业务数据按照实际含义转换为对应的数据类型。如,把字符串格式的时间转换成时间类型,如,Datetime。
需要说明的是,当安全评估系统还包括业务数据清洗模块40时,业务接口安全分析模块20可以是对经过业务数据清洗模块40清洗后的业务数据进行多维度分析。
图2为本说明书一个实施例提供的业务接口安全评估方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,图1中的安全评估系统。如图2所示,所述方法具体可以包括:
步骤210,获取待评估的业务接口的业务数据。
如,可以是通过业务数据获取模块10获取待评估的业务接口的业务数据。具体地,业务数据获取模块10可以通过流量镜像或者日志打印的方式,从业务服务端获取待评估的业务接口在整个生命周期内与用户交互的所有业务数据,或者也可以是抽样获取上述业务数据。本说明书中的业务数据是与业务接口相对应的。此处的业务接口可以是业务服务端处理业务的最小单位,通常一个业务接口可以只处理一种业务,如,余额查询的业务、添加好友的业务或者好友信息查询的业务等等。上述业务数据可以包括用户的请求数据和业务服务端的返回数据。需要说明的是,此处的请求数据可以是指脱敏处理后的数据。脱敏处理为本领域常规技术手段,在此不复赘述。
可选地,在获取到上述业务数据之后,还可以对该业务数据进行数据清洗,以方便后续的多维度分析。如,可以是通过业务数据清洗模块40对业务数据进行数据清洗。此处的数据清洗可以包括数据格式化、异常数据过滤以及类型转换中的至少一种。数据格式化可以是指将经过特殊处理后的业务数据转化为正常数据。如,将压缩后的业务数据进行解压缩,从而转化为正常数据。或者,将编码后的业务数据进行解码,从而转化为正常数据。此处的正常数据可以是指key-value格式的数据。异常数据过滤可以是指将格式化失败的业务数据和/或异常业务数据移除。此处的格式化失败的业务数据可以是指经过解压缩或者解码处理后的业务数据为错误的数据等。异常业务数据可以是指数据内容为空或者乱码的数据等。类型转换可以是指将业务数据按照实际含义转换为对应的数据类型。如,把字符串格式的时间转换成时间类型,如,Datetime等。
步骤220,对业务数据进行多维度分析,以确定业务接口的多维度分析结果。
此处的多维度分析结果可以包括安全相关属性分析结果、安全漏洞分析结果、安全特征分析结果、业务场景分析结果以及敏感信息分析结果中的一种或多种。
上述安全相关属性分析结果可以是由聚合统计分析模块201对业务数据进行聚合统计得到安全相关属性后,对安全相关属性进行分析得到的。此处的安全相关属性可以包括但不限于业务接口的重要性信息、业务接口的访问量波动信息以及业务接口的访问用户波动信息等。其中,业务接口的重要性信息可以是基于接口名称对业务数据进行聚合后得到的。需要说明的是,由于同一业务接口的接口名称相同,所以也可以理解为是对步骤210中获取的所有业务数据进行聚合统计。业务接口的访问量波动信息可以是基于时间点对业务数据进行聚合后得到的。业务接口的访问用户波动信息可以是先基于时间点对业务数据进行聚合,之后再进行去重处理后得到的。
以安全相关属性为业务接口的访问量波动信息为例来说,安全相关属性分析结果的确定过程可以为:
a.基于时间点对业务数据进行聚合统计。
在一个例子中,该聚合的步骤可以通过如下代码来实现:
create table table_request_data as select ds,hh,mm,count(*)asrequest_num from table_monitor_data group by ds,hh,mm order by ds,hh,mm;
在该例子中,以分钟为单位对用户的访问量进行了聚合。
b.对聚合统计结果进行分析。
select request_num_analysis(ds,hh,mm,request_num)from table_request_data;
其中,数据表:request_num_analysis是业务接口的访问量波动信息分析的函数。该函数用于根据前后两个时间点(如,分钟)的访问量,来确定访问量波动信息。在一种实现方式中,可以通过如下公式来确定访问量波动信息:log(c1/c2),其中,c1可以为当前分钟的访问量,c2可以为前一分钟的访问量。之后,对该访问量波动信息是否在预设范围内进行判断,如果不在预设范围内,则得到的安全相关属性分析结果可以为:存在访问量波动异常。
当然,在实际应用中,也可以通过其它方式确定上述访问量波动信息,如,对上述比值进行其它方式的归一化处理等,本说明书对此不作限定。
上述安全漏洞分析结果可以是由安全漏洞分析模块202根据预设的专家规则对业务数据进行分析后得到的。此处的预设的专家规则例如可以为:如果业务数据中包含报错堆栈信息,则可能存在SQL注入漏洞;如果业务数据中包含关键信息(key)(如,账号、订单号或者业务流水号等),则可能存在越权访问的安全漏洞等。举例来说,在业务数据中包含关键信息时,可以通过分析关键信息与请求用户的对应关系,来确定安全漏洞分析结果。在一种实现方式中,可以预先配置关键信息与请求用户的对应关系。之后,可以根据业务数据中的关键信息,从上述对应关系中查找对应的请求用户。如果查找到的请求用户与业务数据中的请求用户不相一致,则得到的安全漏洞分析结果为:存在越权访问的安全漏洞;否则不存在。在另一种实现方式中,也可以根据上述对应关系,修改业务数据中的关键信息或者请求用户的方式,来确定安全漏洞分析结果。具体地,如果修改后的业务数据不能被正常响应,则得到的安全漏洞分析结果为:存在越权访问的安全漏洞;否则不存在。
上述安全特征分析结果可以是由安全特征提取模块203对业务数据中所包含的关键词、关键词的类型和/或业务数据的数据类型进行分析后得到的。此处的安全特征分析结果可以包括但不限于是否涉及登录、是否涉及密码修改、是否涉及用户信息返回、是否涉及交易以及是否涉及内容风险等。
举例来说,可以通过分析业务数据中是否包含关键词:login,来确定业务数据是否包含登录的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及登录。再如,可以通过分析业务数据中所包含的关键词类型是否为:加密的类型,来确定业务数据是否包含密码修改的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及密码修改。又如,可以通过分析业务数据中所包含的数据类型是否为:汉字或者图片,来确定业务数据是否包含内容风险的信息。可以理解的是,如果包含,则得到的安全特征分析结果可以为:涉及内容风险等。
上述业务场景分析结果可以是由业务场景分析模块204通过对业务数据的数据格式和/或数据类型进行分析后得到的。以聊天场景为例来说,该场景下的业务数据的数据格式以及数据类型通常是固定的。因此,通过分析业务数据的数据格式以及数据类型,就可以确定是聊天场景。再以查询场景为例来说,该场景下的业务数据中返回数据的数据格式通常是固定的。因此,通过分析业务数据中返回数据的数据格式,就可以确定是查询场景。在一个例子中,上述确定的业务场景分析结果可以为:涉及聊天场景或者涉及查询场景等。
上述敏感信息分析结果可以是由敏感信息检测模块205通过正则匹配的方式,从业务数据中提取的。此处的敏感信息例如可以为银行卡号或者身份证号等。可以理解的是,如果业务数据中的请求数据是脱敏处理后的数据,那么此处检测的可以是脱敏后的请求数据。敏感信息传输属于信息安全的风险,通过敏感信息检测模块205的检测功能,可以提高信息传输的安全性。
步骤230,根据多维度分析结果,对业务接口进行安全评估。
在一种实现方式中,可以是根据多维度分析结果,并结合决策树,来自动化对业务接口进行安全评估。如,评估业务接口的安全等级和/或安全风险等。此外,还可以根据上述多维度分析结果,产出相应的安全报告。以便制定相应的修复或者维护方案等。
此外,对于上述多维度分析结果,还可以从中提取长期的安全信息,如,上述业务场景分析结果,并将其存入安全信息库中,以便后续安全水平判断或者防护方案决策等。举例来说,假设对某个业务接口进行安全评估时,如果评估出漏洞风险情况:可以通过用户输入的特殊字符进行攻击,那么可以从安全信息库中查找涉及用户输入字符的业务接口。之后,在针对该业务接口制定相应的修复或者维护方案时,可以将该安全信息(涉及用户输入字符)作为针对性修复的一条决策。
最后,需要说明的是,本说明书上述实施例得到的多维度分析结果,不仅可以用于安全评估,还可以用于安全漏洞检测。
综上,本说明书实施例提供的业务接口安全评估方法,可以实现自动化对业务接口进行安全评估,这可以大大节省人力资源,还可以提高业务接口安全评估的效率。此外,本说明实施例提供的方案,通过对业务接口的业务数据进行多维度分析,可以提高业务接口安全评估的准确性和全面性。
与上述业务接口安全评估方法对应地,本说明书一个实施例还提供的一种业务接口安全评估装置,如图3所示,该装置包括:
获取单元301,用于获取待评估的业务接口的业务数据,该业务接口用于处理相应的业务。
分析单元302,用于对获取单元301获取的业务数据进行多维度分析,以确定业务接口的多维度分析结果。该多维度分析结果包括安全相关属性分析结果、安全漏洞分析结果、安全特征分析结果、业务场景分析结果以及敏感信息分析结果中的一种或多种。
上述安全相关属性分析结果是在对业务数据进行聚合统计得到安全相关属性后,对安全相关属性进行分析得到的。此处的安全相关属性包括业务接口的重要性信息、业务接口的访问量波动信息以及业务接口的访问用户波动信息中的至少一种。
上述安全漏洞分析结果是根据预设的专家规则对业务数据进行分析后得到的。
上述安全特征分析结果是通过对业务数据中所包含的关键词、关键词的类型和/或所述业务数据的数据类型进行分析后得到的。该安全特征分析结果包括是否涉及登录、是否涉及密码修改息、是否涉及用户信息返回、是否涉及交易以及是否涉及内容风险中的至少一种。
上述业务场景分析结果是通过对业务数据的数据格式和/或数据类型进行分析后得到的。
上述敏感信息分析结果是通过正则匹配的方式,从业务数据中提取的。
评估单元303,用于根据分析单元302分析得到的多维度分析结果,对业务接口进行安全评估。
可选地,该装置还可以包括:
清洗单元304,用于对业务数据进行数据清洗。数据清洗可以包括数据格式化、异常数据过滤以及类型转换中的至少一种。
分析单元302具体可以用于:
对数据清洗后的业务数据进行多维度分析,以确定业务接口的多维度分析结果。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的业务接口安全评估装置,获取单元301获取待评估的业务接口的业务数据,该业务接口用于处理相应的业务。分析单元302对业务数据进行多维度分析,以确定业务接口的多维度分析结果。该多维度分析结果包括安全相关属性分析结果、安全漏洞分析结果、安全特征分析结果、业务场景分析结果以及敏感信息分析结果中的一种或多种。评估单元303于根据多维度分析结果,对业务接口进行安全评估。由此,可以提高业务接口的安全评估效率。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。