面向Web中间件的业务审计系统

1.当前市场和技术发展趋势

随着数据库技术的蓬勃发展,绝大多数的业务系统均围绕数据库构建,由于数据库中存放了大量的业务数据和敏感信息,为了更好地对数据库系统进行监管,网络安全审计产品得到了广泛的应用。它能够实时监测和记录用户对数据库服务器的访问信息,并按照设定的规则对访问行为进行报警、记录、阻断会话等操作。

但是,由于数据库访问行为是与具体的业务操作行为相关,单纯的数据库审计已经无法满足对单个用户业务行为进行监管的需求,而这些用户的业务行为又往往涉及大量的财物信息等敏感数据,违规操作带来的损失是无法估量的。

IT业务系统的监管不仅关系到企业自身的运营安全,特别是某些行业(比如电力、金融、电信、社保等)的IT业务系统的能否有效监管,更关系到社会的稳定,国家的安全。启明星辰公司自主研发的面向web中间件的业务关联分析系统能够让监管制度落到实处,有效的促进业务监管水平的提升。

当前业务系统普遍采用三层结构:浏览器客户端、Web服务器/中间件、数据库服务器。通常的流程是:用户通过浏览器客户端,利用自己的帐户登录Web服务器,向服务器提交访问数据;Web服务器根据用户提交的数据构造SQL语句,并利用单一共享账号访问数据库服务器,提交SQL语句,接收数据库服务器返回结果并返回给用户。

在这种基于Web的业务行为访问模式下,传统的信息安全审计产品一般可审计从浏览器到Web服务器的前台访问事件,以及从Web服务器到数据库服务器的后台访问事件。但由于后台访问事件采用的是唯一的帐户,对每个后台访问事件,难以确定是哪个前台访问事件触发了该事件。如果在后台访问事件中出现了越权访问、恶意访问等行为,难以定位到具体的前台用户上。举一个典型的例子,内部违规操作人员利用前台的业务系统,以此作为跳板对后台数据库内容进行了篡改和窃取,这种情况下,通常审计产品只能发现来自某个数据库账号,而无法判断最终的发起源头。

面向web中间件的业务关联分析系统能够帮助用户及时发现内部违规行为,顺利地通过内部审计和外部审计,实现真正基于业务的审计和监管。

随着各行业在业务监管水平的不断提高,作为一种创新的监管手段,“面向Web中间件的业务审计系统”将会成为国内外网络安全技术发展的主流方向之一。

2.业务审计系统的主要目标

通过研究面向Web中间件的业务关联分析技术,通过机器学习与人工智能技术,从海量审计日志中挖掘出应用系统的业务逻辑描述,并以此为基础,实现海量日志中异常访问、违规访问的自动发现和追踪溯源。要完成上述目标,需要解决以下几个方面的技术难题:

2.1面向大型数据库的协议解析技术

目前大部分的业务系统都采用了Oracle、MS SQL Server、DB2等大型数据库,出于商业利益与安全考虑,这些数据库的访问协议都是私有的,且经常随版本升级而变化。为了实现对业务系统的关联分析,必须首先获得从Web中间件到数据库服务器访问行为的内容描述,需要研究面向主流数据库的协议解析技术。

2.2高并发下Http访问流重组与高速解析技术

在基于Web中间件的业务系统中,用户一般通过Http页面提交访问请求,无法直接对数据库进行操作。要建立用户的访问行为序列,就必须对Http访问数据进行流重组和协议解析。在高并发下,如何实现对用户访问行为的实时分析,是实现业务审计的难点。

2.3应用系统业务逻辑挖掘技术

通过对数据库访问和Http访问进行协议解析,可以对业务系统的工作流程进行建模。业务审计系统采用机器学习的方法,挖掘用户访问行为序列间的时序关系,以及Http访问与数据库访问间的关联关系,并以此描述应用系统的业务逻辑。

2.4面向复杂业务逻辑的违规访问行为提取技术

在得到业务逻辑描述后,需要依据描述规则对审计日志进行分类,将符合规则描述的日志标记为正常访问行为,从而发现淹没在大量日志中难以进行人工分析的异常访问记录。但应用系统的业务逻辑具有复杂性,用户的访问行为具有高并发性,如何实时处理得到的审计日志、提取异常访问,是关键点所在。

2.5基于孤立点挖掘的异常访问行为发现技术

有些用户的操作行为从业务流程上看没有异常,但其操作内容却具有明显异常。业务审计系统在建立应用系统的业务逻辑描述后,还将利用孤立点挖掘的方法,建立每个操作内容的正常轮廓。这样当观测到用户提交的操作具有明显异常时,将及时发现并产生报警,从而保障业务系统的运行安全。

3.业务审计系统设计思路

当前网络安全审计产品的广泛部署,一方面有效保护了业务系统的安全,另一方面由于需要对业务系统中的每一步操作进行审计和记录,会产生海量的日志,给管理员的日志分析带来巨大压力。在实际环境中,恶意行为的审计日志通常会淹没在大量正常行为的审计日志中,要从中找出真正需要关注的记录信息,无异于大海捞针。面向Web中间件的业务关联分析系统的设计思路,就是要构造一套智能日志分析系统,它能够自动地从海量日志信息中,发现违规访问记录和异常访问记录,从而有效降低安全管理员日志分析的工作量,提升客户价值。该分析系统主要解决以下两方面的问题:

违规访问的自动发现问题。考虑在某个业务环境中,正常情况下应该通过前台的业务系统登录后修改后台数据库的内容,此时某个工作人员绕过了前台的业务系统,直接登录到数据库并篡改了其中的数据。如果我们对用户的业务逻辑进行了建模分析,就会发现该工作人员的操作行为,缺少与之相关的前台登录行为,从而有效识别该违规访问。

异常访问的追踪溯源问题。考虑在某个业务环境中,工作人员通过前台的业务系统,向后台数据库提交数据。在正常情况下,每次提交的数据都在一定范围内,但某次访问提交的数据远远超过了该范围。如果我们建立了该类提交行为的正常轮廓模型,就能够发现此次提交行为明显异常,并根据其对应的前台业务系统的访问记录,发现试图进行异常操作的可疑人员。

从这两方面的问题出发,我们解决问题的基本思路是:在原有的基于单一访问行为的审计产品的基础上,设计一套面向客户业务系统的关联分析系统。通过机器学习和人工智能的方法,建立客户业务系统的业务逻辑模型和行为轮廓模型,并对Web中间件的前后台访问事件进行关联分析,从而及时发现恶意访问行为。

4.业务审计系统架构

4.1硬件架构

本系统由前台审计引擎、日志数据库、后台审计引擎、控制/显示中心组成,各部分的连接关系如下图所示:

面向Web中间件的业务审计系统1

图中各部分的结构和功能为:

控制/显示中心

该模块主要包括3部分功能:

  • 定义各种被保护服务、授权和访问控制安全策略,并下发到前、后台审计引擎,完成对引擎的配置管理;
  • 定义业务关联分析系统的参数,其中包括序列模式挖掘所需的置信度和支持度、孤立点分析的异常度等信息,完成对关联分析模块的配置管理。
  • 实现对引擎上报审计日志的实时显示和历史日志的报表显示,接收关联分析模块的运行结果,对分析后识别出的异常事件和违规事件进行及时报警。

前台审计引擎

前台审计引擎采用了零拷贝技术,各层子任务协同工作时使用的是同一个内存缓存区,即环形报文缓存。在线抓包引擎实时抓包,把捕获的IP报文实时注入到环形报文缓存中,IP报文处理模块则实时从环形报文缓存中处理IP报文。IP报文处理模块在处理IP报文时将先执行报文过滤,对于那些与审计业务无关的IP报文则不作任何处理,对于其它情况执行后续的报文后处理过程。前台审计引擎的处理对象是用户业务系统产生的请求事件,它记录用户请求事件的类型、访问目标和参数信息,并产生访问事件的审计日志,转存到日志数据库中。此后该请求事件在业务系统中被发送到Web中间件,并构造动态SQL语句,访问后台的业务数据库。

后台审计引擎

后台审计引擎的结构与前台审计引擎相同,所不同的是其关注对象为从Web中间件到后台业务数据库的访问事件。通常情况下,Web中间件维持一个到后台业务数据库的长连接,通过该连接提交SQL语句,返回运行结果给前台业务系统。为此后台审计引擎的IP报文处理模块需要具备数据库访问协议解析的能力,能够解析Web中间件提交的动态SQL语句和参数信息,并产生该数据库访问事件的审计日志,转存到日志数据库中。

日志数据库

该模块主要完成两方面的功能,一是日志存储功能,它接收前后台审计引擎产生的审计记录,保存在对应的数据表中,供后续报表分析和追踪溯源。二是关联分析功能,它产生业务系统的业务逻辑描述,以及用户访问行为的正常轮廓模型,并以此为依据,对审计记录进行实时分析,及时发现恶意访问行为。

4.2软件架构

本系统包含两个独立的子系统,其软件框架如下图所示:

面向Web中间件的业务审计系统2

图2 系统软件结构图

  本系统主要由违规访问发现系统和异常访问追踪系统组成,二者的连接关系如图2所示。违规访问发现系统接收业务系统的审计日志和针对数据库访问的审计日志,通过序列模式挖掘方法,找出面向Web中间件的前后台事件间的时序关系,建立系统的业务逻辑描述。根据此描述信息,异常访问发现系统对前后台审计日志进行实时关联分析,对于不符合业务逻辑描述的审计事件进行违规访问报警。

对于数据库访问审计日志,孤立点规则描述模块将会通过聚类分析的方法,建立每个数据库操作的正常轮廓模型。对于经过实时关联分析检测符合业务逻辑描述的访问序列,实时异常发现模块将会继续检测本次访问序列中的数据库访问行为是否偏离了正常的轮廓模型。如果检测结果表明该数据库访问偏离了正常模型,异常访问追踪系统将会发出异常访问报警,并根据该访问序列中所关联的业务系统审计日志对访问行为进行溯源。

下面对这两个主要的子系统进行进一步的介绍。

4.2.1 违规访问发现系统

该系统的运行分为学习阶段和关联阶段。学习阶段的工作是建立前台业务系统访问与后台数据库访问的正常行为模型,即建立http访问事件与SQL事件之间的关联关系,输出为前后台事件的关联规则。在关联阶段,将会根据该规则对Web中间件的前后台事件进行关联性判断。该系统的架构如下图所示。

面向Web中间件的业务审计系统3

图3违规访问发现系统架构图

  学习阶段的工作流程为:

  • 事件序列预处理:将一个http事件,与其触发的前后相关的SQL事件作为同一个事件序列。
  • 数据挖掘:利用GSP算法,找出前台http事件与后台SQL事件之间的关联关系。根据设定的支持率和置信率,经过一阶大序列、组合高阶序列、验证候选序列等步骤,最终得到满足设定条件的序列模式。
  • 序列导出:将自学习阶段产生的关联关系,导出到文件中,供关联阶段使用。

关联阶段的工作流程为:

  • 读取并解析前后台事件关联规则文件;
  • 读取设定数量的前台Http访问事件;
  • 读取对应时间段内的所有SQL事件;
  • 按照序列模式关系进行匹配,如果匹配成功,输出完整的访问序列信息;如果匹配失败,输出违规访问报警,以及相关的违规访问事件信息。

4.22异常访问追踪系统

同上一子系统类型类似,该系统的运行也分为学习阶段和关联阶段。其架构如下图所示:

面向Web中间件的业务审计系统4

图4 异常访问发现系统架构图

  学习阶段的工作是建立数据库访问行为的正常轮廓模型,本系统中利用K-中心算法,从多个维度上对SQL语句的参数进行聚类分析,输出为SQL语句参数的聚类规则描述。这样不符合聚类规则描述的SQL语句即为孤立点,代表了一次异常访问。在实时关联阶段,将会根据该聚类规则,对于通过了违规访问子系统检测、合乎业务逻辑的访问序列,进一步判断其访问行为是否偏离了正常模型,从而进一步保护用户业务系统的运行安全。

5.未来展望

国外知名调查机构Forrester Research在《Enterprise Database Audit And Real-time Protection 2011.Q2》的分析报告中,提出了评价数据库审计和实时保护产品的10大指标,,其中就包含了“对应用程序支持的程度”指标,该指标的详细描述就是“是否能够审计应用系统帐号访问行为,甚至在访问数据库只采用一个连接的时候也能够进行审计”(How strong is the vendor’s support for applications? Can the product audit access per individual application user,even when a pooled connection method is userd to access the database?)文中提及了该领域的领导厂商(Guardium、Imperva、Tizor)的研究状态。Guardium采用的是另一种技术手段(通过网络层和主机层采集数据)实现的业务关联分析,对于提供该业务的厂商,比如Oracle、IBM、Symantec等目前尚未实现。由此可以看到,面向Web中间件的业务关联分析系统是目前国际上合规审计类产品发展的必然方向,国内也应展开相关技术的研究以及产品化,已替代国外产品,满足国内市场的需求。

6.参考文献

  1. The Forrester Wave:Enterprise Database Auditing And Real-Time Protection,Q4 2007
  2. The Forrester Wave:Market Overview Database Security 2009
  3. The Forrester Wave: Your Enterprise Database Security Strategy 2010
  4. Gartner: All 10 of these data-related behaviors should be part of any enterprise’s standard auditing regimen 2010
  5. Frost & Sullivan: 中国区数据库安全审计与防护市场分析2012
  6. Jiawei Han, Micheline Kamber, Jian Pei. Data Mining Concepts and Techniques[M]. 范明,孟小峰, 译. 北京: 机械工业出版社,
  7. Shulman, Amichai, Boodaei等. System and method for correlating between HTTP requests and SQL queries[P]. 美国: 609662, 2006.

上一篇:软件定义安全模型与架构讨论

下一篇:云环境中的软件定义安全