@devilogic
2016-03-08T15:05:37.000000Z
字数 2845
阅读 1443
娜迦
总价:10万
项目名称 | 说明 |
---|---|
Dex类抽取模块 | 将每个类进行分布加密,哪个类运行,哪个类才进行解密 |
Dex类抽取回填模块 | 对类抽取模块的支持,当类运行完毕后,进行加密回填 |
Dex文件分割 | 将一个Dex文件分割为数个小的Dex文件,在内存中拆散,加强还原难度 |
Dex文件畸形头 | 将一个正常格式的Dex文件修改为畸形头的Dex,防止一些逆向工具进行静态逆向 |
总价:40万
项目名称 | 说明 |
---|---|
SO文件代码段加密 | 使用壳对代码段进行加密 |
SO文件符号表加密 | 对目标文件的符号表进行加密,使得从外部无法读取符号表 |
ARM体系重定位表加解密 | 在ARM体系下使用重定位表机制进行自动解密 |
隐藏壳入口点 | 隐藏保护壳的入口点,防止黑客进行壳代码定位 |
自定义SO格式 | 将目标文件的标准ELF格式进行分解成NAGA的自有格式,防止逆向还原 |
虚拟环境 | 使用NAGA自定义的加载器对被保护的SO进行加载,脱离ANDROID本身的系统机制 |
总价:20万
经过我们的分析飞贷操作私钥是在一个SO文件中进行的,我们的重点是要保护私钥不被拿走。所以这里我们采用专门对飞贷的壳进行特殊化的定制,此壳与NAGA其他保护产品的壳段绝非同一个壳段,是按照飞贷的情况,进行定制化开发。从安全,体积与速度上更适合飞贷的情况。
总价:20万
项目名称 | 说明 |
---|---|
IOS安全编译器 | 在编译IOS程序时,对目标进行代码乱序,混淆操作 |
ELF安全编译器 | 在编译Android SO时,对目标进行代码乱序,混淆操作 |
总价:5万
项目名称 | 说明 |
---|---|
调试器进行黑白名单 | 建立黑白名单机制,当发现调试进程名时退出程序 |
调试器内存标志检测 | 当调试器运行时,会修改内存中的一些标志,当发现这些标志修改时,退出程序 |
反Hook机制 | 保护程序会对关键的库函数,做整体的映射校验,当HOOK操作改变映射时,保护程序检测到退出程序 |
总价:10万
在APP启动之后,壳体会检测内存中是否存在有可能对飞贷程序造成威胁的程序,如果发现则立即退出。
总价:10万
此模块将飞贷的SO与DEX文件做调用性绑定,外部程序不能通过dlopen等函数调用飞贷的SO接口,如果有黑客将其SO程序放置到它自己的包中进行模拟调用,则他的测试APP包运行崩溃。飞贷的SO只可以由飞贷自身的DEX调用。
总价:5万
飞贷的项目会在下述基础上进行速度与体积针对性的优化。
娜迦采用的是程序代码与数据形成密钥关联的方法,实现二次打包的原则,而不是仅仅采用验证文件签名的方法。
娜迦加密任何数据以及代码,使用相互验证原则,例如:加密A文件必将用B文件的HASH进行加密,这样当黑客修改了B文件那么A文件将不能得到正确的解密结果。
加解密函数以及私钥推导函数都是在运行期间才会解密,运行完毕又加密回去的,在很大程度上造成了对破解者的逆向分析难度。
总价:15万
以下为NAGA的壳的独有技术,只在定制客户的APP中使用。
每次对DEX文件或者SO文件进行加密时,变形密码算法模块会随机生成一个世界上独一无二的加密算法。并生成变形密码算法虚拟机独有的加密与解密算法的字节码文件。加密时调用一组字节码,当解密时调用解密算法的字节码进行解密,这样当对目标程序保护一次,密码算法变形一次。防止脱壳机的生成。
项目名称 | 单价(万) | 个数 | 总价(万) |
---|---|---|---|
软件质量测试 | 0.2 | 24 | 4.8 |
此检测项目是考虑到飞贷的有效版本更迭周期,忽略了小版本的迭代,半个月一次更新,NAGA每次做300台手机的人工实测,其中包含了原包与加壳后的两个测试。6个测试人员,1个工作日完成。保证当天出测试结果。
项目名称 | 单价(万) | 个数 | 总价(万) |
---|---|---|---|
APP安全常规测试 | 2 | 12 | 24 |
出于对飞贷大版本更替的考虑,只需要一个月一次在遇到大版本升级时,做对APP本身的常规安全检测,这项检测主要针对的是程序员在开发过程中由于编码习惯以及使用组建不得到可能会造成的一些安全隐患进行检测。并提出修复意见。此项测试由NAGA攻防实验的逆向工程师完成,一次检测时间为5个工作日。
项目名称 | 单价(万) | 个数 | 总价(万) |
---|---|---|---|
APP软件安全测试 | 10 | 6 | 60 |
在做大版本升级或者改动比较大的迭代时,NAGA攻防实验室对软件本身做实际的黑客模拟攻击,进行真实的软件逆向从中发现APP的本身的漏洞,这些漏洞可能对APP业务操作极大的安全隐患,所以我们会剖析软件所有流程以及关键点,随后给出修正意见,以及对应的修整方案。一般此项测试需要花费在10个工作日。这里用的时间比较长,是因为我们要从头剖析整个软件系统。
在软件测试之后,会给出修改与整改意见,整个服务贯穿整个服务期。NAGA会派专人来负责对飞贷整个软件安全的项目对接与实施评估。
负责人:阎文斌(娜迦CTO)、马宏亮(娜迦项目总监)
由于时间有限,这里仅分析了问题较大的三个问题。由于问题比较明显,所以这里以非正式文档给出。
私钥获取函数:
公钥、私钥信息:
脱壳后解密函数使用私钥解密:
脱壳后发现加密函数使用公钥加密: