Micah Lee   2020年3月12日

你是否听说过计算机安全建议请勿打开附件”?这是可靠的建议,但不幸的是,对于记者,积极行动者和许多其他人来说,这是不可能的。想象一下,如果你是一名记者,并且收到声称自称为特朗普政府工作的某人的电子邮件,其中附有唐纳德·特朗普纳税申报表.pdf”。你是否真的要回答说:对不起,我没有打开附件,然后就置之不理?

实际上,作为一名记者,打开陌生人的文档是你的工作,无论你是通过一封电子邮件, 一条Signal 或WhatsApp的消息,或是SecureDrop(一个共享和接收文档的软件)都会获取文档。记者还必须打开和阅读文档,这些文档是从各种类型的网站,泄漏的或被黑客入侵的电子邮件转存下来的,或从任何其他潜在的不可信来源下载的。

Dangerzone是一种新的开源工具,第一眼媒体刚刚在印度果阿的空洞2020黑客会议上发布了该工具,旨在解决此问题。你可以在MacWindowsLinux计算机上安装Dangerzone,然后使用它来打开各种类型的文档:PDFMicrosoft OfficeLibreOffice文档或图像。即使原始文档很危险并且通常会入侵你的计算机,Dangerzone也会将其转换为可以打开和阅读的安全PDF

你可以将其视为打印文档一样,然后对其进行重新扫描以删除任何省略的东西,除非软件完成了所有操作。

使用前的准备

  • 下载MacDangerzone      0.1
  • 下载WindowsDangerzone      0.1
  • 请参阅在Wiki上为Linux系统信息库“安装Dangerzone”教程

文件如何变得危险?

PDFOffice文档非常复杂。它们可以做到在打开文档时自动从远程服务器加载图像,跟踪文档何时以及从哪个IP地址打开。它们可以包含JavaScript或宏,这些JavaScript或宏可能会在打开后自动执行代码(取决于你的软件配置方式),从而有可能接管你的计算机。最后,所有你用于打开文档的软件,包含PreviewAdobe ReaderMicrosoft WordLibreOffice等都会存在漏洞,并且有时这些漏洞可以被利用来接管你的计算机。(你可以通过经常安装更新来减少被黑客入侵的风险,这些更新可以修复软件供应商发掘的漏洞。)

例如,如果攻击者知道Microsoft Word中的安全漏洞,则他们可以精心制作一个Word文档,当使用易受攻击的Word版本打开该文档时,该文档会入侵你的计算机。他们所要做的就是诱使你打开它,或许是向你发送了足够有说服力的网络钓鱼电子邮件。

这正是俄罗斯军事情报部门在2016年美国大选期间所做的事情。首先,他们入侵了一家名为VR Systems的美国选举赞助商,并获得了客户名单。然后,他们通过电子邮件地址vrelections@gmail.comVR Systems的客户(处于摇摆状态的选举工作者)发送122封电子邮件,并带有附件New EViD User Guides.docm

来自北卡罗莱纳州公共记录请求提供给拦截第一眼媒体的出版物的钓鱼邮件的屏幕截图

如果收到此电子邮件的任何选举工作人员使用Windows中易受攻击的Word版本打开附件,则该恶意软件将为俄罗斯黑客在其计算机中创建后门。(我们不知道是否有人打开了文档,但他们有可能会打开。)

如果你今天收到这封电子邮件,并使用Dangerzone打开了New EViD User Guides.docm,它将转换为安全的PDFNew EViD User Guides-safe.pdf),并且你可以在PDF阅读器中安全地打开此文档,而无需冒险被黑。

Qubes操作系统中的“可信任PDF”启发

我从Qubes那里获得了关于Dangerzone的想法,Qubes是一种在虚拟机中运行所有程序的操作系统。在Qubes中,你可以右键单击PDF,然后选择转换为可信任PDF”。在纽约的HOPE黑客大会上,我做了一个名为“Qubes 操作系统:即使你在2018年被黑客入侵也可以保护你的操作系统”的演讲

Dangerzone受到可信任PDF的启发,但它可在非Qubes操作系统中使用,这一点很重要,因为我认识的大多数记者都使用Mac,并且一段时间内可能不会跳转到Qubes

它使用Linux容器而并非虚拟机将危险文档沙箱化。它还增加了可信任PDF所没有的一些功能:它可用于任何Office文档,而不仅仅是PDF;它使用光学字符识别(OCR)来使安全PDF具有可搜索的文本层;并压缩最终的安全PDF

Dangerzone如何工作?

Dangerzone使用Linux容器(其中有两个),有点像速度快、轻量级的虚拟机,它们与主机共享Linux内核。使容器在MacWindows上运行的最简单方法是使用Docker Desktop(一个让桌面上应用程序容器化的软件)。因此,当你首次安装Dangerzone时,如果尚未安装Docker Desktop,它将帮助你下载并安装它。

Dangerzone启动容器时,它会禁用网络连接,并且它挂载的唯一文件是可疑文档本身。因此,如果恶意文档入侵了该容器,则该容器将无权访问你的数据,并且无法使用互联网,因此它所能做的事不多。

运作方式如下。第一个容器:

  • 用原始文件装载卷
  • 使用LibreOfficeGraphicsMagick将原始文档转换为PDF
  • 使用popplerPDF拆分为单个页面,并将其转换为PNG
  • 使用GraphicsMagickPNG页转换为RGB像素数据
  • RGB像素数据存储在单独的卷中

然后该容器退出。第二个容器启动,然后:

  • RGB像素数据挂载卷
  • 如果启用了OCR,则使用GraphicsMagickRGB像素数据转换为PNG,并使用TesseractPNG转换为可搜索PDF
  • 否则使用GraphicsMagickRGB像素数据转换为平面PDF
  • 使用popplerPDF页面合并为一个多页PDF
  • 使用ghostscript压缩最终保存的PDF
  • 将安全PDF单独存储

然后该容器退出,用户可以打开新创建的安全PDF

以下是 “危险区”可以转换为安全PDF的文档类型:

  • PDF.pdf
  • Microsoft Word.docx.doc
  • Microsoft Excel.xlsx.xls
  • Microsoft PowerPoint.pptx.ppt
  • ODF文字(.odt
  • ODF电子表格(.ods
  • ODF演示(.odp
  • ODF图形(.odg
  • Jpeg.jpg.jpeg
  • GIF.gif
  • PNG.png
  • TIFF.tif.tiff

仍然有可能被“危险区”所入侵

像所有软件一样,Dangerzone(更重要的是,它所依赖的软件,例如LibreOfficeDocker)也可能存在安全漏洞。恶意文档旨在针对特定的软件,例如Mac上的Adobe Reader。有人可能会制作专门针对 Dangerzone本身的恶意文档。攻击者需要将这些攻击关联在一起,才能成功入侵危险区域:

  • LibreOfficeGraphicsMagic的利用
  • Linux内核中的漏洞逃逸容器
  • MacWindows中,针对Docker桌面的VM逃逸攻击

如果你打开带有Dangerzone的此类恶意文档,它将启动第一个容器并开始转换过程。当它使用LibreOffice将原始文档(例如docx文件)转换为PDF时,它将利用LibreOffice中的漏洞来入侵容器。然后,它将利用Linux内核中的漏洞逃逸容器,并从那里尝试接管计算机。

如果你不断更新Docker Desktop,并定期更新Dangerzone使用的容器,那么对于攻击者而言,此类攻击的代价将高得多。

Dangerzone是开源的

该工具仍处于早期开发中,因此可能存在漏洞。如果发现任何漏洞,请检查GitHub 漏洞如果这里没有相应的漏洞,可以开发此漏洞。如果你想参与其中,请开始讨论并提出请求。

你可以在以下位置找到适用于MacWindowsLinux图形应用程序的代码:

https : //github.com/firstlookmedia/dangerzone

你可以在这里找到Linux容器的代码:

https : //github.com/firstlookmedia/dangerzone-converter

Dangerzone是在MIT许可下而发布的。

声明:本文来自安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。