ANDROID 应用安全测试内容

一、代码安全

1.1、源码反编译安全

【测试说明】:Apk源代码的暴露,会致使客户端内几乎所有的逻辑流程都被暴露,给主要的业务带来极大的风险。

1.2、二次打包安全

【测试说明】:APK篡改后二次打包不仅严重威胁应用开发者的版权和经济利益,而且也使APP用户遭受到不法应用的恶意侵害。对客户端程序添加或修改代码,修改客户端资源图片,配置信息、图标,添加广告,推广自己的产品,再生成新的客户端程序,可导致大量盗版应用的出现减少开发者的收入;恶意的二次打包还能实现应用钓鱼、添加病毒代码、添加恶意代码,从而窃取登录账号密码、支付密码,拦截验证码短信,修改转账目标账号、金额等等。

1.3、H5代码安全

【测试说明】:测试apk是否有使用H5代码,本地h5文件是否可直接查看,本地h5是否经过混淆处理。

1.4、Dex动态加载风险

【测试说明】:Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件。风险触发前提条件:

1.   动态加载的DEX文件存储在被其他应用读写的目录中,如sdcard;

2.   没有对外部所加载的DEX文件做完整性校验;动态加载的DEX文件存储在被其他应用任意读写的目录中(如sdcard),如果没有对外部所加载的DEX文件做完整性校验,应用将会被恶意代码注入,从而执行的是恶意代码。

1.5、签名校验安全

【测试说明】:测试原包apk是否对自己的签名信息做了正盗版的校验。

二、调试安全

2.1、Debug属性安全

【测试说明】:在apk进行发布的时候,必须确认android:debuggable="false"(是否可调试),可调试的apk是非常危险的。

2.2、防调试检测

【测试说明】:使用GDB调试对apk进程进行调试,查看apk是否有对进程调试进行防护。

2.3、防注入检测

【测试说明】:apk没有对进程注入做防护,黑客可利用此问题,在不破解的情况下,对进程注入so文件,实现内存数据获取、分析逻辑、加载动态代码等等。

2.4、Xposed/Substrate检测

【测试说明】:Xposed/Substrate市场上常见的hook框架,大多数hook手段常用的框架,黑客经常使用hook手段对apk进行脱壳、内存截取/修改、逻辑分析等操作,对常见框架进行检测,并做对应防护,有效阻止黑客的非法操作。

2.5、Root环境检测

分析apk是否对系统Root进行检测。

2.6、模拟器检测

【测试说明】:模拟器具有经济成本低、高度可定制、易于开发、容易部署等优点,攻击者可以通过自己修改定制特定的模拟器来达到监控应用关键函数、获取应用敏感数据,破解应用的目的。为了增加破解阻力,应用中应该进行模拟器检测,添加反模拟器运行代码。

三、加密算法安全

3.1、弱加密检测

【测试说明】:分析apk对本地数据、传输数据,使用的加密算法强度。

3.2、硬编码安全

【测试说明】:检测客户端在对敏感的信息进行加密时,是否将相关密码学的密钥、向量、PublicKey、PrivateKey等关键字符串硬编码到了源码中。

3.3、ECB模式检测

【测试说明】:检测apk是否有使用AES算法,AES算法是否有使用ECB模式。

四、客户端安全漏洞

4.1、四大组件安全

【测试说明】:该项主要是来检测app内的Activity、Receiver、Service、Content Provider四大组件的安全性。

4.2、拒绝服务漏洞

【测试说明】:Android应用本地拒绝服务漏洞源于程序没有对Intent.getXXXExtra()获取的异常或者畸形数据处理时没有进行异常捕获,从而导致攻击者可通过向受害者应用发送此类空数据、异常或者畸形数据来达到使该应用crash的目的。存在拒绝服务漏洞。很容易被同业竞争对手恶意利用,给用户的使用带来不利的影响。

4.3、WebView远程代码执行

【测试说明】:检测apk是否存在webview远程代码执行漏洞。

查找源代码中是否存在addJavascriptInterface,是否使用removeJavascriptInterface移除“accessibility”、“accessibilityTraversal”和“searchBoxJavaBridge_”这三个系统接口。如果有这三个接口的就容易造成远程命令执行漏洞。

五、权限获取检测

5.1、Target SDK Version

【测试说明】:检测Target SDK Version值。

5.2、APP申请手机ROOT权限

【测试说明】:查看APP是否有越权操作的风险。

六、数据安全

6.1、HTTP协议安全

【测试说明】:查看APP传输中是否使用http协议。

6.2、数据明文储存

【测试说明】:检测apk的res/xml目录下的数据是否明文储存。

6.3、SQLite数据明文储存

【测试说明】:检测Apk本地SQLite数据库里的数据是否明文储存

6.4、敏感信息内存加密

【测试说明】:该项主要是用来检测用户的敏感信息(密码、支付密码等),在内存中是否加密。敏感数据内存中不进行加密,黑客可以通过扫描工具获取内存中的数据,从而获取敏感信息。

6.5、安全键盘检测

【测试说明】:客户端的敏感界面如登录界面、注册界面、支付界面等,用户在输入敏感信息时,如果未使用安全键盘,而使用第三方未知键盘或系统键盘的话可能存在被数据拦截与监听的风险,导致账号、密码等敏感数据泄露。

6.6、防截屏检测

【测试说明】:测试用户输入密码时,程序是否有禁止屏幕截屏的防护。

6.7、Allowbackup备份风险

【测试说明】:检测apk配置文件中allowBackup属性的安全设置。

6.8、Logcat日志安全

【测试说明】:日志的暴露会有利于黑客对客户端关键敏感逻辑的逆向分析,检查日志输出的控制是否合理等安全风险点。

 

猜你喜欢

转载自blog.csdn.net/guo15890025019/article/details/106275501