掌桥专利:专业的专利平台
掌桥专利
首页

一种日志脱敏方法及相关装置

文献发布时间:2023-06-19 19:30:30


一种日志脱敏方法及相关装置

技术领域

本申请实施例涉及征信领域,尤其涉及一种日志脱敏方法及相关装置。

背景技术

征信行业的业务系统通常涉及对数据的采集和加工,这些数据包含纳税人识别号、企业名称、法人姓名、身份证号、银行卡号、手机号、邮箱、ip、密码等隐私信息,如果把这些数据直接记录到系统日志里,管理不当就会造成客户隐私数据的泄露。为防止隐私数据的泄露,可对数据进行脱敏。使用给定的脱敏规则和策略,对待脱敏日志进行脱敏处理,可以有效减少客户隐私数据泄露,提高数据防护等级。现有的方案是通过脱敏工具类来对待脱敏日志的参数进行操作,以对待脱敏日志的特定字段进行脱敏并返回。

现有的方案虽然能够对待脱敏日志进行脱敏,但是对待脱敏日志有入侵行为,很大概率会影响系统的运行和对待脱敏日志进行脱敏并输出的效率,不能在脱敏的前提下不入侵待脱敏日志,给用户带来一定的不便。

发明内容

本申请实施例提供了一种日志脱敏方法及相关装置。

一种日志脱敏方法,包括:

加载预先设置的归档文件并进行解析,得到目标类;

加载预先设置的配置文件并进行解析,得到脱敏规则;

基于所述脱敏规则,通过所述目标类对待脱敏日志进行脱敏,得到目标日志。

可选的,基于所述脱敏规则,通过所述目标类对待脱敏日志进行脱敏,得到目标日志,包括:

通过所述目标类判断所述待脱敏日志中是否存在与所述脱敏规则相匹配的待脱敏字段;

若存在,则基于所述脱敏规则对所述待脱敏字段进行脱敏,得到目标字段;

基于所述目标字段得到所述目标日志。

可选的,通过所述目标类判断所述待脱敏日志中是否存在与所述脱敏规则相匹配的待脱敏字段之后,所述方法还包括:

若不存在,则不进行处理。

可选的,加载预先设置的归档文件并进行解析,得到目标类之前,所述方法还包括:

将预先定义的包括所述目标类的多个类进行封装,得到所述归档文件。

可选的,加载预先设置的配置文件并进行解析,得到脱敏规则之前,所述方法还包括:

基于预先编写的所述脱敏规则,得到所述配置文件。

可选的,基于所述脱敏规则,通过所述目标类对待脱敏日志进行脱敏,得到目标日志之后,所述方法还包括:

发出脱敏完成提示。

可选的,所述脱敏规则有多个。

一种日志脱敏装置,包括:

加载单元,用于加载预先设置的归档文件并进行解析,得到目标类;

所述加载单元,还用于加载预先设置的配置文件并进行解析,得到脱敏规则;

脱敏单元,用于基于所述脱敏规则,通过所述目标类对待脱敏日志进行脱敏,得到目标日志。

一种日志脱敏装置,包括:

中央处理器,存储器以及输入输出接口;

所述存储器为短暂存储存储器或持久存储存储器;

所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行前述的方法。

一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行前述的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

加载预先设置的归档文件和配置文件并解析,得到目标类和脱敏规则后,基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。通过外部的归档文件和配置文件来对待脱敏日志进行脱敏,能够在脱敏的前提下不入侵待脱敏日志,给用户带来较好的体验。

附图说明

图1为本申请的日志脱敏方法一个实施例示意图;

图2为本申请的日志脱敏方法另一实施例示意图;

图3为本申请的日志脱敏装置一个实施例示意图;

图4为本申请的日志脱敏装置另一实施例示意图。

具体实施方式

本申请实施例提供了一种日志脱敏方法及相关装置。

现有的方案是通过类对待脱敏日志的参数进行操作,以实现对待脱敏日志的脱敏。然而这样对待脱敏日志有入侵行为,会影响系统运行和脱敏输出效率。为解决上述问题,本申请提供一种日志脱敏方法及相关装置,能够在脱敏的前提下不入侵待脱敏日志,给用户带来较好的体验。

下面对本申请的日志脱敏方法及相关装置进行描述。请参阅图1,本申请的日志脱敏方法一个实施例包括:

101、加载预先设置的归档文件并进行解析,得到目标类;

加载预先设置的归档文件并进行解析,得到目标类。优选的,归档文件可以是jar文件,还可以是其他类型的文件,具体此处不做限定。具体的,加载预先设置封装好的归档文件并进行解析,得到多个类,其中包括目标类,目标类主要用于后续步骤中对待脱敏日志的脱敏。

102、加载预先设置的配置文件并进行解析,得到脱敏规则;

加载预先设置的配置文件并进行解析,得到脱敏规则。其中,配置文件可以是logback-desensitize.yml,也可以是logback-desensitize.properties,具体此处不做限定。将配置文件进行解析后能够得到脱敏规则。对于一个字段,可以设置一个或多个脱敏规则,优选的,会用key+分割符+value格式的脱敏规则作为固定脱敏规则,配置文件还内置有其他脱敏规则,以在固定规则匹配不到的情况下使用。

下面举例对脱敏规则进行描述:

/>

以上配置为优选实施例,当然也可以有其他形式的实施例,具体此处不做限定,只需严格遵守层级配置格式。

103、基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。

基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。具体的,通过目标类判断待脱敏日志中是否有字段与脱敏规则匹配,若匹配上则对字段进行脱敏,脱敏后的字段组成目标日志,若匹配不上则说明待脱敏日志中的字段无需脱敏或脱敏规则未完全覆盖大多数情况,不进行处理。

本申请实施例中,加载预先设置的归档文件和配置文件并解析,得到目标类和脱敏规则后,基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。通过外部的归档文件和配置文件来对待脱敏日志进行脱敏,能够在脱敏的前提下不入侵待脱敏日志,给用户带来较好的体验。

请参阅图2,本申请的日志脱敏方法另一实施例包括:

201、将预先定义的包括目标类的多个类进行封装,得到归档文件;

将预先定义的包括目标类的多个类进行封装,得到归档文件。其中,归档文件可以是jar文件,还可以是其他类型的文件,具体此处不做限定。先自定义所需要的多个类,其中包括目标类,再封装至归档文件中,以供后续调用。

202、基于预先编写的脱敏规则,得到配置文件;

基于预先编写的脱敏规则,得到配置文件。具体的,先根据实际需求编写一个或多个脱敏规则,再将脱敏规则归入配置文件中,以供后续调用。其中,配置文件所支持的脱敏数据类型包括八大基本类型及其包装类型、String类型、Map、List、JSON字符串、项目中的POJO对象等,可根据实际需求进行扩展删减,具体此处不做限定。

203、加载预先设置的归档文件并进行解析,得到目标类;

加载预先设置的归档文件并进行解析,得到目标类。具体的,加载预先设置封装好的归档文件并进行解析,得到多个类,其中包括目标类,目标类主要用于后续步骤中对待脱敏日志的脱敏。

204、加载预先设置的配置文件并进行解析,得到脱敏规则;

加载预先设置的配置文件并进行解析,得到脱敏规则。其中,配置文件可以是logback-desensitize.yml,也可以是logback-desensitize.properties,具体此处不做限定。将配置文件进行解析后能够得到脱敏规则。对于一个字段,可以设置一个或多个脱敏规则,优选的,会用key+分割符+value格式的脱敏规则作为固定脱敏规则,配置文件还内置有其他脱敏规则,以在固定规则匹配不到的情况下使用。

下面举例对脱敏规则进行描述:

/>

以上配置为优选实施例,当然也可以有其他形式的实施例,具体此处不做限定,只需严格遵守层级配置格式。

205、通过目标类判断待脱敏日志中是否存在与脱敏规则相匹配的待脱敏字段,若否,则执行步骤206,若是,则执行步骤207;

具体的,会通过目标类对待脱敏日志中的字段进行查询,若有字段与脱敏规则相匹配,则,执行步骤207,若没有匹配上则执行步骤206。例如,待脱敏日志中有字段phone:13500000000,基于脱敏规则phone:4,7,经过目标类可将字段phone:13500000000与脱敏规则phone:4,7进行匹配,以进行下一步脱敏。

在使用目标类进行判断前,会先对原来的类进行替换,以使得系统调用自定义的目标类进行判断查询。例如,得到目标类后,目标类中可以包括自定义的控制台日志输出类,可以通过继承ch.qos.logback.core.ConsoleAppender,重写subAppend方法,logback.xml中引入对应的自定义VzConsoleAppender,实现控制台日志脱敏;还可以包括自定义滚动文件日志输出类,继承ch.qos.logback.core.rolling.RollingFileAppender,重写subAppend方法,logback.xml中引入对应的自定义VzRollingFileAppender,实现滚动文件日志脱敏;还包括自定义文件日志输出类,继承ch.qos.logback.core.FileAppender,重写subAppend方法,logback.xml中引入对应的自定义VzFileAppender,实现文件日志脱敏。优选的,可通过以下内容实现替换:

①ConsoleAppender-控制台脱敏

原配置类:

ch.qos.logback.core.ConsoleAppender

替换自定义类:

com.vzoom.zxxt.logbackadvice.VzConsoleAppender

②RollingFileAppender-滚动文件

原配置类:

ch.qos.logback.core.rolling.RollingFileAppender

替换自定义类:

com.vzoom.zxxt.logbackadvice.VzRollingFileAppender

③FileAppender-文件

原配置类:

ch.qos.logback.core.FileAppender

替换自定义类:

com.vzoom.zxxt.logbackadvice.VzFileAppender

以上例子为实现替换的其中一个实施例,还有其他形式可执行的实施例,具体此处不做限定。

206、不进行处理;

当待脱敏日志中不存在与脱敏规则相匹配的待脱敏字段,则不进行处理,等待用户的指令。

207、基于脱敏规则对待脱敏字段进行脱敏,得到目标字段;

当待脱敏日志中存在与脱敏规则相匹配的待脱敏字段,基于脱敏规则对待脱敏字段进行脱敏,得到目标字段。具体的,每一个key可以有一个或多个脱敏规则,首先固定使用key+分隔符+value的脱敏规则,若不匹配,则使用配置文件内置的其他脱敏规则,如内置正则匹配规则,直到有规则匹配。若匹配,则进行脱敏。其中,配置文件默认仅支持冒号和等号分割,如需其他方式可以修改正则匹配方式(本配置文件的正则匹配是匹配的key:value和key=value),如:

log.info(“your email:{},your phone:{}”,“123456789@qq.com”,“13500000000”);

log.info(“your email={},your phone={}”,“123456789@qq.com”,“13500000000”);

匹配完成后,基于对应的规则对待脱敏字段进行脱敏,得到目标字段。

为便于理解,下面举例对脱敏进行说明:

通过key:value格式的脱敏规则进行脱敏:脱敏规则phone:4,7,表示phone属性的第4-7位进行脱敏,原始数据:13500000000,脱敏后的数据为:135****0000。

通过脱敏标志、结束节点和开始节点进行脱敏:脱敏规则email:“@>(4,7)”,@为脱敏标志,>表示其为结束节点,<表示其为开始节点。即@>表示对@之前的数据进行脱敏,@<表示对@之后的数据进行脱敏。这个示例就是@前的数据的第4-7位进行脱敏。若原始数据:123456789@qq.com,则“@>(4,7)”脱敏后:123****89@qq.com,则“@<(1,3)”脱敏后:123456789@***com。

通过自定义正则表达式进行脱敏:具体的,可通过以下内容进行脱敏:

customRegex:正则表达式,如果符合该表达式,则使用其对应的脱敏规则(position)

另外,一个字段,可根据值含义进行自定义脱敏:例如,username字段的值可以是手机号、也可以是邮箱,这个值是动态改变的,若前面几种方式都没办法解决,则可以使用该方式。可根据以下内容进行脱敏:

以上例子仅仅作为示意,实际内容还可以是其他形式的,具体此处不做限定。

208、基于目标字段得到所述目标日志;

基于目标字段得到所述目标日志。得到目标字段后,多个目标字段组合成所需要的目标日志。

209、发出脱敏完成提示。

得到目标日志后,发出脱敏完成提示,以告知用户脱敏流程已结束,已输出所需要的目标日志。

本实施例中,加载预先设置的归档文件和配置文件并解析,得到目标类和脱敏规则后,基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。通过外部的归档文件和配置文件来对待脱敏日志进行脱敏,能够在脱敏的前提下不入侵待脱敏日志。通过本实施例方法还可以更灵活、更安全的适配现有系统,不用对系统进行大量改造,避免影响现有功能,将风险降到最低。另外,配置文件和归档文件具有高扩展性,可以扩展个性化脱敏规则和个性化类,满足客户对各种敏感数据脱敏的需求,给用户带来较好的体验。

下面对本申请的日志脱敏装置进行描述。请参阅图3,本申请的日志脱敏装置一个实施例包括:

加载单元301,用于加载预先设置的归档文件并进行解析,得到目标类;

所述加载单元301,还用于加载预先设置的配置文件并进行解析,得到脱敏规则;

脱敏单元302,用于基于所述脱敏规则,通过所述目标类对待脱敏日志进行脱敏,得到目标日志。

本申请实施例中,加载单元301加载预先设置的归档文件和配置文件并解析,得到目标类和脱敏规则后,脱敏单元302基于脱敏规则,通过目标类对待脱敏日志进行脱敏,得到目标日志。通过外部的归档文件和配置文件来对待脱敏日志进行脱敏,能够在脱敏的前提下不入侵待脱敏日志,给用户带来较好的体验。

本实施例日志脱敏装置中各单元所执行的功能以及流程与前述图1至图2中日志脱敏装置所执行的功能和流程类似,此处不再赘述。

图4是本申请实施例提供的一种日志脱敏装置结构示意图,该日志脱敏装置400可以包括一个或一个以上中央处理器(central processing units,CPU)401和存储器405,该存储器405中存储有一个或一个以上的应用程序或数据。

其中,存储器405可以是易失性存储或持久存储。存储在存储器405的程序可以包括一个或一个以上模块,每个模块可以包括对日志脱敏装置中的一系列指令操作。更进一步地,中央处理器401可以设置为与存储器405通信,在日志脱敏装置400上执行存储器405中的一系列指令操作。

日志脱敏装置400还可以包括一个或一个以上电源402,一个或一个以上有线或无线网络接口403,一个或一个以上输入输出接口404,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。

该中央处理器401可以执行前述图1至图2所示实施例中日志脱敏装置所执行的操作,具体此处不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 一种混合数据的脱敏方法、脱敏装置及脱敏设备
  • 一种存储系统操作日志的聚合方法及相关装置
  • 一种数据库的审计日志处理方法及相关装置
  • 一种清理日志文件缓存的方法及装置
  • 一种前端日志多通道输出的方法、装置、服务器及存储介质
  • 基于日志的代码脱敏漏洞检测方法及相关设备
  • 基于logback日志组件的日志脱敏方法、装置和计算机设备
技术分类

06120115933702