研究人员在PDF规范中发现了2个安全漏洞,攻击者利用该漏洞可以修改PDF文件的内容而不被PDF软件和用户发现,漏洞影响超过24款PDF软件。
PDF规范中定义了2种类型的数字签名:批准签名(Approval signature)和认证签名(Certification Signatures)。批准签名是证实特定的文档状态。规范中允许对同一文档使用多个签名。对签名过的文档的其他变化都会引发批准签名的无效和告警。认证签名是一种处理数字签名的文档的灵活机制。在文档认证过程中,文档所有者会定义一个允许修改的列表,这些允许修改的操作不会引发文档认证签名的无效。允许的操作包括写入特定表单、加入批注签名等。因为认证签名会对整个文档设置权限,PDF文档中只允许认证的签名。认证签名必须是PDF中的第一个签名。
研究人员分析认证过的文档的修改时发现了PDF规范中的2个漏洞,分别是 Evil Annotation Attack(EAA,恶意注释攻击)和 Sneaky Signature Attack(秘密签名攻击)。
添加注释来修改文件内容
攻击者利用这2个漏洞可以通过在经过认证的内容之上展示恶意内容来修改PDF文档的可见内容。攻击过程中,认证仍然是有效的,PDF阅读器也不会展示任何告警消息。
研究人员对26个PDF应用进行了测试,发现其中24个PDF应用受到该攻击的影响。随后,研究人员分析了PDF规范中定义的添加批注和签名的权限实现,发现11个应用存在权限匹配错误的问题。
相关研究人员已经被安全顶会IEEE S&P'21录用,论文下载参见:
https://PDF-insecurity.org/download/PDF-certification/paper.PDF
更多关于PDF认证攻击的技术细节参见:https://PDF-insecurity.org/signature/certification.html
本文翻译自:https://PDF-insecurity.org/