我正在考虑向 Android 平台添加一些额外的安全功能,其中大多数在操作系统级别是有意义的。然而,我想知道是否可以在虚拟机层做一些事情来更好地沙箱数据和代码。
示例(不一定适合 VM)是:
- 加密内存管理 (RAM)
- 限制对系统调用的访问和
- 对加密文件系统的本机代码支持
再次,我知道这些东西可能应该在 Linux 级别实现,但我集思广益可以在虚拟机级别干净地实施的想法。
有什么想法吗?有可用的工作吗?
I am looking in to adding some extra security features to the Android platform and most of them make sense at the OS level. However, I am wondering if anything could be done at the VM layer to better sandbox the data and code.
Examples (not necessary suited for the VM) would be:
- Encrypted memory management (RAM)
- limited access to system calls and native code
- support for encrypted file systems
Again, I know that this stuff should probably be implemented at the Linux level, but I am brainstorming ideas that could be implemented cleanly at the VM level.
Any ideas? any work already available?
发布评论
评论(1)
Android 的安全模型限制对存储、互联网、传感器等的访问逐个应用程序的基础上。应用程序在沙箱中运行,必须获得明确的权限(通常在安装时)才能访问资源。这是在进程级别完成的,而不是在 Dalvik VM 中完成的。从安全模型文档来看,
“内核完全负责沙箱应用程序。特别是 Dalvik VM 不是安全边界,任何应用程序都可以运行本机代码(请参阅 Android NDK)。所有类型的应用程序(Java、本机和混合)以相同的方式进行沙箱处理,并且彼此之间具有相同程度的安全性。”
加密文件系统从 Android 3.0 开始可用。
Android's security model limits access to storage, Internet, sensors etc. on an app-by-app basis. Apps are run in sandboxes and must be granted explicit permission (usually at install time) to access resources. This is done at the process level, and not in the Dalvik VM. From the security model doc,
"The kernel is solely responsible for sandboxing applications from each other. In particular the Dalvik VM is not a security boundary, and any app can run native code (see the Android NDK). All types of applications — Java, native, and hybrid — are sandboxed in the same way and have the same degree of security from each other."
Encrypted file systems are available starting in Android 3.0.