本页目录

论文阅读:MiniTracker: Large-Scale Sensitive Information Tracking in Mini Apps (TDSC 2023)

相关链接:

1.Introduction

工具的三个组件:Taint Tracker、Util Analyzer、Page Analyzer。

提出了一些挑战和解决方案:

1.

挑战:跨语言的数据流(WXML ~ JavaScript)
解决:见Page Analyzer

2.

挑战:异步数据流
解决:理解异步流程并将其等效地转换为同步流程

3.

挑战:识别属性链(如a.b.c),小程序打包后有很多单字母变量名,用名称匹配会有大量FP
解决:在JS对象的粒度上应用基于属性链的分析,见Taint Tracker

4.

挑战:识别函数别名(由于模块化、函数可以复制给变量等)
解决:见Util Analyzer

2.Preliminaries on Mini Apps

略。

3.Problem Setting and Attacker Model

目标:设计自动化污点分析工具来报告小程序中潜在的隐私泄露。

威胁模型:出于疏忽或恶意目的的小程序开发者。

4.Identifying Sources and Sinks

考虑的污点源与污点汇:

污点源:

设备信息:可用于确定设备状态、唯一识别用户或描述用户习惯的信息

定位

本地文件读取:比如wx.chooseImage

开放API:主应用提供的开放能力,比如wx.getUserInfo可以获取用户的帐户昵称和头像

污点汇:

网络请求

不通过网络的信息传输:比如蓝牙、短信、电话等

本地文件写入:比如wx.setClipboardData写入剪贴板后,其他应用可以从中读出信息

开放API:同样,有些开放API会把信息泄露给第三方,例如wx.requestPayment传递的参数会传输到支付服务

5.MiniTracker

img

Taint Tracker

预处理

JS打包后的代码会出现很多相同名称的标识符,但引用不同的变量。预处理器将它们分配给具有范围信息的唯一标识符。

预处理器跟踪每个函数表达式,并用唯一标识符替换相应的AST节点。在访问完整的AST之后,预处理器对于遇到的每个函数向程序体追加一个函数声明。

img

构建Assignment Flow Graph