背景:远程日志聚合被视为提高安全性的一种方式。通常,这解决了危害系统的攻击者可以编辑或删除日志以阻碍取证分析的风险。我一直在研究常用日志工具中的安全选项。
但是感觉有些不对劲。我看不到如何配置任何常见的远程记录器(例如 rsyslog、syslog-ng、logstash)来验证传入的消息确实来自声称的主机。如果没有某种策略约束,一个日志发起者可以代表另一个日志发起者伪造消息。
rsyslog 的作者似乎对验证日志数据发出警告:
最后要提醒一句:transport-tls 保护发送方和接收方之间的连接。它不一定能抵御存在于消息本身中的攻击。特别是在中继环境中,消息可能源自恶意系统,该系统将无效的主机名和/或其他内容放入其中。如果没有针对此类内容的配置,这些记录可能会显示在接收者的存储库中。-transport-tls 不能防止这种情况(但它可能会有所帮助,正确使用)。请记住,syslog-transport-tls 提供逐跳安全性。它不提供端到端的安全性,也不验证消息本身(只是最后一个发送者)。
所以接下来的问题是:什么是好的/实用的配置(在您选择的任何常用日志工具中——rsyslog、syslog-ng、logstash 等),它提供了一定程度的真实性?
或者...如果没有人验证日志数据,那为什么不呢?
——
(旁白:在讨论/比较时,使用RFC 5424 中的一些图表或术语可能会有所帮助:第 4.1 节:部署场景示例——例如“发起者”与“中继”与“收集者”)