如何防止管理员从他们自己的活动中访问日志?

信息安全 访问控制 日志记录 行政
2021-08-27 06:29:18

这个想法是为了防止攻击者窃取了 root/admin 帐户或升级以清除他自己的活动,甚至阅读他正在做的事情的痕迹。假设我们在 Linux 下,我们使用 auditd 登录,有集中式日志,我们可以将 MAC 与 SELinux 一起使用。但我也对 Windows 下的答案感兴趣。

一种解决方案是禁止所有 root 帐户访问日志。日志仅由来自 logrotate、syslog 和所有 SIEM 内容的特定服务器上的授权进程管理。所以只有 SOC 可以读取和分析管理员的日志。只有清除进程才能删除旧日志。任何人都可以确认这是可行的吗?

是否有可能拥有更灵活的东西,让拥有自己 root 权限的管理员可以读取其他 root 帐户的日志?

4个回答

对此的公认解决方案是不在本地存储日志,而是在日志服务器上。一旦日志在那里,您可以根据需要限制或限制访问。

在某些日志服务器/聚合器解决方案中,您可以限制用户查看包含对某些数据(如他们的用户帐户或机器 IP)的引用的条目。这意味着您可以让管理员查看其他管理员活动,但不能查看他们自己的活动。

您通常希望在日志服务器/聚合器中放置警报,以在来自任何一台机器的日志停止进入或降低到特定阈值以下时触发,这有助于检测本地管理员是否阻止将日志发送到日志服务器/聚合器。

系统日志服务器、SIEM、日志聚合器、ELK 堆栈等。有许多选项供您探索。

受感染主机上的任何日志都是可疑的。你需要一个集中的日志平台,或者一个中央系统日志服务器/splunk/logrhythm/其他。保留一组不同的管理员和帐户。这就是整个想法。

一旦您建立了一个平台,您就可以委派查看他们的操作的权限,无论是他们自己的还是其他管理员 - 都可以执行。我们有权读取特定的日志源和委托的主机。

如果攻击者在一台机器上获得了高权限,那么整台机器就不再受信任,更不用说日志控制器了。

远程日志服务器是这里唯一的选择,但细节可能会有所不同。您将能够以比在本地存储日志更安全的方式处理日志和管理访问控制。

第一步是将日志发送到另一台服务器,以便在第一台服务器受到威胁(因此它们的日志可能被更改)后,该日志服务器将拥有这些日志条目。并且该服务器可以(应该)受到更严格的保护。

然而,必须有人能够管理该服务器,只要服务器可以更新!

您可以额外保护该服务器中的日志的方法:

  • 任何(非平凡的)操作都需要多个管理员(例如,引入的命令需要 N 个管理员的确认)
  • 可以将日志链接到Merkle 树中的早期日志进行存储,以便删除或修改条目会影响任何后续日志¹
  • 当前日志的哈希值可以发送给外部方(从时间戳服务器获取,发送给合作伙伴公司,或者只是发送到 Twitter 提要²)。

¹当争论使用它时,说明它使用区块链技术可能会更好

² 或者如果日志本身不是机密的,你甚至可以明文推送一些日志服务器事件:“jdoe logged into the log server and run rm -rf /