漏洞分析与复现模板
tags: 漏洞分析
漏洞分析与复现模板
在开源软件安全研究方法一文中,我们提到, 漏洞复现工作需要有规范的、成体系的进行。
- 有规范的、成体系的分析、复现并存留实验环境,可以利用vagrant或docker记录、分享漏洞环境。
- 不只是复现漏洞,更重要的是复现漏洞挖掘的方法或过程(能应用于同类漏洞挖掘)
本文将具体提出一个漏洞分析与复现过程中,要做的事情的模板。与前文同样,本文仅列举需要做哪些工作,并未指出具体应怎么做。在我历史及未来关于历史漏洞分析与复现的文章中,可以看到关于本文实际应用的实例。
一、基本信息
Item | Details | Note |
---|---|---|
Project | link | |
Publish Date | 1970-01-01 | |
Introduce Date | 1970-01-01 | |
Confirm Link | link | |
CVE-ID | CVE-0000-0000 | mitre, cvedetails |
EDB-ID | EDB-00000 | |
Exploits | exp1 exp2 |
|
Affect Version | 0.0.0-9.9.9 | |
Fix Version | 0.0.0, 1.1.1 | |
Fix Commit | commit | |
Introduce Commit | commit | |
CVSS | 0.0 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L | |
Vuln’s Author | http://github.com/xxx |
二、组件简介
把组件、组件涉及的功能简单介绍下
三、漏洞作者
四、漏洞详情
1. 介绍
1.1 原始特性
1.2 漏洞介绍
2. 影响
2.1 范围
2.2 危害
2.3 利用场景
五、防御
1. 修复建议
2. 规避措施
3. 检测
六、漏洞复现
1. 复现环境
2. 漏洞复现
七、漏洞分析
1. 原始特性分析
2. 调用链分析
3. 漏洞分析
八、漏洞修复分析
1. 修复分析
2. 修复效果验证
3. 当前修复局限性
4. 该修复有无引入新漏洞
因漏洞修复的作者水平参差不齐:
- 作者可能不是核心开发者
- 作者非安全背景
漏洞修复引入新漏洞的案例屡见不鲜,应引入这一环节
九、漏洞挖掘方法与过程
1. 原作者的漏洞挖掘方法
- 如果可以推测原作者的漏洞挖掘方法的话,可以记录; 如果没有可以忽略
2. 有无可能早于作者或业界发现
例如,漏洞修复的commit早于漏洞公告等情况
十、同类问题挖掘方法
level | 挖掘方法 |
---|---|
设计层 | |
安全模型 | |
Fuzz | |
codeql |
十一、总结
十二、遗留事项
附
时间线
漏洞产生、发现、报告、修复的时间线
e.g.: cve-2019-14271的时间线
- docker v17.06.1-ce-rc2 起增加vendor/archive/tar
- docker v18.05.0-ce-rc1 起使用go1.10
- docker v18.09.0起使用osusergo
- go1.11增加名为osusergo的build tag
- docker v18.09.9起升级go至1.11,删除了vendor/archive/tar
- docker v19.03.0 收到issue报告,分配漏洞编号CVE-2019-14271
- docker v19.03.1起,在chroot前主动加载nsswitch
- docker v19.03.8起,恢复vendor/archive/tar