作为一名调查记者,我每天都会收到数十条消息,其中许多包含 PDF 文件。但我担心盲目打开它们并让我的计算机受到损害的一些潜在恶意后果。过去,在我开始从事调查性新闻工作之前,我virustotal.com
习惯于分析进入我的收件箱的所有文件(包括 PDF),但在这种情况下这是不可能的,因为文件会在本来应该发送给他们的时候发送给他们发布前保密。而且我听说防病毒解决方案并非 100% 万无一失。
处理大量传入 PDF 文件的最安全方法是什么,其中一些可能是恶意的?
作为一名调查记者,我每天都会收到数十条消息,其中许多包含 PDF 文件。但我担心盲目打开它们并让我的计算机受到损害的一些潜在恶意后果。过去,在我开始从事调查性新闻工作之前,我virustotal.com
习惯于分析进入我的收件箱的所有文件(包括 PDF),但在这种情况下这是不可能的,因为文件会在本来应该发送给他们的时候发送给他们发布前保密。而且我听说防病毒解决方案并非 100% 万无一失。
处理大量传入 PDF 文件的最安全方法是什么,其中一些可能是恶意的?
我认为对您来说最安全的选择是使用Qubes OS及其内置的DisposableVM功能,以及它的“转换为受信任的 PDF ”工具。
Qubes 是一个完全基于虚拟机的操作系统。你可以把它想象成你的内部有不同的独立“计算机”。这样,您就可以将您的数字生活划分为不同的域,这样您就可以拥有一台只做与工作相关的工作的“计算机”,另一台离线的“计算机”,用于存储密码数据库和 PGP 密钥,以及另一台专门用于不受信任的浏览的“计算机”......可能性是无数的,唯一的限制是您的 RAM 以及基本上可以一次加载多少不同的“计算机”。为了确保所有这些“计算机”彼此正确隔离,并且它们不会中断到您的主机(对于域 0 称为“ dom0 ”)并因此控制您的所有机器,Qubes 使用Xen 虚拟机管理程序,[1]这是许多主要托管服务提供商用来将网站和服务相互隔离的软件,例如 Amazon EC2、IBM、Linode... 另一个很酷的事情是,您的每个“电脑”有一种特殊的颜色,反映在窗口的边框上。因此,您可以为不受信任的“计算机”选择红色,为您的工作“计算机”选择蓝色(参见下图示例)。因此,在实践中,很容易看到你在哪个领域工作。因此,现在假设一些讨厌的恶意软件进入了您不受信任的虚拟机,那么它无法破坏和感染可能包含敏感信息的其他虚拟机,除非它具有可以利用 Xen 中的漏洞侵入dom0的漏洞 (这是非常罕见的),这大大提高了安全标准(在控制一切之前,只需将恶意软件部署到您的机器上),它将保护您免受大多数攻击者的侵害,除了资源最丰富和最复杂的攻击者。
另一个答案提到您可以使用刻录机笔记本电脑。一次性虚拟机是一样的,只是你不受物理限制:你有无限多的一次性虚拟机随心所欲。创建一个只需单击一下,完成后虚拟机将被销毁。很酷吧?Qubes 带有一个 Thunderbird 扩展程序,可让您在 DisposableVMs 中打开文件附件,这对您的需求非常有用。[2]
(学分:Micah Lee)
假设您找到了一个有趣的文档,假设您有一个专门用于存储和打开文档的离线虚拟机。当然,您可以直接将该文档发送到该虚拟机,但该文档仍有可能是恶意的,并且可能会尝试删除您的所有文件(这种行为在短期内是不会注意到的)一次性虚拟机)。但您也可以将其转换为所谓的“受信任的 PDF”。您将文件发送到不同的虚拟机,然后打开文件管理器,导航到文件目录,右键单击并选择“转换为受信任的 PDF”,然后将文件发送回您收集文档的虚拟机. 但它究竟做了什么?“转换为受信任的 PDF”工具会创建一个新的 DisposableVM,将文件放在那里,然后通过解析器(在 DisposableVM 中运行)对其进行转换,该解析器基本上获取每个像素的 RGB 值并留下任何其他内容。这有点像在一个孤立的环境中打开 PDF,然后如果你愿意的话“截屏”。如果我记得当我将 10Mb PDF 测试为 400Mb PDF 时,文件显然变得更大了。您可以在此获得更多详细信息安全研究员和Qubes OS 创建者 Joanna Rutkowska 的博文。
[1]:Qubes OS 团队正在努力使支持其他虚拟机管理程序(如 KVM)成为可能,这样您不仅可以选择不同的系统在您的虚拟机上运行,还可以选择运行这些虚拟机的虚拟机管理程序。
[2] : 您还需要另外配置一个选项,使单击“在 DispVM 中打开”后生成的 DisposableVM 将处于脱机状态,这样他们就无法获取您的 IP 地址。要做到这一点:“默认情况下,如果 DisposableVM(由Open in DispVM
或Run in DispVM
)从未连接到 Tor 网关的 VM 中创建,新的 DisposableVM 可能会通过 clearnet 路由其流量。这是因为 DisposableVM 从调用中继承其 NetVM VM(或调用 VM 的dispvm_netvm
设置,如果不同)。dispvm_netvm
可以通过以下方式为每个 VM 配置该设置:dom0 → Qubes VM Manager → VM Settings → Advanced → NetVM for DispVM
。”您需要将其设置为none
,使其不连接到任何网络虚拟机并且不会有任何互联网访问权限。
[3]:编辑:这个答案提到了子图操作系统,希望在为 Qubes 创建子图模板虚拟机时您可以将它与 Qubes 一起使用,从而使漏洞利用更加困难,并且由于集成的沙箱,它需要另一个沙箱逃逸漏洞以及 Xen 漏洞来破坏您的整个机器。
最安全的可能是燃烧器设备。拿一台便宜的笔记本电脑和一个移动互联网加密狗,用它下载文档,然后手动将任何内容复制到您的主计算机(如果您特别担心,从字面上重新输入是最安全的)。由于它不在您的网络上,因此即使它被感染也不会引起问题,并且如果您有任何特别邪恶的恶意软件发送给您,您可以擦除它或将其装箱。
如果您需要文件中的实际内容(例如嵌入的图像),一种选择是在您的刻录机设备上安装 PDF 打印驱动程序,并使用它打印传入的 PDF 文件 - 这将生成 PDF 输出,但理论上,只是视觉组件。打印机往往不需要脚本元素,因此可以安全地丢弃它们。请记住,某些 PDF 打印机驱动程序会在您提供 PDF 时发现,并且只需在未修改的情况下通过它 - 在依赖它之前进行测试!获得干净的 PDF 后,将其通过电子邮件发送给自己,并在打开之前检查主机上的病毒扫描程序。请注意,这并不能完全消除恶意软件通过的可能性,但应尽量减少机会。
所以,我试图在“合理的土地”中坚持这些担忧。每个安全问题都有安全与安全的平衡。例如,您可以购买一台笔记本电脑,阅读从您的电子邮件提供商的网络邮件端加载的 PDF,在“主计算机”上重新键入您需要的任何内容,然后用新的笔记本电脑重新开始销毁笔记本电脑。那将是非常安全的。也很昂贵,而且是巨大的痛苦。
所以回到“合理”的方法。
首先,使用 Linux 和最新的 PDF 阅读器。通过这样做,你真的减少了你的曝光率。为 Linux 编写的病毒不如为 Windows 编写的病毒多。仅此一项就可以保护您很多。在 Linux 上运行的病毒实施起来更加复杂。再次减少你的曝光。
接下来使用支持快照的虚拟机。这个想法是您在虚拟机主机(如 VirtualBox)中设置您的 Linux 操作系统,然后进行所有设置,“快照”状态。
然后,您可以在虚拟机中完成所有“有风险”的工作。使用隔离选项,我不知道有任何病毒可以“逃脱”虚拟机并到达主机(并不意味着它们不存在,只是意味着它更罕见,对攻击者来说更复杂)。
在一天结束时,或一天中您认为自己感染了病毒的任何时间,您将机器“恢复”到之前的快照。快照后“发生”的所有更改和数据都被撤消,包括任何工作、病毒等。
白天,只要您的虚拟机独立存在,您就可以打开 PDF、使用 ClamAV(或类似软件)扫描、复制和粘贴您需要的内容或您需要对 PDF 文件执行的任何操作。这意味着您不授予虚拟机访问主机的权限。您使用电子邮件之类的东西来传输文件。也许是主机和虚拟机之间的 FTP。一些东西,但不是直接集成。也不是保管箱。如果您要传输文件,那么您只需要在确定文件安全后才传输该文件。如果您使用的是 Linux 主机和 Linux 来宾,那么 scp 是一个不错的选择。
这为您提供了一个“非常安全”的一次性环境,可以检查您有问题的 PDF,并能够“撤消”可能发生的损坏,而无需对您的工作流程做出太大的改变。
虚拟机主机和来宾几乎可以是任何操作系统,包括 Windows。请记住,如果您有一个 Linux 客户机和一个 Windows 主机,Linux 虚拟机甚至可能不会感染 PDF 中的病毒,而 Windows 机器可能会感染该病毒。无论使用何种操作系统组合,使用防病毒扫描程序进行扫描都很重要。
使用 CubeOS 和一次性虚拟机是一个很好的方法。
其他一些选项(可以与 CubeOS/DisVM 结合使用):
您可以为此使用ghostscript:
gs -dNOPAUSE -dBATCH -sDEVICE=tiffg4 \
-dDownsampleMonoImages=false \
-dDownsampleGrayImages=false \
-dDownsampleColorImages=false \
-r200 \
-sOutputFile="$OUTFILE" -c .setpdfwrite -f "$FILE"
tiff2pdf -o "${OUTFILE%.*}.pdf" "$OUTFILE"
这对命令会将您的 PDF 呈现为图像,然后将此图像嵌入 PDF。
比利时信息安全研究员 Didier Stevens 编写了出色的工具来检测恶意 PDF 文件。找一个叫pdfid.py
此工具分析 PDF 的内容以检测潜在的恶意内容。
基本上,包含 JavaScript 或自动打开 URL 的 PDF 应该被认为是可疑的。
无论您选择哪个选项,您的工具都可能成为威胁代理的目标。经常修补它们并在一次性/隔离环境中运行它们。