首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa和通用框架元素对恶意攻击的保护效果如何?

Cocoa和通用框架元素对恶意攻击的保护效果如何?
EN

Stack Overflow用户
提问于 2011-05-23 15:38:54
回答 2查看 267关注 0票数 6

到目前为止,我很少关心整体的安全考虑,因为我只开发了一些推广的、不重要的iPhone应用程序。

然而,目前,我正在开发一个Mac应用程序,它需要更多的思考,因为它处理敏感的用户信息。

虽然我知道我必须注意保护数据的物理形式(在磁盘上),例如通过加密它,但我想知道它在正常使用应用程序的过程中驻留在内存中有多安全。

因此我想知道:

只要我的应用程序只构建在框架元素(如NSTextField和Core )上,它就有多安全?

Cocoa输入元素对恶意攻击有多敏感?保护使用Core数据存储的保存数据的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-23 19:49:06

Objective是一种动态语言,这意味着可以在运行时替换类和特定的类方法。例如,1 1Password插件就是这样进入Safari的,Dropbox是如何进入Finder的。目前,恶意攻击者有可能使用低级别的mach_inject API或其他一些稍高级别的方法(例如SIMBL或OSAX注入)将代码加载到应用程序中。一旦将代码加载到应用程序中,Objective的动态特性在理论上就可以将NSTextField替换为攻击者选择的子类或类中的特定方法,包括侦听和存储用户输入。NSTextField的安全版本是为密码设计的,它可能对此有一些保护,尽管我还没有找到这方面的特定文档。一般来说,Security.framework和密钥链API对内存中的数据有保护作用,而且它们不是基于Objective的,因此很难(尽管仍然有可能)对它们进行干预。

票数 6
EN

Stack Overflow用户

发布于 2011-05-23 20:19:18

为了补充mgorbach上面的回答(这很好),Core Data可以以四种形式存储数据:

  1. SQLite3数据库(最常见)
  2. .plist文件(例如XML)
  3. 二进制文件
  4. 内存中(非持久存储)

.plist、二进制文件或SQLite都不安全。.plist文件可以很容易地读取。二进制文件将更棘手,但AFAIK它没有使用任何加密,任何目标C编码器应该能够很容易地提取其内容。SQLite也不安全。像SQLite管理器 for FireFox或基座 for Mac这样的工具使得读取核心数据SQLite数据变得非常简单。

由于没有核心数据存储方法是安全的,您最好的选择是在将数据提交到磁盘之前对其进行加密。

这没有考虑到内存中的任何攻击。当然,要想取得成功,一个系统通常已经被某种程度地破坏了。

如果最终用户启用了FileVault (加密他们的整个主文件夹),启用了安全的虚拟内存,打开了防火墙,并设置了强大的密码,那么他们对许多攻击都是相当安全的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6099484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档