安全监控和跟踪标准

时间:2011-05-19 17:46:40

标签: security tracking usage-tracking

我正在处理一个处理身份验证/授权的系统,需要跟踪个人登录的尝试,更改权限/用户,尝试失败等。我们希望能够解析这些信息进入数据库以便以后进一步分析/检索。

在我们当前的实现中,我们使用的是一个使用日志框架记录的自制标准(在这种情况下是Log4j,但这不重要)。 Logging框架是跟踪此信息的正确机制吗?在我看来,它似乎不是;我一直都认为日志记录是对代码进行尸检的一种形式 - 更多的是告诉我在调试时发生了什么等等。这对我来说更像是一种报告机制。这类问题有没有标准?是否有人们使用的标准解决方案/格式?使用日志框架是正确的解决方案,还是有更好的方法来处理这种类型的数据?在查看这些信息并将其呈现给利益相关者时,我可以参考哪些来源?

我应该注意 - 正在记录的数据已根据合规性/安全性标准(无密码等)进行过滤,所有记录都发生在我们的内部环境中。我正在寻找一种方法来管理身份验证和授权系统的更改信息。

2 个答案:

答案 0 :(得分:2)

您似乎正在使用log4J进行审核(也可能用于记录诊断或跟踪信息)。回答你的问题:

  

Logging框架是正确的   机制来跟踪这一点   信息?

直截了当的答案是“不,日志框架不是正确的机制”。有某些属性,如果存在于日志记录框架中,则会使其具有用作审计框架的能力。

下面介绍了其中一些要求,log4j可用于满足其中一些要求。这并非详尽无遗,我建议您查看审计框架(如LAUS)的实现,以获得更全面的列表。

  • 审计框架必须确保对事件进行故障安全审计。这可能取决于应用程序如何使用框架,但基本要求是如果审计失败,则应用程序也应如此。如果事件无法被审计,则应用程序不应尝试处理任何请求。日志记录框架通常无法满足此要求。
  • 理想情况下,审计框架应提供一次性写入和只读的存储。换句话说,写入审计日志的事件必须且不应该被删除。审计框架通常不会自行实施此保护,而是依赖其他因素的组合来确保日志具有防篡改功能。
  • 审计框架应允许在不同系统上存储审计日志。这将确保一个系统的妥协,不会自动导致审计日志的妥协。
  • 框架还应该允许捕获重要信息,理想情况下不应该留给程序员。重要信息将构成同步时间源的时间戳,负责请求的用户(或用于识别用户的任何信息),请求的来源,请求的状态(无论是成功还是失败),在遇到的任何错误处理请求等。

答案 1 :(得分:0)

在这里使用日志框架并不是一件坏事。记录到文件通常比记录到数据库更快。但是,使用Log4j,您可以实现或使用现有的JDBC appender,它会在记录时将所有数据插入到数据库中。为了可靠,您可以为审计日志记录配置文件和数据库appender,以便在日志记录数据库失败时进行备份。

其他替代方案可能是围绕您的安全/业务逻辑的AOP方面,它们会将数据直接插入到日志记录数据库中。

我认为这种数据没有任何共同标准。