把漏洞捂在手里,开展等厂商自己发现,活动这事我干过。向社2019年某CMS的布系SQL注入,我提交后等了47天,统漏补丁没来,开展先等来了数据泄露的活动新闻。从那以后我换了做法:给厂商72小时,向社不回应就直接公开。布系
这不是统漏逞能。安全圈有个默认规则叫"负责任披露",开展但很多人把它理解成"无限期等待"。活动厂商拖得起,向社用户拖不起。布系一个未修复的统漏漏洞挂在服务器上,每天都是敞口状态,攻击者不会因为你还在跟厂商发邮件就停下来。
我通常会写一份简短的公告,贴在自己的博客和几个安全社区。内容就三块:漏洞类型、影响范围、临时缓解措施。不写利用代码,不写具体payload。有人觉得既然公开了就该全放出来,我不认同。公开的目的是让运维人员知道该打补丁了,不是给脚本小子发玩具。
去年一个中小企业用的OA系统,我发现了任意文件上传。厂商客服转了三圈技术,最后告诉我"排期在Q3"。当时是4月。我把公告发出去,附带了一段nginx的临时拦截规则。三天后厂商联系我,说补丁提前了。你看,倒计时比催促管用。
我统计过自己经手的二十多个案例。大厂基本48小时内响应,有SRC的走流程,没SRC的也会派安全团队对接。真正麻烦的是中小厂商,尤其是那些卖硬件设备的。有个做智能网关的,我发了三封邮件,回了一封"已转技术",然后就没声了。公开之后他们倒是急了,但公告已经挂在网上,搜索引擎都收录了。
这种厂商的问题不在技术,在态度。他们不觉得安全是产品的一部分,觉得是额外的麻烦。你跟他讲漏洞,他跟你讲商务。这种时候公开就是唯一的杠杆。
公开漏洞有个副作用:你会收到各种私信。有感谢的,有骂你炒作的,还有让你帮忙打别人站的。我一般不看私信,但会关注漏洞有没有被在野利用。如果公开后一周内出现大规模扫描,说明这个漏洞比我想的严重,我会补一篇分析,把缓解措施写得更细。
还有一点,公开前得确认自己没搞错。误报公开出去,厂商名誉受损,你的信誉也完了。我现在的流程是:发现、复现、写POC、换环境再复现、确认版本范围、联系厂商、等72小时、公开。少一步都不行。
有人坚持永不公开,有人发现就发。我的立场在中间:给厂商机会,但给机会不等于给无限时间。72小时是我的底线,紧急漏洞会缩短到24小时。厂商配合,我就等补丁;厂商装死,我就发公告。简单直接。
安全研究的价值不在于你发现了什么,在于你让什么被修复了。漏洞详情躺在你的笔记里,那只是一行字。发出去,它才变成补丁、变成规则、变成运维人员半夜爬起来改配置的理由。
公开不是终点,是让厂商和用户都动起来的起点。