




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
梆梆安全 BANGCLE 梆梆 Android 移动应用功能及技术说明基于虚拟机沙箱的移动应用加固7/8/2014 目录1安全加固技术概述 . 32安全产品及服务列表 . 32.1梆梆安全产品及服务表 . 32.2应用加固服务功能简介 . 43反编译保护 . 53.1必要性 . 53.2技术原理 . 63.2.1Java 代码保护原理 . 63.2.2HTML 开发框架保护原理 . 103.2.3技术参数 . 114客户端防篡改保护 . 114.1必要性 . 114.2技术原理 . 124.3技术参数 . 125客户端反调试保护 . 135.1必要性 . 135.2技术原理 . 145.3技术参数 . 156客户端本地数据加密保护 . 156.1必要性 . 156.2技术原理 . 166.3技术参数 . 177客户端 SO 库加密保护 . 187.1必要性 . 187.2技术原理 . 187.3技术参数 . 198SO 库与应用绑定 . 208.1必要性 . 208.2技术原理 . 208.3技术参数 . 209关于梆梆安全 . 21梆梆安全产品及服务表1安全加固技术概述梆梆向客户提供的 Android 移动应用加固技术包括:1.反编译保护2.客户端防篡改保护3.客户端反调试保护4.客户端本地数据保护5.SO 库文件加密6.SO 库文件绑定2安全产品及服务列表2.1功能项功能描述防反编译防调式防篡改环境适配性检测基本加固功能及标标准版安全测评准型服务(安全检测、标准型风险评估、标准型漏洞扫描)标准型服务一年(5*8 400 电话指导;5*8 远程在线指导;系统更新推送) 应用加固服务功能简介JAVA 源代码动态加密基于开发框架的应用代码加密(PhoneGap, AppCan 等)应用包资源文件加密(图片,音频,视频,配置文件等)本地数据保护高级安全加固服务SO 文件保护应用资源文件加密应用框架加密云加固模式标准 WEB 梆梆加固助手客户端私有云安全 SDK 安全键盘防界面劫持防录屏清场高级定制安全服务渠道监测服务高级型技术服务7*24 400 电话指导7*8 远程在线指导(一年)2 次/年上门售后服务其他定制化服务2.2反编译保护:lll客户端防篡改保护:l移动应用完整性校验l防篡改及二次打包客户端反调试保护:l移动应用反调试及反动态劫持客户端本地数据保护:l移动应用本地文件的动态加解密,支持所有文件格式,支持任何文件操作方式l加密数据与设备绑定SO 库文件加密:lSO 库代码段加密lSO 库 ELF 头加密lSO 库数据段加密lSO 库函数表加密l支持 SO 库执行代码的动态解密及销毁SO 库文件绑定:lSO 库与移动应用绑定,只能在指定应用使用3反编译保护3.1必要性Android 平台采用 Java 语言进行开发,由于 Java 语言很容易被反编译,同时反编译后的代码接近源代码的级别,易读性极高。由于 Java 反编译的结果是易读性极高的代码,这样就暴核心代码不被逆向分析客户端已有的安全逻辑不被绕过内嵌加密算法及密钥等不泄漏露了客户端的所有逻辑,比如与服务端的通讯方式,加解密算法、密钥,转账业务流程、软键盘技术实现等等。因此有必要对 Java 代码进行加密保护。梆梆加固技术能针对以下攻击情况进行保护:l借助于梆梆安全加固所提供的源代码加密保护技术,可以保证用于实现核心业务的代码不被攻击者通过逆向工具进行软件逆向分析。根据梆梆安全对移动客户端安全攻击事件的分析,源代码分析往往是很多恶意攻击所必须的第一个步骤,通过安装包的逆向分析,可以帮助攻击者精准实现动态注入或者劫持类攻击。当客户端所有的源代码都被加密保护后,可极大提高攻击门槛,构筑移动客户端防御第一道防线。l移动客户端往往会实现一些如签名校验,证书校验等安全功能或者会嵌入一些安全的SDK(例如软键盘组件)。通过源代码加密,可以让攻击者无从锁定这些关键代码,更无法通过篡改代码来绕过安全逻辑。l针对 APP 在本地实现的对称加密逻辑,源代码加密可以保护加密算法及内嵌密钥,保证被加密算法以及加密的密钥不被攻击者通过逆向分析得到。3.2技术原理3.2.1Java 代码保护原理Android 平台采用使用 Java 作为原生语言进行开发。在最终的安装包中,所有的 java 代码编译并打包到 APK 中的 classes.dex 文件中,java 代码的保护的目标就是 classes.dex。目前针对 java 代码的保护技术有以下两代保护技术。第一代保护技术l第一代保护技术基于类加载的方式来实现的,基本原理是对 classes.dex 这个文件进行整体加密,存放在 APK 的资源中,运行时将加密后的 classes.dex 文件在内存中解密,并让 Dalvik虚拟机动态加载执行。第一代加固技术的执行流程如下:1)打包时,将原安装包的 classes.dex 文件提取并进行加密2)将加密后的 classes.dex 文件存放在资源中。3)修改原安装包的程序入口,保证解壳代码会先执行4)运行时,解壳代码会先把资源中的加密后的 classes.dex 文件加载到内存中,5)在内存中解密该文件,然后利用 Dalvik 的类加载机制动态加载解密后的代码6)加载结束后,将程序的控制权交给解密后的代码,解密后的代码开始执行相关的操作。图 1 第一代加固技术的执行流程第一代加固技术能够对抗静态分析,但也存在一个严重的缺陷:由于针对 classes.dex 文件进行整体的加解密操作,运行时在内存中存在连续完整的解密后的代码,通过修改 Dalvik 虚第二代加固技术拟机就有可能通过内存 dump 的方式获得解密后的代码。虽然可以采取一些 patch 的方法来增加破解难度,例如类加载结束后,抹掉或者混淆内存中 dex 文件的头部或者尾部信息,但这些方法都是治标不治本的措施,无法从本质上解决内存 dump 的问题。因此第一代加固技术难以对抗动态分析,可以通过内存 dump 来进行破解。l第二代加固技术采用基于方法替换的方式来实现的。针对第一代加固技术能被内存 dump这一弱点进行改进,极大提高的应用的安全性。其基本原理是利用利用 java 虚拟机执行方法的机制来实现。 Java 虚拟机在第一次执行某个类的某个方法前,才真正开始加载这个方法的代码。利用这个机制第二代加固技术将解密操作延迟到某个方法在确实要执行之前, 才对该方法进行解密,同时解密后的方法的代码在内存中是不连续的存放。另外,如果某个方法没有被执行到,则该方法不会被解密。第二代加固技术就是利用虚拟机执行方法的机制,在加固时对代码中的每个方法做单独加密,而在运行时动态解密当前执行方法。下图是加密前后 classes.dex 文件中的代码对比图 2 第二代加固技术加密前后代码对比第二代加固技术的执行流程如下:1)打包时,将原 APK 中的所有方法的代码提取出来,单独加密到一个文件2)运行时,加固引擎首先会动态修改当前进程 Dalvik 虚拟机,初始化动态解密的虚拟机适配层。3)当 Dalvik 虚拟机要执行某个方法时,加固引擎才解密该方法的代码,并将解密后的代码交给虚拟机执行引擎执行。图 3 第二代加固技术的执行流程第二代加固技术的主要优点:1)加密粒度变小第二代加固技术的加密粒度从第一代的 Dex 文件级别变为方法级别2)按需解密第二代加固技术采用按需加密的方式,解密操作延迟到某个方法在确实要执行之前才触发,如果方法不被执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江永县2025年三下数学期末预测试题含解析
- 山东省阳谷县第二中学2024-2025学年高三3月月考调研考试物理试题含解析
- 山西管理职业学院《工程安全与环境保护》2023-2024学年第二学期期末试卷
- 郑州美术学院《植物学》2023-2024学年第二学期期末试卷
- 吉林省长春市重点名校2025届初三3月三校联考-生物试题含解析
- 天津大学《果蔬贮藏技术》2023-2024学年第二学期期末试卷
- 喉癌放疗患者护理查房
- 护理服务态度投诉零容忍
- 销售培训与提升策略
- 2025水利工程修复合同
- 罗才军两茎灯草
- 网络存储技术应用项目化教程
- 2023年安全员-A证(江苏省)历年真题附答案(难、易错点剖析)
- 全国优质课说课比赛一等奖高中化学《苯酚》说课课件
- 幼儿园废旧材料的研究 论文
- 产能分析报告模板及指标明细
- 张力放线工器具配备表
- 食品小摊贩备案卡(样式)及说明
- 沥青混凝土面板单元工程质量评定表
- 针刀操作安全区带
- THBFIA 0004-2020 红枣制品标准
评论
0/150
提交评论