应该记录哪些数据?

信息安全 日志记录
2021-09-03 19:18:12

想象一下有一个 Web 应用程序。然后,无论出于何种原因,您都决定要创建自己的日志记录系统。应该记录哪些数据才能建立一个非常好的日志系统?

我在考虑以下问题:

  • 每个用户的访问日期和时间
  • 用户 IP
  • 随后的登录尝试次数
  • 会话长度
  • 在表单字段中输入的数据(查看是否有人在尝试 SQL 注入)

还应该记录哪些其他数据,尤其是在安全方面?

另外,您认为列表的最后一点有意义吗?当然,只会收集非敏感数据,例如搜索查询。

3个回答

要扩展 Rory 的建议,您确实需要问自己日志记录背后的驱动因素是什么,以及实现这些目标需要哪些信息。

例如,如果您需要用户归因,那么您可能需要

  • 用户名
  • 时间戳
  • 源 IP
  • GET 字符串和可能的 POST 变量
  • 会话 ID
  • Cookie 信息(过期、令牌(如果适用)、巧克力/糖/无麸质等)

您是否正在寻找未经授权的访问尝试?

  • 时间戳
  • 源 IP
  • 执行的操作(登录、数据查询等)
  • 与操作相关的信息(用户名、查询字符串等)

您是否有政策/合同/监管/等。需要完整的会话重建?好吧,这要困难得多,并且每个请求都需要各种可怕的数据。这可能需要深度应用程序集成,并且可能需要堆栈跟踪、变量转储、数据包捕获等内容。

你真的需要反过来看这个——你需要记录什么?这应该会推动您决定记录什么。

  • 您是否正在检查来自 IP 或 IP 范围的可疑行为?
  • 您是否正在尝试监控使用情况或性能统计信息?
  • 如果出现问题,您是否需要能够帮助您的用户进行会话?
  • 您是否需要在指定数据处理的监管框架内工作?

等等。

记录 HTTP 标头肯定是有价值的。根据特定的 Web 应用程序,具体要记录哪些内容差异很大。