当前位置:首页 > 休闲

鲤鱼玩安全漏洞

```html 鲤鱼玩安全漏洞

一条鲤鱼能有什么坏心思?鲤鱼它只想吃饵。可当这条鱼被写进某款智能鱼缸的玩安固件里,事情就开始离谱了。全漏上个月,鲤鱼安全研究员老赵在测试一款售价1999元的玩安“AI养鱼管家”时,发现了一个让他愣了三秒的全漏漏洞:鱼缸的Android控制端APP里,硬编码了一个叫“liyu_admin”的鲤鱼账号,密码是玩安“liyu123456”。更绝的全漏是,这个账号拥有远程开启投食器、鲤鱼调节水温、玩安甚至访问鱼缸摄像头画面的全漏全部权限。老赵没忍住,鲤鱼用这个账号登录了另外七个陌生用户的玩安鱼缸。他看见一条罗汉鱼正在追咬温度计,全漏另一个缸里水已经浑得像泥汤,还有一家人的鱼缸摄像头正对着客厅沙发——而那条“鲤鱼”账号,正安静地躺在服务器日志里,像一条从没被人发现的死鱼。

这不是孤例。去年某品牌智能门锁被曝出“鲤鱼漏洞”,因为厂商在固件里留了一个叫“liyu_test”的后门,据说开发团队内部代号就叫“鲤鱼计划”。门锁的蓝牙通信协议里,认证字段被设计成可以跳过,攻击者只要发送一个特定格式的广播包,锁舌就弹开了。那段时间,闲鱼上甚至有人卖“鲤鱼开锁器”,五十块钱一个,像卖鱼饵一样随意。厂商后来发补丁,把“liyu_test”改成了“admin_backup”,密码还是“123456”。这操作,跟把鱼从鱼缸捞出来放进水盆,然后说“问题解决了”有什么区别?

为什么叫“鲤鱼”?我问过几个做IoT安全的朋友。有人说,因为鲤鱼好养活,随便一个水坑就能活,就像这些漏洞,随便一个脚本小子就能利用。也有人说,鲤鱼跳龙门,寓意“突破”,开发人员觉得留个后门是“方便调试”,结果跳出去就回不来了。老赵给我看了他的漏洞报告,里面有一句原话:“该漏洞利用难度极低,攻击载荷仅需一个HTTP GET请求,参数为‘?fish=liyu&debug=1’。”你看,连参数名都懒得改。

更荒诞的是修复过程。老赵按流程提交了CNVD(国家信息安全漏洞共享平台),厂商两周后回复:“该接口为内部测试用,已删除。”老赵复测,发现接口还在,只是返回从“success”变成了“false”。他再问,厂商说“已经加了IP白名单”。老赵换了个IP,照样能访问。最后厂商干脆把那个API路径改成了“/liyu_is_gone”,但功能没动。这就像你把鱼缸的盖子盖上,却忘了鱼会跳。

我自己的鱼缸也中过招。去年买的一台智能喂食器,配网时抓包发现,它连接的是厂商一个未加密的MQTT服务器,主题名是“/liyu/feed/”。我订阅了那个主题,结果收到了来自全国各地的投食指令:有早上七点喂锦鲤的,有半夜两点喂龙鱼的,还有一条指令是“feed=99999”,估计是哪位用户手滑按住了加号。我甚至能反向发布指令,让某个陌生鱼缸的喂食器疯狂旋转。那台喂食器现在被我拆了,电路板上印着一行小字:“LiYu-V2.1”。

鲤鱼玩安全漏洞,玩的是开发者的侥幸心理。他们觉得“就一个测试接口”“就一个默认密码”“就一个内网地址”,不会有人发现。可互联网上没有内网,只有还没被扫描到的端口。一条鲤鱼能跳多高?答案是:只要鱼缸没盖,它能跳到你家客厅,再跳到隔壁老王家,最后跳进整个小区的路由器里。你养的是观赏鱼,黑客养的是肉鸡。

老赵最后把那个鱼缸漏洞的细节发在了博客上,标题叫《我如何用一条鲤鱼控制了八个鱼缸》。厂商第二天就发了新固件,版本号从1.0.3跳到1.0.5,更新日志写着:“优化用户体验。”老赵说,他再也没碰过那款鱼缸。但他留了一个后门——不是给厂商的,是给自己的:他在自己鱼缸的过滤棉下面贴了一张便签,上面写着:“别信任何叫liyu的东西。”那条便签现在被水汽浸得有点皱,像一条真的鲤鱼游过留下的痕迹。

```

分享到: