通过集中日志记录来减少安全风险
集中日志并结构化待处理的日志数据可缓解与缺少日志相关的风险日志记录和日志分析对于保护基础设施安全来说至关重要，尤其是当我们考虑到通用漏洞的时候。这篇文章基于我在 FOSDEM'19 上的闪电秀《Let's use centralized log collection to make incident response teams happy》，目的是提高大家对日志匮乏这种安全问题的重视，提供一种避免风险的方法，并且倡议更多的安全实践（利益声明: 我为 NXLog 工作）。为什么要收集日志？为什么要集中日志记录？确切的说，日志是写入磁盘的仅追加的记录序列。在实际生活中，日志可以在你尝试寻找异常的根源时帮助你调查基础设施的问题。当你有多个使用自己的标准与格式的日志的异构系统，并且想用一种可靠的方法来接收和处理它们的时候，挑战就来临了。这通常以元数据为代价的。集中日志记录解决方案需要共性，这种共性常常会去除许多开源日志记录工具所提供的丰富的元数据。日志记录与监控匮乏的安全风险 开源 Web 应用程序安全项目 Open Web Application Security Project （OWASP）是一个为业界贡献了许多杰出项目（包括许多专注于软件安全的工具）的非营利组织。OWASP 定期为应用开发人员和维护者报告最危险的安全挑战。在最新一版《10 项最严重的 Web 应用程序安全风险》中，OWASP 将日志记录和监控匮乏加入了列表中。OWASP 警告下列情况会导致日志记录、检测、监控和主动响应的匮乏：未记录重要的可审计性事件，如：登录、登录失败和高额交易。告警和错误事件未能产生、产生不足或不清晰的日志信息。日志信息仅在本地存储。对于实时或准实时的主动攻击，应用程序无法检测、处理和告警。可以通过集中日志记录（例如，不仅将日志本地存储）和结构化日志数据以进一步分析来缓解上述情形（例如，在告警仪表盘和安全套件中）。举例来说, 假设一个 DNS 查询会导向名为 hacked.badsite.net 的恶意网站。通过 DNS 监控，管理员监控并且主动的分析 DNS 请求与响应。DNS 监控的效果依赖于充足的日志记录与收集来发现潜在问题，同样也依赖于结构化 DNS 日志的结果来进一步分析。2019-01-29 Time (GMT) Source Destination Protocol-Info 12:42:42.112898 SOURCE_IP xxx.xx.xx.x DNS Standard query 0x1de7 A hacked.badsite.net 你可以在 NXLog 社区版 中自己尝试一下这个例子，也可以尝试其他例子和代码片段。 （再次声明：我为 NXLog 工作）重要的一点：非结构化数据与结构化数据花费一点时间来考虑下日志数据格式是很重要的。例如，让我们来考虑以下日志消息：debug1: Failed password for invalid user amy from SOURCE_IP port SOURCE_PORT ssh2 这段日志包含了一个预定义的结构，例如冒号前面的元数据关键词（debug1）然而，余下的日志字段是一个未结构化的字符串（Failed password for invalid user amy from SOURCE_IP port SOURCE_PORT ssh2）。因此，即便这个消息是人类可轻松阅读的格式，但它不是一个计算机容易解析的格式。非结构化的事件数据存在局限性，包括难以解析、搜索和分析日志。重要的元数据通常以一种自由字符串的形式作为非结构化数据字段，就像上面的例子一样。日志管理员会在他们尝试标准化/归一化日志数据与集中日志源的过程中遇到这个问题。接下来怎么做除了集中和结构化日志之外，确保你收集了正确的日志数据——Sysmon、PowerShell、Windows 事件日志、DNS 调试日志、ETW、内核监控、文件完整性监控、数据库日志、外部云日志等等。同样也要选用适当的工具和流程来来收集、汇总和帮助理解数据。希望这对你从不同日志源中集中日志收集提供了一个起点：将日志发送到仪表盘、监控软件、分析软件以及像安全性资讯与事件管理（SIEM）套件等外部源。你的集中日志策略会是怎么样？请在评论中分享你的想法。via: https://opensource.com/article/19/2/reducing-security-risks-centralized-logging作者：Hannah Suarez 选题：lujun9972 译者：leommxj 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出