kaiyun官方注册
您所在的位置: 首页> 通信与网络> 设计应用> 分布式防火墙中日志系统的设计与实现
分布式防火墙中日志系统的设计与实现
舒 朗,王蔚然
电子科技大学 电子工程学院,四川 成都610054
摘要:结合分布式防火墙及其日志服务器模型,分析了日志系统的特点,并在此基础上给出了其功能模块与设计要点。
Abstract:
Key words :

摘 要:结合分布式防火墙及其日志服务器模型,分析了日志系统的特点,并在此基础上给出了其功能模块与设计要点。
关键词:分布式防火墙 日志服务器 入侵检测

  分布式防火墙是一种主机驻留式的安全系统,用以保护主机用户和网络中的关键结点免受非法入侵的破坏。它对来自Internet和内部网络的所有信息流进行过滤与限制。
作为分布式防火墙中主要模块之一的日志服务器,它有别于传统意义上边界防火墙的日志系统。它的设计与实现关系着分布式防火墙的整体架构与性能。
1 分布式防火墙日志系统模型及特点
1.1 分布式防火墙基本模型
  分布式防火墙作为一个完整的系统,负责对网络边界、各子网和网络内部各节点之间进行安全防护。其基本模型如图1所示,包含4个部分:(1)策略中心(Policy Central):策略中心作为分布式防火墙的核心,负责整个防火墙总体安全策略的策划、管理与分发。(2)边界防火墙(Perimeter Firewall):边界防火墙是连接内网与外网的桥梁。(3)主机防火墙(Host Firewall):主机防火墙负责对网络中的服务器和桌面机进行防护。它位于内部子网的工作站与服务器之间,以确保内部网络服务器的安全。(4)日志服务器(Log Server):日志服务器负责对发生在整个网络的所有事件(如协议规则日志、用户登录事件日志、用户Internet访问日志等)进行汇总,以供审计分析。

1.2 分布式防火墙中日志服务器的特点
  防火墙的日志系统主要是对网络上某个节点的访问进行记录和审计,几乎不从内部网络的主机节点去审计网络的状态。而分布式防火墙中日志服务器是集中管理并审计整个内部网络上传的日志信息,包括所有受保护的主机、边界防火墙和策略服务器等,同时实时监控内部网络状态,并在此基础上实现基于日志信息的统计入侵检测功能。
  日志服务器功能包括3个方面:收集系统中各种信息;记录和显示信息;基于日志信息统计入侵检测。所以,当各个功能模块生成日志信息时,日志服务器需将日志信息写入数据库,并通过分析引擎进行统计分析。而当管理者要求显示统计信息时,日志服务器又需从数据库中提取出有价值的信息,并通过审计系统提供给审计界面。
  对日志系统功能的实现进行分析,得到以下设计要点:(1)将日志服务器设计为客户/服务器模式。各个信息采集引擎作为客户端向日志服务器发出请求,而日志服务器作为服务器端对各种请求进行具体处理。(2)采用数据库连接池技术避免频繁的数据库操作而引起速度瓶颈。(3)日志服务器采用加密传输通信方式以防范来自内部网络的类似DDOS的攻击。(4)由于一个服务器对应多个客户Socket 连接,因此服务器采用多线程方式进行处理。(5)建立入侵检测的联动过程以实现内部网络的自动响应报警。
  根据上面的分析和考虑,日志系统由3个部分组成:审计系统、数据采集和基于日志信息的统计入侵检测。下面分别给出了设计与实现要点。
2 日志服务器的设计与实现
2.1 审计系统的实现
  日志数据的产生由分布式防火墙中各主机的相关模块实现。日志服务器接收到实时并发上传的日志信息后,存储在专门的数据库中,并通过审计界面来完成数据查找和统计等各项功能。调用接口内置于审计系统中。审计系统由以下几个功能模块组成:网络实时监控、统计数据查询、系统资源状况监控、攻击行为查询和编辑归档。
  数据库处理通常是审计系统处理中最耗时的步骤。而在各种数据库处理的过程中,数据库的连接和释放又是关键点。在系统中采用数据库连接池技术来减少数据库连接与释放操作从而解决耗时问题,即在系统初启或者初次使用时,完成数据库的连接,而后不再释放此连接,当后面的请求到来时,反复使用这些已建立的连接。这种方式可以大大减少数据库的处理时间,有利于提高系统的整体性能。
2.2 数据采集的实现
2.2.1 日志数据接收过程
  日志接收流程如图2所示,它包括6个部分:信息采集引擎、数据过滤与精简、数据格式化、日志接收代理、数据入库和用户GUI界面。

  对于分布式防火墙来说需要将4类日志信息上传到日志服务器。前3类分别为主机与边界的防火墙、入侵检测以及网络连接这3个模块产生的日志信息。第4类为策略中心产生的日志信息,如证书安装和策略下发等。
  日志的接收有单线程与多线程2种方法可供选择。由于日志服务器将实时接收多路日志信息,若采用单线程方法,将可能导致数据拥塞,造成信息丢失,严重时可能使日志服务器主机瘫痪。而多线程方法在实现上较为复杂,但确能弥补单线程的不足。通过对比,日志接收模块采用多线程的方法监听一个固定端口,然后根据数据包中的运行方式字段来区分不同的日志。一旦有数据到达,接收模块就实时地进行接收和处理,提取有用的信息并以一定的格式存储到数据库中。所有的功能模块都是基于数据库的。由此实现了日志服务器实时接收多路日志信息的功能。这里将日志信息分为8类,其中一般信息作为NOTICE级别,普通报警作为LOG_WARNING级别。日志信息分类情况如表1所示。

  日志数据包可以记录所有IP包的基本信息,包括每次经过防火墙的成功和失败的连接、源IP地址、目的IP地址和端口号、时间信息等。头部记录结构为:
{  unsigned long time;   //IP包经过防火墙开始时间
 unsigned long src_ip;  //源IP地址
 unsigned long dst_ip;  //目的IP地址
 short src_port;      //源主机端口号
  short dst_port;      //目的主机端口号
 char proto;       //协议号
 unsigned char type;   //IP包的类型
 short len;        //IP包的长度
}
2.2.2 安全通信的实现
  在整个分布式防火墙中,日志上传与接收采用SSL证书加密通信方式,以确保通信安全。采用的安全通信数据结构如图3所示。

  当接收模块接收到指令数据后,根据指令数据中的命令类型字段判别该命令的类型,根据运行方式字段确定该命令的处理方式,然后根据数据长度确定需要读取的后继字节数。SSL加密通信方式实现了日志的安全传送与接收,并可有效地防止日志服务器受到如DDOS等手段的攻击。
2.3 基于日志信息的统计入侵检测的实现
  检测系统基于日志信息的统计分析结果发现入侵行为,上报策略中心以阻击入侵。检测系统模型是基于统计用户日常行为,通常通过对主体特征变量的度量(即频度、使用时间、记录分布等属性)的统计概率分布进行分析,通过对比用户的短期概貌与长期概貌的差异来检测当前用户行为是否异常。
2.3.1 基于日志信息的统计入侵检测过程
  基于日志信息的统计入侵检测模型如图4所示,主要包括:日志数据接收与预处理、日志分析引擎和自动响应代理。

  分析引擎是整个系统的核心。统计分析首先根据用户的访问次数创建一个统计描述,即一个度量,进行长期概貌学习。学习的天数是通过指定“半生”的方法来设置的。若半生设为30天,则意味着在长期概率分布中,半生(也就是最近30天)的审计记录所占权重为最新记录的一半。而下一个半生(60天)的审计记录的权重则是一半的一半,也就是四分之一,依此类推。半生与概貌长度之间有着紧密的关系,概貌长度大概是半生的1.5倍。
  度量长期概貌和短期概貌的差异程度是通过Q统计来计算的。此处将Q值的长期行为的概貌作为真实的概率分布,短期行为的概貌作为被考察的对象。每天Q值的更新过程通过如下公式进行:

  其中:r为衰减率,受半生影响,r越大表示最近的记录对Q值影响也越大;t表示逝去的时间,当以访问次数来表征时,t设为1。
  在经过一定时间长期概貌学习后,统计模块就可进入短期概貌学习。短期所得的Q值偏离均值越多,说明短期概貌和长期概貌的差异也越大,即在短期行为中的可疑点越多。这样对Q设定不同的阀值就可以表征不同程度的入侵行为。这种统计分析方法的优点是可检测到未知的、更为复杂的入侵。
2.3.2 联动过程
  由于分布式防火墙具有整体性,因此当分析引擎发现异常行为时,将通过自动响应代理实现联动,实时上报策略中心。由策略中心向发生异常的主机发出相关的安全策略以保护内部网络。
3 结束语
  本文所介绍的分布式防火墙中日志服务器的设计方法已在“新型分布式防火墙”的研发中得以实现。选用Linux操作系统平台,实现工具为可视化编程语言Kylix与MySQL轻量级数据库。Kylix语言作为图形界面的工具与后台的MySQL数据库通过DBExpress技术实现连接。系统运行正常。
参考文献
1 韩晓璞.用分布式防火墙堵住内部网的漏洞.http://www.pcworld.Com,2001-04-06
2 Denning D E.Anintrusion-detectionmode.IEEE Transactionon Software Engineering,1987;13(2)
3 王伟.主机日志分析及其在入侵检测中的应用.计算机工程与应用,2002;13(6)
4 韩东海.入侵检测系统及实例剖析.北京:清华大学出版社,2002

此内容为AET网站原创,未经授权禁止转载。
Baidu
map