作者:EazyLov3
//这次数据损失真是出乎意料,我也补发一下缓解内容断层。虽然是水文,不过评分会不会补回来?←_←
//可惜回帖补不回来了,记得当时几个坛友还分享过一些自己的经历挺值得参考的 //这帖子发于8月20号,如果需要改日期的话可以根据这个改一下。
相信很多刚开始接触安全技术的朋友都会发现, 很多影响重大的漏洞都会带有一个CVE编号(e.g:CVE-2017-8464、CVE-2017-0199), 微博和知乎上也有不少关于CVE编号的讨论,链接如下: 挖到CVE是一种什么感受? https://www.zhihu.com/question/62760180 个人挖到漏洞该如何申请CVE?https://www.zhihu.com/question/49540369 提交CVE漏洞是一种怎样的体验?https://www.zhihu.com/question/51517501 Etc.. 之前笔者也很好奇这些编号的含义和详细获得方式,但相关的文章和介绍都比较少, 同时今年defcon也有相关的议题,那么本文就抛砖引玉,整理相关信息并结合笔者本身获得CVE编号的过程探讨 0x02 什么是CVE? 起源 各个IDnA厂家在阐述自己产品的水平时,都会声称自己的扫描漏洞数最多, 你说有1000种,我说有5000。我们的用户如何辨别? 不同的厂家在入侵手法和漏洞这方面的知识库各有千秋,用户如何最大限度地获得所有安全信息? CVE就是在这样的环境下应运而生的。 简介 CVE (Common Vulnerabilities & Exposures,通用漏洞披露)。 CVE 是国际著名的安全漏洞库,也是对已知漏洞和安全缺陷的标准化名称的列表, 它是一个由企业界、政府界和学术界综合参与的国际性组织,采取一种非盈利的组织形式, 其使命是为了能更加快速而有效地鉴别、发现和修复软件产品的安全漏洞。 组织机制 CVE 的编辑部(EditorialBoard)成员包括了各种各样的有关信息安全的组织, 包括:商业安全工具厂商,学术界,研究机构,政府机构还有一些卓越的安全专家。 通过开放和合作式的讨论,编辑部决定哪些漏洞和暴露要包含进CVE,并且确定每个条目的公共名称和描述。 一个独立的非盈利组织MITRE(http://cve.mitre.org)负责召集编辑部,协调讨论, 在整个过程提供指导,保证CVE能够服务于公众的要求。编辑部会议和讨论的内容会保存在网站中。 如果需要,还会邀请其他相关信息安全专家加入到编辑部的工作中。 CVE目前已经是信息安全界内有关漏洞的一个人事实上的标准, 安全研究人员也把自己发现的漏洞能够具备CVE-ID编号为荣,而目前,CVE编号总量已接近九万个。 所有的CVE列表和下载链接: http://cve.mitre.org/data/downloads/index.html PS:简而言之,CVE就是一个互联网上广泛认可的漏洞记录数据库,CVE只是漏洞编号,不能代表漏洞质量和危害级别。——笔者注 0x03 如何获得一个CVE-ID? 官方的说法是, CNA组织对自身的产品或者研究项目持有CVE分配权限, 当然你也可以为任何漏洞请求CVE ID。 CNA机构 要获得一个CVE编号,最靠谱的方式当然从CNA厂商支持的产品挖掘安全漏洞, CNA是什么呢,CNA(CVE编号机构),获得授权将CVE编号分配给一定范围内产品的来自世界各地的组织。 CNA编号管理机构列表:https://cve.mitre.org/cve/request_id.html#cna_coverage 表中可见,诸如谷歌,苹果,微软等等互联网巨头都赫然在列,国内厂商也有奇虎360,阿里巴巴,中兴,华为,联想等等 从它们的产品中挖掘安全漏洞即可直接获得CVE-ID,笔者记得360还专门在公众号发过类似的通知。 如何成为CNA:https://cve.mitre.org/cve/cna.html 其它开源软件产品: 当然不止于以上CNA列表才能获得CVE编号,Mitre官方也明确说了,你也可以尝试为任何漏洞申请一个CVE。 参见:Distributed Weakness Filing Project 实际上,很多开源软件产品都可以申请CVE-ID,Web应用比如WordPress,Drupal,Joomla等等受众较多的cms或者组件都是可以申请的, 甚至国内的dedecms漏洞也有CVE编号(e.g:CVE-2010-1097、CVE-2015-4553,etc.), 另外CVE跟进比较完善的的还有finecms,metinfo等等,可能由于需要一定英文文档沟通, 流程比较繁琐暂时没有跟进,其实国内很多cms也是完全可以申请CVE的,比如Discuz!等等。 关于这个,笔者知道的也不多,欢迎各位朋友跟帖补充指正。 当然也不止于Web应用,小到Web框架,中间件,各编程语言本身的模块,甚至是wp插件, 大到浏览器,路由器,智能硬件和操作系统,只要是有一定受众的软件产品或者相关硬件,理论上都是可以申请CVE的。 0x04 更详细的申请流程 一般而言,只要挖掘到相应安全漏洞后通过合适渠道向官方通报并给出必要证明过程后, 厂商就会为你分配或者申请一个CVE-ID,但实际情况似乎要复杂一些, 这里笔者分享一下前段时间自己申请获得一个CVE的过程,也欢迎各位分享自己获得的过程和体验。 首先感谢微博上的 @我叫0day谁找我_ 师傅和LCatro师傅开源的Fuzzer程序,笔者从中也获益匪浅。 原po链接: https://weibo.com/k0pwn?topnav=1&wvr=6&topsug=1&is_search=1&key_word=CVE&is_all=1#1503140361169 GitHub项目地址:https://github.com/lcatro/Fuzzing-ImageMagick . 可以说笔者通过这个项目白捡了一个CVE,同时看一下源码,让笔者这个初学者大开眼界, fuzz的方法相当精髓,简而言之,通过相应的规律, random一段数据生成测试用例作为程序输入结合调试器大量测试找到ImageMagick中的崩溃和溢出等等, 同样的套路完全可以应用到其它软件产品中。 具体的方法GitHub文档已经写得很详细了,这里也就不再赘述。 发现一个内存泄漏漏洞的触发点和PoC并确认后,笔者参照po主的做法, 在ImageMagick的官方GitHub发起了一个Issue,给出崩溃报告和POC, 官方人员响应很快,大约两小时后确认了漏洞就建议我申请一个CVE,并在当天修复。 详见:https://github.com/ImageMagick/ImageMagick/issues/643 笔者通过Mitre官方申请渠道http://cveform.mitre.org/简要提交相关说明,
这就是楼主申请CVE的过程,总感觉还是有点模糊, 希望其它朋友也分享自己的经历和见闻,为国内软件产品漏洞报送规范化做一些努力。 0x05 the end 以上是楼主整理到的信息和自己的理解,如有不当或不足之处,敬请指出。 楼主听说过有些企业申办某些资质的时候需要一定量的CVE作为支撑, 但并不清楚更具体的情况,哪位知道的朋友希望来解答一下。 另外,通过笔者和其它类似例子,各位应该也可以了解到CVE本身并不能证明什么, 也只是一个规范化的产物,一切还得看具体的内容。 也援引tk教主的话:喜悦主要来漏洞本身,以及探索和挑战的过程。CVE不CVE并不会改变太多。共勉。 参考资料: https://baike.baidu.com/item/CVE https://cve.mitre.org/cve/cna.html 自评TCV:rand(0,1) |