昨天晚上,tk在我们实验室群发了一篇文章,文章作者家人一部手机被盗 ,被黑产犯罪团伙以sim卡(主要是短信验证码)为起点,完成了对文章作者家人展开了一系列的攻击。虽然文章作者做了一些及时的补救,但这些攻击仍使得受害者损失惨重,如被刷了各种小额贷款等。
昨天晚上我也略微思考了一下这套攻击能成功的原因
总结来说,由于手机验证码,本机号码一键登录等认证手段的普及,SIM卡俨然成了一个信任根,一旦这个信任根被打破,就只能指望叶子上有足够的风控和安全策略对攻击者进行阻断了。然而这个过程又有木桶原理的制约,所以。。一旦攻击者拿到SIM卡,能做的事情太多了。
作者也提出了他的解决方案,那就是SIM卡PIN 锁屏(且锁屏时不显示通知详情)。
SIM卡PIN 锁屏不显示通知详情也不安全
仔细想来,这些攻击的起点就是SIM卡。手机锁屏不显示通知详情可以让攻击者在无法解锁手机(most likely)的情况下无法获取短信验证码(至少看起来是这样),而SIM卡PIN码可以让SIM卡在更换到新手机上之后必须输入一个密码之后才能注册入网。这两个措施看起来确实可以防护住这一类攻击。
但是真的是这样吗?未必。
手机号嗅探和短信嗅探目前已经相当成熟,前者可以捕获周围在网的手机号,后者可以在2G网络下嗅探到某个手机号的短信。因此即便是你在锁屏状态下隐藏了通知详情,即便是你有SIM卡PIN,攻击者仍然可以通过这种技术获取手机的验证码,进而展开相同的攻击。
无论短信嗅探还是手机号嗅探,都只在2G网络下才能进行。当然,这对攻击者并不难,一方面攻击者可以找一个3G 4G信号不好只能连入2G的环境进行攻击,另一方面攻击者也可以展开降级攻击 将连入LTE网络的手机降到2G,这个技术也算非常成熟的。
怎么防这套攻击呢?很简单,在蜂窝移动网络设置里面将网络模式设置为仅4G,或者5G/4G即可。
通过人工客服获取PUK来解锁SIM卡PIN可行吗?
有人提到,SIM卡PIN可以通过人工客服获取PUK来解锁。确实如此,但这个解锁过程是需要机主的手机号(部分地区还需要身份证号)的。考虑到黑产在拿到手机时手里能接触到的只有sim卡以及无法解锁的手机,如果攻击者不使用我之前提到的手机号嗅探,便无法获得机主手机号(以及身份证号码)这一额外信息,也就没办法解开PIN的。
SIM卡,一个不可信的信任根
无论是SIM卡PIN,还是仅4G,基本治标不治本(鬼知道黑产是不是还有其他路径能搞你)。
如何治本呢?很遗憾,SIM卡是一些厂商的安全信任根之一已成既定事实,只要有一个绑有你身份证、银行卡号认为持有这个SIM卡的人就一定是你,黑产就能通过SIM卡(主要是手机验证码)获取你的身份证、银行卡号这些关键信息,进而可以攻破一些安全策略做的稍好的(认为持有SIM卡、知道身份证号和银行卡号的人就一定是你)的APP的防护。
由于现在大多数所有APP都需要绑定手机号才能正常使用,因此弃用SIM卡这个安全锚点几乎不太可能。目前来看,想治本的最低成本的方案,就是让SIM卡这个不可信的信任根重新变得可信。用人话说,就是准备一个不常用号码,然后所有的账户都用不常用号码注册。然很再想办法确保这个不常用号码的SIM卡安全即可。
实现这套方案有很多种方法,比如可以弄个手机号放家里并将其所有短信转到邮件里面。再比如弄一个带eSIM卡的设备(比如智能手表)并确保它的安全(手表一直贴身)。或者用阿里小号,GV之类的手机号进行注册等
当然,也不是非要这样做。SIM卡PIN等防护方案虽然没有治本,但却也聊胜于无,配合上丢手机后立刻挂失补卡,可以阻断大多数黑产的攻击,就算没有阻断,也极大的增加黑产进行攻击的成本。