iOS应用加固--代码混淆
前两天公司给了一份应用安全的测评报告,报告显示iOS这边安全测评得分是60(满分100),报告出的蛮详细,列出了危险等级,危害及 建议解决的方法。经评估我暂做了代码混淆和动态调式攻击风险。 代码混淆 一、危害 针对 iOS 应用开发使用的 Object-c 及 C,C++代码目前较缺乏有效的防护手段, 苹果的 app 自身并没有比 android 更安全的防范措施,也无法通过常规的二 次加固保护应用不被反编译和篡改,应用代码编写过程中出现的安全漏洞、 编码隐患、甚至业务逻辑上的缺陷很容易被分析暴露,造成程序业务逻辑泄 露、加解密算法失效、通信加密失效,攻击者可以利用这些信息窃取客户端 的敏感数据,包括账号、密码;绕过业务安全认证流程,直接篡改用户账号 信息;对服务器接口发起攻击等。iOS 的代码混淆,是通过将 Object- C、C/C++代码中的方法名、变量名、类名、包名等这些元素名称改成毫无关 联且无意义的名字,对源代码实现逻辑分支混淆和控制流平坦化,隐藏关键逻 辑,提高黑客破解难度,增加破解时间成本。 二、建议解决方案 开发者使用头文件映射的方式定义 pch 文件,并在定义的 pch 文件中引入头 文件,在头文件中定义方法混淆的隐射,防止代码语义化的定义暴露程序意 图,同时编译生成新的发布包 三、实际解决方案 1、cd 项目路径 2.touch confuse.sh