欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    2022App安全检测指南.docx

    • 资源ID:1268661       资源大小:363.89KB        全文页数:61页
    • 资源格式: DOCX        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022App安全检测指南.docx

    APP安全检测指南0x01前言前一段时间业务应求,需要测试一个APP,谷歌、百度、土司和九零搜索了一下,发现这方面的资料太少了,完整的测试流程、测试概要更是没有。所以有了这篇文章。文章通过业务中的测试要点(如下图)进行了实例测试或者说明,同时参考了公司的APP测试白皮书进行了补充说明,算是一个手册吧。APP渗透测试要点(安卓)客户端程序安全安装包签二进程保护内存访问和修.反编译保护动态注入应用完整性校检通信加密组件安全证书有效性敏感信息安全数据文件通信安全关键数据加密和校检1.ogcat日志访问控制密码安全键盘劫持客户端更新安全性随机布局软键盘短信重放攻击屏幕录像越权操作密码策略设置密码复杂度检测交易篡改账号登陆限制业务安全重放攻击账户锁定策略用户枚举问题验证暴力破解会话安全注入ZXSS/CSRF界面切换保护Ul信息泄露验证码安全安全退出密码修改验证其他其他ACtiVity界面劫持声明:木文章仅作为业务中的APP渗透测试指南使用,请勿用于非法行为。本文首发于土司,禁止任何人转载!谢谢!0x02测试环境SDKJavaJDK,AndroidSDK工具7zip,dex2jar,jd-gui,apktool,activity劫持测试工具等(部分工具见附录下载)0x03客户端程序安全1.安装包签名描述在Android中,包名相同的两个APK会被认为是同一个应用。当新版本覆盖旧版本时,签名证书必须一致,否则会被拒绝。(即使开启了“允许未知来源的应用").如果APK没有使用自己的证书进行签名,将会失去对版本管理的主动权。本项检测是检测客户端是否经过恰当签名(正常情况下应用都应该是签名的,否则无法安装),签名是否符合规范。测试步骤使用JDK中的jarsigner.ex。检查安装包的签名,命令如下:jarsigner.exe-VerifyAPK文件路径-verbose-certs以土司APP为例,测试结果如下:sm22994FriMar3115:30:58CST2017META-INF/1.ICENSEX.509,CN=t001s,OU=tOOis,0=t001s,1.=t001s,ST=t001s,C=t001s证书的有效期九17-3-26下午11:02至42-3-20下午11:02CertPath未验证:Pathdoesnotchainwithanyofthetrustanchorss34604FriMar3115:30:58CST2017META-INF/MANIFEST.MFX.509,CN=t001s,OU=tOO!s,0=t001s,1.=t001s,ST=t001s.C=t001s证书曲有唬如为H-3-26下午11:02至42-3-20下午11:02CertPath未验证:Pathdoesnotchainwithanyofthetrustanchors34633FriMar3115:30:58CST2017METATNF/CERT.SF1326FriMar3115:30:58CST2017META-INFCERT.RSAs=已验证签名m二在清单中列出条目Ii=在身份作用域内至少找到了一个证书jar己验证。蹩告:二:ar包含证书链未验证的条目。如上图,说明测试结果为安全。要说明的是,只有在使用直接客户的证书签名时,才认为安全。Debug证书、第三方(如开发方)证书等等均认为风险。如下图就是认为存在风险:APK包名:com.启动组件:com.activity.MainActivity签名信息:Sm6471440TueMay1010:11:48CST2016classes.dexX.509,C=US,O=Android,CN=AndroidDebug证书的有效期为16-4-18下午9:32至46-4-11下午9:32CertPath未蛤证:Pathdoesnotchainwithanyofthetrustanchors威胁等级安装包签名的威胁等级判断一般如下:若客户端安装包签名有异常(例如签名证书为第三方开发商而不是客户端发布方),此时高风险;若无异常则无风险。安全建议将安装包进行签名并检测安装包签名的异常。2.反编译保护描述测试客户端安装程序,判断是否能反编译为源代码,java代码和so文件是否存在代码混淆等保护措施。未作保护的java代码,可以轻易分析其运行逻辑,并针对代码中的缺陷对客户端或服务器端进行攻击。成功的反编译将使得攻击者能够完整地分析APP的运行逻辑,尤其是相关业务接口协议、和通信加密的实现。科普smali语言是一种Android系统特有的中间代码语言。Android翻的JVM与其它常见操作系统有所区别,使用DalVik指令(可执行文件为*.dex)代替了通常的JVM中间代码(可执行文件为*.class、*.jar)。对应Dalvik指令的“汇编语言”便是smali0因此,从*.dex中恢复SnIaIi代码比恢复JAvA代码要容易,成功率更高,但可读性差。尽管如此,如果APK经过花指令处理,也会导致无法恢复smali彳弼(表现为apktool解包失败)。测试步骤把apk当成ZiP并解压,得到classes,dex文件(有时可能不止一个dex文件,但文件名大多类似),如下图:TOOIs名称修改日期逊大小assets2017/7/1715:52文件夹META-INF2017/7/1715:52文件夹org2017/7/1715:52文件夹res2017/7/1715:52文件夹*AndroidManifest-XmI2017/3/3115:30XM1.g3KBQclasses.dex2017/3/3115:30DEX2,200KB1resources.arsc2017/3/3115:18ARSC文件179KB使用dex2jar执行如下命令:dex2jar.batclasses.de×文件路径E:APPdex2jar)dexmar.ba:casse'.d:xEyPTQO(sflasses,dexthiscmdisdeprecared,usemec?j-*<zjdr11possibleex2jarversion:translator-0.0.9.15ex2jarclasses,dex->classes_dex2jar.jar.whileprocessfile:classes,dex1.ROOTcause:java.io.FileNotFoundException:File,classes.dex,doesnotexistatorg.apache,commons,io.FileUtils.openInputStream(FileUtils.java:56)atorg.apache,commons,io.FileUtils.readFHeToByteArray(FiIeUtiIs.java:40)atcom.googlecode.dex2jar.reader.DexFileReader.readDex(DexFiIeReader.java:143)atcom.googlecode.dex2jar.v3.Main.doFile(Main.java:63)atcom.googlecode.dex2ja午v1.Mc<jmetW<1.jvHgG)ex2jarE:APPT001sclasses.dex->E:APPT001sclasses_dex2jar.jarDon.J得至Iclasses.dex.jar>TOOIs名称修改日期assets2017/7/1715:52META-INF2017/7/1715:52文件夹org2017/7/1715:52文件夹res2017/7/1715:52文件夹-AndroidManifestxmI2017/3/3115:30XM1.在3KB,classes.dex2017/3/3115:30DEX文件2f200KBclassesde×2jar.jar2017/7/1716:04JAR文件1,998KBresources.arsc2017/3/3115:18ARSC文件179KB然后使用jd-gui打开jar文件,即可得到JAVA代码。【注:直接使用mali2java打开apk文件,也可反编译回JaVa代码。】【注:有时用apktool能够解包并查看smali,但dex2jar却不行。如果dex2jar反编译失败,可以试试看能不能恢复SmaIi代码。】如上图,逆向后发现是没混淆的情况,是不安全的。如果代码经过混淆,或者有加壳措施,不能完整恢复源代码的,都可以认为此项安全。下图为混淆后的代码样例,除了覆写和接口以外的字段都是无意义的名称:HeMSMaMeMepfoaAmx3d8af”Jaklamxo“MbCsjE)z)团团2lEIl2)jz)团曲)z)团E)团)tgz)tgz)l(z)(-囹S-ffiffi-®-®-卧®-®-®-®-®-9-®-e-ffiS-囹¢-囹S-ffi8-ffi-即ab.dassaa.cbssae.8ssaf.dassag.chss.dassa1.cbssac.dass×packagecon.hexview.android.senspector;publicfinalclassac(publiclonga;publicbyte)b:publicintc:publicfinalStringa(ntprntfStringparaaStrog)IInt10;thi.cpranlnc;Stringcr2;If<praxString.le»gth<)<-0)(str2""Valueexpected*;returntr2;)IC<(prmnt0)11(p«r«nlnt1)11(pr*Blnt-2)>:Sule(true)(tryIntJ-Integer.4ecode<p*ranScrlog>.InrVaiueo:Iffswitch(parasdnc)(default:returneIavallddatatype"casO:case1:C<*?威胁等级若客户端进行加壳保护,此时认为无风险。若大部分代码(包括核心代码)经过混淆,此时低风险。若部分代码混淆,关键代码(加密或通信等)可以获知其关键代码,此时中风险。安全建议建议客户端程序可以把关键代码以JNl方式放在so库里。so库中是经过编译的arm汇编代码,可以对其进行加壳保护,以防止逆向分析。3.应用完整性校检描述

    注意事项

    本文(2022App安全检测指南.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开