CNVD漏洞审核实战指南:从提交到收录的避坑要点
1. CNVD漏洞提交前的准备工作
第一次向CNVD提交漏洞时,我踩过不少坑。记得有次花了两周时间挖到一个CMS的SQL注入漏洞,兴冲冲提交后却被退回,理由竟然是"缺少互联网实例证明"。后来才知道,不同类型的漏洞需要准备的材料差异很大。
完整性检查清单是避免被退回的关键。根据CNVD最新审核标准,通用型漏洞必须提供至少三个互联网实例证明。比如发现某OA系统的文件上传漏洞,就需要在不同单位的网站上验证这个漏洞确实存在。我常用的方法是:
- 使用搜索引擎的site语法定位使用该系统的网站
- 通过特征文件(如robots.txt、favicon.ico)确认系统版本
- 在至少三个不同网站上复现漏洞并截图
对于工控系统或物联网设备这类无法获取互联网实例的情况,审核标准会适当放宽。但必须提供本地验证环境下的完整复现过程,最好能录制演示视频。上周我刚通过一个PLC漏洞,就是靠视频里清晰的协议数据包捕获和设备异常状态展示通过的审核。
2. 原创性证明的三大技巧
去年有个典型案例:某研究员把已在其他平台披露的漏洞重复提交到CNVD,不仅被驳回还被标记了不良记录。CNVD的查重系统会扫描WooYun历史库、补天平台甚至GitHub上的POC代码。
要证明原创性,我总结出三个实用方法:
- 时间戳证据:用带时间戳的漏洞验证视频,比单纯截图更有说服力。推荐使用ScreenPresso这类能显示系统时间的录屏工具
- 漏洞细节保留:故意在POC中保留关键参数的处理逻辑,但隐去具体payload。这样既能证明漏洞真实性,又能防止被他人冒用
- 厂商沟通记录:如果是先报告给厂商的漏洞,要保存邮件往来记录。有次我提交某防火墙漏洞时,附上了厂商安全团队的感谢信,审核速度比平常快了一倍
特别提醒:已经分配CVE编号的漏洞,CNVD会重点核查提交者与CVE申请者的一致性。最好在CVE详情页面注明"同时报告给CNVD"的字样。
3. 高危漏洞的认定标准
上个月我提交的某政府系统SSRF漏洞被驳回了,审核意见写着"不符合部委级系统标准"。后来研究规范才发现,CNVD对漏洞类型的收录有着非常细致的分级标准。
必须收录的类型包括:
- 能实现权限跨越的存储型XSS(如用户→管理员)
- 可获取数据库实例名的SQL注入(ACCESS数据库除外)
- 无需登录的文件上传漏洞
- 导致数据泄露的目录遍历(需证明包含敏感信息)
容易被驳回的类型则需要特别注意:
- 反射型XSS:除非能突破同源策略
- 邮件伪造:除非结合其他漏洞形成攻击链
- URL跳转:仅部委级系统会考虑
- 扫描器报告:必须有手动验证过程
有个取巧的方法:对于边缘性漏洞,可以尝试组合提交。比如把SSRF和文件读取组合成"通过SSRF实现配置文件泄露",通过率会明显提升。
4. 材料编排的黄金公式
通过37次成功提交经验,我总结出一套漏洞报告模板:
摘要部分(50字内)
- 漏洞类型:SQL注入/文件上传等
- 影响范围:具体产品及版本
- 危害等级:按CVSS 3.0标准自评
验证环境
# 必写项 操作系统:Windows Server 2016 中间件:Apache 2.4.39 数据库:MySQL 5.7.28复现步骤(关键!)
- 用有序列表写明每个操作
- 每个步骤配对应截图(需包含浏览器地址栏)
- 涉及数据包的要提供Burp Suite截屏
影响证明
- 数据库注入要显示version()/user()
- 文件上传需演示webshell执行
- 信息泄露要展示敏感文件内容
最近帮朋友审核报告时发现,加上对比分析能显著提高质量。比如说明该漏洞与CNVD-2023-12345的区别,或是演示在相同环境下其他防护措施失效的情况。
5. 工控漏洞的特殊要求
工业控制系统的漏洞审核是最严格的,去年我提交的西门子PLC漏洞就因材料不全被退回了三次。后来向审核老师请教后才明白要点:
二进制漏洞必须包含:
- 触发崩溃的样本文件
- 调试器截图(显示EIP/RIP寄存器值)
- 协议数据包的十六进制dump
建议补充材料:
- 设备指示灯状态对比图(正常vs异常)
- 工业协议分析工具(如Wireshark)的过滤规则
- 设备型号与固件版本的清晰特写
有个细节很容易忽略:工控设备往往需要连续运行验证。有次我提交的漏洞因为没证明设备在24小时运行后仍可复现而被要求补材料。现在我会用树莓派+摄像头做持续监控录像。
6. 移动APP漏洞取证要点
审计某银行APP时,发现其存在证书校验缺陷。但第一次提交时因为取证方式不当被退回。移动端漏洞需要特别注意:
安卓APP必须提供:
- 反编译后的关键代码片段
// 示例:缺少证书校验的代码 public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); // 错误做法 } - 抓包数据证明明文传输(建议用Fiddler)
- APP签名的SHA1指纹(防止版本混淆)
iOS APP额外要求:
- 越狱设备需说明测试环境
- 动态调试要展示LLDB/Xcode输出
- 关键操作需录制屏幕操作(iOS自带录屏即可)
最近发现审核对隐私数据泄露特别关注。上周通过的某健康APP漏洞,就是因为展示了能获取其他用户体检报告的过程视频。记得在视频里重点标注请求参数和返回数据中的敏感字段。
7. 快速通过审核的秘诀
经过两年与CNVD审核的"斗智斗勇",我发现了这些提速技巧:
- 错峰提交:工作日上午10点前提交的报告,平均处理时间比下午快30%
- 标题优化:采用"产品名+版本号+漏洞类型"结构,如"Apache Struts 2.3.37 远程代码执行漏洞"
- 压缩包规范:
- 用"CNVD-日期-姓名缩写"命名zip文件
- 确保解压后不超过三级目录
- 图片统一用PNG格式
有次我同时在报告里附上了漏洞修复建议,不仅提前两天通过审核,还额外获得了"优秀漏洞报告"的标注。现在我会参考厂商安全公告的写法,给出具体的补丁链接或配置修改方案。
最后提醒:CNVD每月25日左右的审核会变严格,因为要赶月底统计。重大漏洞尽量避开这个时间段提交,否则可能因小问题被退回耽误收录时机。
