针对Android智能机的高级短信钓鱼攻击

Change 移动安全 2019年9月9日发布
Favorite收藏

导语:Check Point的研究人员调查发现,在如三星(Samsung)、华为(Huawei)、LG和索尼(Sony)等某些品牌的android手机上,高级网络钓鱼攻击事件很容易发生。

介绍

Check Point的研究人员调查发现,在如三星(Samsung)、华为(Huawei)、LG和索尼(Sony)等某些品牌的android手机上,高级网络钓鱼攻击事件很容易发生。攻击者可以通过远程代理欺骗用户更改手机设置,截获用户所有的互联网流量。

这类攻击方法利用的是一种称为OTA(空中下载)的技术,网络运营商正是利用此技术才能将特定网络设置部署到用户手机上,然而问题在于,任何人都可以发送OTA配置消息。

OTA配置的行业标准是开放移动联盟客户端配置(OMA CP),涵盖的认证方法数量有限,收件人无法验证接收的建议设置是来自官方的网络操作人员,还是顶替的冒名者。我们发现,三星、华为、LG和索尼等品牌手机(占到了50%以上的安卓手机市场)允许用户通过这种弱验证的方式接收恶意配置信息;三星手机还允许未经认证的OMA CP消息。

我们已于今年三月向受影响的品牌厂商汇报了调查结果。三星在5月份发布的安全维护版本(SVE-2019-14073)中涵盖了一个解决钓鱼流程的补丁;LG在7月份发布了相应补丁(lv – smp -190006);华为计划在下一代Mate系列或P系列智能手机中为OMA CP提供UI修复;索尼拒绝承认此漏洞的存在,称他们的设备符合OMA CP规范,OMA将此问题标注为OPEN-7587进行跟踪。

攻击流程

要发送OMA CP消息,攻击者需要GSM调制解调器(一个10美元的USB软件狗,或以调制解调器模式运行的手机就行)来发送二进制SMS消息,以及一个简单的脚本或现成的软件来组成OMA CP。

网络钓鱼CP消息的目标范围可以很窄,比如在前面加上一条专门用来欺骗特定收件人的定制短信,也可以广泛批量发送。

OMA CP允许通过OTA更改以下设置:

· MMS消息服务器

· 代理地址

· 浏览器主页和书签

· 邮件服务器

· 用于同步联系人和日历的目录服务器

……

我们来假设一下攻击者通过控制代理截获用户流量的场景。

无需身份认证(三星)

对于使用三星手机的用户,攻击者可以向他们发送未经身份验证的OMA CP消息,指定到他所控制的代理。这里需要强调的是,攻击者不需要解决身份验证的问题,用户只需要接受CP即可。

1~1.png 2~1.png

图1:三星用户看到的未经身份验证的CP消息

使用IMSI进行身份验证

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

IMSI是移动网络上每个设备的64位标识符,从GSM到3G都在使用。这个数字用于路由选择,大致相当于计算机网络中的IP地址。一部手机的IMSI是伪机密的,因为:

· 它必须对所有网络运营商可用,因为路由数据或呼叫到移动用户需要将其电话号码解析为IMSI,通过一些供应商可以很便宜地获得正向和反向IMSI查询(到IMSI的移动电话号码,反之亦然)。

· 另外,一些流氓Android应用程序可以通过标准API读取用户的IMSI号码,前提是应用程序具有权限。permission.READ_PHONE_STATE:

     (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getSubscriberId()

在过去三年中发布的所有Android应用程序中,有超过三分之一的需要此权限,如果其中掺杂了一些流氓软件,也很难找得出来。

· 任何人只要看一下实体SIM卡,就会看到ICCID被刻录或打印在上面,而且ICCID通常与IMSI匹配。

OMA CP消息具有可选的安全标头,可以验证CP的真实性。当CP通过接收方的IMSI号码进行身份验证时,华为、LG和索尼手机允许安装恶意设置。请注意,这些手机在建议用户安装CP时没有显示任何有关CP的细节;特别是,CP的发送方没有以任何方式进行标识。

3~1.png 4~1.png

图2:索尼用户看到的经过netwpin验证的CP消息

使用PIN验证

对于无法取得他们IMSI的那些用户,攻击者可以发送两条消息:第一个是声称来自网络运营商的文本消息,要求用户接受一个有PIN保护的OMA CP,并将PIN指定为任意四位数字。接下来,攻击者向他发送一个使用相同PIN进行身份验证的OMA CP消息。只要受害者接受CP并输入正确的PIN,无论IMSI如何,都可以安装这样的CP。

 5.png 6.png

图3:向华为用户显示的经过userpin身份验证的CP消息

技术背景

OTA配置最开始主要是用于部署运营商的设置,例如运营商的MMS服务中心的地址。企业也使用此工具将电子邮件服务器地址等设置部署到员工的设备。OMA CP是OMA为OTA配置的设置而立下两个标准之一,它可以追溯到2001年,最新的规范则在2009年。

我们的研究表明,即使在10年后,OMA CP的安全影响仍然是事关重大的。Android的基本版本不处理OMA CP消息,在供应商处启用,因为OMA CP是OTA配置的行业标准。其规范允许(但不要求)CP消息使用USERPIN,NETWPIN或其他少数方法进行身份验证。

任何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),包含有效负载。

作为演示,我们以三星手机早期(未经身份验证的)进行概念验证,其中包含以下XML文档作为有效负载,突出显示的字符串表示代理地址和端口号:

 7~1.png

图4:OMA CP的XML有效负载

携带此有效载荷的完整OMA CP被拆分为两个物理SMS消息,如下图所示,为两个八位字节串:

 8~1.png

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

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

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

结论

我们阐述了一种针对现代Android手机的高级网络钓鱼攻击流程。这种攻击流程使任何拥有廉价USB调制解调器的人都可以诱骗用户在手机上安装恶意设置。为了攻击一些易受攻击的手机,攻击者需要知道受害者的IMSI号码,这些号码可以通过具有READ_PHONE_STATE权限的Android应用程序获得。我们在华为P10,LG G6,索尼Xperia XZ Premium和一系列三星Galaxy手机(包括S9)上进行了验证。

Check Point SandBlast Mobile可防止中间人和网络钓鱼攻击,帮助保护您的设备免受此类恶意OMA CP消息的侵害。

本文翻译自:https://research.checkpoint.com/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/如若转载,请注明原文地址: https://www.4hou.com/mobile/20187.html
点赞 0
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论