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应⽤本地拒绝服务漏洞源于程序没有对XXXExtra()获取的异常或者畸形数据处理时没有进⾏异常捕获,从⽽导致攻击者可通过向受害者应⽤发送此类空数据、异常或者畸形数据来达到使该应⽤crash的⽬的。存在拒绝服务漏洞。很容易被同业竞争对⼿恶意利⽤,给⽤户的使⽤带来不利的影响。
4.3、WebView远程代码执⾏
【测试说明】:检测apk是否存在webview远程代码执⾏漏洞。
查源代码中是否存在addJavascriptInterface,是否使⽤removeJavascriptInterface移除“accessibility”、“accessibilityTraversal”和“searchBoxJavaBridge_”这三个系统接⼝。如果有这三个接⼝的就容易造成远程命令执⾏漏洞。
五、权限获取检测
5.1、Target SDK Version
【测试说明】:检测Target SDK Version值。
5.2、APP申请⼿机ROOT权限安卓intent用法
【测试说明】:查看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⽇志安全
【测试说明】:⽇志的暴露会有利于⿊客对客户端关键敏感逻辑的逆向分析,检查⽇志输出的控制是否合理等安全风险点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。