跳过内容

C9:实施安全日志和监控

该控制措施的新版本已发布!

您正在查看 OWASP 十大主动控制措施的旧版 2018 年版本。您可以在 OWASP 十大主动控制措施 2024 中的 C9:实现安全日志记录和监控 中找到关于相同控制措施的信息!

描述

日志记录是大多数开发人员已经用于调试和诊断目的的概念。安全日志记录是一个同样基本的概念:在应用程序运行时记录安全信息。监控是利用各种自动化形式对应用程序和安全日志进行实时审查。相同的工具和模式可用于操作、调试和安全目的。

安全日志记录的益处

安全日志记录可用于:

  1. 为入侵检测系统提供数据
  2. 取证分析和调查
  3. 满足法规遵从性要求

安全日志记录实现

以下是安全日志记录实施的最佳实践列表。

  • 在系统内部以及组织的跨系统之间遵循通用的日志记录格式和方法。一个常见的日志记录框架示例是 Apache 日志服务,它有助于在 Java、PHP、.NET 和 C++ 应用程序之间提供日志记录一致性。
  • 日志记录不宜过多也不宜过少。例如,请务必始终记录时间戳和识别信息,包括源 IP 和用户 ID,但要小心不要记录私有或机密数据。
  • 密切关注节点间的时间同步,以确保时间戳一致。

用于入侵检测和响应的日志记录

使用日志记录来识别表明用户行为恶意的活动。可能需要记录的恶意活动包括:

  • 提交的数据超出了预期的数值范围。
  • 提交的数据涉及不应修改的数据(选择列表、复选框或其他受限输入组件)的更改。
  • 违反服务器端访问控制规则的请求。
  • 更全面的可能检测点列表可在此处获取。

当您的应用程序遇到此类活动时,应用程序至少应记录该活动并将其标记为高严重性问题。理想情况下,您的应用程序还应响应可能识别出的攻击,例如通过使用户会话失效和锁定用户帐户。这些响应机制允许软件实时响应可能识别出的攻击。

安全日志记录设计

日志记录解决方案必须以安全的方式构建和管理。安全日志记录设计可能包括以下内容:

  • 在记录日志之前对任何危险字符进行编码和验证,以防止 日志注入攻击。
  • 不要记录敏感信息。例如,不要记录密码、会话ID、信用卡或社会安全号码。
  • 保护日志完整性。攻击者可能会尝试篡改日志。因此,应考虑日志文件的权限和日志更改审计。
  • 将分布式系统的日志转发到中央安全日志服务。这将确保即使某个节点受到损害,日志数据也不会丢失。这也允许进行集中监控。

参考资料

工具