2022APP安全评测指导手册.docx
APP安全评测指导手册2022一、敏感数据暴露3(一) 明文传输用户名、密码和验证码等敏感信息3(二) 不安全的本地存储5(三) 泄漏后台服务器地址,导致服务器可控6(四) 边信道信息泄漏6二、鉴权机制缺陷8(五)未使用有效的token机制,导致可以绕过鉴权8(六)传输数据可修改,造成越权访问9卜七)登录设计缺陷,存在被暴力破解风险10(八)利用业务逻辑缺陷制作短信炸弹13三、钓鱼劫持风险15(九)关键页面存在钓鱼劫持风险,导致用户信息泄露15四、代码保护不足16(十)可以重新编译打包16(H)WebVieW漏洞17(十二)Web表单设计缺陷,存在SQ1.注入漏洞18五、公共组件漏洞20(十三)组件ContentProvider配置错误,导致数据泄漏20(十四)组件ACtiVity配置错误,导致登录页面被绕过21(十五)组件SerViCe配置错误,导致非法权限提升22(十六)组件BrOadCaStReCeiVer配置错误,导致拒绝服务、非法越权23六、应用配置错误24(十七)开启allowbackup备份权限,存在备份数据泄露风险24(十八)开启DebUggabIe属性,存在应用信息篡改泄露风险26七、XCOdeGhOSt病毒26(十九)下载非官方开发工具,导致IOS版本APP被植入恶意代码.26八、开发者证书不规范29(二十)开发者证书不规范,导致开发者身份信息不明29一、敏感数据暴露(一)明文传输用户名、密码和验证码等敏感信息整改优先级:高问题描述:用户登录过程中,在与服务器端交互时明文传输用户名、密码或者验证码等,可导致用户敏感信息泄露。检查方法和步骤:1.对模拟器进行设置,从Setting开始设置依次选择more÷Mobilenetworks÷AccessPointNames÷TeIKiIa÷PrOXy:修改IP地址为虚拟机的IP地址。SSS4Appl>se图1.模拟器设置5554AppUs图2.模拟器设置SSS<AppUseAA10:11<MobilenetworksettingsDataenabledEnabledataaccessowMobileUfwtworDataroamingConnecitodataBerViCCwhenroamingAccessPointNamesUseonly2Gnetworks5vesbA<te<yNetworkoperatorsCbOOMMWOffcOpfft1Of图3.模拟器设置555CAppUS10:12IIBAPNs:O0©0TeIKiIa.Itfwi的EEPlEEraJEnnFFfEEFBEEEEEraEQ的强墨弱黯图4.模拟器设置5SS4:AppUse图5.模拟器设置2.BurpSuite设置,在PrOXy选项页里的Options中进行设置,在Proxy1.isteners中增加虚拟机IP地址的8080端口。TargetPrQIVJSPigrS<amrInKrUrjRpMrSquncrDcorComPx”EtndrOpt>omMertt"1l11tfc甲HTTPhmory">SoctUhmor>OpUons4urpPrwyUtW<ortoHTTFrtMcfromyourbrows”youwtl11<dt。corA9uf*yo$rbrowrtoucnGMInttnersttproyt<vtfIMtEcRttaHabccofBurpgnrMt<tosCAcwtlkMthatPrOMylstnrscanm*nn90t>M2SS1.co(>ctiorH.Youcannvp<e<o<ttcnfcMforustnc<hrtooHOfar<rrtstaMMon0#Burp.ICAcrt4c”.interceptOIentRequesK5tfWtc9"。(8KBrquttfirM18forf09M*8EGthfcfXtbmtrc4p<SUXHb-8thSiIOfgk:AddEnabledOperatorMaUhgeReletwnhpCOnabOn0iSr5im*onC>totmatch<*<l*i>9»P<*Jctill*I皿11.JOrRquttContamiPeflm«.Orx11,m4d0tno<mM<h(90C)IIMdUR1.Hntr9tcop图6.BurpSuite设置3.利用BurpSuite对被测应用进行监听。确保BurpSuite上的“interceptisOn(监听是打开的)”。然后点击登陆.。登陆请求将被BUrPSUite监听拦截到。心哪SpderjScanw;mu*R即小式12mc<rDcoe<fConpref;KeMyW63AJMS-:KnPhsc<y'*%ketshistory;OPtxnS|/GRequesttohttps;0reg.l63.co!R443(61.135.25(lX)IFCnBgrdJCropTierceftisonAcun,R三PyamSJHeaderSJHex(确1.jipTtype=!即Wta=16轴url=tepyAMFH7mm11xx1.16amPFetmaytE2Jetdcgd11kE873Dl02vwtoe7$D1%笫此供OQ3D226矶出依DM。兜幺=%D192168l依心/MdfMDttaartjmdrcdHTTBllH<×t:re.l0mCoraed>x:keep*leRererhft"sBart4aaiH63.m/MrXfBartCx11em-1.eh:99CiAe-CxKwl:naxa5t三OOrgkct:1enact.mai1.1$3.ccmCrteni-TjT*:叩PhJiiXvXwwwfznurQcodMAne内m1.apphoticn!skD1.3pplit>x'xskO.9.t*isO.8X2exed-Wkh:cn.niitrCTrserUserAfitMM-,1.mnx;U;An)14.2.1;如,叫gwgkiBrd,B.MRl.lAppWt½t10KH7MUIiktC<oVf×D4.0McbikSaftn'湖觇Aat-MdDgtgzi.de!bteAcoept-1.uBe:enUSAmfi-Chartft:1df8l&4W91.UtGI6.;IXOI图7.BurpSuite设置检查工具:BurpSuite等抓包分析工具整改建议:在被测应用与服务器交互过程中,对用户名、密码和验证码等敏感信息进行加密传输。(一)不安全的本地存储整改优先级:高问题描述:安卓开发者使用多种方法将数据存储在安卓应用中,而存储在本地的数据文件如果未加密,易造成敏感信息泄漏。检查方法和步骤:1. SharedPreferences是用key-value来存储私有的原始数据的xml文件。数据类型有布尔型,浮点型,整形,长整型和字符串。通常情况下存储的路径为:datadata<packagename>shared-prefs<filename.xml>o直接打开查看是否有敏感数据。2. SQ1.ite数据库是轻量级基于文件的数据库。这些文件通常以db或者sqlite结尾。安卓默认提供了大量SQ1.ite支持。应用的数据库一般存储在下面的地方:datadata<packagename>databases<databasename.db>,可以使用SQ1.ite数据库直接打开查看是否有敏感数据。3. 检查SD卡目录中是否存在敏感数据。检查工具:SQ1.ite数据库整改建议:对存储在本地的数据文件进行加密。(三)泄漏后台服务器地址,导致服务器可控整改优先级:高问题描述:在使用BUrPSUite等工具对应用进行监听的过程中,发现后台服务器地址。对后台服务器进行测试,若后台服务器存在漏洞,则可控制后台服务器。检查方法和步骤:1 .利用BurpSuite对被测应用进行监听。确保BurpSUite上的interceptisOn(监听是打开的)对监听到的数据包进行查看,是否有后台服务器地址。2 .如果发现后台服务器地址,则对其进行安全测试,检查其是否存在SQ1.注入、struts2等后台服务器漏洞。检查工具:BurpSuite>SQ1.注入检查工具、StnJtS2漏洞检查工具整改建议:对后台服务器进行安全加固,后台服务器需要按照中国移动相关安全规定进行配置,注意口令强度,后台配置页面原则上不能由公网随意访问等。(四)边信道信息泄漏问题描述:当APP处理用户或其它数据源输入的数据时,可能会把数据放在不安全的位置,容易导致边信道被攻击者利用造成信息泄露。检查方法和步骤:1. AndrOid提供的日志功能是一个会造成信息泄露的地方,日志一般是开发者在开发期间调试使用的。查看日志的方式有两种:1)使用EdiPSe:在1.OgCat选项卡中看到应用运行期间输出的所有日志信息,其中可能就会有一些敏感信息。bktnsAJvd&c、De<UrM*onOComole01.09Ct:.:tPropertittSr<h,Orm«$>9CSaACCf<9mtPrdlw4hR>PFu9"CotgIlrnltyoPCvw0tHKTnPIDTDAppbc4t>onT9TBt042314:8:3.<41644“c*i>l.t<r<pp105X9eotcr*4PMb-U'-*cU.X04-2314:00:4.441<44X6CQflUX*3ur1.OGTlCeavre<lprwoE1p*vordSuc<erulAttespt图8.Eclipse中的日志信息2)使用adb:使用命令#adbIogcat在终端中打印出所有的日志。通过Iogcat的选项来过滤感兴趣的内容。或者通过命令#adbIogcat>output.txt,将日志保存到电脑本地,以便后期进一步分析。- Vverbose打印详细- ddebug打印调试级日志- Iinformation打印提示级日志- eerror打印错误级日志- Wwarning打印警告级日志beginnin«ofZ<UvZloaZsyBtmlvlty6rvic<1272>th”HngIi";ervftce<1Z72>:Done.Svrvlce<1272>:Sellinti*orfor72f>acondunt*MdP4t*ordt«passIxiffinFa1ldI6e2mU,W>HrBH11r-*ry5»WrVt_Tlc>c.oudIoScrvice<1272>:Sountf