当前位置:首页 > 探索

源码有后门

源码有后门。源码有后这不是源码有后阴谋论,是源码有后我上周亲眼撞见的事。

朋友公司做智能门锁,源码有后卖得不错。源码有后有天凌晨,源码有后服务器报警,源码有后说有一批锁在没人操作的源码有后情况下自动开合。查日志,源码有后发现这些锁的源码有后固件里藏着一个调试接口,出厂时没关。源码有后黑客通过这个接口下发指令,源码有后把人家卧室门当电梯门玩。源码有后

写这段代码的源码有后人早离职了。代码注释写着“临时测试用,源码有后上线前记得删”。没人删。测试环境直接打了包,烧进芯片,进了千家万户。

这种事太常见了。我见过某款路由器,固件里留着厂商的远程维护账号,密码是admin123。见过某个停车场系统,数据库连接字符串硬编码在二进制里,里面带着云服务器的root密码。还见过某款儿童手表,定位功能后门大开,任何知道IMEI号的人都能查到孩子位置。

这些后门不是故意留的,但效果跟故意留的一模一样。

问题出在哪?出在“能用就行”的思维。开发周期压得紧,测试环境跟生产环境不分,代码审查走过场。最要命的是,很多小团队压根没有代码审查这回事——写完能编译通过就算完。

我认识一个嵌入式工程师,他说他们公司产品上线前的安全检查就是把杀毒软件跑一遍。我说那玩意儿对固件没用。他愣住,说那还能咋查。没人教过他什么是STRIDE威胁建模,什么是攻击面分析。

这不是技术问题,是行业病。

硬件产品的生命周期还特别长。路由器能用五年,门锁能用十年,工业设备能用二十年。写代码的人早跳槽了,但后门会一直活着。而且越老的代码越没人敢动——万一改坏了呢?于是后门就像老房子里的老鼠,你不敢拆墙,它就越住越安稳。

更讽刺的是,很多后门其实是“安全功能”。远程调试是为了帮客户解决问题,自动更新是为了打补丁,数据上报是为了分析故障。但任何安全功能,只要设计时没考虑对抗恶意使用,就等同于给攻击者留了后门。

前阵子有个新闻,某品牌智能灯泡被黑客植入恶意固件,变成僵尸网络的一部分,用来攻击某个国家的网络基础设施。那批灯泡的固件更新机制没做签名验证,黑客直接伪造了更新包推送过去。厂商说这是“供应链攻击”,但说白了,就是后门没关严。

我写这些不是想吓唬你。但下次买智能设备时,你可以多问一句:这产品的固件有自动更新吗?更新包签名了吗?远程维护功能怎么关闭?多半没人能给你完整答案。

源码里的后门,就像房间里的暗门。你不知道它存在,不代表它不存在。而最可怕的是,有时候连造房子的人自己都忘了还有这么一扇门。

分享到: