CN113434908B - 一种基于Logback日志组件的数据脱敏方法 - Google Patents
一种基于Logback日志组件的数据脱敏方法 Download PDFInfo
- Publication number
- CN113434908B CN113434908B CN202111002787.1A CN202111002787A CN113434908B CN 113434908 B CN113434908 B CN 113434908B CN 202111002787 A CN202111002787 A CN 202111002787A CN 113434908 B CN113434908 B CN 113434908B
- Authority
- CN
- China
- Prior art keywords
- desensitization
- data
- log
- field
- logback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Logback日志组件的数据脱敏方法,属于数据脱敏技术领域。本发明包括:1.业务系统启动时加载配置信息;2.使用消息转化器截获原始日志数据;3.检测原始日志数据,获取符合脱敏规则的字段及其数据值,并进行分类;4.根据Java注解中配置的脱敏规则类型或者根据字段对应的脱敏规则类型,查询其脱敏规则,对数据值进行脱敏;5.将脱敏后的数据输出到Logback的日志输出组件并输出日志文件。本发明基于Logback日志组件,内置全局脱敏字段和配置Java注解相结合的方式,对隐私数据进行脱敏处理,解决了各种业务场景下的隐私数据暴露问题,具有运行效率高、扩展性强、成本低及兼容性好等优点。
Description
技术领域
本发明属于数据脱敏技术领域,具体涉及一种基于Logback日志组件的数据脱敏方法。
背景技术
金融行业的业务系统通常涉及对客户姓名、身份证号、银行卡号、手机号、密码等隐私数据的采集和处理,如果把这些数据直接记录到系统日志里,管理不当就会造成客户隐私数据的泄露,而且这么做也不符合金融监管部门的监管要求,满足不了数据合规。
数据脱敏是使用给定的脱敏规则和策略,对隐私数据进行变形处理,从而达到保护隐私数据安全的一种方法;对业务系统的日志进行脱敏处理,可以有效减少客户隐私数据泄露,提高数据防护等级,满足数据合规,落实监管部门的监管要求。
现有技术中的数据脱敏方法有以下几种:
方案1:系统在进行业务处理的代码中,直接对隐私数据进行脱敏处理,然后写入到日志文件中,如果系统有多处业务处理涉及隐私数据,则每处都要编码进行数据脱敏,如果业务处理有变更,则隐私数据的脱敏处理,也要相应的进行修改;
例如系统有用户注册、绑定银行卡、支付、充值、提现等操作,则每个操作都要编码对隐私数据进行脱敏处理,然后写入日志;
又例如用户注册操作,联系方式由电话号码变更为电子邮箱,则数据脱敏要改为使用电子邮箱的规则进行处理;
方案2:系统使用专门的数据脱敏组件,拦截所有将要写入日志的数据,对数据进行检测,如果某部分数据符合特定的格式,则对这部分数据进行相应的脱敏处理,将处理后的数据入日志。例如数据脱敏组件拦截并检测到日志中包含“18012341234”,则处理成“180****1234”后再写入日志。但是方案2主要存在以下问题:1.数据脱敏组件需要拦截检测所有的日志数据,数据范围大,处理效率低;2.只能对特定格式的隐私数据(如手机号)进行处理,对非格式化的数据(如密码)则无能为力。
方案3:系统使用专门的数据脱敏组件,拦截key-value类型的日志数据,对key进行检测,如果key是预先定义好的隐私数据字段,则对value进行相应的脱敏处理,将处理后的数据入日志。例如数据脱敏组件拦截到日志数据“mobile:18012341234”,检测到key“mobile”是预先定义好的隐私数据字段,则将value“18012341234”处理成“180****1234”后再写入日志。方案3只需要拦截日志数据中预定义好的key,处理其对应value的数据,相对方案2,数据处理的范围有缩小,效率有提高,但还存在以下问题:1.缺乏灵活性,如果因为业务原因需要变更key的名称,或变更value的脱敏规则,则需要修改数据脱敏组件;2.适用范围窄,对于多个业务场景隐私数据的key相同,但value需要使用不同脱敏规则进行处理的场景,则无能为力。
因此,亟需一种运行效率高、扩展性强、实施成本低及兼容性好的数据脱敏方法。
发明内容
针对现有技术中的问题,本发明提供一种基于Logback日志组件的数据脱敏方法,其目的在于:解决常规和个性化业务场景下的隐私数据暴露问题。
名词解释:MessageConverter:logback日志组件里的一个类的类名,中文名称为消息转换器;getFormattedMessage():logback日志组件里的一个类的方法,用于获取格式化的消息;key:关键字;value:关键字的值。
本发明采用的技术方案如下:
一种基于Logback日志组件的数据脱敏方法,包括下步骤:
步骤1:业务系统启动时加载配置信息,配置信息包括脱敏规则和全局脱敏字段;
步骤2:使用消息转化器SensitiveMsgConverter截获原始日志数据;
步骤3:检测原始日志数据,获取符合脱敏规则的字段及其数据值,并对符合脱敏规则的字段及数据值进行分类,并输入到相应的处理器中处理;
步骤4:获取Java注解中配置的脱敏规则类型或者获取字段对应的脱敏规则类型,查询所述脱敏规则类型对应的脱敏规则,根据脱敏规则对数据值进行脱敏处理;
步骤5:将脱敏处理后的数据输出到Logback的日志输出组件,并通过日志输出组件将脱敏处理后的数据输出到日志文件。
优选的,步骤1具体包括以下步骤:
步骤1.1:从文件系统加载包含脱敏规则的配置文件;
步骤1.2:从配置中心加载包含全局脱敏字段的配置信息。
优选的,步骤2具体包括以下步骤:
步骤2.1:使用父类MessageConverter的getFormattedMessage()方法截获原始日志数据;
步骤2.2:将截获的原始日志数据,转换成统一的数据格式,以便后续操作处理。
优选的,步骤3具体包括以下步骤:
步骤3.1:检查数据字段是否有配置Java注解,如果有,则将数据传递到Java注解字段处理器处理;如果没有,则转步骤3.2处理;
步骤3.2:检查数据字段是否是全局脱敏字段,如果是,则将数据传递到全局脱敏字段处理器处理;如果没有,则转步骤5处理。
优选的,步骤4具体包括以下步骤:
步骤4.1:获取Java注解中配置的脱敏规则类型或者获取字段的脱敏规则类型,查询所述脱敏规则类型所对应的脱敏规则;
步骤4.2:根据脱敏规则,对原始日志数据进行脱敏处理。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明安全性高:数据配置(脱敏规则)和数据处理(脱敏处理)分离,方便权限控制,降低数据泄露的可能性。
2.本发明处理效率高,系统开销小:只对个别数据(全局脱敏字段和配置注解的字段)进行处理,数据范围小,速度快。
3.本发明扩展性强、维护成本低:变更脱敏规则或全局字段,不需要修改代码,操作简单方便,无需开发人员介入。
4.本发明兼容性好、实施成本低:适用各种业务场景,系统极小改造或无需改造即可接入使用,可快速上线投产。
5.本发明轻量级,风险低:数据脱敏处理与业务处理分隔、最大程度减少对系统功能的影响,和降低系统的实施风险。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明的数据处理流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合图1对本发明作详细说明。
步骤1:业务系统启动时加载配置信息,配置信息包括脱敏规则和全局脱敏字段,此步骤具体包含以下步骤:
1.1从文件系统加载包含脱敏规则的配置文件,配置文件内容示例:
#手机号码脱敏规则:原始值18012341234,脱敏后180****1234
SENSITIVE_RULE_MOBILE=(\d{3})\d{4}(\d{4})|$1****$2
#身份证号脱敏规则:原始值110100000 0 06024950,脱敏后110***********4950
#短信验证码脱敏规则:原始值741852,脱敏后******
SENSITIVE_RULE_SMSCODE=.|*
1.2从配置中心加载包含全局脱敏字段的配置信息;配置中心:是把系统的各种配置、各种开关,全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就来配置中心的接口拉取。当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
配置信息示例:
#全局脱敏字段:使用手机号码脱敏规则
SENSITIVE_RULE_MOBILE=mobile|mobileNo|telephone|phoneNo
#全局脱敏字段:使用身份证号脱敏规则
SENSITIVE_RULE_IDCARD=idCard|idNo|documentNo
#全局脱敏字段:使用短信验证码脱敏规则
SENSITIVE_RULE_SMSCODE=smsCode|messageCode
步骤2:使用消息转化器SensitiveMsgConverter截获原始日志数据,SensitiveMsgConverter是该方案的核心组件,继承自Logback组件的MessageConverter,并对MessageConverter功能做了扩展,数据脱敏处理主要在此转化器中完成,此步骤具体包含以下步骤:
2.1 使用父类MessageConverter的getFormattedMessage()方法截获原始日志数据,不同的业务场景,原始日志数据的格式可能各不相同,常见格式示例:
mobile=18012341234,idCard=1101000000 06024950,smsCode=741852,userId=20007921
mobile:18012341234,idCard:1101000000 06024950,smsCode:741852,userId:20007921
{“mobile”:”18012341234”,”idCard”:”1101000000 06024950”,”smsCode”:”741852”, ”userId”:”20007921”}
2.2 将截获的原始日志数据,转换成统一的数据格式,以便后续操作处理,转换后的格式示例:
{“mobile”:”18012341234”,”idCard”:”1101000000 06024950”,”smsCode”:”741852”, ”userId”:”20007921”}
步骤3:检测原始日志数据,获取符合脱敏规则的字段及其数据值,并对其进行分类,将其输入到相应的处理器中处理,此步骤具体包含以下步骤:
3.1 检查数据字段是否有配置Java注解,如果有,则将数据传递到Java注解字段处理器处理;如果没有,则转步骤3.2处理;
smsCode字段配置Java注解的示例:
@Data
public class VerifySmsCodeRequest {
private String mobile;
private String idCard;
@SensitiveRule(type = RuleEnum.SMSCODE)
private String smsCode;
private String userId;
}
原始日志数据中的”smsCode”:”741852”会被此步骤检测到,并交由Java注解字段处理器处理;
3.2 检查数据字段是否是全局脱敏字段,如果是,则将数据传递到全局脱敏字段处理器处理;如果没有,则转步骤5处理;
原始日志数据中的“mobile”:”18012341234”和”idCard”:”110100000006024950”会被此步骤检测到,并交由全局脱敏字段处理器处理;
原始日志数据中的”userId”:”20007921”不需要进行脱敏;
步骤4-1:根据Java注解中配置的脱敏规则类型,查询其脱敏规则,根据规则对数据值进行脱敏处理,此步骤具体包含以下步骤:
4-1.1 获取Java注解中配置的脱敏规则类型,查询其对应的脱敏规则:
此步骤输入的原始数据是:”smsCode”:”741852”,
smsCode字段配置的脱敏规则类型是:SENSITIVE_RULE_SMSCODE,该类型对应的脱敏规则是:.|*。
4-1.2 根据脱敏规则,对原始日志数据进行脱敏处理:
原始数据:”smsCode”:”741852”,根据脱敏规则处理后变为:”smsCode”:”******”。
步骤4-2:根据字段对应的脱敏规则类型,查询其脱敏规则,根据脱敏规则对数据值进行脱敏处理,此步骤具体包含以下步骤:
4-2.1 获取字段的脱敏规则类型,查询其对应的脱敏规则:
此步骤输入的原始数据是:“mobile”:”18012341234”,”idCard”:”110100000006024950”,
mobile字段的脱敏规则类型是:SENSITIVE_RULE_MOBILE,该类型对应的脱敏规则是: (\d{3})\d{4}(\d{4})|$1****$2;
4-2.2 根据脱敏规则,对原始日志数据进行脱敏处理:
原始数据:“mobile”:”18012341234”,”idCard”:”1101000000 06024950”,根据脱敏规则处理后变为:“mobile”:”180****1234”,”idCard”:”110***********4950”。
步骤5:输出处理后的数据到Logback的日志输出组件,该组件负责将数据输出到日志文件。
最终写入日志的数据是:
{“mobile”:”180****1234”,”idCard”:”110***********4950”,”smsCode”:”******”, ”userId”:”20007921”}。
本发明具有以下特点:
1. 脱敏规则配置在配置文件中,具有以下特点:
可维护性强:修改脱敏规则只需要修改配置文件,不需要修改代码,工作量低,不需要重新部署系统服务,降低了系统故障的可能性;
数据安全性高:生产系统的配置文件,只有个别有权限的人员才能查看,减少脱敏规则暴露的可能性;
灵活性强:不同的环境可以使用不同的配置文件,配置不同的脱敏规则,灵活适应不同的业务场景。
2. 全局脱敏字段配置在配置中心中,具有以下特点:
配置中心中变更数据可实时生效,不需要启停系统,不会中断服务,提高了业务连续性;
配置中心提供界面化操作,简单易用,业务人员即可操作,不需要开发人员介入。
3. 只需要检测全局脱敏字段和配置了Java注解的字段数据,即只对少部分数据进行处理,速度快,效率高,系统开销低。
4. 全局脱敏字段的处理方式,使业务场景简单的系统不需要做改造,只需梳理出需要脱敏的字段,简单配置后即可实现数据脱敏的功能,兼容性好,实施成本低。
5. 字段配置Java注解的处理方式,适用于业务场景复杂的系统,只要对需脱敏的字段配置相应的注解即可,改造工作量小,代码侵入性低,且不与业务处理代码耦合,降低对系统功能的影响。
以上所述实施例仅表达了本申请的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。
Claims (4)
1.一种基于Logback日志组件的数据脱敏方法,其特征在于,包括下步骤:
步骤1:业务系统启动时加载配置信息,配置信息包括脱敏规则和全局脱敏字段;
步骤2:使用消息转化器SensitiveMsgConverter截获原始日志数据;
步骤3:检测原始日志数据,获取符合脱敏规则的字段及其数据值,并对符合脱敏规则的字段及数据值进行分类,并输入到相应的处理器中处理;
步骤4:获取Java注解中配置的脱敏规则类型或者获取字段对应的脱敏规则类型,查询所述脱敏规则类型对应的脱敏规则,根据脱敏规则对数据值进行脱敏处理;
步骤5:将脱敏处理后的数据输出到Logback的日志输出组件,并通过日志输出组件将脱敏处理后的数据输出到日志文件;
步骤2具体包括以下步骤:
步骤2.1:使用父类MessageConverter的getFormattedMessage()方法截获原始日志数据;
步骤2.2:将截获的原始日志数据,转换成统一的数据格式,以便后续操作处理。
2.根据权利要求1所述的一种基于Logback日志组件的数据脱敏方法,其特征在于,步骤1具体包括以下步骤:
步骤1.1:从文件系统加载包含脱敏规则的配置文件;
步骤1.2:从配置中心加载包含全局脱敏字段的配置信息。
3.根据权利要求1所述的一种基于Logback日志组件的数据脱敏方法,其特征在于,步骤3具体包括以下步骤:
步骤3.1:检查数据字段是否有配置Java注解,如果有,则将数据传递到Java注解字段处理器处理;如果没有,则转步骤3.2处理;
步骤3.2:检查数据字段是否是全局脱敏字段,如果是,则将数据传递到全局脱敏字段处理器处理;如果没有,则转步骤5处理。
4.根据权利要求1所述的一种基于Logback日志组件的数据脱敏方法,其特征在于,步骤4具体包括以下步骤:
步骤4.1:获取Java注解中配置的脱敏规则类型或者获取字段的脱敏规则类型,查询所述脱敏规则类型所对应的脱敏规则;
步骤4.2:根据脱敏规则,对原始日志数据进行脱敏处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111002787.1A CN113434908B (zh) | 2021-08-30 | 2021-08-30 | 一种基于Logback日志组件的数据脱敏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111002787.1A CN113434908B (zh) | 2021-08-30 | 2021-08-30 | 一种基于Logback日志组件的数据脱敏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434908A CN113434908A (zh) | 2021-09-24 |
CN113434908B true CN113434908B (zh) | 2021-12-07 |
Family
ID=77798317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111002787.1A Active CN113434908B (zh) | 2021-08-30 | 2021-08-30 | 一种基于Logback日志组件的数据脱敏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434908B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114357486A (zh) * | 2022-01-04 | 2022-04-15 | 北京理房通支付科技有限公司 | 日志数据的写入方法和可读存储介质、电子设备 |
CN115952534A (zh) * | 2022-12-05 | 2023-04-11 | 企知道网络技术有限公司 | 一种日志敏感信息管控方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169434B1 (en) * | 2016-01-31 | 2019-01-01 | Splunk Inc. | Tokenized HTTP event collector |
CN107180200B (zh) * | 2017-04-20 | 2020-06-09 | 北京数科网维技术有限责任公司 | 数据文件可定制化脱敏方法和系统 |
CN109726004B (zh) * | 2017-10-27 | 2021-12-03 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置 |
CN110581838B (zh) * | 2019-07-15 | 2022-06-21 | 平安普惠企业管理有限公司 | 可持续请求数据流的方法、电子装置及计算机设备 |
CN111339559A (zh) * | 2020-02-25 | 2020-06-26 | 北京同邦卓益科技有限公司 | 一种日志脱敏的数据处理方法及装置 |
CN111522682A (zh) * | 2020-06-22 | 2020-08-11 | 上海通联金融服务有限公司 | 基于敏感信息规则在日志写入阶段完成日志脱敏的方法 |
CN112948136A (zh) * | 2021-02-02 | 2021-06-11 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种嵌入式操作系统异步日志记录的实现方法 |
CN113094262B (zh) * | 2021-03-29 | 2022-10-18 | 四川新网银行股份有限公司 | 一种基于数据库分库分表的生产数据进行测试的方法 |
-
2021
- 2021-08-30 CN CN202111002787.1A patent/CN113434908B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113434908A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113434908B (zh) | 一种基于Logback日志组件的数据脱敏方法 | |
US9697058B2 (en) | Method, computer program and apparatus for controlling access to a computer resource and obtaining a baseline therefor | |
CN106503996A (zh) | 基于web的支付业务提供设备、方法以及系统 | |
US20230073638A1 (en) | Local data classification based on a remote service interface | |
CN110610196A (zh) | 脱敏方法、系统、计算机设备和计算机可读存储介质 | |
Jeon et al. | Smartcondetect: Highly accurate smart contract code vulnerability detection mechanism using bert | |
WO2021146988A1 (en) | Method and apparatus for protecting smart contracts against attacks | |
CN112699403A (zh) | 数据处理方法、装置、介质、设备及程序产品 | |
CN111222181B (zh) | Ai模型的监管方法、系统、服务器及存储介质 | |
CN111861465A (zh) | 基于智能合约的检测方法及装置、存储介质、电子装置 | |
CN109522683A (zh) | 软件溯源方法、系统、计算机设备及存储介质 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN114895879B (zh) | 管理系统设计方案确定方法、装置、设备及存储介质 | |
CN117114677A (zh) | 一种数字钱包管理系统和方法 | |
CN116028917A (zh) | 权限检测方法及装置、存储介质及电子设备 | |
CN114936249A (zh) | 一种文件解析、转换方法、装置、设备及可读存储介质 | |
CN113987574A (zh) | 一种区块链私密交易方法、装置、设备及可读存储介质 | |
CN114357486A (zh) | 日志数据的写入方法和可读存储介质、电子设备 | |
US20230064540A1 (en) | Systems and methods for federated secure vocabulary learning | |
CN117610078B (zh) | 数据流转预警的方法、装置、电子设备及存储介质 | |
CN115952522A (zh) | 一种系统交互的方法和装置 | |
WO2024052779A1 (en) | Blockchain monitoring platform | |
Havey | PrivSense: Static Analysis for Detecting Privacy-related Code in Mobile Apps | |
CN118133343A (zh) | 基于隐私保护的智能合约生成方法、装置、设备及介质 | |
CN117220924A (zh) | 系统权限控制方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |