近年来数据泄露事件频发,尤其是《网络安全法》的正式实施,安全问题被提到了法律层面,很多企业被迫整改,这些都一再印证了数据安全的重要性。拥有强大的数据库安全系统,尤其是数据库审计系统显得尤为重要。而数据库审计发展到今天,基础的功能各家都具备,但对一些高级功能的实现上就有明显差距了。我们今天要说的是数据库审计中的一个高级功能—双向审计。
那么什么是双向审计呢?
双向审计就是数据库审计系统通过双向数据包的解析、识别、还原,不仅对数据库操作请求进行审计,而且还可以对数据库系统返回结果进行完整的还原和审计,包括数据库命令执行时长、执行状态、返回行数、执行的结果集等内容。
如执行语句:SELECT /*OracleDictionaryQueries.ALL_ROLES_QUERY*/ ROLE FROM SYS.SESSION_ROLES
如果没有双向审计,则只记录该语句以及相关访问信息,如下图:
虽然上图内容已经很详尽,但仍不能了解到用户访问的实际内容,而双向审计,则可以完整的记录:
由双向解析我们可以:
(一)根据解析出的影响/返回行数,可以制定审计策略,如影响/返回行数超过100(可根据需要修改)的进行高风险告警。
(二)确认泄漏或修改了哪些数据,同一张表存储的数据在不同的时间段有可能是不一样的,则同样的操作语句查询或删除的内容也可能不一样。没有双向审计,只知道当时执行了什么,但不知道查询到了什么,所以无法确定泄漏的具体数据。
数据库审计中的双向解析功能需要长期的技术积累,对数据库通信协议进行精确的解析才能实现,但是在实际的应用中对提高审计效果,缩小疑点范围起的作用非常显著,给用户带来了更多的便捷,所以备受客户青睐。