我怎么知道字体是否是恶意的?

信息安全 恶意软件 已知漏洞 静态分析 字体
2021-08-28 21:01:42

有些字体被用于利用漏洞(例如:ThreatPostSecureListF-Secure)。我的问题是,如果你曾经接触过这样的字体,你怎么知道它是恶意的?

1个回答

您可以通过以下方法知道字体是否危险

  • 在虚拟机中安装系统。
  • 关闭它。
  • 从“外部”(即另一个操作系统)访问 VM 的虚拟磁盘,并计算每个文件的哈希值。
  • 重新启动虚拟机。在 VM 中,打开字体。然后再次关闭虚拟机。
  • 从外部,重新计算每个文件的哈希值。
  • 比较两个哈希列表以查看发生了什么变化。

如果一些非字体相关的文件被修改了,那么字体肯定是有问题的。

恶意字体是另一回事。恶意意味着意图。文件没有头脑,因此没有意图。“恶意字体”是一种经过精心设计的字体文件,它会在软件中触发读取字体文件的错误,从而导致错误的后果最终对制作字体的人有利以这种方式归档,对机器所有者不利。如果字体文件制作者意识到这个错误并故意这样做,这是“恶意的”;否则,它“只是一个错误”。


无论如何,检测字体文件是否“恶意”并不比检测可执行文件是否“恶意”容易。这意味着它不能通用地完成。相反,我们依赖于文件来源:我们对来自未知来源的文件保持警惕。

由于字体“只是数据”,因此只有在使用某些代码中存在可利用错误的软件打开时才会产生不利影响。制作一种“恶意字体”将非常困难,例如,它可以在 Windows 系统上安装病毒,但在 Linux 系统上“正确”(作为字体)工作(反之亦然)。由于 Linux 桌面系统比 Windows 桌面系统少得多,首先用 Linux 打开字体文件,只有当字体文件在 Linux 上看起来不错时才切换到 Windows,应该是“安全的”(至少比相反的更安全)。