企业内网扫二维码风险

去年秋天,企业一家做智能硬件的内网公司出了事。行政在每层茶水间贴了张A4纸,码风印着二维码,企业说是内网“扫码领中秋福利”。三天后,码风财务发现对公账户少了八十多万。企业警察来了一查,内网那个二维码指向的码风是一个钓鱼网站,后台记录了两百多个员工的企业工号、邮箱密码,内网甚至有人连VPN的码风账号都填了进去。攻击者用这些信息登录了内网测试服务器,企业再横向跳到财务系统。内网整个过程没用到任何漏洞利用工具,码风就是一张打印纸。

这事听起来离谱,但逻辑特别简单:企业内网的安全边界,往往不是被攻破的,是被“自己人”主动打开的。二维码就是个搬运工,把外部链接塞进你手机里,而手机连着内网WiFi。很多公司给员工手机装了MDM(移动设备管理),但员工扫个码,MDM管不了浏览器里输入了什么。

我见过更糙的。某园区食堂桌上贴了“扫码点餐免排队”,扫进去是个仿冒的美团页面,要求输入手机号和验证码。验证码发过来,其实是企业邮箱的登录验证码。攻击者拿到后直接登录邮箱,翻出通讯录里的全员邮件,再发一封“IT部要求重置密码”的钓鱼信。三天内,三百多人的账号全沦陷。IT部后来复盘,发现那个二维码是外包保洁贴的,保洁自己都不知道这码有问题,有人给她五十块钱让她贴的。

二维码本身没毒,毒的是它背后的URL。你扫之前看不见链接,扫之后浏览器直接打开。很多企业内网应用是http的,不是https,登录凭证明文传输。攻击者在内网里架个代理,就能截获。更别说有些二维码用的是短链接,跳转三次才到目的地,中间任何一跳都能被劫持。

还有个细节:员工扫码时,手机往往连着内网WiFi。如果这个WiFi没有做客户端隔离,攻击者连上同一个WiFi,就能用ARP欺骗把扫码请求重定向到自己的服务器。整个过程员工毫无感知,页面看起来一模一样,只是多了一个“请重新输入密码”的弹窗。

我观察到一个规律:企业内网越封闭,员工对二维码越不设防。因为大家潜意识里觉得“内网的东西肯定安全”。但二维码是物理世界和数字世界的接口,它不认内网外网。你贴在内网墙上,扫出来照样可以是个公网地址。攻击者不需要突破防火墙,他只需要让你自己把数据送出去。

怎么防?说几个实在的。第一,别用扫码当登录方式,尤其是内网系统。真要扫码,必须走企业自己的SSO,扫完在手机上确认,而不是在浏览器里填密码。第二,内网WiFi必须开客户端隔离,别让员工手机之间能互相访问。第三,所有内网应用强制https,证书内网CA签发,浏览器不信任就报错。第四,也是最关键的——别在物理空间乱贴二维码。要贴,就贴带签名的动态码,每次刷新,后台能审计谁扫了、扫了几次、跳转到哪。静态码贴出去,等于把钥匙插在门上。

那家智能硬件公司后来改了规矩:所有二维码必须走内部短链系统,生成时绑定员工工号和有效期,扫完跳转前弹一个确认页,显示目标域名。行政再想贴码,得先申请。听着麻烦,但比丢八十万强。安全这事,往往就是多一步确认,少一堆麻烦。