iOS应用程序安全简要总结

作者:吴发伟
版权声明:自由转载-非商用-保持署名

前面介绍了iOS应用安全系列文章,文章列表如下:

iOS应用程序安全(1)-搭建移动渗透测试平台
iOS应用程序安全(2)-获得iOS应用程序的类信息
iOS应用程序安全(3)-理解Objective-C Runtime
iOS应用程序安全(4)-用Cycript进行运行时分析(Yahoo天气应用)
iOS应用程序安全(5)-用Cycript做运行时分析的高级技巧(Yahoo天气应用)
iOS应用程序安全(6)-iOS 7的新安全功能
iOS应用程序安全(7)-不用证书安装应用到设备的方法
iOS应用程序安全(8)-用Cycript进行Method Swizzling
iOS应用程序安全(9)-用Snoop-it分析iOS应用的安全
iOS应用程序安全(10)-iOS文件系统和取证
iOS应用程序安全(11)-分析使用HTTP/HTTPS的网络流量
iOS应用程序安全(12)-导出Keychain数据
iOS应用程序安全(13)-使用Sogeti Data Protection tools启动定制的Ramdisk
iOS应用程序安全(14)-使用Sogeti Data Protection tools收集信息
iOS应用程序安全(15)-使用iNalyzer对iOS应用进行静态分析
iOS应用程序安全(16)-使用iNalyzer对iOS应用进行动态分析
iOS应用程序安全(17)-使用Introspy对iOS应用进行黑盒测试
iOS应用程序安全(18)-使用Introspy检测自定义签名
iOS应用程序安全(19)-在程序中使用Introspy
iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
iOS应用程序安全(21)-ARM和GDB基础
iOS应用程序安全(22)-使用GDB进行运行时分析和操作
iOS应用程序安全(23)-对抗运行时分析和操作
iOS应用程序安全(24)-对抗运行时分析和操作
iOS应用程序安全(25)-对抗运行时分析和操作
iOS应用程序安全(26)- 使用IDA Pro给iOS应用打补丁


相信读者把这一系列文章都看一遍,会对iOS应用的安全有个较为深入的了解。

通过SSL Pining提供iOS SSL通信的安全,介绍了使用SSL通信需要注意的问题。

Keychain is not safe 介绍了即使使用keychain保存数据,也不应该保存明文密码。

iOS Application Security简要介绍了下iOS应用安全,简要讨论了关键数据的保存,关键数据是需要加密的。Encrytion is a must for sensitive data。 也简要讨论了通信的安全,http请求应该要做到能够防篡改、防重放攻击(replay attack)等等,如果安全要求更高,还要用https, 在客户端用https,也要注意对源的校验。使用http的时候,不要把用户名和密码直接通过网络请求发送到server,一定要有安全方面的考虑,即使使用HTTPS,也最好不要用明文传递密码,还要考虑中间人攻击(Man in the middle)的情况。不过,正如在iMessage Privacy看到的那样,安全之路,任重道远。


iOS越狱程序开发(1)- 工具篇
iOS越狱程序开发(2)- 构建和部署
iOS越狱程序开发(3)- Your First Tweak
iOS越狱程序开发(4)- 总结

这4篇文章,简要介绍了如何进行iOS越狱程序开发,可以在越狱设备上做很多有趣的事情,能做的事情,有时候仅仅受限于你的想象力。写这4篇文章的时候,我用这几篇文章介绍的相关技术实现些demo,能够在越狱设备上在运行时截取某些知名应用的敏感信息,并能把数据发送到server,你从这4篇文章就能学到相关的技巧。

把这些写出来的目的是知己知彼。开发者要了解攻击者能做什么,只有我们了解攻击者能做什么,怎么做到的,才能更好的确保我们应用的数据安全,我们的通信安全和用户敏感数据的防护,有时候,安全也可能成为你的竞争力。

谨以这些文章抛砖引玉,仓促而就,文中谬误之处,请大家多多指点并留言,一定修正。谢谢。


微信公众账号:iOS技术分享

Ted /
Published under (CC) BY-NC-SA in categories ios  tagged with iOS Security 

comments powered by Disqus