本文讲述数据库表、字段名、注释元数据通过关键词匹配、字段内容通过正则表达式匹配实现敏感数据识别的方法说明
一、敏感数据说明
-
敏感数据
敏感数据主要包括客户资料、技术资料、个人信息等高价值数据,这些数据以不同形式存在于您的资产中。
敏感数据的泄露会给企业带来严重的经济和品牌损失。
-
敏感字段标注问题
数仓或数据库中,有一些敏感字段,比如用户手机号、通信地址,一旦泄露危害很大。为了尽可能方便让用户使用,同时又要保护敏感字段不能随意访问,一方面需要知道哪些字段是敏感的,另一方面是对敏感字段做更高级别的权限控制。
如何发现敏感字段,知道哪些字段是敏感的,可以去咨询相关领域的数据开发者,但是这样做有局限性,主要是费时费力,而且标注不全,一旦新增字段或者已有字段发生变更,难以及时跟进。
二、敏感数据识别
2.1 元数据敏感识别(敏感词库+关键词匹配)
1)定义敏感数据关键词匹配式
2)通过精准或模糊匹配表、字段名称、注释,利用元数据信息对数据库表、文件进行逐个字段匹配
缺点:设定关键词和元数据匹配,仅仅判定“有”,“无”,方式较粗糙,(1)开发人员创建表字段名、注释不严谨 (2)判断不准确
2.2 数据内容的敏感识别 (正则表达式)
临时表或未按照规范建立的敏感表,根据元数据无法判断是否未敏感数据,这种情况更多要分析数据内容来判断
自动化工具通过扫描获取这些表,将系统中大量数值型、英文型的敏感信息(如手机号、身份证号、邮箱等)通过预先定义正则表达式的方式进行匹配,做出敏感数据及其级别的判定
2.3 自然语言处理技术 (敏感词库+分词+相似度计算)
字段中含有大量的中文信息,通过元数据或正则匹配不能很少的识别。引入自然语言处理技术+中文近似词对比的方式进行识别。
1)根据数据内容整理输出常用敏感词
2)通过NLP对中文内容进行分词,通过中文近似词比对算法计算分词内容和敏感词相似对,若相似度超过某个阈值,则认为内容符合敏感词所属的分类分级
三、敏感字段字典
通过用户输入关键词或者预定义相关内容匹配敏感数据库来检测识别,用户缺乏相关领域知识,提交的关键词数量有限缺缺乏代表性,提交的关键词不能全面准确地表达用户的实际查询意图。造成检查结果不全面不准确。
-
常用敏感字段
个人敏感信息
身份证、银行卡、姓名、手机号、邮箱、 护照号、港澳通行证、车牌号、电话号码、军官司证
企业敏感信息
营业执照号码、税务登记证号码、组织机构代码、统一社会信用代码
密钥敏感信息
PEM证书、KEY私钥、AccessKeyId、AccessKeySecret、哈希密码
设备敏感信息
IP地址、MAC地址、JDBC连接串、IPv6地址、IMEI、MEID
位置敏感信息
省份、城市、GPS位置、地址
通用敏感信息
日期
-
敏感字段识别
识别方式 | 字段 | 说明 |
正则表达式和算法匹配 | 银行卡号、证件号、手机号、邮箱、车牌号、身份证 | 有明确的生成算法和识别规则 |
关键词 | 姓名、其他字符串字段 | 没有明确信息、任意字符串 |
自然语言或开源算法库 | 地址、图片 | 没有明确规则 |
注意:
本方法中全库扫描消耗的计算资源太大,可考虑抽样检查,比如随意抽取100条记录,经过预处理数据清理后,10条记录进行内容识别
原文始发于微信公众号(数据安全治理技术):基于关键词、数据字典和正则表达式敏感数据识别方法
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论