从TTF文件中提取有害代码并对其进行反向工程

时间:2019-05-04 14:14:49

标签: fonts

基于这里的this问题,我了解到有一种将代码嵌入字体的方法,因为轮廓基本上是使用图灵完整语言绘制的。

问题是,您将如何识别该代码并对其进行反向工程(如果存在)。在这个问题上的资源特别稀缺。是否要采取具体步骤?

1 个答案:

答案 0 :(得分:1)

OpenType Specification提供了读取TTF所需的所有详细信息。这源自苹果公司最初的TrueType Specification(这两个文档中的许多信息都是重复的,但是有一些区别)。

但是仅读取字体数据不足以确定特定字体文件是否“有害”。如果您阅读了链接到的漏洞的技术说明,您会发现它不仅仅是“恶意代码”;还有其他一些条件可以触发它:

  • 其他字体数据表中的特殊选择的字节
  • 在特定的未修补Windows版本下执行,该版本在内核中执行字体指令
  • 以特定大小和特定顺序显示两个特定字形

这些年来,有很多基于字体的攻击,其中许多与在假定可信数据/代码的位置执行不可信代码(用户安装的字体)有关。任何人都不可能单独分析字体并确定它是否有能力利用类似的漏洞。您确实需要完全了解如何在目标环境中执行代码/处理数据。

那是说: 有可能检查字体数据的特定方面,甚至可能以“安全”的方式(沙盒/受保护的)执行TrueType指令来确定是否有不正确的地方。这种分析的结果可能是足以决定是否安装这种字体的证据。已经有一些可用的工具,例如Microsoft's Font Validator(以及正在积极开发的fork)。