我的服务器被入侵了,日志被彻底删除,我既没有能力也没有时间去发现系统的具体部分被修改了。服务器已下线,来自多个用户的约 400 GB 研究数据被拉到另一个下线备份中。我用 Clam 扫描了目录,但担心数千个文件中可能残留有恶意代码。
这些文件代表了多年的数据记录,但我没有可以与之比较的备份(这是我第一次被告知这些服务器“在我的控制之下”,而且一些重大变化即将到来),也不知道其中应该/不应该包含什么。有没有更彻底的方法可以确保数据不包含潜在的恶意代码?我可以尝试阻止脚本从我的备份目录中执行,但我假设某个时候某个用户会想知道为什么他们 2 年前编写的一些代码不起作用,并最终会取消我添加的任何安全措施。
总结:我已经被控制了。如何确保复制到新服务器安装的数据不包含潜在的恶意代码?
答案1
新手回答:
- 安装
noexec
选项因此可执行文件和库根本无法运行(脚本也无法运行,但仍可以用 调用它们bash malicious.sh
)。
或者
- 设置某种安全chroot 环境因此,当病毒试图用蜜罐攻击你时,你不介意摧毁整个“系统”。
选项 1 有一个明显的缺点,您无法运行任何合法代码,选项 2 有一个明显的缺点,一个行为不端的可执行文件就可以毁掉您所有的合法数据。
此外,良好的权限设计(用户、组、粘滞位、setuid 位等等)并且限制性的 umask 应该可以保证用户只能销毁其自己的文件(或者其负责的文件),这比在受到攻击时彻底毁坏要好。
您还可以使用具有快照支持的文件系统(我不会过多宣传 ZFS,它有优点也有缺点,你可以尝试一下)。这不会阻止升级权限攻击获得 root 权限并删除你的快照,但如果只是破坏数据,你可以恢复到以前的状态)。