使用机器学习来帮助检测敏感信息

威尔逊唐
作者: 威尔逊唐,威胁狩猎-机器学习工程师
发表日期: 2023年11月13日

编者按:以下是Adobe赞助的博客文章.

作为一个大的, 拥有数千名员工的全球性组织, Adobe每天创建和交换无数的文档. 这些文档的范围从不太敏感的内容草案和提案到高度敏感的文档, 例如工作邀请或API文档. 有数据泄露的潜在风险, 尝试并确保在这些文档中找到的敏感信息不被未经授权的用户访问是很重要的. 即使是少量的文件,如果它们无意中落入坏人之手,也可能导致问题.

随着云文档规模的持续增长, 对于组织来说,正确分类和检测各种文档变得更加困难, 包括那些敏感的. 在我们的环境中,我们不能简单地用肉眼手动阅读所有的文件. 此外, 适当地标记这些文档也变得更加困难,因为工具还没有完全发展到能够跟上这个问题的规模和复杂性.

在Adobe, 我们正在利用机器学习(ML)来帮助我们检测各种类别的敏感文档, 以及实现自动实时检测和响应,以正确标记任何检测到的文档. 在这篇博文中, 我将分享我们是如何构建这些ML模型和管道的, 以及解决一些在安全领域中构建ML模型时更为常见的独特挑战.

什么是敏感文件?

为了正确地建模我们的问题,我们必须首先清楚地将我们的数据定义为ML任务. 我们将敏感文档定义为包含不应在整个公司广泛共享的任何信息的文件. 除了这个一般定义, 为了这个项目的目的,我们指定了两类不同的敏感文件:

  1. 敏感文件:属敏感性质的全部文件. 例如, 由于工作邀请本身,工作邀请将被归类为敏感文件, 整体而言, 是敏感的.
  2. 包含敏感信息的文档:本质上不敏感但包含一些敏感信息的文件. 例如, API文档本身并不敏感,但可能包含敏感信息的片段, 例如API密钥.

利用机器学习(ML)进行文档分类

人工智能(AI)的一个特定类别, 机器学习利用大量的数据来建立一个模型,可以对给定的任务产生预测. 在这个项目中,任务是为文档分类生成预测.

通常,文档分类涉及为文档分配一个或多个类别. There are many techniques for document classification; for our project, 我们发现随机森林最符合我们的需求.

用向量简化数据

在创建模型之前,我们需要创建文档的矢量表示. 我们是怎么做到的? 让我们回顾一下如何选择表示我们的数据. 给定原始文本文档, 我们首先过滤掉所有没有信息的词, 意思是不能帮助我们确定文件是否敏感的词. 通过消除数据中的噪声,我们可以更容易地对敏感文档进行分类.

接下来,我们用文档中的字数创建一个向量. 因为我们过滤掉了没有信息的词, 我们现在应该只有一小部分单词可以使用向量表示. 这种技巧被称为“词袋”.”

文字袋

用随机森林分类器模型提高置信度

现在我们有了文档的矢量表示,让我们深入研究模型本身. 决策树是一种模型,它定义标准并将输入数据划分为不同的分支. 例如,在下面的模型中,我们正在对动物进行分类. 这棵树的不同标准是:

  • 这种动物有羽毛吗?
  • 这动物会飞吗??
  • 这种动物有鳍吗?

我们在每个标准级别上做出的每个决定都将输入置于不同的分类中. 我们可以想象识别敏感文档的不同标准, 比如“这份文件中是否包含‘工作邀请’这个短语?”?“决策树很容易过度拟合. 当决策树创建的决策边界只适用于训练数据,而不能推广到实际数据时,就会发生过拟合. 这是一个问题,因为机器学习的目标是创建一个能够很好地预测新数据的模型.

词分类器

因此,为了减少过拟合,我们使用了随机森林分类器. 该模型训练多个决策树,并对所有树的决策进行平均. 该算法还确保每棵树在不同的标准上训练,并通过在每次分裂时随机选择不同的特征子集来分裂. 通过使用多个树, 为了减少过拟合,我们训练不同的模型来进行相同的预测.

Mulitple树

除了随机森林,我们还实现了一对一的分类器. 我们训练多个随机森林分类器,其中每个模型专门分类一种特定的文档类型. 例如, 一个模型可以专门对工作机会进行分类,另一个模型可以专门对税务文件进行分类. 对于每个文档, 我们在每个模型上运行文本,并从具有最高置信度的模型中进行分类.

看看下面的图表,让我们假设这个文档是一份工作邀请. 您可以看到,随机森林模型2专门研究工作机会,其预测精度或置信度为0.95美元,比其他两种型号贵.

Mulitple树

使用正则表达式检测文本中的模式

随机森林分类器技术非常适合完全敏感的文档,但不适用于只包含敏感信息片段的文档. 对于这类敏感文件, 我们实现了正则表达式检测, 哪些搜索文本样本中的特定模式, 因此,它非常适合秘密和个人可识别信息(PII)用例.

我们在实现中结合了开源和内部策划的正则表达式. 一个用于AWS API密钥的正则表达式示例如下:

AWS API密钥

用于实时检测和响应的自动化管道

最后, 利用我们的探测技术, 我们已经实现了实时检测和响应的自动化管道. 我们从SharePoint API开始,在那里我们查询特定时间范围内的所有文件. We then run each document over our models; if the document is classified as sensitive, 我们通过用户通知应用程序直接提醒用户,并将警报存储在我们的安全信息和事件管理(SIEM)中。.

在警报中, 我们允许用户使用“Yes”或“No”响应来指示文档是否敏感, 然后将其发送回我们的SIEM,这样我们就可以不断地重新训练我们的模型.

Mulitple树

挑战

我们在ML项目中面临的一个挑战是建立一个可靠的反馈循环. 特别是在安全方面, 通常很难给恶意或良性样本贴上标签, 以及获取用户对训练数据的响应. 要解决这个问题, 我们利用我们的用户通知应用程序来更容易地检索实时用户响应, 让我们的数据集不断增长.

我们面临的另一个挑战是尽量减少误报. 误报是安全中的一个关键问题,因为我们希望确保我们的分析师不会被警报淹没,并经历“警报疲劳”.“随机森林解决了这个问题,因为尽管它们比决策树更少过拟合, 与其他模型相比,它们仍然更容易过度拟合. 这意味着随机森林的误报率要小得多. 目前测试数据的误报率为0.8%.

然而, 作为旁注, 随机森林通常倾向于有更高的假阴性率, 也就是说他们可能会漏掉一些敏感文件. 但是因为在我们的用例中,敏感文档在整个公司通常是统一的, 我们发现随机森林不容易受到这种假阴性率的影响,因为同一类别中的不同敏感文档彼此非常相似. 当随机森林从训练数据中提取敏感文档的特定特征时, 由于其一致性,可以准确地检测出新的敏感文档中的这些特征. 因此,我们的假阳性和假阴性率都非常低.

未来的迭代

这个项目使我们能够在整个adobe SharePoint环境中准确地对各种敏感文档进行分类. 在未来, 我们计划通过实现更复杂的ML模型(比如BERT)来发展这个项目。, 继续扩展我们的文档类别, 并将我们的扫描功能扩展到AWS S3桶和Azure存储blob. 我们期待着继续努力,利用机器学习来帮助加强我们澳门赌场官方下载应用程序的安全态势.

额外的资源

ISACA年度报告

2023
复选标记

2022
复选标记

2021
复选标记

2020
复选标记

2019
复选标记