三星、华为、LG、索尼…部分型号手机被指存在被黑客攻击风险

上周三(9月4日),以色列网络安全巨头Check Point发文称,来自三星、华为、LG和索尼等多个安卓智能手机品牌的部分型号手机均被证实存在安全风险,可导致用户遭受高级网络钓鱼攻击。

通过欺骗目标用户更改手机设置,指定到由攻击者控制的恶意代理路由,即使身在千里之外,攻击者也可以截获目标用户所有的互联网流量。

据称,这种攻击方法依赖于一种被称为“空中下载(Over The Air,OTA)”的技术,也正是由于这种技术的存在,网络运营商才得以能够将特定的网络设置部署到用户的手机上。

然而,问题就在于,任何人都可以发送OTA配置消息!

OTA配置的行业标准,是开放移动联盟客户端配置(OMA CP),验证方法存在很多问题,这就导致用户无法验证接收到的配置建议是来自官方,还是来自攻击者。

Check Point发现,三星、华为、LG和索尼等品牌的部分型号手机(约占安卓手机市场的50%)均允许用户通过这种弱验证方式接收OMA CP消息,三星手机甚至还允许用户接收无需身份验证的OMA CP消息。

攻击流程

想要发送网络钓鱼OMA CP消息(可群发),攻击者仅仅只需要一个可用于发送二进制SMS消息的GSM调制解调器(比如,一个价值10美元的USB软件狗,或者一部以调制解调器模式运行的手机),以及一个简单的脚本。

需要说明的是,OMA CP允许通过OTA更改以下设置:

  • MMS消息服务器
  • 代理地址
  • 浏览器主页和书签
  • 邮件服务器
  • 用于同步联系人和日历的目录服务器

……

无需身份认证(三星)

针对使用三星手机的用户,攻击者可以向他们发送无需身份验证的OMA CP消息,只要用户接收并点击“OK”,就会被指定到由攻击者控制的代理路由。

图1.三星用户看到的无需身份验证的OMA CP消息

使用IMSI进行身份验证

如果攻击者能够获得华为、LG或索尼手机用户的国际移动用户识别码(IMSI),同样也可以发起针对三星手机用户一样的网络钓鱼攻击。

IMSI是移动网络上每台设备的64位标识符,从GSM到3G一直都在使用。IMSI号码用于路由选择,大致相当于计算机网络中的IP地址。

值得注意的是,一部手机的IMSI码并不是什么机密,原因有三:

  • 首先,它必须对所有网络运营商可用,这是由于无论是路由数据还是来电都需要将电话号码解析为IMSI号码。因此,仅通过商业供应商可以轻松进行正向和反向IMSI查询。
  • 其次,一些流氓APP可以通过标准API(((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getSubscriberId())读取用户的IMSI号码,前提是这些APP具有“READ_PHONE_STATE”权限。不幸的是,在过去三年发布的所有安卓APP中,有超过三分之一都会请求此权限,所以就算一些流氓APP掺杂其中,我们也很难发现。
  • 最后,实体SIM卡都印有ICCID码,而ICCID码通常与IMSI码相匹配。

OMA CP消息具有一个可选的安全标头,可用于验证OMA CP消息的真实性。当OMA CP通过接收方的IMSI号码进行身份验证时,华为、LG和索尼手机允许安装恶意OTA配置。值得注意的是,这些手机在建议用户安装OTA配置时不会显示任何相关细节。

图2.索尼用户看到的经过NETWPIN验证的OMA CP消息

使用PIN进行身份验证

针对无法获取到他们IMSI号码的用户,攻击者需要向他们发送两条消息:首先,发送一条声称来自网络运营商的文本消息,要求用户接受一条经过PIN验证的OMA CP消息。然后,发送一条使用相同PIN进行身份验证的OMA CP消息。

只要用户接收并输入了正确的PIN码,无论IMSI码是多少,OTA配置的安装都能够进行。

图3.华为看到的经过USERPIN身份验证的OMA CP消息

技术背景

OTA配置最开始主要是用于部署运营商的设置,例如运营商的MMS服务中心的地址。此外,企业也经常使用此工具来将电子邮件服务器地址等设置部署到员工的设备。

OMA CP是OMA为OTA配置的维护而创建的两个标准之一,它可以追溯到2001年,最新的规范来自2009年,允许(但不要求)使用USERPIN对OMA CP消息进行身份验证。

任何SMS消息,无论是文本消息、彩信、语音邮件通知或任何其他消息,都是作为协议数据单元(PDUs)传输的,协议数据单元由短消息传输协议(SM-TP)指定,即GSM 03.40。

包含OMA CP有效载荷的GSM PDUs包括:

  • 在承载层的SM-TP头,指定接收方的电话号码和数据编码方案;
  • 传输层的用户数据头(UDH),包括:无线数据报协议(WDP)头,指定目标端口2948 (wp-push)和源端口9200(wp-wsp);可选的连接消息头,每个PDU的用户数据限制为140字节,较长的消息必须分块;
  • 会话层的无线会话协议(WSP)头,包含身份验证。
  • 应用程序层的WAP二进制XML(WBXML),包含有效载荷。

如下图所示,是三星手机(无需身份认证)的概念验证代码,标注出来的字符串是代理地址和端口号:

图4.OMA CP的XML有效载荷

携带此有效载荷的完整OMA CP被拆分为了两条SMS消息,如下图所示,为两个八位八位元字符串。

图5.OMA CP消息的物理表示

在WBXML字符串中,代理地址和端口号(使用与概念验证代码中相同的颜色标注)包含以null结尾的ASCII字符串,而在XML模式中定义的字符串,如元素名称、类型的值、名称属性,表示在WBXML中为固定的单字节值。

WBXML有效载荷遵循WSP头,其中包含消息身份验证代码,使用接收方的IMSI码作为ASCII十六进制字符串计算。

结论

总之,整个攻击流程并不复杂,且只需一个廉价的USB调制解调器就可以完成。Check Point表示,他们已经在华为P10、LG G6、索尼Xperia XZ Premium和三星Galaxy系列手机(包括S9)上进行了验证。

好消息是,Check Point已经在今年3月份向受影响的品牌厂商进行了通报,处理结果是:

  • 三星已经在5月份发布的安全维护版本(SVE-2019-14073)中涵盖了一个用来解决这一问题的补丁;
  • LG在7月份发布了相应补丁(LVE-SMP-190006)
  • 华为计划在下一代Mate系列或P系列智能手机中为OMA CP提供UI修复;
  • 索尼拒绝承认此问题的存在,称他们的设备符合OMA CP规范。

此外,OMA已经将此问题标注为OPEN-7587进行跟踪。

举报
评论 0