数据检查方法及装置与流程

文档序号:20702580发布日期:2020-05-12 15:56阅读:308来源:国知局
数据检查方法及装置与流程

本申请实施例涉及计算机技术,尤其涉及一种数据检查方法及装置。



背景技术:

在开放平台中,注册用户可以访问平台中的敏感字段的数据,为了保证开放平台中数据的安全性,检查敏感字段的数据是否被输出就显得尤为重要。

目前,现有技术中检查敏感字段的方式可以包括黑盒和白盒两种检查模式,其中,黑盒模式是指对人工对输出字段的长度进行检查;白盒模式是指人工对注册用户提供的程序进行检查,现有技术中,程序可以对敏感字段的数据进行一些处理之后再进行输出。

然而,当程序对敏感字段的数据进行处理之后,无论是上述介绍的黑盒检查模式还是白盒检查模式,其都无法有效的检测到敏感字段的数据输出。



技术实现要素:

本申请实施例提供一种数据检查方法及装置,以克服无法有效的检测到敏感字段的数据输出的问题。

第一方面,本申请实施例提供一种数据检查方法,包括:

接收代码数据,并获取所述代码数据所调用的至少一个第一字段;

若所述第一字段中包括预设字段,则根据所述代码数据,获取所述预设字段所对应的至少一个调用函数;

根据所述至少一个调用函数的函数类型,确定数据检测结果,所述数据检测结果用于指示所述代码数据调用所述预设字段后,所述预设字段被输出的概率。

在一种可能的设计中,所述根据所述至少一个调用函数的函数类型,确定数据检测结果,包括:

获取预设的至少一个函数类型,其中,任一所述函数类型对应有各自的预设结果;

针对任一个所述调用函数,确定所述调用函数所对应的目标函数类型;

根据各所述目标函数类型和各所述目标函数类型所对应的预设结果,以及预设公式,确定数据检测结果。

在一种可能的设计中,所述预设的至少一个函数类型包括:第一函数类型、第二函数类型、第三函数类型;

所述第一函数类型包括如下中的至少一种函数:调用加解密算法函数、移位操作函数、拆分操作函数、字符编码函数、摘要算法函数;

所述第二函数类型对应的函数包括数据科学计算函数;

所述第三函数类型对应的函数包括聚合统计函数。

在一种可能的设计中,所述根据所述代码数据,获取所述预设字段所对应的至少一个调用函数,包括:

若所述代码数据未被编译,则对所述代码数据进行遍历,以获取所述预设字段的第一调用链,其中,所述第一调用链包括至少一个调用函数;以及

若所述代码数据已被编译,则对所述代码数据进行字节码插桩,以获取所述预设字段的第二调用链,其中,所述第二调用链包括至少一个调用函数。

在一种可能的设计中,所述确定数据检测结果之后,所述方法还包括:

判断所述数据检测结果是否大于预设阈值;

若是,则向预设地址发送警告信息。

在一种可能的设计中,所述判断所述数据检测结果是否大于预设阈值之前,所述方法还包括:

获取所述预设字段对应的任一个第一数据,并根据所述调用链对所述第一数据进行处理,得到第一处理结果;

根据所述调用链对所述第一处理结果进行逆处理,得到第二处理结果;

判断所述第二处理结果与所述第一数据是否相同;

若是,则丢弃所述代码数据;

若否,则执行所述判断所述数据检测结果是否大于预设阈值的操作。

在一种可能的设计中,所述方法还包括:

若所述代码数据中包括用于代码混淆的数据,则丢弃所述代码数据。

第二方面,本申请实施例提供一种数据检查装置,包括:

接收模块,用于接收代码数据,并获取所述代码数据所调用的至少一个第一字段;

获取模块,用于若所述第一字段中包括预设字段,则根据所述代码数据,获取所述预设字段所对应的至少一个调用函数;

确定模块,用于根据所述至少一个调用函数的函数类型,确定数据检测结果,所述数据检测结果用于指示所述代码数据调用所述预设字段后,所述预设字段被输出的概率。

在一种可能的设计中,所述确定模块,具体用于:

获取预设的至少一个函数类型,其中,任一所述函数类型对应有各自的预设结果;

针对任一个所述调用函数,确定所述调用函数所对应的目标函数类型;

根据各所述目标函数类型和各所述目标函数类型所对应的预设结果,以及预设公式,确定数据检测结果。

在一种可能的设计中,所述预设的至少一个函数类型包括:第一函数类型、第二函数类型、第三函数类型;

所述第一函数类型包括如下中的至少一种函数:调用加解密算法函数、移位操作函数、拆分操作函数、字符编码函数、摘要算法函数;

所述第二函数类型对应的函数包括数据科学计算函数;

所述第三函数类型对应的函数包括聚合统计函数。

在一种可能的设计中,所述获取模块,具体用于:

若所述代码数据未被编译,则对所述代码数据进行遍历,以获取所述预设字段的第一调用链,其中,所述第一调用链包括至少一个调用函数;以及

若所述代码数据已被编译,则对所述代码数据进行字节码插桩,以获取所述预设字段的第二调用链,其中,所述第二调用链包括至少一个调用函数。

在一种可能的设计中,所述确定模块还用于:

在所述确定数据检测结果之后,判断所述数据检测结果是否大于预设阈值;

若是,则向预设地址发送警告信息。

在一种可能的设计中,所述获取模块还用于:

在所述判断所述数据检测结果是否大于预设阈值之前,获取所述预设字段对应的任一个第一数据,并根据所述调用链对所述第一数据进行处理,得到第一处理结果;

根据所述调用链对所述第一处理结果进行逆处理,得到第二处理结果;

判断所述第二处理结果与所述第一数据是否相同;

若是,则丢弃所述代码数据;

若否,则执行所述判断所述数据检测结果是否大于预设阈值的操作。

在一种可能的设计中,所述确定模块还用于:

若所述代码数据中包括用于代码混淆的数据,则丢弃所述代码数据。

第三方面,本申请实施例提供一种数据检查设备,包括:

存储器,用于存储程序;

处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

本申请实施例提供一种数据检查方法及装置,该方法包括:接收代码数据,并获取代码数据所调用的至少一个第一字段。若第一字段中包括预设字段,则根据代码数据,获取预设字段所对应的至少一个调用函数。根据至少一个调用函数的函数类型,确定数据检测结果,数据检测结果用于指示代码数据调用预设字段后,预设字段被输出的概率。通过在代码数据调用预设字段时,获取代码数据中预设字段对应的至少一个调用函数,并根据调用函数确定预设字段内输出的概率,从而在代码数据对预设字段的数据进行一些处理的情况下,准确高效的检测出预设字段的数据被输出,避免了现有技术的方案无法有效检测敏感字段输出的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的数据检查方法的流程图一;

图2为本申请实施例提供的数据检查方法的流程图二;

图3为本申请实施例提供的数据检查方法的流程图三;

图4为本申请实施例提供的数据检查方法的流程示意图;

图5为本申请实施例提供的数据检查装置的结构示意图;

图6为本申请实施例提供的数据检查设备的硬件结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在介绍本申请提供的数据检查方法之前,首先对本申请所涉及的技术背景进行进一步地详细介绍:

开放平台可以通过公开软件系统的应用程序编程接口(applicationprogramminginterface,api)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码,在可选的实现方式中,开放平台也可以称为能力开放平台。

开放平台中可以包括大量的数据,其中,开放平台中使用的数据例如可以包括用户个人信息、位置信息、话单信息和上网行为等基础数据;以及,还例如可以包括加工产生的用户标签、职住模型、信用等级等高阶分析数据,本实施例对开放平台中所包括的数据不做限定,其具体取决于实际的开放平台的设计。

在开放平台所包括的诸多数据中,可以包括有敏感字段的数据,其中,敏感字段主要指用户唯一标识例如身份证号、电话号、年龄、住址、位置信息等,可以理解的是,敏感字段可以理解为不可以泄露的字段,具体的敏感字段都包括哪些内容是可以根据实际需求进行选择的。

因为开放平台的开放性,在开放平台上的注册用户可以向开放平台提交代码数据,以使得开放平台可以根据代码数据增加软件系统的功能或者使用软件系统的资源,在此过程中,代码数据可以调用上述介绍的敏感字段的数据,但是为了做到数据、能力双开放,必须保证用户数据中敏感字段的数据的安全性,开放平台是不允许代码数据将敏感字段的数据进行输出的。

因此,检查敏感字段的数据是否被输出,对开放平台的数据安全性来说就显得尤为重要。

目前,开放平台的访问权限可以由统一安全管理平台或4a(认证authentication、授权authorization、账号account、审计audit)认证对开放平台上的注册用户(租户)的操作进行审计,其中,对于注册用户提交至开放平台的程序的审查可以分为黑盒与白盒两种模式并行的人工审查。

在一种可能的实现方式中,黑盒模式是指:由安全合规部审查其输出的字段,限制输出字段的长度,确保输出字段无法通过加解密算法提取出用户个人敏感信息。

在另一种可能的实现方式中,白盒模式是指:审查注册用户使用数据进行建模的程序,对于敏感字段的处理方式进行评估,只允许提取统计数据,对于个人信息数据如果存在操作可逆,即建模结果有风险通过一定算法还原出个人信息,此类程序认定为非法,禁止其在能力开放平台进行测试。

同时,可以理解的是,若当前提交至开放平台的代码数据直接将敏感字段的数据进行了输出,这样黑盒模式是可以很轻易的检测到的,但是代码数据往往会对敏感字段的数据进行一些处理之后再进行输出。

例如,代码数据可以将手机号数据进行倒序处理,之后采用md5对倒序处理后的数据进行转换之后再输出;

或者,代码数据还可以将手机号数据进行拆分,并且混淆在tag字段中进行数据;

或者,代码数据还可以将手机号数据进行多次映射处理,之后将映射处理后的结合与imei字段混淆进行输出。

在上述介绍的对敏感字段的数据进行一定的处理之后,再输出的数据并非直接的敏感字段的数据,在这种情况下,对于复杂模型和多文件输出模型,黑盒模型是无法保证敏感数据的安全性的。

以及,现有的白盒模式对于敏感字段的数据进行拆解后通过复杂算法或建模得到输出,再由输出数据通过逆向运算和合并等方式将用户敏感信息抽离开放平台的方式也是难以检测到的。

也就是说,无论是黑盒模式还是白盒模式,对敏感字段的数据经过一定的处理之后再输出的情况,是无法实现有效的检测的;同时,无论是黑盒模式还是白盒模式,其数据检查的操作都是人工进行的,开放平台的数据量之大,人工进行数据检查会导致数据检查的效率较低。

基于上述介绍的问题,本申请提供了一种数据检查方法,以在提升数据检查的效率的同时,保证敏感字段的数据的安全性,下面结合具体的实施例对本申请所提供的数据检查方法进行说明,首先结合图1进行介绍,图1实施例的执行主体可以为开放平台,或者还可以为开放平台对应的服务器,图1为本申请实施例提供的数据检查方法的流程图一。

如图1所示,该方法包括:

s101、接收代码数据,并获取代码数据所调用的至少一个第一字段。

在本实施例中,代码数据可以是开放平台上的注册用户提交至开放平台的,可以理解的是,本实施例中的代码数据是为了实现某个功能或者使用某个资源的,因此此处介绍的代码数据可以在开放平台中进行建模。

在一种可能的实现方式中,注册用户可以将代码数据提交至预设平台的代码仓库,则开放平台可以接收代码数据。

其中,代码数据需要在开放平台上增加功能或使用资源,则代码数据就需要调用开放平台上的数据,本实施例中的数据可以是按照字段存储的,其中字段例如可以为身份证,则身份证字段对应的数据就是身份证数据;或者字段例如可以为手机号码,则手机号码字段对应的数据就是手机号码数据,则代码数据在调用数据时,就可以调用某个字段,已在该字段中获取需要的数据。

在一种可能的实现方式中,代码数据中可以包括shell、python、java、scala等源代码,还可以包括xml和properties等配置文件内容,则开放平台可以通过扫描上述源代码,从而根据源代码中所包括的显式结构化查询语言(structuredquerylanguage,sql)语句或对象关系映射(bjectrelationalmapping,orm)框架中的隐式字段,以获取代码数据所调用的至少一个第一字段。

s102、若第一字段中包括预设字段,则根据代码数据,获取预设字段所对应的至少一个调用函数。

在本实施例中,开放平台中可以包括多个字段,其中预设字段可以是在开放平台中所包括的字段中预先指示的一部分字段,例如开放平台包括位置信息字段、话单信息字段、上网行为字段、身份证字段、手机号码字段等,则预设字段可以为其中的位置信息字段、身份证字段、手机号码字段。

其中,具体的预设字段具体包括哪些内容,是可以根据实际需求进行选择的,实际上预设字段就是上述介绍的敏感字段,凡是不能泄露的数据所对应的字段,都可以认为是本实施例中的预设字段。

在一种可能的实现方式中,若第一字段中包括预设字段,则可以确定当前的代码数据需要调用预设字段中的数据,此时可以根据代码数据获取预设字段所对应的至少一个调用函数。

例如可以通过遍历代码数据,并检测每一个调用函数需要调用的字段是否为预设字段,以确定预设字段对应的至少一个调用函数;或者还可以直接获取预设函数对应的调用链,以获取预设字段对应的至少一个调用函数。

可以理解的是,第一字段中可以包括多个预设字段,则每个预设字段都分别对应各自的至少一个调用函数。

s103、根据至少一个调用函数,确定数据检测结果,数据检测结果用于指示代码数据调用预设字段后,预设字段被输出的概率。

基于上述介绍,本领域技术人员可以确定的是,若代码数据对预设字段中的数据进行了一些处理,现有技术的方案就无法检测到预设字段的数据被输出了。

在本实施例中,开放平台可以通过分析代码确定预设字段的调用函数,其中每个调用函数都对应各自的功能,则可以根据调用函数的具体功能,确定当前的至少一个调用函数是否对预设字段的数据进行了一些处理,若对预设字段进行了一些加密、拆分等处理,则可以确定当前的代码数据可能是要输出预设字段的数据。

则本实施例中可以根据至少一个调用函数确定数据检测结果,其中的数据检测结果是用于指示代码数据在调用预设字段之后,预设字段被输出的概率。

在一种可能的实现方式中,数据检测结果例如可以为风险评分,当风险评分越大,就表示预设字段被输出的概率越大;或者,数据检测结果还可以为被输出的概率值,对应的,当概率值越大,就表示预设字段被输出的概率越大。

本申请实施例提供的数据检查方法,包括:接收代码数据,并获取代码数据所调用的至少一个第一字段。若第一字段中包括预设字段,则根据代码数据,获取预设字段所对应的至少一个调用函数。根据至少一个调用函数的函数类型,确定数据检测结果,数据检测结果用于指示代码数据调用预设字段后,预设字段被输出的概率。通过在代码数据调用预设字段时,获取代码数据中预设字段对应的至少一个调用函数,并根据调用函数确定预设字段内输出的概率,从而在代码数据对预设字段的数据进行一些处理的情况下,准确高效的检测出预设字段的数据被输出,避免了现有技术的方案无法有效检测敏感字段输出的问题。

在上述实施例的基础上,下面结合图2对本申请实施例提供的数据检查方法进行进一步地详细介绍,图2为本申请实施例提供的数据检查方法的流程图二,如图2所示,该方法包括:

s201、接收代码数据,并获取代码数据所调用的至少一个第一字段。

其中,s201的实现方式与s101的实现方式类似,此处不再赘述。

s202、若第一字段中包括预设字段,则检测代码数据是否被编译,若是,则执行s203,若否,则执行s204。

在本实施例中,注册用户提交至开放平台的代码数据,可以是未编译的,或者还可以是全部编译的或者部分编译的,本实施例针对已被编译的代码数据和未被编译的代码数据,其获取预设字段对应的至少一个调用函数的实现方式存在一些不同,因此本实施例中会检测代码数据是否被编译。

s203、对代码数据进行字节码插桩,以获取预设字段的第二调用链,其中,第二调用链包括至少一个调用函数。

在一种可能的实现方式中,若代码数据已经被编译了,则可以对代码数据进行字节码插桩,其中,插桩可以理解为将一段代码通过某种策略插入到另一段代码,或替换另一段代码,具体的字节码插桩的实现方式可以参照现有技术中的说明,此处不再进行详细介绍。

对代码数据进行字节码插桩之后,可以获取预设字段对应的第二调用链,在本实施例中,第二调用链中包括预设字段对应的至少一个调用函数,可以理解的是,第二调用链中的至少一个调用函数可以是按照调用顺序进行排布的。

s204、对代码数据进行遍历,以获取预设字段的第一调用链,其中,第一调用链包括至少一个调用函数。

在另一种可能的实现方式中,若代码数据未被编译,则可以直接对代码数据进行遍历,以获取预设字段的第一调用链,其中,第一调用链与上述介绍的第二调用链类似,此处不再赘述。

可以理解的是,若第一字段中包括多个预设字段,则每个预设字段都对应各自的第一调用链或者第二调用链。

s205、获取预设的至少一个函数类型,其中,任一函数类型对应有各自的预设结果。

在本实施例中,为了保证对调用函数的有效分析,预先设置有至少一个函数类型。

在一种可能的实现方式中,预设的至少一个函数类型包括:第一函数类型、第二函数类型、第三函数类型。

其中,第一函数类型包括如下中的至少一种函数:调用加解密算法函数、移位操作函数、拆分操作函数、字符编码函数、摘要算法函数;

第二函数类型包括数据科学计算函数;

第三函数类型包括聚合统计函数。

或者,在另一种可能的实现方式中,预设的至少一个函数类型在上述介绍的基础上,还可以包括第四函数类型。

第四函数类型为未查找到的函数类型,也就是说当前函数的函数类型不属于上述介绍的任一种函数类型,此时例如可以触发人工审核流程,并且可以将函数信息按照分类更新到风险函数数据库中。

在实际实现过程中,的函数类型可以根据实际需求进行选择,本实施例对函数类型的具体划分不做限定。

在本实施例中,每一个函数类型都对应有各自的预设结果,其中,预设结果用于指示当前函数类型所包括的函数,对数据进行处理以输出的概率,例如预设结果可以为预设的风险分数,或者,预设结果还可以为预设概率值,此处对此不做限定。

假设预设结果为预设的风险分数,则在一种可能的实现方式中,第一函数类型的预设结果可以为60分,第二函数类型的预设结果可以为30分,第三函数类型的预设结果可以为10分。

其中,函数类型所对应的预设结果的实现方式可以根据实际需求进行选择,其例如还可以分别为6分、3分、1分,或者还可以为概率值,此处对其余的实现方式不再赘述。

s206、针对任一个调用函数,确定调用函数所对应的目标函数类型。

本实施例中在第一字段中包括预设字段时,任一个预设字段均对应有至少一个调用函数,则当前针对任一个调用函数,可以根据上述介绍的预设的函数类型,确定当前的调用函数所对应的目标函数类型。

s207、根据各目标函数类型和各目标函数类型所对应的预设结果,以及预设公式,确定数据检测结果。

本实施例中需要确定的是各个预设字段对应的数据检测结果,针对任一预设字段,在一种可能的实现方式中,可以根据该预设字段所对应的各目标函数类型和各目标函数类型所对应的预设结果确定数据检测结果。

可以理解的是,目标函数类型可以包括如下中的至少一种:第一函数类型、第二函数类型、第三函数类型。

则可以首先获取目标函数类型中每一种函数类型对应的预设结果的平均值,

以及,在一种可能的实现方式中,数据检测结果满足如下的预设公式(公式一):

数据检测结果=0.6×目标函数类型中第一函数类型

其中,k为数据检测结果;s1为目标函数类型中第一函数类型的预设结果的总和,c1为目标函数类型中第一函数类型的出现次数;s2为目标函数类型中第二函数类型的预设结果的总和,c2为目标函数类型中第二函数类型的出现次数;s3为目标函数类型中第三函数类型的预设结果的总和,c3为目标函数类型中第三函数类型的出现次数。

或者,在其余可能的实现方式中,其中的系数0.6、0.3、0.1等还可以根据实际的需求进行调整,或者还可以对公式一进行同等变形等,本实施例对预设公式的实现方式不再赘述。

在本实施例中,数据检测结果用于指示代码数据调用预设字段后,预设字段被输出的概率。

s208、判断数据检测结果是否大于预设阈值,若是,则执行s209,若否,则执行s210。

本实施例中,在得到数据检测结果之后,可以将数据检测结果和预设阈值进行比较,以确定当前的数据检测结果是否指示预测字段的数据被泄露的概率较高。

其中,预设阈值可以根据实际需求进行选择,本实施例对此不做限制。

s209、向预设地址发送警告信息。

在一种可能的实现方式中,若数据检测结果大于预设阈值,则可以确定预设字段的数据很有可能会被输出,则可以向预设地址发送警告信息,以提示工作人员对当前的情况进行检测以及处理。

其中,预设地址可以是管理员或者工作人员所使用的终端设备的网络地址,其中,警告信息例如可以为短信、邮件、电话语音等方式,本实施例对此不做限制,只要警告信息可以提示工作人员进行处理即可。

s210、对代码数据进行处理,以输出处理结果。

在另一种可能的实现方式中,若数据检测结果不大于预设阈值,则可以确定预设字段的数据不会被输出,则此时的开放平台可以对接收到的代码数据进行正常处理即可,以实现代码数据的预设功能。

本申请实施例提供的数据检查方法,包括:接收代码数据,并获取代码数据所调用的至少一个第一字段。若第一字段中包括预设字段,则检测代码数据是否被编译,若是,则对代码数据进行字节码插桩,以获取预设字段的第二调用链,其中,第二调用链包括至少一个调用函数。获取预设的至少一个函数类型,其中,任一函数类型对应有各自的预设结果。若否,则对代码数据进行遍历,以获取预设字段的第一调用链,其中,第一调用链包括至少一个调用函数。获取预设的至少一个函数类型,其中,任一函数类型对应有各自的预设结果。针对任一个调用函数,确定调用函数所对应的目标函数类型。根据各目标函数类型和各目标函数类型所对应的预设结果,以及预设公式,确定数据检测结果。判断数据检测结果是否大于预设阈值,若是,则向预设地址发送警告信息。若否,则对代码数据进行处理。通过根据调用链确定至少一个调用函数,可以提升调用函数的获取的效率,以及通过函数类型和预设公式确定数据检测结果,可以保证数据检测结果的准确性和高效性,接着通过数据检测结果和预设阈值进行比较,可以有效自动对预设字段的数据的检测,从而避免了人工审查的效率较低的问题。

在上述实施例的基础上,本申请实施例供的数据检查方法,在判断数据检测结果是否大于预设阈值之前,还可以对调用链进行回溯验证,以提升对预设字段的输出检测的效率,下面结合图3进行说明,图3为本申请实施例提供的数据检查方法的流程图三。

如图3所示,该方法包括:

s301、获取预设字段对应的任一个第一数据,并根据调用链对第一数据进行处理,得到第一处理结果。

其中,在对数据检测结果进行判断之前,可以对调用链进行回溯验证,回溯验证是用于验证调用链的处理过程是否可逆,可以理解的是,只有调用链的处理过程可逆的时候,代码数据在对预设字段的数据的输出之后,才可以采用逆过程得到预设字段,因此本实施例中对调用链进行回溯验证,可以提升对预设字段的输出检测的效率。

例如可以采用调用链对当前调用链对应的预设字段的数据进行正向处理后,将正向处理的结果再进行逆向处理,以检测处理前的数据和处理后的数据是否一致,若一致,则可以大概率的确定当前的代码数据的确是要输出预设字段的数据。

可以理解的是,本实施例中的调用链都是用于处理特定的预设字段的,例如身份证字段的调用链和住址信息的调用链就是不同的,因此本实施例中获取的预设字段对应的任一个第一数据,实际上是当前待处理的调用链所对应的预设字段所对应的数据。

接着,采用调用链对第一数据进行处理,实际上就是采用调用链中所包括的至少一个调用函数依次对第一数据进行处理,从而得到第一处理结果。

s302、根据调用链对第一处理结果进行逆处理,得到第二处理结果。

为了对调用链进行回溯验证,则采用调用链对第一处理结果进行逆处理,其中逆处理就是指和调用链中的调用函数功能相反的函数所进行的处理,例如加密函数对应的逆处理就是解密函数的处理,再例如相乘处理对应的逆处理就是相除处理,本实施例对逆处理的实现方式不再进行赘述。

对第一处理结果进行逆处理之后,可以得到第二处理结果。

s303、判断第二处理结果与第一数据是否相同,若是,则执行s304,若否,则执行s305。

其中,通过判断逆处理得到的第二处理结果和处理前的第一数据是否相同,可以确定调用链的处理过程是否是可逆的。

在一种可能的实现方式中,可以在第一数据对应的预设字段中查找是否存在第二处理结果,以确定第二处理结果与第一数据是否相同。

s304、丢弃代码数据。

在一种可能的实现方式中,若第二处理结果与第一数据相同,则可以确定可以确定调用链的处理过程是可逆的,也表明预设字段的数据会被输出,则此时为了保证平台中数据的安全性,可以丢弃接收到的代码处理,不对其进行处理。

s305、判断数据检测结果是否大于预设阈值,若是,则执行s208,若否,则执行s209。

在另一种可能的实现方式中,当逆处理得到的第二处理结果和处理前的第一数据不相同的时候,此时可以根据上述得到的数据检测结果,确定预设字段的数据是否有可能被输出,则执行判断数据检测结果是否大于预设阈值的流程即可,本实施例对该执行过程不再进行赘述。

在另一种可能的实现方式中,若因抓取链路不全等问题无法实现调用链的回溯验证,则可以进行组合方式验证,其中组合方式验证是指人工验证和机器验证的组合。

本申请实施例提供的数据检查方法,包括:获取预设字段对应的任一个第一数据,并根据调用链对第一数据进行处理,得到第一处理结果。根据调用链对第一处理结果进行逆处理,得到第二处理结果。判断第二处理结果与第一数据是否相同。若是,则丢弃代码数据。若否,则执行判断数据检测结果是否大于预设阈值的操作。通过对调用链进行回溯验证,以在调用链的回溯验证通过的时候,直接丢弃代码数据,从而能够有效提升开放平台对预设字段的数据输出的验证效率。

在可选的实施例中,本申请实施例提供的数据检查方法还包括:

若本申请中的代码数据中包括用于代码混淆的数据,则丢弃代码数据。

其中,代码混淆也称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。当代码数据中包括有用于代码混淆的数据时,则可以确定当前的代码数据所要实现的目的本来就是不合理的,因此可以直接丢弃代码数据,不对其进行处理,从而可以有效减少开发平台的负载,提升数据处理效率。

在上述实施例的基础上,下面结合图4对本申请提供的数据检查方法进行整体说明,图4为本申请实施例提供的数据检查方法的流程示意图。

如图4所示,该方法包括:

开始时,开放平台接收代码数据,针对未被编译的代码数据,对代码数据进行源码扫描敏感字段的处理,以获取预设字段的第一调用链;针对已被编译的代码数据,对代码数据进行字节码插桩,以获取预设字段的第二调用链。

接着针对调用链进行风险评估,也就是说获取当前调用链所对应的数据检测结果。

可选的,可以对调用链进行可逆回溯验证。

若可逆回溯验证通过,则可以直接丢弃代码数据;若可逆回溯验证不通过,则可以按照数据检测结果和预设阈值进行比较,以确定后续流程,具体的,当数据检测结果大于预设阈值,可以触发人工审核流程,以进行后续操作;若数据检测结果不大于预设阈值,则可以对代码数据进行处理,以实现代码数据对应的模型结果的输出。

通过服务器获取预设字段对应的调用函数,并根据各调用函数对应的函数类型确定数据检查结果,从而能够自动高效并且准确的实现对预设字段的数据输出的检测,有效保证了开放平台中的数据安全性。

图5为本申请实施例提供的数据检查装置的结构示意图。如图5所示,该装置50包括:接收模块501、获取模块502以及确定模块503。

接收模块501,用于接收代码数据,并获取所述代码数据所调用的至少一个第一字段;

获取模块502,用于若所述第一字段中包括预设字段,则根据所述代码数据,获取所述预设字段所对应的至少一个调用函数;

确定模块503,用于根据所述至少一个调用函数的函数类型,确定数据检测结果,所述数据检测结果用于指示所述代码数据调用所述预设字段后,所述预设字段被输出的概率。

在一种可能的设计中,所述确定模块503,具体用于:

获取预设的至少一个函数类型,其中,任一所述函数类型对应有各自的预设结果;

针对任一个所述调用函数,确定所述调用函数所对应的目标函数类型;

根据各所述目标函数类型和各所述目标函数类型所对应的预设结果,以及预设公式,确定数据检测结果。

在一种可能的设计中,所述预设的至少一个函数类型包括:第一函数类型、第二函数类型、第三函数类型;

所述第一函数类型包括如下中的至少一种函数:调用加解密算法函数、移位操作函数、拆分操作函数、字符编码函数、摘要算法函数;

所述第二函数类型对应的函数包括数据科学计算函数;

所述第三函数类型对应的函数包括聚合统计函数。

在一种可能的设计中,所述获取模块502,具体用于:

若所述代码数据未被编译,则对所述代码数据进行遍历,以获取所述预设字段的第一调用链,其中,所述第一调用链包括至少一个调用函数;以及

若所述代码数据已被编译,则对所述代码数据进行字节码插桩,以获取所述预设字段的第二调用链,其中,所述第二调用链包括至少一个调用函数。

在一种可能的设计中,所述确定模块503还用于:

在所述确定数据检测结果之后,判断所述数据检测结果是否大于预设阈值;

若是,则向预设地址发送警告信息。

在一种可能的设计中,所述获取模块502还用于:

在所述判断所述数据检测结果是否大于预设阈值之前,获取所述预设字段对应的任一个第一数据,并根据所述调用链对所述第一数据进行处理,得到第一处理结果;

根据所述调用链对所述第一处理结果进行逆处理,得到第二处理结果;

判断所述第二处理结果与所述第一数据是否相同;

若是,则丢弃所述代码数据;

若否,则执行所述判断所述数据检测结果是否大于预设阈值的操作。

在一种可能的设计中,所述确定模块503还用于:

若所述代码数据中包括用于代码混淆的数据,则丢弃所述代码数据。

本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图6为本申请实施例提供的数据检查设备的硬件结构示意图,如图6所示,本实施例的数据检查设备60包括:处理器601以及存储器602;其中

存储器602,用于存储计算机执行指令;

处理器601,用于执行存储器存储的计算机执行指令,以实现上述实施例中数据检查方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。

可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。

当存储器602独立设置时,该数据检查设备还包括总线603,用于连接所述存储器602和处理器601。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上数据检查设备所执行的数据检查方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1