跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 虚拟机的内存内容可以被读取吗? (关于 Python 源码保护的问题)
未分類
5 5 月 2020

虚拟机的内存内容可以被读取吗? (关于 Python 源码保护的问题)

虚拟机的内存内容可以被读取吗? (关于 Python 源码保护的问题)

資深大佬 : wzw 18

朋友问到, 我回答不出…

情况如下:
1. 主机 Windows 10
2. 虚拟机 软件 virtualBox
3. 虚拟机系统 Debian
4. Debian 全盘加密 LUKS
5. Debian 里面跑了一个 Python 3 的程序

请问这样的方案能保护这份 Python 源代码吗? 会不会正在跑的时候, 通过虚拟机内存读取.

不讨论这份代码的重要性.谢谢.
我也很好奇.如果虚拟机运行的时候无法从内存读取东西, 通过这样的方式是可以保护到 Python 的源代码了.

大佬有話說 (16)

  • 資深大佬 : shansing

    虚拟机既然模拟了完整的硬件环境,应该是可以读取内存的吧。你只提供虚拟机镜像文件吧?再不济 VirtualBox 是开源的,总有办法改个源码(如果不用插件,我不知道有没有)调试内存吧。

    等一个专业回答。

  • 主 資深大佬 : wzw

    @shansing 虚拟机全盘加密了,只能是内存了。

  • 資深大佬 : Jirajine

    当然可以,memory dump 是虚拟机的基本功能了,你再怎么加密也总要解密读到内存里,要确保安全只能物理隔离。
    但谁会闲的蛋疼这么搞,重要的代码用编译型语言重写不费事吧,不过仍然不能确保你内存中的数据安全。

  • 資深大佬 : westoy

    问题是流程正义的话, 你分发 debian 本身得把你的 debian 开源给对方啊…..当然你可以把你的程序加密或者写个启动文件远程加载来规避, 但是这套系统自带的加载系统本身也得开源啊…….所以对方很容易顺藤摸瓜搞到执行文件, 在不在虚拟机里有什么区别……

  • 主 資深大佬 : wzw

    @Jirajine #3 编译型语言 能保护源代码了. 这里讨论源代码安全. (数据安全就是另外一回事了)

    那么这样看来, Python 源代码安全只能靠物理隔离了….

  • 主 資深大佬 : wzw

    @westoy #4 全盘加密启动的时候调用 yubikey 等 key 来解开加密的磁盘. 所以说磁盘文件是安全的

  • 資深大佬 : jakezh

    不懂就问,python 在内存里跑的也是编译后的字节码吧,跟编译型解释型有关系吗

  • 資深大佬 : vk42

    对 Host 端来说虚拟机就是在裸奔。如果要应用对 OS 保密,可以看看 Intel 的 SGX 或 AMD 的 SEV

  • 主 資深大佬 : wzw

    @vk42 #8 如果磁盘全盘加密, 其实暴露的就是内存了

  • 資深大佬 : yzwduck

    如果敌手能控制虚拟机,拍个快照就能保存所有内存信息,并且是没有加密的。里面肯定有:
    1 、Python 代码在内存的缓存;
    2 、LUKS 的 解密密钥。
    从内存快照读出上述信息有一定难度,但完全可行。甚至还可以修改内存。

    我觉得更容易的攻击方式是,虚拟机的 LUKS 是如何解密的?如果解密密钥放在虚拟机内,并且敌手能挂载虚拟磁盘的引导分区,那么密钥就很简单地读取出来, 不必折腾内存。

  • 主 資深大佬 : wzw

    @yzwduck #10 密钥是用 Go 来写的, Go 调用 yubikey,判断是否可以解密磁盘. 密钥在 Go 程序里面

  • 資深大佬 : yzwduck

    如果敌手能够独立地运行虚拟机(比如拥有 yubikey ),理论上他就能够自行解密出所有内容,除非他卡在程序被混淆、自身技术不足等问题上。

  • 資深大佬 : vk42

    @wzw 这两个就是加密内存的,和外存没啥关系

  • 資深大佬 : yzwduck

    @vk42 然而目前大部分虚拟机不支持 SGX 。

  • 資深大佬 : vk42

    @yzwduck 他的需求明显不是为了跑虚机啊,现在 SGX 有 Python 环境了,不过不知道能达到商用程度不

  • 主 資深大佬 : wzw

    @yzwduck #14 @vk42 #15 根据大家的回复, 只能说假设需要保护源码, 还是需要用编译型语言来写吧. 例如 Go

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具