IT虾米网

大数据平台数据脱敏方案详解

leader 2021年11月03日 大数据 258 0
本文章主要介绍了大数据平台数据脱敏方案,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

针对数据:身份证,银行卡,手机号,mac地址,IMEI,车牌号,邮箱

select查询数据脱敏


处理步骤:
1、平台数据每次插入完成后,数据抽样,对每个字段的内容进行识别,判断为敏感内容则进行打标。
2、解析该sql的物理计划,根据物理计划判断select的字段是否涉及到敏感信息。
3、自定义hive脱敏udf函数mask(value),select查询的时候,将打标的敏感字段加上mask函数
如:查询sql为select a,b,c from tab,打标b字段涉及敏感数据,Sql处理成select a,mask(b),c from tab

数据导出脱敏


公司目前导出数据处理:
1、自定义export导出命令
2、导出sql为select a.id,b.name from tab_a a left join tab_b b on a.id=b.id的数据,将最终导出的数据放到临时表tab_c

脱敏处理:
1、由于tab_c表字段未进行预先打标,处理方式只能对要导出的内容进行全内容脱敏导出处理
2、sparkSql读取tab_c表,得到DataFrame后使用withColumn,将每个字段加上mask函数处理。

产生问题:
普通表只有几十个字段的情况下性能尚可,但公司有上千个字段的hive表
解决办法:
使用select方法代替withColumn

其他性能优化:
敏感字段一般是身份证手机号之类内容,这类内容必然是字符串,故,当根据字段类型是数值之类的字段可以不加mask函数处理,提供处理性能。
 

痛点

1、脱敏性能
(1)select查询,所有字段加脱敏udf返回,性能低
解决办法:字段预先根据百分比,抽样预判打标判断字段是否有敏感信息,只有被打标为有敏感信息的字段才需脱敏,此外,数值类型的字段基本可以排除是需要脱敏的字段。


2、内容substring切分后读取能避开脱敏规则
解决办法:
(1)绝对脱敏:所有字段只要预先被打标为,整个字段内容做脱敏处理
(2)相对脱敏:字段提前打标,判断字段内容是单个比较独立的字符,这种情况整个字段内容脱敏(可以避开substring后读取数据的漏洞),如果字段内容是一段字符串,只脱敏识别到的敏感内容(无法避开substring后读取数据的漏洞)


发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Redis缓存批量删除设计思路详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。