开展什么活动向社会发布系统漏洞
把漏洞直接甩到微博上,开展半小时后你可能会收到律师函。什活社但捂着不说,发布等黑产先动手,系统用户数据照样保不住。漏洞这中间的开展尺度,才是什活社漏洞披露活动真正的难点。 2014年,发布某国产路由器厂商被曝出后门漏洞。系统发现者没走官方渠道,漏洞直接把利用代码发到了GitHub。开展三天内,什活社全球超过30万台设备被扫描、发布入侵、系统植入恶意固件。漏洞厂商股价跌了12%,但更惨的是那些用默认密码的小网吧和出租屋房东——他们连固件更新是什么都不知道。这件事之后,国内安全圈开始认真讨论:漏洞到底该先告诉谁,用什么方式告诉。 现在常见的做法是“定向披露加限期修复”。比如补天平台上的厂商响应机制,白帽子提交漏洞后,平台给厂商72小时确认,再给30天修复窗口。超过期限未修复,漏洞才会部分公开——隐去利用细节,只披露存在问题的组件和版本号。这套流程听起来合理,实际执行时经常卡在厂商那关。有些小厂商的客服邮箱半年没人看,你发的漏洞报告直接进了垃圾箱。 更麻烦的是IoT设备。一个智能门锁的固件漏洞,影响的可能是几十万个已经安装在用户家门上的硬件。你发公告说“请升级固件”,但很多用户根本不知道自己的门锁还能联网升级。去年某品牌扫地机器人被曝出蓝牙协议漏洞,攻击者可以在10米内接管设备摄像头。厂商的修复方案是推送OTA更新,结果一个月后统计,只有37%的设备完成了升级。剩下的63%怎么办?没人给出答案。 所以漏洞披露活动不能只盯着技术圈。GeekPwn大会做过一次尝试:他们把智能保险箱、儿童手表、共享充电宝这些日常用品的漏洞,用现场演示的方式展示给媒体看。一个记者当场用笔记本电脑打开了某品牌保险箱,全程不到两分钟。第二天新闻标题全是“你家的保险箱可能不保险”。这种视觉冲击比发一百份CVE报告都管用。厂商坐不住了,一周内就发了补丁。 但公开演示也有风险。2017年GeekPwn上,某安全团队演示了如何远程控制某品牌汽车的门锁和启动系统。演示很成功,厂商也很快修复了。可三个月后,这段演示视频被剪辑成教程,在黑产论坛上流传。虽然视频里隐去了关键代码,但攻击思路已经足够让一些脚本小子去尝试了。这就像教人开锁——你本意是提醒大家换锁,但总有人学会之后去开别人家的门。 我的判断是:漏洞披露应该分三级。第一级,影响范围小、利用难度高的漏洞,直接报给厂商,不公开。第二级,影响范围大但修复方案明确的,走“有限披露”——公开漏洞类型和影响版本,但不给利用代码,给厂商留出修复时间。第三级,厂商拒不修复或者修复速度极慢的,才考虑完全公开。完全公开也不是发利用代码,而是把漏洞细节写成技术分析文章,让其他安全研究者能复现,但普通人看不懂。 国内目前缺的不是披露渠道,而是披露后的追责机制。厂商拖着不修,没有惩罚。白帽子公开漏洞,反而可能被跨省。这个结不解开,再多的漏洞披露活动都只是表面热闹。真正该做的,是让厂商知道:你不修漏洞,用户会用脚投票;你修得慢,监管会找你喝茶。至于白帽子,给他们一个安全的、不会被起诉的提交环境,比什么奖励都实在。 去年有个案例让我印象深刻。某智能摄像头厂商被白帽子曝出漏洞后,没有发律师函,而是直接在官网挂了致谢名单,还给发现者寄了一台新摄像头。那个白帽子后来在推特上说,这是他第一次觉得自己的研究被尊重。尊重这东西,比任何漏洞披露流程都管用。