2023Android客户端安全测试指南.docx

上传人:夺命阿水 文档编号:1340328 上传时间:2024-06-06 格式:DOCX 页数:71 大小:940.75KB
返回 下载 相关 举报
2023Android客户端安全测试指南.docx_第1页
第1页 / 共71页
2023Android客户端安全测试指南.docx_第2页
第2页 / 共71页
2023Android客户端安全测试指南.docx_第3页
第3页 / 共71页
2023Android客户端安全测试指南.docx_第4页
第4页 / 共71页
2023Android客户端安全测试指南.docx_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《2023Android客户端安全测试指南.docx》由会员分享,可在线阅读,更多相关《2023Android客户端安全测试指南.docx(71页珍藏版)》请在课桌文档上搜索。

1、AndrOid客户端安全测试指南目录ANDROID客户端安全测试指南1一. 测试环境4二. 安全测试列表42.1 客户端程序安全42.1.1 安装包签名42.1.2 客户端程序保护52.1.3 应用完整性检测72.1.4 组件安全82.1.5 *webview组件安全92.2 敏感信息安全102.2.1 数据文件102.2.2 IOgCat日志122.3 密码软键盘安全性132.3.1 键盘劫持132.3.2 随机布局软键盘142.3.3 屏幕录像142.3.4 *系统底层击键记录152.4 安全策略设置152.4.1 密码复杂度检测152.4.2 帐号登录限制162.4.3 帐户锁定策略16

2、2.4.4 *私密问题验证162.4.5 会话安全设置162.4.6 界面切换保护172.4.7 Ul信息泄漏172.4.8 验证码安全性172.4.9 安全退出182.4.10 密码修改验证182.4.11 Activity界面劫持182.5 手势密码安全性192.5.1 手势密码复杂度192.5.2 手势密码修改和取消202.5.3 手势密码本地信息保存202.5.4 手势密码锁定策略212.5.5 手势密码抗攻击测试222.6 进程保护222.6.1 内存访问和修改222.6.2 *动态注入232.7 通信安全242.7.1 通信加密242.7.2 证书有效性242.7.3 关键数据加密

3、和校验272.7.4 *访问控制272.7.5 客户端更新安全性282.7.6 短信重放攻击282.8 业务功能测试28三. 测试项目风险定级30四. 合规性参考32五. ANDROlD应用分析335.1 APK解包335.2 逆向C1.ASSES.DEX335.2.1 反编译为java代码335.2.2 反编译为SmaIi代码345.3 处理ODEX文件355.4 反编译SO库365.5 处理XMl375.6 打包APK385.6.1 使用apktool打包small彳弋码385.6.2 签名和优化385.7 修改已安装APK405.8 内存获取C1.ASSES.DEX425.8.1 内存转

4、储425.8.2 ZjDrOid工具425.9 ANDRe)IDHOOK框架435.9.1 XposedFramework445.10 集成分析工具445.10.1 APKAnaIyser445.10.2 Eclipse485.10.3 Androiddebugmonitor515.10.4 apk编辑工具525.11 ANT编译源代码535.12 动态调试535.12.1 使用eclipse+ADT535.12.2 使用IDApro545.12.3 andbug调试545.13 ADBSHE1.l命令585.13.1 网络工具(root)585.13.2 进程查看和监视ps/top605.1

5、3.3 系统调用记录Strace615.13.4 事件操作getevent/sendevent615.13.5 截图工具Fbtool635.13.6 用户切换Run-as/su635.13.7 文件列举ISof645.13.8 数据库文件查看sqlite3645.13.9 日志查看Iogcat655.13.10 测试工具MOnkey655.14 ANDRoID彳弋理配置665.15 手机根证书安装685.16 DROZER组件测试工具695.17 ANDROlD代码分析726.1 Android组件功能相关代码726.1.1 Contentprovider72测试环境SDK:JavaJDK,A

6、ndroidSDK,工具:7zip,dex2jar,jd-gui,apktoo1.IDApro(6.1),ApkAnaIyser,Eclipse,dexopt-wrapper,010editor,SQ1.iteStudio,ApkIDEoapk工具:android组件安全测试工具,activity劫持测试工具,android击键记录测试工具,代理工具(proxydroid),MemSpector,HostEditoro-.安全测试列表注:下面的测试项目中标记的为可选测试项,在正式测试中可以不进行测试。2.1 客户端程序安全2.1.1 安装包签名检测客户端是否经过恰当签名(正常情况下应用都应该是

7、签名的,否则无法安装),签名是否符合规范。测试方法:如图,当输出结果为“jar已验证”时,表示签名正常。(下面的警告是因为签名密钥不在本地密钥库中)C:XDocuRentsandSettingsXAdnin1stratorJarsigner-verify,C三DocunentsandSettingsMtdnin1511%口10r、桌面。(11*0i(11)jarsigner-verify-verbose-certs*C:DocuncntsandSettingSAdmin桌面androiddkandsm&ShClIT.apk”sm2269SunJul2421三37三34CST2011reSZdr

8、awablcZand.JpgX.509,1.N.JsgnJC-DK证书的有妓期RiK-10-2上午4:22至16-9-8上午4三22J(CertPath未验证:PathdoesnotchainwithanyofthetrustanchorsSIn1223WedAug1021:58:46CST2011resZdrawabIeZic.app.pngX.509,CN-Andsen.C三DK【证书的有效期期1.8T0-2上午4:22至18-9-8上午4三22J(CertPath未验证:Pathdoesnotchainwithanyofthetrustanchors1威胁等级:若客户端安装包签名有异常(

9、例如签名证书为第三方开发商而不是客户端发布方),此时高风险;若无异常则无风险。2.1.2客户端程序保护1.反编译保护测试客户端安装程序,判断是否能反编译为源代码,java代码和so文件是否存在代码混淆等保护措施。未作保护的java代码,可以轻易分析其运行逻辑,并针对代码中的缺陷对客户端或服务器端进行攻击。测试方法:参考5.Iapk解包,5.2逆向classes.dex,将客户端apk文件中的程序代码导出为Java代码或SmaIi代码;或使用5.10.IAPKAnaIyser,直接打开apk文件。如下图所示,经过混淆保护的代码,其最明显的特征是大部分类和变量名都被替换为简单的abed字母。aam

10、b:RunnabteOa(Runnabfe):aameOnSerwCeCOnneCted(COmpcnertNagI6nr):voidOOnSerYiCODisconnected(CorrponertName):void7)aan0danob:ConteXtoc:1.dyoutInflater d:xjoe三long F:Stringog:Stng客户端程序可以把关键代码以JNl方式放在So库里。SO库中是经过编译的arm汇编代码,可以对其进行加壳保护,以防止逆向分析。参考5.1apk解包,打开apk文件。如果客户端程序使用了JNI技术,在libarmeabi”文件夹下会有相应的SO库文件,如

11、图所示:20C:DocumentsandSelUngsAdministratorOiandroidapkscoJ.50J653634692010-11-1217:34然后在代码中查找是否加载了S。库。例如JaVa代码:StaticSystemJoad1.ibraryCjn1.pin);system.load(H./libjni_pin2.soH)将加载Iibjni_Pin.so和Iibjni_pin2.so,So的导出函数则通过native关键字声明,如图所示:Ilpul)licclassMakeRldPinrcSystem.2ojd1.ibrry(jni-pin);PPUbIiCnative

12、byteHakeRldPin(StcingpacamStcing);publicnAtiveStringUnimplementedstElngFcoiaJNI();P对S。代码的分析,可参考5.4反编译SO库。威胁等级:若客户端进行加壳保护,此时认为无风险。若大部分代码(包括核心代码)经过混淆,此时低风险。若部分代码混淆,关键代码(加密或通信等)可以获知其关键代码,此时中风险。2.1.3 应用完整性检测测试客户端程序是否对自身完整性进行校验。攻击者能够通过反编译的方法在客户端程序中植入自己的木马,客户端程序如果没有自校验机制的话,攻击者可能会通过篡改客户端程序窃取手机用户的隐私信息。测试方法:

13、参考5.10.2Eclipse关于DDMS的文件操作和5.7修改已安装apk。推荐修改apk中assets目录下或res/raw目录下的文件。将修改后的apk文件导入至Jdataapp目录下,覆盖原文件,然后重启客户端,观察客户端是否会提示被篡改。*或在JaVa代码中查找是否包含校验功能。威胁等级:若应用完整性校验不使用MANIFEST.MF中的数据,且核心代码通过JNl技术写入f。库,同时于服务端进行相关校验,此时无风险。若应用完整性于本地进行验证而不存在其他问题或使用MANIFEST.MF中的数据作为验证凭证(有新文件时提示应用完整性验证失败),此时低风险;若在本地进行验证的基础上只通过M

14、ANIFEST.MF对客户端原有文件进行校验而忽略新增文件的检验,此时中风险;若未进行应用完整性校验此时高风险。2.1.4 组件安全测试客户端是否包含后台服务、ContentProvider.第三方调用和广播等组件,Intent权限的设置是否安全。应用不同组成部分之间的机密数据传递是否安全。测试方法:检查AndroidManifest.XmI文件中各组件定义标签的安全属性是否设置恰当。如果组件无须跨进程交互,则不应设置exported属性为true。例如,如下图所示,当MySerViCe的exported属性为true时,将可以被其他应用调用(当有设置权限(PermiSSiOnS)时,需要再考

15、察权限属性。如androidProtection1.eveI为SignatUreScSignatureOrSystem时,只有相同签名的apk才能获取权限。参考SDK)omanfescandroid:versonCode三1nandroid:versonNae三v,l.Owpackage*tcapplicatlonAndroId:label*。Strtng/app_naiae”android:icon三,drawable/ic_lauraccvtyandroid:labelHestring/app_naiaeHandroidjnae三w.AldlDemoAotivit可以使用“组件安全测试工具

16、”来检测组件的exported属性,如图所示。凡是列出来的组件都是exported属性为true的。点击SaVe按钮可以把检测结果保存在SD卡上。checkingfahrbot.apps.screen.pro1=InsecureActivities:fahrbotapps.snapshoter.ui.MiscActivityfahrbot.apps.snapshoter.ui.1.ongSearchActivity=InsecureReceiver:fhrbotapps.snapshoter.svc.Events1.istenerfahrbo1.apps.snapshoter.svc.Widg

17、etProviderIxI=InsecureServices:或者使用DeXter在线检测环境(或SanddrOid)来做,如图所示,EXPorted为对号的是已经导出的组件,可能存在安全问题。(注意:Dexter对ContentProvider判断不一定准确。)当发现有可利用的组件导出时,可参考5.16drozer测试工具进行测试。注意:不是所有导出的组件都是不安全的,如需确定须看代码,对代码逻辑进行分析。注:有些应用在代码中动态注册组件,这种组件无法使用“组件安全测试工具”测试,需要通过阅读代码确定是否安全。关于AndroidSDK中对exported属性的默认设置说明:对service,

18、activity,receiver,当没有指定exported属性时,没有过滤器则该服务只能在应用程序内部使用,相当于exported设置为false。如果至少包含了一个过滤器,则意味着该服务可以给外部的其他应用提供服务,相当于exported为true。对provider,SDK小于等于16时,默认exported为true,大于16时,默认为false。(某些广播如android.intent.action.BOOT_COMP1.ETED是例外)威胁等级:若不存在组件暴露的情况,此时无风险。如存在组件暴露的情况,但暴露的组件无关客户端逻辑核心或不会泄露用户敏感信息,此时低风险;若暴露的组件

19、会泄露用户敏感信息(例如邮件客户端存在消息组件的暴露,攻击者可以通过编写APK,通过组件利用的方式读取用户邮件信息)2.1.5 *webview组件安全Anelroid4.2版本以下的WebVieW组件存在安全漏洞(CVE-2012-6636)。检测客户端是否采取措施避免漏洞被利用。测试方法:检查应用AndroidManifest.XmI中的IargetSdkVersion是否大于等于17。或者使用测试网页进行测试(腾讯的测试页面链接,在被测应用中打开即可。威胁等级:当存在Sdk版本太低时存在WebVieW组件漏洞被利用的可能,此时中风险。当版本高时无风险。2.2敏感信息安全检测客户端是否保存

20、明文敏感信息,能否防止用户敏感信息的非授权访问。对android系统的文件导出可参考5.10.2Eclipseo对android的每一个应用,android系统会分配一个私有目录,用于存储应用的私有数据。此私有目录通常位于/data/data/应用名称/在测试时,建议完全退出客户端后,再进行私有文件的测试,以确保测试结果的准确性。(有些客户端在退出时会清理临时文件)2.2.1 数据文件1 .检查私有目录下的文件权限。测试方法:正常的文件权限最后三位应为空(类似“rw-rw”),即除应用自己以外任何人无法读写;目录则允许多个执行位(类似“rwxrwxx)。如下图所示,SCriPt文件的权限设置不

21、安全,SCriPt可以被任意应用读取。(Iib子目录是应用安装时由android系统自动生成,可以略过)drwrwdrwrwc一X,*wFW*w-1*3XFWXl*Wdrwrwwr-一*wdrwrw一XCV-X一nPPPPPPPPPpPppPppaaa3一3-3-3-3-3-3-3-3一3-3-3一a3-3-3-3-3-3-3-3-31313-3-2013-08-0111:21lib2013-07-2314:28cache2013-07-2314:28Files1986522013-07-2314:28iptables1302762013-07-2314:28redsocks19272013-

22、07-2314:28proxy.sh849162013-07-2314:28cntlm222352013-07-2314:28tproxy6570162013-07-2314:28stunnel2013-08-0205:12shared_prefs1142013-08-0205:12script762013-08-0205:12defout2013-08-0117:37databases注意:当客户端使用MODE_WOR1.D_READAB1.E或MODE_WOR1.D_WRITEAB1.E模式仓IJ建文件时,shared_prefs目录下文件的权限也会多出一些,这不一定是安全问题(GOogl

23、e已不推荐使用这些模式)Iapp_46app_461032013-08-0208:17test3.nlapp_46app_461032013-08-0208:10test2.nlapp_46app_461012013-08-0207:59con.example.iletest_pref1、-1、Q1I.二erenceeXFlJ2 .检查客户端程序存储在手机中的SharedPreferences配置文件。威胁等级:当权限存在问题时低风险,不存在问题时无风险。测试方法:对本目录下的文件内容(通常是Xml)进行检查,看是否包含敏感信息。3 .检查客户端程序存储在手机中的SQ1.ite数据库文件。测试

24、方法:在私有目录及其子目录下查找以.db结尾的数据库文件。对于使用了webView缓存的应用,会在databases子目录中保存webview.db和webviewCache.db,如图所示。其中有可能会记录cookies和提交表单等信息。ECjap-database2012-10-2414:11drwxr国CachedGeoposition.db0201210-2414:11rw-r图Databases.*02012-10-2414:11rw三rvEOlocalstorage2012-10-2612:46drwxrl三lfile_O1IocaIstorage40962012-10-2522:

25、27-rw-r-圜http-www.b_0,localstorage1310722012-10-2612:46-fw-r-Ecache2012-10-2615:31drwrFOWebviewCache2012-10-2615:55drwr*8cf40983226142012-10-2615:55-rw-圜9a68c99515632012-10-2615:44-rw-C3databases2012-10-2615:58drwxr国webview.db143362012-10-2615:58rw-t,图webviewCach.db61442012-10-2615:55rwrvESBlib2012-

26、10-2521:01drwxrE-Shared-PrefS2012-10-2414:43drwxr度IWebViewSettinos-XmI1182012-10-2414:43-rw-r*参考5.13.8数据库文件查看sqlite3,或是使用SQ1.iteStudio,查看、修改数据库文件。威胁等级:若私有目录中存在存储了用户登陆密码(明文或只进行过一次单项哈希散列),手势密码(明文或只进行过一次单项哈希散列)或曾经访问过网址的CoOkie等敏感信息的文件,此时为高风险,若不存在则无风险。4 .检查客户端程序apk包中是否保存有敏感信息。测试方法:参考5.Iapk解包,5.4反编译so库和5.

27、2逆向ClaSSeS.dex,检查apk包中各类文件是否包含硬编码的的敏感信息。对可执行文件可通过逆向方法寻找,也可以直接使用16进制编辑器查找。5 .检查客户端程序的其他文件存储数据,如缓存文件和外部存储。测试方法:参考5.10.2Eclipse,在应用的私有目录以及SD卡中包含应用名称的子目录中进行遍历,检查是否有包含敏感信息的文件。参考5.13.3系统调用记录Strace,查找应用和文件IO相关的系统调用(如OPen,read,Write等),对客户端读写的文件内容进行检查。6 .检查手机客户端程序的敏感信息是否进行了加密,加密算法是否安全。测试方法:查找保存在应用私有目录下的文件。检查

28、文件中的数据是否包含敏感信息。如果包含非明文信息,在JaVa代码中查找相应的加密算法,检查加密算法是否安全。(例如,采用base64的编码方法是不安全的,使用硬编码密钥的加密也是不安全的。)2.2.2Iogcat日志检查客户端程序存储在手机中的日志,测试方法:参考5.10.2ECIiPSe或5.13.9日志查看logcat,检查日志是否包含敏感信息。威胁等级:当1.ogcat日志中会显示用户输入的信息(包括用户名、明文密码或单次哈希的密码)、用户访问服务器的UR1.和端口等核心敏感信息时为高风险;当1.ogCat日志中会显示调用逻辑或一些可供攻击者猜测逻辑的报错时为中风险;当1.ogCat日志

29、中会打出除上述外的一些开发商的调试信息时为低风险;如果不存在上述情况则无风险。2.3 密码软键盘安全性2.3.1 键盘劫持测试客户端程序在密码等输入框是否使用自定义软键盘。安卓应用中的输入框默认使用系统软键盘,手机安装木马后,木马可以通过替换系统软键盘,记录手机银行的密码。测试方法:安装android击键记录测试工具。然后在“语言和键盘设置”中选择“SampleSoftKeyboard。然后启动客户端,在输入框长按,弹出提示框后选择inputmethod(输入法),选择我们安装的软键盘。下图是书写短信息时,使用软键盘输入,在Iogcat日志中可以看到所有的击键。li你按下Bly-IX1.J你按

30、下的。IX1.l你按下Bful1.)你妆下的3l1.你按下的dIX1.)你按下的IX1.I你按下的gK4yCharczrKapBokybArdforid0KyCharacrKttpU”ngdefaultkeysap:sysenusr.dAlvik*GJHXrXRNA1._A1.1.OCfrod143K,Sl203ZK2137K,paused249Xverbo5eH因I:jI2J口CDocumentsandSetH119DCwSSoHt8rr与5554:2.3自威胁等级:当客户端不存在自定义而是使用系统默认键盘时为中风险,客户端存在自定义软键盘时无风险。2.3.2 随机布局软键盘测试客户端实现的

31、软键盘,是否满足健位随机布放要求。测试方法:人工检测。威胁等级:当客户端软键盘未进行随机化处理时为低风险;当客户端软键盘只在某一个页面载入时初始化一次而不是在点击输入框时重新进行随机化也为低风险。233屏幕录像客户端使用的随机布局软键盘是否会对用户点击产生视觉响应。当随机布局软键盘对用户点击产生视觉响应时,安卓木马可以通过连续截屏的方式,对用户击键进行记录,从而获得用户输入。测试方法:使用现有的android截屏工具,连续截取屏幕内容,测试能否记录客户端软键盘输入。检测需较高安全性的窗口(如密码输入框),看代码中在窗口加载时是否有类似下图的代码。按照androidSDK的要求,开启F1.AG_

32、SECURE选项的窗口不能被截屏。注意:F1.AG_SECURE可能存在兼容性问题,能否防护截图可能与硬件有关。publicclassFlagSecureTestActivityextendsActivitydOverridepublicvoidonCreate(BundleSavedInstanceState)super.OnCreate(SavedInstanceState);getWindow().setFlags(1.ayoutParams.F1.AG.SECURE,1.ayoutParams,F1.AG_SECURE)ZsetContentview(R.layout.main);)(

33、目前F1.AG_SECURE测试结果:N-PASS,可截图,ZTE880E,可截图ASUSTF300T,可阻止工具及ddms截图)威胁等级:当使用第三方程序(或系统截屏)可以对客户端内容进行截屏时,为中风险;当客户端会对截屏操作进行有效抵抗时(无法截屏或截屏结果为黑屏等无意义图片)无风险。2.3.4 *系统底层击键记录拥有root权限后,安卓木马可以通过读取系统文件devinputeventN得到键盘码,从而获得用户输入。注意:目前很多android系统不再向event文件输出键盘码,如需测试需先确定键盘输入对应的event文件是否存在。测试方法:运行客户端,在输入密码的同时,参考5.13.4

34、事件操作getevent/SendeVent,在SheIl中使用命令行监控输入。2.4 安全策略设置2.4.1 密码复杂度检测测试客户端程序是否检查用户输入的密码强度,禁止用户设置弱口令。测试方法:人工测试,尝试将密码修改为弱口令,如:123456,654321,121212,888888等,查看客户端是否拒绝弱口令。*阅读逆向后的客户端java代码,寻找对用户输入口令的检查方法。威胁等级:当系统允许用户设置弱密钥时为低风险,如果存在系统存在一定的安全策略(密码使用数字和字母组成,至少为8位)时无风险。242帐号登录限制测试一个帐号是否可以同时在多个设备上成功登录客户端,进行操作。测试方法:人

35、工测试。威胁等级:若同一个账号可以同时在多台移动终端设备上登陆时为低风险,若不可以则无风险。2.4.3 帐户锁定策略测试客户端是否限制登录尝试次数。防止木马使用穷举法暴力破解用户密码。测试方法:人工测试。威胁等级:当系统不存在账户锁定策略时为中风险,若存在则无风险。2.4.4 *私密问题验证测试对账号某些信息(如单次支付限额)的修改是否有私密问题验证。私密问题验证是否将问题和答案一一对应。私密问题是否足够私密。测试方法:人工测试。威胁等级:当用户进行忘记密码操作时,在发送邮件给用户邮箱前是否进行私密问题的验证,若验证则无风险;若不验证则低风险。2.4.5 会话安全设置测试客户端在超过20分钟无

36、操作后,是否会使会话超时并要求重新登录。超时时间设置是否合理。测试方法:人工测试。威胁等级:当系统不存在会话超时逻辑判断时为低风险,若存在则无风险。2.4.6 界面切换保护检查客户端程序在切换到其他应用时,已经填写的账号密码等敏感信息是否会清空,防止用户敏感信息泄露。如果切换前处于已登录状态,切换后一定时间内是否会自动退出当前会话。测试方法:人工检测。在登录界面(或者转账界面等涉及密码的功能)填写登录名和密码,然后切出,再进入客户端,看输入的登录名和密码是否清除。登录后切出,5分钟内自动退出为安全。威胁等级:当移动终端设备进行进程切换操作,显示界面不为客户端页面时,若客户端提示用户确认是否为本

37、人操作,则无风险;若无相应提示则为低风险。2.4.7 Ul信息泄漏检查客户端的各种功能,看是否存在敏感信息泄露问题。测试方法:人工测试。使用错误的登录名或密码登录,看客户端提示是否不同。在显示卡号等敏感信息时是否进行部分遮挡。威胁等级:若在用户名输入错误和密码输入错误时提示信息不同则存在Ul信息泄露问题,此时为低风险,否则无风险O248验证码安全性测试客户端在登录和交易时是否使用图形验证码。验证码是否符合如下要求:由数字和字母等字符混合组成;采取图片底纹干扰、颜色变换、设置非连续性及旋转图片字体、变异字体显示样式等有效方式,防范恶意代码自动识别图片上的信息;具有使用时间限制并仅能使用一次;验证

38、码由服务器生成,客户端文件中不包含图形验证码文本内容。测试方法:人工测试。威胁等级:当图形验证码由本地生成而不是从服务器获取时为中风险;当验证码安全性低或不存在验证码时为中风险;不存在以上两个问题时无风险。249安全退出测试客户端退出时是否正常终止会话。测试方法:检查客户端在退出时,是否向服务端发送终止会话请求。客户端退出后,还能否使用退出前的会话id访问登录后才能访问的页面。威胁等级:若客户端退出登录时不会和服务器进行1.ogO1.lt的相关通信则为中风险,否则无风险。2.4.10 密码修改验证测试客户端在修改密码时是否验证旧密码正确性。测试方法:人工测试。威胁等级:当进行密码修改时是否要求

39、输入原密码已验证其正确性,若需要输入则无风险;如不需输入原密码则中风险。2.4.11 ACtiVity界面劫持检查是否存在activity劫持风险,确认客户端是否能够发现并提示用户存在劫持。测试方法:使用activity界面劫持工具,在工具中指定要劫持的应用进程名称。进程名的获取可参考5.13.2进程查看和监视pstopo如图所示,从列表中选择被测试的应用,点击0K。打开应用,测试工具会尝试用自己的窗口覆盖被测的应用。当测试工具试图显示自己的窗口时,安全的客户端应该弹出警告提示。威胁等级:若客户端无法抵抗ACtiVity界面劫持攻击时为中风险;若可以抵抗攻击则无风险。2.5手势密码安全性2.5

40、.1 手势密码复杂度测试客户端手势密码复杂度,观察是否有点位数量判断逻辑。测试方法:1 .进入客户端设置手势密码的页面进行手势密码设置。2 .进行手势密码设置,观察客户端手势密码设置逻辑是否存在最少点位的判断。3 .反编译APK为jar包,通过jd-gui观察对应代码逻辑是否有相应的判断和限制条件。(一般设置手势密码若输入点数过少时会有相应的文字提示,通过此文字提示可以快速定位到代码位置)威胁等级:当用户设置或修改手势密码时服务器会对手势密码安全性(使用点数)进行判断时无风险,否则低风险。252手势密码修改和取消检测客户端在取消手势密码时是否会验证之前设置的手势密码,检测是否存在其他导致手势密

41、码取消的逻辑问题。测试方法:1 .进入客户端设置手势密码的位置,一般在个人设置或安全中心等地方。2 .进行手势密码修改或取消操作,观察进行此类操作时是否需要输入之前的手势密码或普通密码。3 .观察在忘记手势密码等其他客户端业务逻辑中是否存在无需原始手势或普通密码即可修改或取消手势密码的情况。4 .多次尝试客户端各类业务,观察是否存在客户端逻辑缺陷使得客户端可以跳转回之前业务流程所对应页面。若存在此类逻辑(例如手势密码设置),观察能否修改或取消手势密码。5 .反编译APK为jar包,通过jd-gui观察对应代码逻辑,寻找客户端对于手势密码的修改和删除是否存在相应的安全策略。威胁等级:当取消或修改手势密码时,如果不会验证之前的手势密码则为中风险;若存在验证则无风险。2.5.3手势密码本地信息保存检测在输入手势密码以后客户端是否会在本地记录一些相关信息,例如明文或加密过的手势密码。测试方法:1 .首先通过正常的操作流程设置一个手势密码并完整一次完整的登陆过程。2 .寻找datadata的私有目录下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号