High Precision Detection of Business Email Compromise
高精度的商业电子邮件入侵检测
1.背景
(1)刊物/会议级别
USENIX Security
2019年8月14-16日
(2)作者团队
梭鱼网络,哥伦比亚大学
(3)论文背景
2013-2018年间,商业电子邮件欺诈(BEC)造成的经济损失高达120亿美元,远远超过其他诸如勒索软件等网络攻击手段所造成的损失。BEC主要由以下几种形式:
- 要求受害者转账到指定账户
- 要求填写包含社保号码的表格
- 引诱点击钓鱼链接
这些攻击的共同特点是:攻击者假扮为受害者的上司或同事
本文作者的研究聚焦于来自组织外部,并且假冒为公司员工的攻击(不考虑攻击者使用一个被劫持的内部电子邮件账号来假冒公司员工)
传统的电子邮件安全系统对于BEC的检测效果不理想的原因:
传统的电子邮件安全系统主要通过两个特征来检测:
- malicious(恶意性),即电子邮件是否包含恶意附件和恶意链接,以及是否来自一个低信誉度的域名。
- volumetric(传播次数),即相同格式的邮件被同时发送给许多人(包含相同的邮件内容或相同的URL)
然而,假冒内部员工的邮件不包含这两个特征。
现有的检测假冒邮件的方法要么数据集太小,要么检测的只是假冒邮件的一个子集(伪造域名或带有恶意链接),并且准确率不高,误报率令人难以接受。
检测BEC的一个挑战是:BEC的邮件非常少,50000个邮件中的BEC邮件少于一个。
因此,为了实现低误报率的目标,作者设计了一个使用监督学习的系统。但这又带来两个问题:
- 标记包含数百万封电子邮件的训练集异常困难
- 在这样一个不平衡的数据集上训练一个分类器也是困难的(BEC邮件比正常邮件低了五个数量级)
所以作者提出的模型基于历史邮件,分成两个步骤:
-
impersonation classifier (“假冒”分类器):通过检查邮件头部来确定攻击者是否假冒公司员工(利用员工常用邮件地址等信息)
-
content classifiers (内容分类器):“假冒”分类器认定为假冒邮件,再检查邮件正文,以确定是否为BEC邮件
对于不含链接的邮件,使用KNN聚类算法;包含链接的邮件,使用随机森林算法。
主要贡献如下:
- 第一个能够实时检测BEC的系统,并且有准确率高和误报率低的特点。
- BEC-Guard系统的创新在于依赖云邮件提供商API,既可以学习每个组织的历史通信模式,又可以实时检测攻击。
- 为了处理数百万封电子邮件的标记难题,我们将检测问题分为两个部分。
- 对邮件的标题和文本使用不同类型的分类器。邮件头文件使用随机森林进行分类,而文本分类主要依赖于KNN模型,该模型不依赖于任何硬编码特征,并且可以很容易地重新训练
- 为了在不平衡数据集上训练“假冒”分类器,我们使用聚类算法对合法邮件使用采样技术。
2.论文主要方法
(1)BEC的三种常见类型
- wire transfer(电子转账钓鱼):攻击者诱导受害者进行电子转账
- rapport(亲密关系钓鱼):不直接要求转账,而是首先发送一封邮件,取得信任后再要求转账等操作
- impersonation (假冒钓鱼):使用虚假名称,诱导受害者点击恶意链接
(2)特征选取
Header attributes(邮件头部特征):
- 电子邮件账户名称和常用邮件地址不相符
- 发件人地址和reply-to(回复)地址不同
- 邮件发送时间是否正常,IP是否是常用IP等特征
Body attributes(邮件正文特征):
- 包含敏感信息(电子转账等)
- 包含特别的,立即的要求
- 链接
- 邮件格式和风格信息
利用历史邮件:
利用诸如Office365,Gmail等云邮件服务商API访问其历史邮件
(3)分类器的特征设计
因为BEC邮件数量非常少,所以无监督学习,诸如聚类等算法的效果不佳。所以作者选择用监督算法来实现分类器,但这又会带来两个问题:
- 标记包含数百万封电子邮件的训练集异常困难
- 即使有了标记好的训练集,依然会有数据不均衡造成的分类困难
所以把分类器分成两部分:
- impersonation classifier (“假冒”分类器):通过检查邮件头部来确定攻击者是否假冒公司员工(利用员工常用邮件地址等信息)
特征 | 描述 |
---|---|
Sender has corp domain? | 发送地址是否属于公司域名? |
Reply-to != sender address? | 回复地址是否和发送地址不同? |
Num times sender and email | 发送者名称和发件地址出现的次数 |
Num times reply-to address | 回复地址出现的次数 |
Known reply-to service? | 回复地址是否为知名网站? |
Sender name popularity | 发送者名称的知名度 |
- content classifiers (内容分类器):“假冒”分类器认定为假冒邮件,再检查邮件正文,以确定是否为BEC邮件
content classifiers contains :
- Text classifier:针对第一类和第二类常见的BEC邮件
- 第一步:预处理邮件文本,去除一些诸如敬语等常规表达模式
- 第二步:计算TFIDF值(分数越高,代表一个单词在一封特定的邮件中出现的概率越大,但是含有这个单词的邮件月稀少)
- Link classifier:针对第三类BEC邮件
(4)分类器算法设计
impersonation classifier (“假冒”分类器)和 link classifier(链接分类器)使用随机森林算法
text classifier使用KNN算法
(5)给数据集做标签
三个原则:
- 假定攻击者使用员工姓名来冒充员工
- 假定攻击者使用相同的电子邮件地址的假冒员工攻击不会超过100次
- 假定攻击者使用的电子邮件地址不同于正常的公司地址
符合上述三个原则的电子邮件标记为BEC邮件,作为impersonation classifier的训练集。
然后在一个新的数据集上运行impersonation分类器,结果作为Content classifiers的初始训练集。
因为impersonation classifier的训练集是一个不平衡的数据集,所以采用对正常邮件进行欠采样操作:
- 使用高斯混合模型(Gaussian Mixture Models)进行聚类操作,将正常邮件分类,然后每个类别按比例抽取。
3.实验
使用2018年6月BEC-Guard处理过的包含几百个组织的两亿封邮件,人工对其进行标记,发现了4221封BEC邮件。
然后把数据集均分为两份,一份用作训练集,一份用于测试。得到最终的结果:
准确率 | 误报率 | 召回率 | |
---|---|---|---|
BEC-Guard(Combined) | 98.2% | 0.000019% | 96.9% |
4.结论
BEC是一个重大的网络安全威胁,每年造成数十亿美元的经济损失。
文章提出的第一个能够以高准确率和低误报率检测BEC的系统BEC-Guard,是一种新的基于api体系结构,结合监督学习方法,能够实时组织BEC攻击的系统。
虽然攻击者会不断调整战术和方法,但是该系统通过api的架构使用历史邮件模式的监督学习方法可以快速重新训练分类器,因此在应对不断演变的威胁方面非常有用。