我正在使用 Linux 虚拟机(Wheezy、Linux Vserver),每个虚拟机都有一个包括 Firefox 在内的桌面环境。
如果虚拟机被入侵(例如,SQL 注入)因此内核已被黑客入侵并且虚拟机(而不是主机)的控制权已被夺取,可以重建虚拟机,并将数据移至重建的虚拟机以解决问题。
问:这个问题可能有点愚蠢,但是有没有可能将一些文件复制到受感染的虚拟机中(例如,分区中所有内容的干净版本/boot
)?虚拟机从一开始就被严格锁定。
这里的论点是,这可能比重建虚拟机要快得多。或者,“正确答案”可能是“不,您需要重建虚拟机以确保它没有受到损害”。如果替代方法值得考虑,那么需要覆盖和替换什么才能获得“全新”的内核?
答案1
首先,你需要确切地知道哪些内容在未经你许可的情况下发生了更改。如果我要设计一个你想要的系统,我会:
/boot
维护正在运行的内核文件的加密哈希值,其中包含我的 Ubuntu 系统上的内容- 维护系统上所有已安装的库、应用程序、二进制文件等的哈希值,这些库、应用程序、二进制文件等不属于部署的内部编写的应用程序。
- 让这些哈希值在机器外维护并经常进行比较。
- 知道升级会触发警报,并手动解决。
或者,我会采取对我来说更简单的方法,即快速重新创建一个新的 VM,无需手动配置(Chef、Puppet 等),然后快速轻松地将我的自定义应用程序(在我的情况下主要是 Web 应用程序和数据库内容)部署到新的 VM。
我认为,尽管上述所有操作都是可以做到的,并且可以帮助您检测出何时发生了变化,这对于了解您是否受到了损害至关重要,但要以可重现的、灾难中的方式撤消这些更改则要困难得多。将所有机器配置保存在 Chef 等机器创建系统中,可以让您以足够快的速度启动新的虚拟机,最终可能会为您节省大量时间。