当前位置:首页 > 演讲稿 > 【网络控制代理的设计与实现】 中央实现网络控制
 

【网络控制代理的设计与实现】 中央实现网络控制

发布时间:2019-01-10 04:20:09 影响了:

  摘要:网络控制代理部署在传统防火墙的位置上,通过专用硬件实现,按照管理中心制定的安全策略,对经过它的各种网络行为进行封堵或放行,并将产生的日志上传到管理中心进行统计和管理,同时还能将网络控制代理产生的日志和告警信息收集起来。
  关键词:网络控制代理;信息流;数据包;网络安全
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31546-02
  Design and Implementation of Network Control Agent Systems
  LU Xiao-jun
  (Anhui Communications Technology Institute,Hefei 230051,China)
  Abstract:The network control agent system deployment in the traditional firewall"s position, realizes through the special hardware, according to the administrative center formulation"s security policy, to passes through its each kind of network behavior to carry on the trap or to allow to pass, and will produce the diary uploads to the administrative center carries on the statistics and the management, meanwhile can the diary which and the warning collection of information has the network control agent system.
  Key words:Network Control Agent;Information Flow;Packet;Network Security
  
  1 概述
  
  作为“安全网管”系统的重要组件之一,网络控制代理是一台单独的机器,部署在内部网与外部网的出入点,或者是内部网某个子网的网关上。它类似于传统的防火墙,不同之处是自己不进行安全策略的制定和日志信息的处理。网络控制代理按照管理中心制定的安全策略,对经过它的各种网络行为进行封堵或放行,并将产生的日志上传到管理中心进行统计和管理。
  鉴于目前IP地址严重不足,网络控制代理还应有NAT的功能。借助NAT,内部网用户能用一个或有限的几个合法IP地址联入Internet,和对外提供网络服务,同时隐藏了网络的拓扑结构,为内部网提供最初始的防护。
  网络控制代理部署在传统防火墙的位置上,保持了传统防火墙的特点,又没有带来传统防火墙的固有缺陷:内部网与外部网出入口这个位置具有得天独厚的优势,对于某些网络攻击如DOS,若在这个位置上进行控制,则只会影响内部网对外面的访问,而不会影响内部网主机之间的通信。另一方面,内部网的主机可由主机安全代理提供保护,因此在网络控制代理上可以不进行复杂的过滤和查询,因此不会造成网络传输的“瓶颈”问题和“单点”故障。
  网络控制代理通过专用硬件实现[1],为此,可选择一台带有两个网卡的PC兼容机,操作系统为Linux。因为Linux的源代码是公开的,我们可以对它的内核进行改造和加固,使其不提供危险的服务,也没有漏洞供恶意者利用,为内部网提供最初始的安全防护。
  
  2 netfilter架构
  
  netfilter是Linux2.4以上版本的内核实现数据包过滤、NAT和数据包修改等功能的框架,是一种用于扩展各种网络服务的结构化底层框架。它的设计思想是生成一个模块结构使之能够比较容易扩展,新的特性加入到内核中并不需要从新启动内核。这样,可以通过简单的构造一个内核模块来实现网络新特性的扩展,给底层的网络特性扩展带来了极大的便利,使更多从事网络底层研发的开发人员能够集中精力实现新的网络特性。
  Linux2.4内核提供了三种基于netfilter数据包处理的功能模块:包过滤模块、NAT模块和数据包修改模块。它们之间相互独立,都完美地集成到由netfilter提供的框架中[2]。
  包过滤模块通过NF_IP_LOCAL_IN、NF_IP_FORWARD以及NF_IP_LOCAL_OUT接入netfilter框架中,并在这三个检测点有数据包的过滤函数,对进入的数据包实施过滤。且从检测点可以看出,对于任何一个数据包只有一个地点对它进行过滤。
  NAT模块在netfilter的三个检测点有处理函数:NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING及NF_IP_LOCAL_OUT。NF_IP_PRE_ROUTING实现对需要转发数据包的源地址进行地址转换,NF_IP_POST_ROUTING对需要转发数据包的目的地址进行地址转换,对于本地数据包目的地址的转换则由NF_IP_LOCAL_OUT的处理函数来实现。
  数据包修改模块在NF_IP_PRE_ROUTING和NF_IP_LOCAL_OUT中注册处理函数,可以实现对数据包的修改或给数据包附上一些带外数据,当前支持修改TOS比特及设置skb的nfmard字段。
  三个功能模块具体实现如何实现还依赖于filter表(包过滤)、nat表(NAT)和mangle表(数据包修改)。这些表实际上就是一些规则和方法,是这些功能模块实现特定功能的依据。内核可以创建一个新的表,也可以编辑、删除一个已经存在的表。Iptables就是这样一个内核中自带的对这些表进行管理的工具。
  因此要实现访问控制和NAT的功能,我们可以通过iptables创建filter表和nat表来告诉内核允许哪些数据包、禁止哪些数据包、改变哪些连接以及怎么改变。为了使创建的表在机器重启后不会丢失,应该把这些配置命令放置在启动脚本中。同样地,在网络控制代理运行过程中,如果重新配置filter表和nat表也应对启动脚本做相应的改变。
  netfilter中的包过滤能提供一些基本的访问控制功能,但如果管理中心制定的安全策略过于复杂,如需实现内容扫描、邮件地址控制、OICQ账号控制等,这时仅仅有包过滤模块已不能满足需求了。在这种情况下,需要在netfilter架构中的相应检测点加入另外的包过滤函数。我们可以编写可卸载内核模块(LKM)来实现这些功能函数。
  可卸载内核模块是Linux系统用于扩展其功能的,使用LKM的优点是,它们可以被动态的加载、卸掉,而且不需要重新编译其内核。每个LKM至少由两个基本的函数组成:
  int init_module (void) { }/*用于初始化所有的数据*/
  void cleanup_module (void) { }/*用于清除数据和安全退出*/
  可卸载内核模块通过nf_register_book函数可以在netfilter的一个或多个检测点进行注册,实现连接。当某个数据包被传递给netfilter时,内核能检测是否有模块对该检测点进行了注册。若有模块注册了,则调用该模块注册时使用的回调函数,这样这些模块就可以对该数据包进行各种复杂的过滤和检查。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   3 攻击防范
  网络控制代理处在内部网和外部网之间,在防范某些网络攻击上具有得天独厚的优势。利用netfilter架构的包过滤模块和自己编写的可卸载内核模块(LKM),可以在网络控制代理中防止TCP/UDP端口扫描、源路由攻击、IP碎片攻击、DNS/RIP/ICMP/IGMP攻击等。
  通过限制单位时间内SYN和ICMP数据包流入内部网络的数量,可以在一定程度上防止DoS攻击。对于DoS攻击中较为常见的TCP半连接攻击,还有一个比较有效的办法是TCP连接监控。目前,这种方法已经被很多防火墙产品采用[3]。
  对于DoS攻击,流量限制和TCP连接监控方法都是被动地进行防范。目前,网络上的拒绝服务攻击大多数是分布式的DoS攻击(DDoS)。攻击者主机通过某些手段(后门或特洛伊木马)控制一大批傀儡主机,在同一时间向目标主机发起攻击。傀儡主机来自企事业单位的内部网,如果我们在网络控制代理中控制这些傀儡主机的异常行为,就能在一定程度上减少Internet上的DDoS攻击。网络控制代理中可以采用以下的措施:
  禁止源IP地址不是本地合法地址的数据包流出网络;
  禁止源IP、目标IP中含有私有IP或保留IP的数据包流出网络;
  屏蔽那些不用的端口,特别是与DDoS工具有联系的。
  当然,如果能破坏攻击者控制的内部往主机成为傀儡主机的过程,则会更好地减少 DDoS攻击行为。根据DDoS工具中攻击者主机与傀儡主机之间通信的分析,总结出以下异常现象。如果能根据这些异常现象,在网络控制代理中进行相应的控制,应该会有很好的效果。
  根据分析,攻击者在进行 DDoS攻击前总要解析目标主机的主机名,域名解析服务器能够记录下这些请求。由于每台傀儡主机在进行一个攻击前会发出PTR反向查询请求,因此在DDoS攻击前,域名服务器会接收到大量的反向解析目标主机名的PTR查询请求。
  特大型的ICMP和UDP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节;正常的ICMP消息也不会超过64到128字节。那些明显大得多的数据包很有可能就是攻击者主机与傀儡主机通信用的,里面含有加密后的目标地址和一些命令选项。
  不属于正常连接通讯的TCP和UDP数据包。最隐藏的 DDoS工具随机使用多种通信协议,通过基于无连接通道发送数据。另外,那些连接到高于1024而且不属于常用网络服务的目标端口的数据包也是非常值得怀疑的。
  数据段内容只包含文字和数字字符(例如,没有空格、标点和控制字符)的数据包。这些往往是数据经过base64编码后而只含有base64字符集字符的特征。如TFN2K发送的控制信息数据包就是这种类型的数据包,TFN2K(及其变种)的特征模式是在数据段中有一串A字符,这是经过调整数据段大小和加密算法后的结果。虽然此时可能在传输邮件,但如果这些数据包不属于正常有效的通讯时,可以怀疑正在传输的是被base64编码的控制信息通信数据包。如果实施这种规则,必须将20、21、80等端口上的传输排除在外。
  数据段内容只包含二进制和high-bit字符的数据包。虽然此时可能在传输二进制文件,但如果这些数据包不属于正常有通讯时,可以怀疑正在传输的是没有被base64编码但经过加密的控制信息通信数据包。如果实施这种规则,必须将20、21、80等端口上传输排除在外。
  
  4 功能模块
  
  网络控制代理模块功能的实现主要有七个模块,它们是访问控制模块、NAT模块、内容监控模块、攻击防范模块、通信模块、功能管理模块和安全支撑模块。结构框图如图1所示。
  图1 网络控制代理结构框图
  访问控制模块:利用netfilter架构的包过滤模块和可卸载内核模块(LKM)机制,实现基于IP地址、协议和端口的访问控制、IP和MAC地址的绑定及流量控制等。
  内容监控模块:利用netfilter架构的可卸载内核模块机制,实现基于病毒特征码、不良关键字、Activex、Java、Javascript的数据包内容扫描,以及针对邮件账号、ICQ/OICQ账号和FTP的监控。
  NAT模块:利用netfilter架构的NAT模块实现源NAT(IP伪装)和目的NAT(端口转发、负载均衡、透明代理)。
  攻击防范模块:防止TCP/UDP端口扫描、DoS/DDoS攻击、源路由攻击、IP碎片攻击、DNS/RIP/ICMP/IGMP攻击等,另外还对一些异常数据包进行控制。
  通信模块:包括服务器端程序和客户端程序,服务器端程序响应管理中心发放安全策略或上传日志的请求,客户端程序则主动发出请求,向管理中心上传日志和告警信息。采用基于TCP的 Socket的通信来进行,因为要传送的数据量大,并且TCP能够提供可靠的数据流投递服务。
  功能管理模块:该模块把从管理中心传送来的安全策略转换成过滤规则和配置信息,使它们及时生效,同时将产生的日志和告警信息收藏起来。
  安全支撑模块:为与管理中心之间的通信进行身份认证和提供安全保护。
  
  5 小结
  
  Linux内核带有一个通用的架构netfilter和包过滤、NAT模块,可以很方便地实现访问控制和NAT的功能。另外,Linux提供一种叫做可卸载内核模块,来实现对数据包复杂的过滤和检查。由于需要与管理中心进行安全策略和日志的传递,所以还需要一个与管理中心进行通信的程序,该程序包含一个服务器端程序和一个客户端程序,能响应管理中心发放安全策略或上传日志的请求,也能主动向管理中心上传日志和告警信息。另外还要有一个策略和日志的管理程序,把从管理中心发来的安全策略转换成过滤规则和配置信息,并使之及时生效,同时还能将网络控制代理产生的日志和告警信息收集起来。
  
  参考文献:
  [1]卢昱著.网络控制论概论[M].北京:国防工业出版社,2005:228-251.
  [2]吴玉.基于操作系统内核的包过滤防火墙系统的设计与实现[J].湖南工程学院学报:自然科学版,2006,16(2):39-41.
  [3]何宁.网络控制论在网络攻防中的应用[J].武汉大学学报:理学版.2006,52(5):639-643.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3