- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
恶意文件分析系统中的数字签名验证.PDF
前沿技术
恶意文件分析系统中的数字签名验证
安全研究部 李志昕
关键词:恶意文件分析数字签名Openssl
摘要:本文主要介绍了Linux 环境下的PE 文件数字签名验证的相关技术,着重介绍
了从PE 文件中解析数字签名,并应用Openssl 库进行证书信任链的验证。最后,对恶意
文件分析系统中对数字签名的信任策略问题,提出一些讨论和思考。
一. 前言 字签名的概念和技术,为了保证文章的完整可读,也将作以简要的
介绍。
本文是基于一个真实项目中所涉及到的数字签名验证问题的相
关实践所进行的总结,并不希望详细介绍数字签名技术的方方面面, 二. PE 文件数字签名格式
而是仅就项目中遇到的问题和解决问题的思路方法进行介绍。 这里假定读者已经具备数字签名的基本理论知识,如果不了解
本文主要介绍的内容有:在Linux 环境下如何验证PE 文件的 可以先阅读一下What is a Digital Signature[1] 这篇文章,其中用比
数字签名,如何从Windows 系统中导出信任证书并在Linux 应用, 较形象的手法解释了相关概念。
以及数字签名验证通过情况下的文件信任策略。这当中所涉及到的数 接下来,首先看一下我们遇到的问题。我们的恶意文件分析系
61
前沿技术
统(以下简称分析系统)接收到用户提交的样本文件后,在进行动态
分析之前会先做一些静态分析。而在对PE 文件的静态分析中,如
果PE 文件有数字签名,则要对签名进行验证。若数字签名验证通
过,则不再对其进行后续分析。这样做主要考虑的是降低误报,以
及减少服务器资源消耗。但是由于分析系统是运行在Linux 平台上,
所以无法直接利用Windows 系统的工具来完成验证。当然,另外提
供一个基于Windows 的验证服务器也是一个很好的思路,那么在
我们的项目中,采用的是在Linux 环境下直接提取PE 文件的数字签
名并验证的方法。要做到这一点,就必须先了解PE 文件数字签名的
格式。
图2.1 引自于微软的官方文档[2],该图比较清晰地展现了PE
文件数字证书的结构,下面作以简要的描述:
(1)PE 文件头部的可选头部中,数据目录(Data Directories)的
第五项,为安全目录(Security Directory),指定了证书表项(Certificate
Table)在PE 文件中的位置和大小。
(2) 证书表项,每项包含一个8 字节的头部以及符合PKCS#7[3]
定义的签名数据。
头部定义如下:
1 ~4 5 ~6 7 ~8
图2.1 Windows PE 文件格式和可信代码签名格式
表项长度 证书版本 证书类型
•表项长度:头部和签名数据的总长度 (3) 签名数据中主要包含了PE 文件的Hash 值,使用软件发布
•证书版本:常见为0x0200 (W IN_CERT_ REV ISION_ 2) 者私钥创建的签名,以及X .509 v3 格式的证书。PE 文件Hash 的
•证书类型:常见为0x0002 (W IN_CERT_TY PE_ PKCS_ 计算不包含图2.1 中灰色背景的部分,目的是避免绑定证书文件影响
SIGNED_ DATA) 到Hash 值。
62
前沿技术
三. 应用Openssl 验证数字签名 这个函数就是验证签名的关键函数了,下面详细介绍一下相关参数:
从PE 文件中提取得
文档评论(0)