Systemd是sysvinit的一个更现代的替代品,它正在被集成到大多数主流Linux发行版中。我对它的一个功能有点困惑。
我想讨论一下正向安全密封(FSS)systemd的一部分的日志文件特性。FSS对本地系统日志进行加密签名,因此您可以检查日志文件是否已被更改。这将使攻击者更难隐藏他或她的踪迹。
对于日志文件,攻击者可以做两件事:
- 删除它们
- 修改它们(删除/更改有罪的行)
FSS特性并不能防止这些风险。但是,如果定期验证签名,确实可以帮助您检测到可疑的地方。所以基本上FSS有点像绊网。
FSS只能告诉您日志文件是否被更改。它不能告诉你其他任何东西。更具体地说,它不能告诉你原因。所以我想知道这个功能有多大价值。
还有其他一些事情。对日志文件进行签名(密封)默认15分钟一次.这使攻击者有足够的时间修改或删除最近的日志事件,通常正是那些需要修改/删除的事件。即使将这个数字降低到10秒,也会允许攻击者使用自动化删除(一些)初始活动。那么这有多有用呢?
未更改的日志内容本身可能有助于确定系统发生了什么。FSS原则上不能做的是保护日志文件的实际内容。如果您希望保存日志事件,唯一安全的选项是将它们发送到外部日志主机(假设攻击者无法访问)。
然而,令我惊讶的是,FSS是外部日志记录的替代方案.引用Lennart Poettering的话:
传统上,这个问题的解决方法是使用外部安全的日志服务器进行即时日志记录,或者使用本地行打印机直接连接到日志系统。但这些解决方案的设置更加复杂,需要外部基础设施,并存在一定的可伸缩性问题。有了FSS,我们现在有了一个简单的替代方案,无需任何外部基础设施即可工作。
这句话非常令人不安,因为它没有承认外部日志主机être的原因之一。这似乎表明FSS为外部日志记录提供了一种替代方案,而实际上它在原则上没有也不能这样做。它永远无法解决攻击者可以更改或删除日志的问题,而外部日志记录可以减轻这种风险。
在我看来,systemd现在也想扮演一些粗糙的入侵检测系统的角色。对我来说,这有点像范围蔓延。
就我个人而言,我只是想知道还有什么更有用的功能可以实现,而不是允许您使用QR码将日志文件验证密钥传输到您的智能手机(什么鬼?)
这整个观察并不是原创的,在systemd作者的博客文章的评论中,安德鲁·怀亚特(Andrew Wyatt)(两年前)也提出了同样的观点。systemd作者的反应是封杀他。(见我之前链接到的Lennart Poettering的博客文章的评论)。
更新:安德鲁·怀亚特一开始对伦纳特·波特林表现得有点不成熟,所以我理解他那边的一些怨恨,但安德鲁的批评是有效的,他从来没有说过。
我认为,如果systemd作者只是实现了将日志事件发送到外部日志服务器,那么在安全性方面就会更有用。在那之前,这也许可以...