敏感数据发现方法的研究与实现
2019-12-16中国移动通信集团重庆有限公司邓秘密杨翔赵立农龙涛
中国移动通信集团重庆有限公司 邓秘密 杨翔 赵立农 龙涛
随着互联网的迅速发展,数据安全问题引发了全民的广泛关注,个人信息及敏感信息泄露的安全事件,可能引发严重的网络犯罪。
本文针对敏感数据的发现方法进行研究,通过页面采集识别方式、流量内容解析方式和多种识别策略实现对敏感数据的发现。
页面采集识别方式
通过分析数据库、文件夹和文件中的数据,分析其中的敏感数据匹配度,以得到敏感数据资产,如图1 所示。
1.数据层资产页面采集识别工具功能架构
本方案采用数据资产页面采集识别工具对数据库、主机载体承载的数据资产实现自动采集,其功能架构如图2 所示。
图1 页面采集识别方式
图2 页面采集识别工具功能架构图
该采集识别工具采用松耦合、高内聚的方式设计,分为四套引擎。
数据资产建模引擎:构建全网资源安全特征模型,基于元数据建模方法,构建了安全资源模型体系,通过类型维护、属性维护和子对象维护三个子模块,实现任意资源模型的自定义建模。
任务调度引擎:实现数据库表结构遍历的多样化调度,支持按秒、分、小时、天、周、月、年的细粒度周期性任务调度功能,同时支持多个离散时间点的任务调度。
配置采集引擎:实现基于设备类型的资源配置采集服务,实现自动在线检查和半自动离线检查采集方式,通过多样化的采集手段支撑数据采集。
资产分析引擎:突破传统的不可修改分析规则的固化分析模式,解析方式支持正则表达式和解析类,判断方法支持等于、大于等于、存在、包含等10 类判断逻辑。
2.数据库载体的敏感数据识别
数据资产页面采集识别工具在检测到数据库表结构时,首先分析数据库表的字段组成,查找出敏感字段(比如手机号码),检测时可设置策略,只针对该敏感字段进行检测。一旦发现新增数据中包含敏感数据字段类型(比如检测到某数据库表新增了1000 行数据,且手机号码字段有139 字样的11 位数字;或者检测到新增文件中有身份证号字样,且该字段是由x 结尾的18 位数字),数据资产页面采集识别工具将采集新增的数据,发送至系统管理员,由其根据敏感数据识别策略确认是否为新增的敏感数据,若是,采集识别工具将其格式化,并确定为敏感数据资产类型。
3.主机载体的敏感数据识别
图3 流量内容解析方式
图4 日志流量采集识别流程图
数据资产页面采集识别工具检测到新增的目录或文件时,首先分析目录名或文件名的组成,然后数据资产页面采集识别工具遍历文件内容,查找出敏感字段(比如手机号码),检测时可设置策略,只针对该敏感字段检测。一旦发现新增的数据中包含敏感数据字段类型(比如检测到某新增文件中有手机号码字样,并且手机号码字段有139 字样的11 位数字;或者检测到新增文件中有身份证号字样,且该字段是由x结尾的18 位数字),数据资产页面采集识别工具将采集新增的文件,发送至系统管理员,由其根据敏感数据识别策略确认是否为新增的敏感数据,若是,采集识别工具将其格式化,并确定为敏感数据资产类型。
应用日志流量采集识别方式
利用应用日志流量分析技术,通过在应用前台的网络必达通路上部署嗅探设备,分析应用前台的应用流量日志,识别敏感数据,如图3 所示。
本方案作为对数据库后台敏感数据采集的补充,针对前台应用采用流量嗅探的方式主动抓取Web 应用的流量,通过对HTTP 协议的解析,还原业务访问流量,从中分析敏感数据生成和访问情况。
本功能针对业务系统产生的所有HTTP 流量,均纳入采集范畴,实现采集任务的全程管理,如图4 所示。
对业务系统所有流量进行嗅探,识别Web 应用的HTTP流量,丢弃其他协议流量。
制定采集策略,根据源地址、目的地址、目的端口等过滤条件抓包。
还原出的协议信息主要包括:请求方法、请求URL、重要的请求头域(如Cookie、Host、Referer 和 User-Agent)、请求消息体(POST 数据)、响应状态码、重要响应头域(如Content-Type)、响应消息体(应答页面)。
敏感数据检测识别策略
1.基于指纹比对的识别策略
通过指纹对比对存量文件敏感资产的变动情况进行识别。基于已识别敏感数据的指纹(散列数据),与发现数据进行二进制内容比对,确认发现数据是否属于敏感数据。
本产品计算指纹时可选择使用国际通用SHA-1 算法和国家密码管理局编制的SM3 算法。当定期扫描存量敏感资产的变化时,先用文件指纹与待扫描文件指纹对比,将有变化的再通过其他扫描手段扫描差异,并更新指纹信息。
2.基于数据属性复杂组合的识别策略
(1)数据属性管理
支持基于多个关键字、正则表达式和数据属性判定的复杂组合内容发现,提高内容发现的准确性。在组合内容发现中引入评分计算概念:当组合中的一条识别特征规则在待分类数据中命中时,会获得一个与这条识别特殊规则对应的分数,当获得分数总和超过预先定义的阈值,引擎将此数据判定为敏感数据。
(2)敏感内容分析
引擎引入负分规则,用户在规则组中添加不应出现此分类中的识别特征,当其被命中时,系统给予负分,降低待分类数据的总分,减少误报可能性。
例如,经分统计分析报告数据分类内容发现过程中,待分类数据中出现“客户手机号码”时,系统给该数据加分,如待分类数据中出现“客户”“资料”时,系统进行减分。
还可设置识别特征至少出现次数及是否必须出现等属性,例如,内容发现规则组中设置识别特征身份证出现5 次以上才会命中,当待分类数据中只出现了1 次身份证号,系统判定此规则没有命中。
3.基于自然语言处理的识别策略
系统先通过模型训练方式训练相关模型作为系统初始信息,然后定义自然语言识别的敏感规则,再建立识别任务,通过识别规则对文件中文内容进行识别并输出敏感识别结果,结合业务分析进一步处理。
传统的机器学习模型如KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等,需 注意其过拟合、欠拟合问题,且上线之前要对训练好的模型进行评估,让模型对语料具备较好的泛化能力。
【例:中文文本K-means 聚类分析】
1.使用k-means++初始化模型,也可以选择随机初始 化,即“init="random"”,通过PCA 降维把权重weight降到10 维,进行聚类模型训练。
2.定义聚类结果可视化函数plot_cluster(result,newData,numClass),包 含3个参数,其中result 表示聚类拟合的结果集;newData 表示权重weight 降维的结果,这里需要降维到2 维,即平面可视化;numClass 表示聚类分为几簇,绘制代码第一部分绘制结果newData,第二部分绘制聚类的中心点。
3.对数据降维到2 维,然后获得结果,绘制聚类结果图。
4.还可用TSNE 执行可视化,保留下的属性信息更具代表性。
5.为了更好的表达和获取更有代表性的信息,在展示高维数据时,先用PCA 降维,再使用TSNE。