是广告还是病毒

对于免费app来说,广告是其重要的收入来源。良好的广告sdk一方面可以使app开发者能够得到必要的回报,使他们能够开发出更多更好的app;另一方面,也能够实现产品推广,对厂商和用户都有一定好处。良好的广告sdk是android生态圈极为重要的组成部分。但是目前国内的android广告sdk乱象丛生,有些广告sdk强制显示用户无法关闭的通知广告;有些肆意窃取用户隐私数据,非法获取利益。
如何辨别哪些是恶意的广告sdk,我们就从行为上来分析。由于一般广告sdk都会对代码进行混淆,我们先从申请的权限上入手。一般广告sdk申请的权限可以分为三类:基本功能、效能提升、恶意行为。

1. 基本功能主要是让广告sdk能够正常工作,正常下载并展示广告。
<uses-permission android:name="android.permission.INTERNET" />
保证广告sdk能够访问因特网,以便下载广告内容
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
获取当前的网络和wifi状态,以便在不同网络状态下进行不同的下载操作,这样可以减少数据流量
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
读写sd卡,一般是用于缓存广告,减少网络流量

2. 效能提升主要是根据用户的个人信息提供个性化广告,这类功能虽然可以提高广告投放的效能,但是会一定程度上侵犯用户的隐私。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
获取当前的位置信息,一般是用于精确的广告投送。例如,位置显示你在麦当劳附近,广告sdk则显示麦当劳的广告。这功能本身无可厚非,但是由于位置信息属于隐私信息,应当由用户决定是否开放。而这一点在目前的android系统中还无法实现。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
获取手机的基本信息,包括本机手机号码,设备号,软件版本等信息。申请了这些权限的广告sdk就很有可能将手机基本信息泄露出去。
<uses-permission android:name =
"com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
读取浏览器浏览历史和书签

3. 恶意行为则是指对于广告sdk来说,完全没有必要的功能,其中某些功能甚至会严重威胁用户的安全与隐私。
<uses-permission android:name="android.permission.GET_TASKS" />
获取当前的任务列表,某些恶意广告sdk会通过监听正在使用的TopActivity,如果不是广告sdk,则启动广告。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
监听开机事件,以便实现开机自启动。
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- Casee, WqAd, InMobi, Greystripe, lsense, izp -->
在不通过系统拨号界面的情况下,打电话。
<uses-permission android:name="android.permission.SEND_SMS" />
直接发送短信,某些广告sdk通过后台直接发送短信的方式将个人信息泄露出去,或者通过自动发短信的方式产生额外的费用。
<uses-permission android:name= "android.permission.RECORD_AUDIO" />
录音,这是一种极度危险的操作。经过调查已经发现smardmad广告sdk采用这种方法对用户进行侦


这段代码就是用于对麦克风进行录音的。

目前市面上还有很多广告sdk我们没有来得及调研。但是就现在结果来看,广告sdk中存在很多安全隐患。某些广告sdk甚至演变成流氓软件、病毒软件。手机安全任重而道远!

新浪微博@安卓安全小分队

猜你喜欢

转载自android-squad.iteye.com/blog/1870682