在这篇文章中,我们将从攻击者的角度介绍如何使用Azure信息保护(Azure Information Protection,AIP)来改进网络钓鱼技术。这个想法是在一次测试工作过程中产生的,当时我正在为无法将钓鱼邮件投递到用户的收件箱中而绞尽脑汁,因为它在途中就被沙箱拦截了。后来,我突然想到可以借助AIP(Rights Management Service,权限管理服务)来保护附件,甚至电子邮件,使得它们只能被指定的收件人打开。这样一来,即使沙箱截获了相关的文件也没有关系,因为它根本无法读取其中的内容。
AIP有两种工作方式。首先,它会通过加密为我们的文件提供安全保护;其次,指定的用户打开文档时,必须先通过Azure来验证身份,只有通过身份验证之后才能获得相应的解密密钥。此外,相关的密钥仅在特定时间内有效(稍后将对此进行详细说明)。
钓鱼过程
首先,我们需要在Office 365中配置好相应的网络钓鱼域。这时,可以通过管理员门户为租户添加自定义域。
图1:添加自定义域
这个过程非常简单,只要按照向导的提示添加域信息即可,其中还要添加DNS记录,以验证您对该域的所有权。
完成上面的操作后,接着为自定义域创建一个帐户,并为其指定使用AIP所需的许可证。
图2:添加新用户
在“Add a user”对话框中,在各个字段中添加相应的内容,然后,从列表中选择自定义域。
图3:为新用户添加详细信息
好了,现在重点来了,那就是许可证问题。要想使用AIP,必须具有相应的许可证,即至少具有Azure信息保护高级版P1许可证,它包含在Microsoft 365 E5许可证中。我不是许可证方面的专家,对此感兴趣的读者可以访问这里的介绍。
图4:启用Microsoft 365 E5许可证
此外,请确保启用了以下子产品:
图5:确认已启用AIP高级版P1或P2许可
选择正确的许可证后,您就可以继续下面的操作了。接下来,我们展示如何在带有Office的Windows虚拟机(VM)上安装AIP客户端,然后,以新用户身份登录到AIP。
读者可以从以下URL下载AIP客户端:
https://www.microsoft.com/en-us/download/details.aspx?id=53018
在这里,我们需要的文件是AzInfoProtection.exe。在Windows VM客户端上安装该程序。在这里,建议点击“I Agree”按钮之前,勾掉“Help to improve Azure Information Protection by sending usage statistics to Microsoft”复选框。
图6:AzInfoProtection.exe安装截图
安装完成后,右键单击Word文档即可开始安装。
图7:右键单击菜单中的Classify and protect选项
点击“Classify and protect”选项后,系统会要求您登录自己的帐户。在这里,我们需要使用先前创建的Office 365用户进行身份验证。
图8:Office 365用户身份验证
(如果您已将Office与其他用户“关联”,则必须从Word/Excel内部进行注销,或者参阅这里提供的指南。)
如果一切顺利,应该看到如下所示的窗口:
图9:AIP客户端中的“Classify and protect”窗口
您可以在该窗口中配置文档的保护措施。假设这是一个文档,其中包含要保护的宏或链接,并且只允许特定用户打开该文档。然后,我们需要勾选“Protect with custom permissions”。
勾选“Protect with custom permissions”选项后,就可以指定权限了:
图10:可供选择的权限列表
为了使用户能够执行宏,“Viewer”角色就足够了。在下面的屏幕截图中,显示了授予"Viewer"保护的权限列表:
图11:Viewer角色的权限
接下来,在“Select users, groups, or organizations”字段中填写所选目标,即可以查看此文档的用户。作为所有者,我们始终拥有查看的权利。
图12:为user1@customer.com用户授予Viewer权限
“Expire access”用以设置指定内容何时到期,即授予用户在指定时间内查看该文件的权限。您也可以在时间到期之前撤消该文档(后文将进一步详述)。
图13:为权限设置到期日期
在这里,我们允许user1@customer.com查看该文档,并且该权限是有时间限制的,到期日是2019年3月1日。逾期之后,用户就无法打开该文档了。
在本例中,我为Oddvar.Moe [at] TrustedSec [dot] com设置了类似的保护措施,因此,我可以向自己发送一封电子邮件,看看客户端的表现。首先,您需要创建如下所示的电子邮件:
图14:具有AIP保护的邮件
请注意,现在工具栏上出现了一个新的“Protect”按钮,因为这是AIP客户端。您还可以启用“Do Not Forward”功能,使得用户无法将该电子邮件转发给安全分析人员,同时,还可以阻止打印或复制其中的内容。这样可以让提交网络钓鱼变得更加困难。在本例中,我们使用了"Do Not Forward"功能。除非防护软件可以模仿用户,否则它也无法进行检查。也许有的产品已经做到了这一点,但我目前还没有发现。
启用保护设置并发送电子邮件后,接收方接收到的邮件是这个样子的:
图15:收到的受AIP保护的邮件
请注意,附件旁边有一个锁定图标,这能给用户带来安全感。电子邮件的预览指出,要想阅读该邮件内容,需要进行身份验证,以确定是否具有相应的权限。
用户无法预览邮件内容,除非通过了身份验证,证明自己就是指定的收件人。当用户打开电子邮件时,将看到:
图16:Office 365身份验证
在后台,系统会尝试让用户登录到Office 365以验证其身份;如果成功通过验证,用户就可以查看电子邮件的内容并打开附件了。当您尝试使用该功能时,您会发现前进按钮消失了,同时也无法通过右键单击或使用ctrl c组合键进行复制操作,同时,也无法进行屏幕截图。
由于无法截图,所以,我只好用手机拍了一张照片:
图17:用手机拍摄的照片
在这里,我们可以看到过期日期,并且文档的访问也是受限制的。如果用户想要保存该文档,或将其复制到USB设备,或其他用户尝试打开它的话,都是不允许的。即使用户将其上传到VirusTotal网站,也无法分析文件的内容。但是,这个规则也有一些例外,因为AIP在保护旧格式方面存在一些限制,例如.doc和.xls等格式。实验发现,如果使用.doc或.xls格式创建一个vanilla宏payload的话,AIP并不会对宏指令进行加密,而只对内容本身进行加密。
在本例中,我将文档保存到磁盘并通过新电子邮件将其发送到我的Gmail帐户,以显示其工作原理:
图18:将附件发送到我的Gmail帐户
图19:来自Gmail的错误消息,无法打开文档
这是一条错误消息,指出无法在Gmail中打开该文档(这里是挪威语)。同时,它还指出该电子邮件包含加密内容并可能包含恶意内容。
下面是本演示中的最酷的部分。如上所示,我们能跟踪这个文件的传播情况,并且人们收到该文件后,还会试图打开它,这对于网络钓鱼场景来说是非常完美的。要执行该操作,请登录portal.azurerms.com网站或为文档提供保护的虚拟机,再次右键单击该文档,然后选择“Classify and protect”选项。在这里,您可以点击顶部栏中的“Track and Revoke”按钮:
图20:如何访问Track和Revoke功能
这将打开一个Web浏览器,并自动转至Azure RMS门户:
图21:文档的详细信息
在这里,我们可以获得文档何时共享、谁试图查看文档以及谁被拒绝访问的详细信息。如果您想了解谁查看了它,可以单击绿色的“views”列或相应的列表链接:
图22:与文档交互的帐户列表
我们可以看到,Oddvar.Moe [at] TrustedSec [dot] com(预期的收件人)查看了该文档,并且Oddvar.Moe [at] TrustedSec [dot] com被拒绝访问,这意味着他得到了该文档并尝试打开它。
您还可以单击地图,并查看他们尝试打开文档时所在的位置:
图23:显示文档打开位置的世界地图
如果我们希望撤销文档,直接单击“Revoke access”按钮即可,不过,如果用户已经打开了该文档,这通常就没什么用了。如果用户打开了文档,将在此后30天内一直拥有该访问权限,除非您勾选了“Expire access”选项。如果您已将文档发送给多个用户并希望阻止其他未打开的用户,那么采取上面的措施还是非常有用的,这时,只需点击“Revoke access”按钮即可:
图24:撤销访问权限
图25:文档被成功撤销时的状态消息
另一个很酷的事情是,我们还可以进行相应的设置,以便有人试图打开该文档为我们发送通知。
图26:如何设置通知功能
防御方法
抵御基于AIP的网络钓鱼攻击是一件非常棘手的事情。最简单的方法(除非您的产品支持检测受AIP保护的文档)是,在网关级别阻止/隔离所有受AIP保护的传入电子邮件。但是,如果您的公司已经在日常工作中应用了AIP,那么这种方法就无法接受了。在这些情况下,我建议公司开展广泛的用户安全培训,尽可能地提高用户的防范意识,并在发生安全事件时采取尽可能多的检测措施。此外,考虑将允许发送受AIP保护的文档的用户列入白名单,并对其余的用户进行隔离,以便阻止攻击者发送受AIP保护的文档。如果您知道存在网络钓鱼企图,并且它是针对特定用户的,您必须能够模拟用户,或者被允许借用他们的访问权限打开附件,以审查宏代码。
在检测方面,当启用AIP时,肯定会留下蛛丝马迹。寻找这些有用线索的关键位置之一,就是文件本身。为此,我们可以首先使用7-Zip将其解压缩到文件系统。正如您看到的那样,当使用AIP时,它与普通的.docx完全不同。
图27:解压后的文档
我发现,这里可疑文件通常位于在[6]DataSpaces -> TransformInfo -> DRMEncryptedTransform下面。
图28:可疑文件
这些文件包含许多的线索,例如发件人地址,租户ID和别名。别名通常带有租户名称的电子邮件地址,而不是带有自定义域。
图29:文件中的线索
我一直在努力寻找能够检测传输中的RMS内容的安全产品,可惜还没有找到,但是这并不意味着这种产品不存在。
之前,已经有人对RMS进行了一些相关的研究,感兴趣的读者可以访问 https://web-in-security.blogspot.com/2016/07/how-to-break-microsoft-rights.html。
结束语
虽然AIP的设计初衷是更好地保护隐私和数据,但是,攻击者也可以利用这一点,这并一点也不用感到奇怪。对攻击者来说,AIP具有许多优点,例如保护攻击者使用的攻击代码、提高检测难度以及提高钓鱼邮件外观的可信度(在收件箱中会显示锁定图标)。到目前为止,我们已经在多个安全测试项目中使用了AIP,并且在使用它作为网络钓鱼攻击的一部分方面取得了巨大成功。此外,即使钓鱼邮件在传输途中被截获了,这种方法也能极大提高分析人员的工作难度。例如,为了成功地逆向通过受AIP保护的文档投递的宏代码,分析师必须能够完全模拟用户,或“借用”他们的凭据来查看附件的内容。我的结论是,这种攻击方法截获起来很“容易”,但是检测起来却非常困难,因此,我坚信,在不久的将来,随着DRM产品的普及率越来越高,这种攻击方法将日益盛行。
原文由:https://www.trustedsec.com/2019/04/next-gen-phishing-leveraging-azure-information-protection/