G.O.S.S.I.P 阅读推荐 2022-05-09

admin 2022年5月10日02:49:21评论36 views字数 2493阅读8分18秒阅读模式

互联网领域知名的会议TheWebConf(在学术界大家更为熟知的名字是WWW)刚刚在4月底结束了2022年的议程,今天我们就为大家介绍一篇来自今年会议上的论文——Lie to Me: Abusing the Mobile Content Sharing Service for Fun and Profit

G.O.S.S.I.P 阅读推荐 2022-05-09

在这篇论文中,作者提出了一种名为Fake-Share Attack的安全攻击,针对移动终端(特别是Android客户端)设备,可以伪造用户分享内容(例如将一则微博消息分享至微信朋友圈)时的消息来源,从而绕过对目标在线社交应用(OSA)的内容审查,诱导用户点击共享的欺诈内容。为了自动化检测移动app中是否包含此类恶意伪造分享内容来源的攻击,作者开发了一款检测工具DeFash,在针对app市场的大规模扫描中发现了51个app中包含之类安全攻击代码。此外,作者还在超过7万个Android app中收集到了超过24000条所谓的Sharing Identification Information(SII)信息,这些信息是发起Fake-Share Attack的关键。

我们先来看看Fake-Share Attack的背景知识:为了方便共享内容,许多网站或移动app提供了一键式内容共享功能,用户可以单击共享按钮共享感兴趣的内容,而无需手动复制内容。图1展示了在线社交应用(Online Social Apps,OSA)内容分享的流程:当用户点击了分享按钮后,其共享内容就作为文本嵌入到Intent中,并发送到目标app。目标app获取到分享内容后,则会生成卡片式的内容描述,并在其下方显示共享内容来源。

G.O.S.S.I.P 阅读推荐 2022-05-09

然而,在移动终端上,攻击者可以很容易伪造此类共享内容来源。作者发现,一些app会通过伪造的共享内容来源,诱导用户点击共享的欺诈内容。以微信内容共享为例,在实际应用中,app开发者会调用微信内容共享SDK来向微信发起内容共享请求。微信内容共享SDK是一个组件化的系统,使用该SDK的app只需传递Context以及APPID即可初始化SDK,在调用SDK进行内容分享时,SDK通过Intent将内容传递到微信中。

通过翻阅微信SDK开发文档可以得知,SDK只对host app的包名以及APPID进行了配对校验,并根据传递的包名决定分享内容在微信中显示的来源。

 

G.O.S.S.I.P 阅读推荐 2022-05-09

G.O.S.S.I.P 阅读推荐 2022-05-09

为了欺骗微信显示虚假的消息来源,作者通过ContextWrapper构建了一个新的Context,重写了其getPackageName方法,返回了虚假的包名。在SDK初始化的过程中,传递虚假的Context以及APPID,即可完成伪造攻击(如下图所示)。

G.O.S.S.I.P 阅读推荐 2022-05-09

进一步的研究表明,SDK本质上是通过Intent将分享内容传递至OSA,因此,在不借助SDK的情况下,攻击者可以直接构造Intent发送到OSA,从而完成伪造攻击。本质上,该攻击模拟了SDK的消息共享流程,这其实也是移动安全领域的一个很重要的假设,即移动终端上的代码(除了TEE中)产生的数据,某种程度上均是不安全的。

G.O.S.S.I.P 阅读推荐 2022-05-09

作者对35种OSA应用进行了攻击测试,结果表明,7种主流的OSA应用中均存在内容分享来源伪造漏洞,其中app #1-5可通过重写getPackageName方法伪造消息来源,而所有的应用均可通过Intent伪造消息来源:

G.O.S.S.I.P 阅读推荐 2022-05-09

为了能够自动化检测伪造分享内容来源的应用,作者开发了DeFash自动化检测工具。该工具包含两阶段的检测流程:首先通过粗粒度检测将静态数据流分析和动态SII匹配结合起来,以识别可疑app;接下来的细粒度检测阶段中,DeFash自动运行可疑app,自动化触发内容共享功能,并捕获用于共享的SII,从而确认可疑程序是否实施了伪造共享攻击。DeFash工具的框架如图所示:

G.O.S.S.I.P 阅读推荐 2022-05-09

DeFash的实现细节具体包括:

  1. 静态数据流分析。a. 对Intent中"mmessage_appPackage"以及"“mmessage_content"的键值进行反向数据流分析,从而推导APPID以及packageName。b. 扫描字节码中的APPID,并对其进行前向数据流分析,分析其startActivity可达性。

    G.O.S.S.I.P 阅读推荐 2022-05-09

  2. 动态SII匹配。将app中包含的每个APPID和应用packageName结合起来,形成一对SII,作为临时SII。采用SII进行内容分享,由于微信安全策略会对SII的匹配程度进行检测,如果分享失败,则说明该应用为可疑程序。

  3. 动态捕获SII。为了进一步对可疑程序进行分析,作者设计了一个自动化测试方案,采用DroidBot自动探索app中的按钮,以用于触发内容共享的共享按钮,然后采用frida监控app的SII是否用于伪造共享来源攻击。

在实验中,作者主要从三个方面进行了评估:

  1. 基准测试作者通过重打包app的方式创建了测试基准(ground truth)。通过修改smali代码的方式,采用重写packageName以及直接伪造Intent的方式对9种app中的内容分享进行了恶意修改,从而达到了伪造共享来源的目的。实验结果表明DeFash可以100%准确地检测伪造共享来源攻击。在检测性能方面,粗粒度检测平均耗时仅76秒,而细粒度检测平均耗时211秒。

  2. 应用市场扫描作者从华为Android应用市场搜集了1379个包含微信SDK的app,其中51款app存在伪造共享内容来源的攻击。伪造目标情况如下:

  3. SII分析作者首先根据正则表达式提取每个app中所有可用的appid,然后将这些appid与app的包名结合起来,形成一对临时sii并尝试进行内容分享。实验共获得24515个可被利用的SII。在华为应用市场上排名前20的app中有17个包含可被利用的SII。

G.O.S.S.I.P 阅读推荐 2022-05-09

最后作者给出了可能的防范方法。即不再信任任何第三方共享的内容,或者设计一个完整的身份验证机制(例如使用密码学认证)。

论文 @ ACM数据库地址:

https://dl.acm.org/doi/pdf/10.1145/3485447.3512151


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-05-09

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月10日02:49:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-05-09http://cn-sec.com/archives/993365.html

发表评论

匿名网友 填写信息