And*_*ew 5 database security audit
我认为自己在应用程序设计方面相对精通,但我从未使用敏感数据.我一直想知道审计跟踪的最佳实践是什么以及应该如何实现它们.我现在不必这样做,但如果他们让我为他们做一些工作,那么能够自信地与医疗公司交谈会很高兴.
假设我们有一个"学校"数据库,"老师","班级","学生"都在多对多"成绩"表中进行了标准化.你会记录什么?'成绩表'上的每次插入/更新?只有更新(比如,一个孩子闯入并想要改变成绩,这应该发送红旗)?这完全取决于一个人想要的偏执吗?有最好的做法吗?
这是应该在数据库中完成的吗?(每个敏感SELECT上的一个触发器,它将一行插入到记录每个查询的'audit'表中?)应该记录什么?是否有自动构建到Oracle/DB2中的功能为您完成?这应该是应用程序端逻辑吗?
如果有人有任何关于如何处理敏感数据的正式文档/书籍(不完全是DoD"可信计算"规范,但有些内容如下:P),我会很感激.如果这个问题非常含糊,我很抱歉.我意识到这因应用程序而异.我只想听听您处理敏感数据的详细经验.
Oracle 有一个名为 Oracle Audit Vault 的产品 - DB2 可能有一个等效产品。
应该从预防开始。系统不应允许无效的操作。时期。如果系统允许需要监视的“可疑”操作,即“业务逻辑”,那么您可能最好像其他业务逻辑一样实施。
如果您想在数据库中执行某些操作,可以查看日志传送(术语可能因 RDBMS 而异)。基本上,任何 DML 操作都会记录到文件中。您可以使用此信息进行备份和时间点恢复,甚至用于复制/HA/故障转移等。如果您以“仅附加”(即日志传送过程有权创建新日志文件,但不能修改现有信息)方式将日志传送到单独的“受信任”系统,则您已经拥有原始审核功能。如果您以安全的方式(即身份验证、不可否认性)进行操作,您甚至可能非常接近“合规性”:-p
当然,筛选大量的 INSERT/UPDATE/DELETE 语句并不是最复杂的工作方式。