Android 安全测试

文章Android Security Tools对1~4的使用有介绍,下面主要分析其源码实现。

1.Manifest Explorer

2.Package Play

Main.java

View Code

函数getInstalledPackages(int)参数有如下取值:

flags Value
GET_ACTIVITIES 0x00000001
GET_GIDS 0x00000100
GET_CONFIGURATIONS 0x00004000
GET_INSTRUMENTATION 0x00000010
GET_PERMISSIONS 0x00001000
GET_PROVIDERS 0x00000008
GET_RECEIVERS 0x00000002
GET_SERVICES 0x00000004
GET_SIGNATURES 0x00000040
GET_UNINSTALLED_PACKAGES 0x00002000

oxFFFFFFFF是由于Android此函数实现对flags取“&”,不能包括GET_META_DATA,可取512或14111。详见ApplicationPackageManager.java

View Code

PackageManagerService.java

View Code

PackageParser.java

View Code

回到此apk的源文件ViewPackage.java

View Code

3.Intent Sniffer

IntentSniffer.java

View Code

4.Intent Fuzzer

IntentFuzzer.java

View Code

5.drozer(原名Mercury)用作Android平台上动态分析的安全测试框架,其源码由Python编写,它能安装在Windows & Linux上,详见其用户指南,其研发公司MWR InfoSecurity还提供了Android 安全研究

6.androguard用Python编写,目前只能在Linux上安装使用,它安装时需要较多第三方库的支持,幻灯片Android-OEM-applications-insecurity-and-backdoors-without-permission用此工具作了分析。

7.DroidBox用Python编写,目前只能运行在Linux和Mac上,它用作对Android应用动态分析。

8.查看apk签名:

jarsigner -verify -verbose -certs apk_name.apk

或者Android APK 签名比对

9.Apk相关文件中如congfig、未加密的db中无工号、用户个人数据和系统数据、万能码之类内容、账户密码和敏感数据不要明文存储

10.Apk网络传输时不能泄露数据、不能有影响安全的开发端口,测试工具参考文章Android工具tcpdump和Nmap

11.Apk运行时Logcat输出不必要的信息

12.APK相关文件权限other组权限为---或--x,比如不含w权限:

-rw-rw--w- :data/data/com.snda.cloudary/shared_prefs/UserInfo.xml …该文件的这个权限不安全

13.Santoku

14.用至少两种杀毒软件对发布产品进行查杀

15.禁用私有加密算法和业界已知不安全加密算法,需解决兼容或标准协议规定的除外。目前较安全的加密算法为:

3DES      128及以上

AES        128及以上

RSA        1024及以上

SHA2      256及以上

HMAC-SHA2    128及以上

其它可见幻灯片Android软件安全攻防研究现状Android漏洞信息库Security Tips

16.APK禁止申请不必要权限

posted on 2013-08-10 13:17  农夫山药  阅读(2604)  评论(0编辑  收藏  举报