Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Parameter Values of Android APIs: A Preliminary Study on 100,000 Apps

Abstract

用一个静态工具ParamHarver来提取Android的API的string类型的参数。在100,000个APP上做了实验。并对结果进行初步分析。

Example

Fig

Implementation

Fig

指定API及参数序号。之后会先找API,之后反向跟踪指定的参数,直到得到参数的值,或走到控制流的尽头(得不到值,需要动态跑才会有值)。

Evaluation

最常用API

Fig

100,000个APP中,有些没用到上述API,有些太大,工具跑不了。最后剩下22681个来实验。

重复的参数

Fig

实验发现重复的参数很多。特别是某些需要自定义参数的API还有重复的现象。例如sendTextMessage,106909990999这个号码出现43次。“cxye”作为短信内容出现127次。所以作者认为参数分析有助于恶意软件分析。

参数推荐

Fig

某些API的参数官方文档说明不清楚。例如getLastKnownLocation(provider)的参数说明是“provider: the name of the provider”。而通过分析结果,可以给出参数提示:gps,network等。

找恶意软件

Fig

Fig

趋势分析

Fig

不足

  1. 混淆,加壳没法处理
  2. 反射,native没法处理
  3. 组件间通信没法处理