Linux:检测/阻止系统修改或使用单用户模式

Linux:检测/阻止系统修改或使用单用户模式

通过备份解决方案进行工作,可以使用一些安全帮助。请参见下文。

流程

对于我们的编辑业务,我们有一个异地备份服务器,我们每晚使用 SSH 上的 rsync 进行更新。备份脚本:

  • 唤醒远程机器
  • 挂载加密卷
  • 分析本地 RAID 阵列上的文件与备份机器上的各个 LUKS 加密磁盘进行比较
  • 将它们拆分成适合备份驱动器的格式,并尽可能减少数据传输
  • Rsync 的
  • 卸载加密卷
  • 进行 SMART 测试以完善
  • 使远程机器进入睡眠状态

问题

按照目前的流程,所有数据传输都经过加密,驱动器本身(系统本身除外)也经过加密,并通过远程服务器发送 LUKS 密码。这基本上是安全的,但理论上,远程站点的恶意工作人员可以通过以下方式侵入系统并监控流量:

  • 启动进入单用户模式
  • 更改 root 密码
  • 正常启动
  • 以 root 身份登录
  • 改回密码文件,并隐藏痕迹
  • 当脚本远程访问并安装驱动器时,监视所有正在进行的操作、文件名、访问文件系统

有没有办法克服这个问题,或者检测这些类型的现场攻击,而不需要在发送到远程服务器之前重写所有内容进行加密(这将使我们的流程更加占用磁盘和/或带宽,我们谈论的是许多 TB 的数据)。

谢谢。

答案1

以下是一些想法,如果可行,请告诉我。

物理访问

假设你正在使用近企业服务器例如 HP、戴尔然后,您可以为服务器获取允许带外监控的远程管理卡。您可以设置警报,以便知道何时发生以下情况:

The machine is powered on.
The anti-tamper switches on the enclosure are tripped.
When there is a pending or active hardware problem.

就您而言,您可能希望知道服务器何时意外上线。如果远程管理卡无法访问,或者服务器意外上线,则应该向您发出警报。例如,nagios 或内部脚本。

您还可以安装视频监控摄像头,它可以发送任何靠近硬件或进入房间的人的视频或图片。

文件完整性

您可以使用 AIDE、Tripwire、Samhain、OSSEC 等工具在远程端创建文件完整性数据库,然后将其复制回您的服务器(可能在以日期命名的文件夹中),然后比较本地副本和远程副本上的数据库。您可以编写规则,在满足某些文件或条件时禁用 rsync。您必须决定适合您组织需求的逻辑,此时会发出警报并要求人员进行干预。OSSEC 还可以在您指定的目录中创建文件的差异。

在 --dry-run 模式下使用的 Rsync 甚至可以在您的脚本中使用来确定是否需要人工干预。 这样您就可以比较本地和远程文件以查看发生了什么变化

答案2

理论上,如果您的机器有 TPM 芯片,您可以将其用于可信启动(即在 TPM 芯片中存储一些密钥,只有当从 MBR 到您想要的任何位置的链不变时才能加载这些密钥)。然后可以使用该密钥加密包含 SSH 密钥等信息的本地分区,这样如果可信启动失败,SSH 服务器将无法再启动(或整个服务器端软件,包括/etc/shadow等)。

但在实践中,设置起来需要做大量工作(TrustedGRUB 引导程序、自定义内核、决定要“测量”哪些文件),这会使更新系统变得很麻烦(显然,对于 TPM 而言,软件更新与 Evil Maid 攻击没有区别),这也意味着您将无法再自行以单用户模式(或从实时 DVD)启动,而不会导致受信任的启动失败(除非您将密钥存储在异地某处作为备份,并且一旦触发您自己的陷阱,不要忘记将它们再次放入 TPM :)

相关内容