http://www.dzsc.com/data/html/2011-8-28/95050.html分布式防火墙由安全策略管理
服务器[Server]以及客户端防火墙[Client]组成。客户端防火墙工作在各个从服务器、工作站、个人计算机上,根据安全策略文件的内容,依靠包过滤、特洛伊木马过滤和脚本过滤的三层过滤检查,保护计算机在正常使用网络时不会受到恶意的攻击,提高了网络安全性。而安全策略管理服务器则负责安全策略、用户、日志、审计等的管理。该服务器是集中管理控制中心,统一制定和分发安全策略,负责管理系统日志、多主机的统一管理,使终端用户“零”负担。 图1展示了分布式防火墙在政府/企业中的应用解决方案。该方案是纯软件防火墙,无须改变任何硬件设备和网络架构,就可以帮助政府/企业阻挡来自外部网络的攻击。
随着网络的升级和扩容,传统的盒式防火墙已经很难满足大容量、高性能、可扩展的需求和挑战。这就引入了机架式防火墙产品的设计与研发。分布式的Crossbar架构能够很好的满足高性能和灵活扩展性的挑战。 分布式Crossbar架构除了交换网板采用了Crossbar架构之外,在每个业务板上也采用了Crossbar+交换芯片的架构。在业务板上加交换芯片可以很好地解决了本地交换的问题,而在业务板交换芯片和交换网板之间的Crossbar芯片解决了把业务板的业务数据信元化从而提高了交换效率,并且使得业务板的数据类型和交换网板的信元成为两个平面,也就是说可以有非常丰富的业务板,比如可以把防火墙、IPS系统、路由器、内容交换、IPv6等等类型的业务整合到核心交换平台上。同时这个Crossbar有相应的高速接口分别连接到两个主控板或者交换网板,从而大大提高了双主控主备切换的速度。
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)建立入侵检测的联动过程以实现内部网络的自动响应报警。
2 日志服务器的设计与实现
2.1 审计系统的实现
日志数据的产生由分布式防火墙中各主机的相关模块实现。日志服务器接收到实时并发上传的日志信息后,存储在专门的数据库中,并通过审计界面来完成数据查找和统计等各项功能。调用接口内置于审计系统中。审计系统由以下几个功能模块组成:网络实时监控、统计数据查询、系统资源状况监控、攻击行为查询和编辑归档。
数据库处理通常是审计系统处理中最耗时的步骤。而在各种数据库处理的过程中,数据库的连接和释放又是关键点。在系统中采用数据库连接池技术来减少数据库连接与释放操作从而解决耗时问题,即在系统初启或者初次使用时,完成数据库的连接,而后不再释放此连接,当后面的请求到来时,反复使用这些已建立的连接。
2.2 数据采集的实现
2.2.1 日志数据接收过程
日志接收流程如图2所示,它包括6个部分:信息采集引擎、数据过滤与精简、数据格式化、日志接收代理、数据入库和用户GUI界面。
对于分布式防火墙来说需要将4类日志信息上传到日志服务器。前3类分别为主机与边界的防火墙、入侵检测以及网络连接这3个模块产生的日志信息。第4类为策略中心产生的日志信息。
日志的接收有单线程与多线程2种方法可供选择。由于日志服务器将实时接收多路日志信息,若采用单线程方法,将可能导致数据拥塞,造成信息丢失,严重时可能使日志服务器主机瘫痪。而多线程方法在实现上较为复杂,但确能弥补单线程的不足。通过对比,日志接收模块采用多线程的方法监听一个固定端口,然后根据数据包中的运行方式字段来区分不同的日志。一旦有数据到达,接收模块就实时地进行接收和处理,提取有用的信息并以一定的格式存储到数据库中。日志信息分类情况如表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(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
2.3 基于日志信息的统计入侵检测的实现
检测系统基于日志信息的统计分析结果发现入侵行为,上报策略中心以阻击入侵。检测系统模型是基于统计用户日常行为,通常通过对主体特征变量的度量(即频度、使用时间、记录分布等属性)的统计概率分布进行分析,通过对比用户的短期概貌与长期概貌的差异来检测当前用户行为是否异常。
2.3.1 基于日志信息的统计入侵检测过程
基于日志信息的统计入侵检测模型如图4所示,主要包括:日志数据接收与预处理、日志分析引擎和自动响应代理。
分析引擎是整个系统的核心。统计分析首先根据用户的访问次数创建一个统计描述,即一个度量,进行长期概貌学习。学习的天数是通过指定“半生”的方法来设置的。若半生设为30天,则意味着在长期概率分布中,半生(也就是最近30天)的审计记录所占权重为最新记录的一半。而下一个半生(60天)的审计记录的权重则是一半的一半,也就是四分之一,依此类推。
度量长期概貌和短期概貌的差异程度是通过Q统计来计算的。此处将Q值的长期行为的概貌作为真实的概率分布,短期行为的概貌作为被考察的对象。每天Q值的更新过程通过如下公式进行:
其中:r为衰减率,受半生影响,r越大表示最近的记录对Q值影响也越大;t表示逝去的时间,当以访问次数来表征时,t设为1。
在经过一定时间长期概貌学习后,统计模块就可进入短期概貌学习。短期所得的Q值偏离均值越多,说明短期概貌和长期概貌的差异也越大,即在短期行为中的可疑点越多。这样对Q设定不同的阀值就可以表征不同程度的入侵行为。
2.3.2 联动过程
由于分布式防火墙具有整体性,因此当分析引擎发现异常行为时,将通过自动响应代理实现联动,实时上报策略中心。由策略中心向发生异常的主机发出相关的安全策略以保护内部网络。
3 结束语
本文所介绍的分布式防火墙中日志服务器的设计方法已在“新型分布式防火墙”的研发中得以实现。选用Linux操作系统平台,实现工具为可视化编程语言Kylix与MySQL轻量级数据库。Kylix语言作为图形界面的工具与后台的MySQL数据库通过DBExpress技术实现连接。系统运行正常。