想构建一个用来做代码评审的虚拟机

想要弄一个“完全”虚拟化的环境来看代码,虽然说时间,精力,水平都不行。主要是不想拉别人的代码,打开 vscode 后中招,build 的时候中招,或者残留文件什么的。
目前情况是使用 qemu -enable-kvm,里面用 labwc 桌面环境顶着。接下来就不知道用什么编辑器了。
问题还比较多:

  1. qemu 怎么加固,是建议还是不建议用 kvm
  2. vscode 有什么替代,vim 的 preservim/nerdtree 感觉不是很好用,zed 怎么样
  3. 怎么看代码(这个倒是得慢慢学),打算学一点 bpf lsm 整点钩子监控一下
以下是梦话: 如果特别偏执的话,先把系统弄成不可变的,然后包装编译器,把编译器收到的实际输入反向重建源码出来(这得做不少梦先生)。

为什么要虚拟机? 容器不行吗?

隔离方面我觉得已经足够满足你的需求了

虚拟机与容器无论是体验还是资源占用都不是一个量级的

大部分逃逸事件发生在 QEMU 设备模拟代码, 而不是 KVM 内核模块本身

而且居然有不用kvm这个选项, 你的机器性能这么好吗?

这个还需要先看你的需求吧

文件树不是都差不多吗? 都是展开目录, 收起目录, 打开文件这些操作, 你觉得它怎么样改进会更好用?

要审查的话, 除了跟着代码一行行看下去还有别的选择么?

钩子只有快速审查才有用

真的吗,就最近就至少有 ITScape (CVE‑2026‑46316) / Januscape (CVE‑2026‑53359) / Zapscape (CVE‑2026‑64561) 这三个了。

替代 kvm 的方案有一个是 xen,Qubes OS 用的就是它。但我比较怀疑它是真的更安全还是单纯 review 不多。

我想着要用 GUI 的话还是套一层虚拟机比较好,后面要挂钩子也方便,labwc 看看代码还行。

当然没有,就算不建议 kvm 我目前也只能用 kvm,不然卡到怀疑人生。

实话说我是通过 blackarch 了解到的 NERDtree,虽然装了,但是没怎么用过,平时还是用 vscode 为主,现在编辑器都集成 AI 了,挺怕为了代码高亮不小心点了信任然后中招。
至于怎么改进,惭愧说想要 GUI :smiling_face_with_tear: 虽然说我会用 vim,但是切一个文件需要 ctrl+w ← 再 j k enter 这一套还是有点麻烦了。vscode 的搜索,ctrl+` 终端这些还是把我惯坏了。虽然说终端和搜索多开终端模拟器就行了,毕竟确定了用桌面环境 labwc。

至于 vscode 替代,以前一个个用编辑器都时候有个叫 litexl 的比较接近。我在虚拟机里面装了 kate,我对编辑器都开发不足 1%。

设想中算是很塑料的“纵深防御”,一定会有没看出来的。比如试图读我浏览器 profile 目录,扫描 dot 文件什么的。(大概率就算报告了也不知道是哪个进程怎么做到的)

第一点是vscode自己的问题。后两个可以用容器来解决。

但是既然是代码评审,说明你自己看过代码,那前两点不应该成为问题,不然就说明你的评审本身出了问题。——虽然多一层防御是好的,但是我不觉得能够逃过评审的攻击会因为在容器里评审而被抓出来。

fanotify就可以追踪到进程,就更不用说各种调试和审计/MAC工具了。发现的时候直接让进程coredump然后你就可以研究是怎么做到的了。

好吧, 是我搞错了

我刚刚从cvelistV5重新简单统计了一下:

与kvm相关的, 等级为 CRITICAL的漏洞数大概为: 34
与qemu相关的, 等级为 CRITICAL的漏洞数大概为: 4

与kvm相关的, 等级为 HIGH的漏洞数大概为: 206
与qemu相关的, 等级为 HIGH的漏洞数大概为: 356