mobileappsecurity.ppt
1,mobile APP security 交流,碳基体(dani),2,我是谁,产品安全工程师APP securityweb app,页游,手游(iOS&Android),3,主题,1.mobile APP主要威胁2.mobile APP安全管理流程,4,mobile APP 主要威胁iOS,1.IPA破解2.IAP解锁(in-apple-purchase)3.存档修改4.内存修改5.封包修改6.越狱检测绕过7.patch mach-o executable,5,IPA破解方法1,方法1:破坏DRM数字版权保护技术,去处数字签名,取消IPA对apple帐号的绑定,允许没有合法签名的程序在设备上运行。(适用于非越狱机),6,IPA破解方法1,条件一:设备越狱,获得root权限,去除掉设备上的签名检查,允许没有合法签名的程序在设备上运行代表工具:AppSync for iOS 5.0+工具原理:使用MobileSubstrate来hook libmis.dylib库的MISValidateSignatureAndCopyInfo函数来绕过签名验证,7,IPA破解方法1,条件二:解密的mach-o可执行文件代表工具:Clutch,Crackulous工具原理:从内存中导出解密部分,8,IPA破解方法2,方法2:代表工具:PP助手,快用助手工具原理:将正版购买相关信息同步到设备上,让其通过签名检查。返回,9,IAP解锁,什么是IAP游戏关卡,游戏道具built-inserver,10,IAP解锁,11,IAP解锁,12,IAP解锁-方法1,方法1:使用免费内购工具代表工具:IAP cracker,IAP Free,LocalIAPStore工具原理:伪造交易状态,伪造收据,13,IAP解锁-方法1:IAPCracker,原理:在客户端将transactionState修改为SKPaymentTransactionStatePurchased来欺骗应用程序下发购买内容,14,IAP解锁-方法1:IAP Free,15,IAP解锁-方法1:IAP Free,16,IAP解锁-方法1:LocalIAPStore,17,IAP解锁-方法2:MITM,原理:证书伪造,DNS欺骗,模拟app store server进行Receipt验证,18,IAP解锁-方法2:MITM,19,IAP解锁-方法2:MITM,20,IAP解锁-方法2:MITM,21,IAP解锁-方法3:存档替换,原理:通过文档替换或覆盖来解锁,我们知道应用购买前后安装包中的Documents和Library目录发生的变化,就是解锁的内容。因此可以通过对比这两个目录的区别来完成IAP内购破解,22,IAP解锁-方法3:存档替换,返回,23,存档修改,24,存档修改plist,25,存档修改sqlite3,26,存档修改json,27,存档修改base64,28,存档修改十六进制,返回,29,内存修改,30,内存修改,返回,31,封包修改,返回,32,越狱检测绕过,越狱检测方法1:检查常见的越狱文件是否存在,33,越狱检测绕过,越狱检测方法2:检查/etc/fstab的大小,该文件描述系统在启动时挂载文件系统和存储设备的详细信息,为了使得/root文件系统有读写权限,一般会修改该文件。虽然app不允许查看该文件的内容,但可以使用stat函数获得该文件的大小。在iOS 5上,未越狱的该文件大小未80字节,越狱的一般只有65字节,在安装了xCon的越狱设备上运行,result的大小为803705776;卸载xCon后在越狱设备上运行,result的大小为66,34,越狱检测绕过,越狱检测方法3:检查特定的文件是否是符号链接文件,iOS磁盘通常会划分为两个分区,一个只读,容量较小的系统分区,和一个较大的用户分区。所有的预装app(例如appstore)都安装在系统分区的/Application文件夹下。在越狱设备上,为了使得第三方软件可以安装在该文件夹下同时又避免占用系统分区的空间,会创建一个符号链接到/var/stash/下。因此可以使用lstat函数,检测/Applications的属性,看是目录,还是符号链接。如果是符号链接,则能确定是越狱设备,35,越狱检测绕过,越狱检测方法4:检测dylib(动态链接库)的内容,36,越狱检测绕过,原理:hook常见的越狱检测方法,fileExistsAtPath:fileExistsAtPath:isDirectory:filePermission:fileSystemIsValid:,返回,37,patch mach-o executable,通过对已破解(ipa cracker解密后)的mach-O executable文件进行动态调试和静态反汇编逆向分析,还原软件的整体结构,通过对相应的函数进行修改(也是常说的API hooker,malicious code injection),例如商店道具购买函数,任务奖励函数等来实现内购的解锁。这种类型的外挂通常以游戏插件形式提供,一般采用MobileSubstrate框架进行开发,38,patch mach-o executable,工具otoolclassdumpcycriptgdbIDA ProtheosMobileSubstrate,39,mobile APP 主要威胁Android,1.APK repacking2.存档修改3.内存修改4.封包修改5.其他,40,APK repacking,工具:smali/baksmalidex2jar/JD_GUIapktoolotertoolAPKTool_GUIAndbug,41,存档修改,工具:RE管理器(RootExplorer)X-plore管理器/data/data/sdcard/Android/data/,42,内存修改,工具:八门神器GameKiller/游戏金手指GameCIH/GameGuardian(需要root权限),43,封包修改,44,其他,1.权限安全2.组件安全,45,mobile APP安全管理流程,46,mobile APP安全管理流程,47,mobile APP安全管理流程,48,联系方式,微博:http:/http:/邮箱:,