- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
局域网的内网安全监护系统设计
1 引言
随着计算机网络的飞速发展,互联网用户在享受网络带来的种种便利的同时,也受到了形形色色的安全威胁。长期以来,人们主要关注来自外网的不安全因素,而忽视了内部攻击。防火墙重点解决了如何有效防范外部非法入侵问题,而对于网络内部的攻击则无能为力。实际上,来自内网的攻击破坏力之大同样是难以估量的,它不仅极大威胁到了局域网内部通讯的安全性,而且可以在短时间内使整个局域网陷于瘫痪。虽然当前已经出现了一些软件产品能够解决类似的问题,但它们不仅在性能上的表现不尽人意,而且安全软件本身也容易遭受攻击。
本项目的名称为“内网安全监护系统”(下文简称系统),意在监测并防护内网的安全。项目由程久军老师指导,由本小组具体实施。
2 需求说明
2.1 任务概述
2.1.1目标
本项目旨在开发一套基于FPGA硬件的安全防护系统,针对目前几种流行的局域网攻击手段及潜在的威胁,实时监测局域网的安全状态,一旦发现来自网内的攻击,能够立即采取措施终止危害,并最大程度地对攻击进行修复,同时对网络管理员发出警报,从而保证交换网络安全地运行。
2.1.2 用户的特点
本系统的最终用户为网络管理员。作为专业技术人员,他们至少应具有基础的网络管理和网络安全防护知识,熟悉局域网的工作原理及相关网络设备的配置方法,并了解局域网内常见的攻击手段。因此,系统无须开发专用的图形用户界面,可以允许用户通过开关旋钮直接操控硬件,而对于复杂的操作,则可提供通过串口终端或telnet方式登录的控制台配置方式。
2.1.3 约束条件
本项目自7月6日起至8月31日止,共计8周时间,经费预算2万元。须在截止日期前完成所有设计及相关文档,进行系统测试并分析测试结果,提出改进方案。根据大赛要求,整个项目需要在组委会提供的Xilinx Spartan-3E Starter Board上完成,并应当尽可能充分地利用开发板提供的所有资源。
2.2 需求规定
2.2.1 功能需求
2.2.1.1 监听
系统应当能够监听交换网络中所有数据包,而不应当出现意外的丢包现象。
系统应当能够监视网卡处于混杂模式的潜在攻击源。
2.2.1.2 防御
系统应当能够对截获的数据包进行过滤和分析,从中提取出进行“特定”攻击的恶意数据包并追踪该包的来源和影响,从而采取“相应”的措施中止攻击以及对其造成的不良影响进行修复。系统应当能够根据配置文件的要求,对处于混杂模式的潜在攻击源采取主动防御措施。
“特定”的攻击包括:基于ARP欺骗的IP欺骗、网关欺骗和中间人攻击;DHCP欺骗攻击;MAC泛洪攻击。“相应”的措施包括:中止攻击者的网络连接;修复被ARP欺骗的主机的ARP缓存;修复被DHCP欺骗的主机的IP地址。
2.2.1.3日志
系统应当能够维护系统日志,记录系统的工作。纳入日志内容的事件应包括:系统启动和中止,检测的攻击,采取的措施,处理的结果,系统错误。每条日志记录应包括相关事件发生的具体时间。
2.2.1.4警报
当系统检测到攻击时,应当能够通过系统状态指示灯发出警告,表明攻击的类型,以便管理员了解网络安全情况并进行人为的干预。
2.2.1.5配置
系统启动时应当读取配置文件的内容并根据要求进行自动配置。由于配置信息相对稳定,同时出于安全考虑,系统不必支持运行时配置,当配置更改时须使系统重启以应用新配置。
系统应允许用户通过功能开关实时控制是否对相应的攻击进行监视和防御。
2.2.2 性能需求
2.2.2.1 精度要求
系统不应对理想状态下的网络产生任何干涉。对于正常工作而没有攻击的网络,误报率小于0.01%,误报后采取的防御措施应不致影响网络正常工作。对于实际存在的攻击,漏检率不大于1%。
2.2.2.2时间特性
系统应当能在攻击发起后10ms内监测到攻击,并在1s内处理完毕,包括采取的防御措施和日志记录。若系统出现错误而进行自动修复,暂停服务时间不应超过3s;若系统出现致命错误需要复位,暂停服务时间不应超过15s。
2.2.3 输入输出的要求
2.2.3.1 输入
数据输入
以太网帧是系统的主要输入,由软件负责通过以太网接口自动采集并分析处理。
控制输入
系统通过配置文件和功能开关控制系统的行为和运行方式,详细说明见1.4.3 控制方式。
2.2.3.2 输出
安全防御措施
安全防御措施是本系统最主要的输出。系统应当能够对检测到的攻击采取相应措施,立刻中止攻击,并最大地对攻击造成地危害进行修复,是网络及其上的主机回复正常。
系统状态指示
系统应当能够通过系统状态指示灯表明系统当前的运行状态。能够指示的状态包括:系统启动过程;系统正在监视的攻击类型;系统对检测到攻击的警告。
系统日志
系统日志用以保存系统运行时的状态,供日后分析网络状态或系统故障时参考。
2.2.4 数据管理能力要求
配置文件管理
系统应当能够自动读取配置文件中的数据并分析得到文件所描述的要求。
日志文件管理
系统应当把监测信息以及处理方法与结果写入系统日志存储备查,因此应当具备对文本文件的操作与管理能力。由于系统监视对象的信息流量较大,故应当具备处理大量记录的系统资源,包括处理器时间和存储空间。如果系统本身不能提供足够的空间,应采取其它措施保障重要数据不会丢失。
2.2.5 故障处理要求
系统一旦失灵,将无法继续保障网络安全,而使整个网络暴露在入侵者的攻击之下。因此,系统应当能够及时监测故障并自行恢复。若故障无法自行恢复,应立即使系统复位,并迅速恢复功能。故障发生时,应当记录故障发生的时间、原因和拟采取的措施,以备日后审查。
2.2.6对安全性的需求
系统在维护交换网络安全的同时,应能够抵御入侵者对系统本身的攻击,保证系统的正常运行,不至因遭到攻击而崩溃。同时,系统应具备足够的安全性,以防止其设置和日志信息被入侵者恶意篡改。
2.3 运行环境
1.4.1 设备
Xilinx Spartan-3E Starter Board
Spartan®-3E FPGA 入门套件是一个完整的开发板解决方案,能够提供嵌入式系统所需的全部硬件支持,是比赛组委会官方提供并指定使用的硬件开发平台。
H3C S2108 Switch
H3C S2108交换机是二层线速以太网交换产品,提供8个以太网端口和1个console口,支持Vlan划分、Vlan内端口隔离、MAC地址+端口绑定等功能以及SNMP和HGMP协议,可以通过命令行、Web界面和iMC网管软件等多种方式进行管理。
1.4.2 支持软件
1.4.2.1 操作系统
CentOS 5.2
CentOS相当于Redhat的AS/ES/WS的免费版本。它完全兼容Xilinx ISE和EDK,以及PetaLinux的发行版,因而被选用作本项目开发的系统平台。
1.4.2.2 开发环境
Xilinx EDK 10.1 SP2&Xilinx ISE 10.1 SP2
Xilinx公司官方提供的硬件设计工具,用于FPGA逻辑器件的开发。
PetaLinux
PetaLinux由uClinux发展而来,是针对可编程逻辑器件设计的嵌入式Linux发行版,它包含用于在Xilinx FPGA上建立Linux系统所需的全部工具和源代码。
交叉编译环境:交叉编译工具由PetaLinux的工具包提供,包括全套工具和相应文档。
1.4.3 控制方式
配置文件
配置文件是系统的主要控制来源,它在系统初始化时被读入,用以配置系统的详细设置及运行行为。系统对各种攻击均默认采取自动处理方式,无需人为干预即可完成,同时会给出警报并在日志文件中作相应记录。
功能开关
系统针对每种攻击都设有功能开关,用以控制相应的功能是否开启。用户可以自由选择打开所需的功能,或临时屏蔽某些功能以使网络调试不受干扰。
2 详细设计
2.1 需求规定
根据需求分析的要求,系统能够实时监视局域网中的交换分组,在规定时间内发现并阻止特定类型的攻击,最大程度恢复攻击造成的不良后果,同时发出警报,并在日志文件中作相应记录。系统允许管理人员通过配置文件对系统运行状态和操作行为进行管理,或通过功能开关打开或关闭对某类攻击的监测。
2.2 实现原理
2.2.1 系统结构和工作原理
系统针对交换以太网中的特定攻击进行防护,一个典型的网络结构如图1所示。
图1 网络结构
在上图所示的网络模型中,所有网络主机通过交换机实现互联,构成一般的交换网络。该网络通过DHCP服务器动态为网络中的主机分配IP地址,通过路由器接入Internet网络。系统工作时直接与交换机连接,通过监听网络中所有的交换分组来捕获网络中存在的攻击,进而通过交换机控制命令查询攻击源所在的端口并在规定时间内将其关闭以阻止其进一步攻击,同时向网内发出广播或采取其它措施,恢复上述攻击所产生的不良影响,以保障网络正常运行,达到网络安全监护的目的。系统可以通过拨动开关进行配置,并通过发光二极管指示状态和发出警报。为了使系统能够监听到网络上所有的交换分组,应把系统连接到交换机的镜像端口。
内网安全监护系统在逻辑上由三个主要部分组成,分别为Spartan-3E开发板、PetaLinux操作系统以及内网安全监护程序,三者关系如图2所示。
图2 系统层次结构
Spartan-3E开发板作为系统最底层的硬件,为上层操作系统和应用软件提供全部的硬件支持,是整个系统的物理载体。硬件系统基于FPGA设计,并充分利用开发板上现有的硬件资源,通过编程在FPGA芯片上实现了32位MicroBlaze处理器、总线及其它外围逻辑电路,并通过GPIO与开发板上的其它模块和接口相连接,形成了一套完整的硬件系统。
PetaLinux是由uClinux发展而来的嵌入式Linux发行版,由Xilinx的官方合作伙伴PetaLogix开发和维护。根据系统需要进行了裁减、优化和编译,PetaLinux安装到硬件系统中执行操作系统的职责,负责系统资源的管理,并为应用程序提供所需的函数库的支持。
内网安全监护程序实现了全部的核心算法,是系统的灵魂。程序监听以太网卡帧并进行比对和分析,发现并阻止网络上特定的攻击,从而实现要求的安全功能。具体的攻击原理及防御对策将在下一节详细阐述。
2.2.2 攻击原理和防御对策
基于ARP欺骗的攻击
ARP欺骗是攻击者利用ARP协议自身存在的安全漏洞而实施地对局域网内主机的攻击。是当今局域网中一种典型的攻击方法。由于攻击利用了协议本身的缺陷,所以ARP攻击应用范围广,危害程度高,而且难以修正。总的来讲,ARP协议的缺陷主要表现在以下几点:
ARP高速缓存是动态更新的,如果黑客在ARP表更新之前成功更改ARP表中的表项,就可以在ARP表更新前进行假冒或拒绝服务攻击。
ARP协议是无状态的,主机无论什么时候接收到ARP应答,而且都会更新ARP表,并不需要先发送ARP请求。
在通讯中,ARP缓存的优先级最高,发送主机总是先查询ARP缓存中的表项。
由于主机接收APR请求后按照ARP请求中负载的源MAC和源IP反向更新自己的ARP表。这样,攻击者就可以利用自己构造的ARP请求包来伪装局域网内任何一台主机。基于这种原理,常见的基于ARP的攻击通常有以下几种方式:
中间人攻击:当主机A欲与主机B通信时,A向B发送一个ARP请求,攻击者C监听到这个请求以后,以B的名义向A发送APR应答,同时以A的名义再向B发送一个ARP请求,这样一来,主机A中ARP表中B的ip对应了攻击者C的MAC地址,同时主机B中ARP表中A的ip也对应了攻击者C的MAC地址,以后A和B通信过程中的所有信息都将经过攻击者C的转发,这样一来,攻击者C就可以轻易获取A和B之间的通信内容,甚至可以修改之,却不会被A和B发现,从而造成巨大的危害。
网关欺骗:攻击者向全网广播ARP应答,在应答包中把网关的IP地址对应到攻击者指定的MAC地址,其它主机接收到ARP应答包后,就会更新网关的ARP表项,从而导致其它主机不能上网。
IP欺诈:攻击者可以利用自己构造的ARP包来伪造局域网内的任何一台主机的IP地址来与其它主机通信。
以上的ARP攻击有这样一个特点:攻击者若想攻击成功只有在正确的ARP包被目的主机接收以后再发送伪造的ARP包,才能更改目的主机的ARP表项,才能达到欺骗目的。
针对以上的攻击方式,其总的检测方法是建立一个动态的MAC-IP库,在系统初始化时向网内所有的主机发送ARP请求,利用系统收到的ARP应答建立初始的MAC-IP参考库。在系统运行过程中捕捉到ARP包的时候,就可以与库中的MAC-IP进行比较,按照不同的规则发现ARP攻击并确定攻击源的位置。另外,由于一个局域网内网关相对固定而又容易成为攻击对象,所以在配置文件中记录下网关的MAC和IP地址信息,作为系统中的静态MAC-IP表项,这样就可以一次性成功地预防欺骗网关的攻击。
对于ARP攻击已经造成的危害(接收主机上的ARP表已经出现错误表项),本系统会构造相应的合法包去更正接收主机的ARP表中的错误表项,力求保证局域网内的通信安全和畅通。
DHCP欺骗
DHCP欺骗是攻击者假冒局域网内的DHCP服务器,对请求IP地址和默认网关等信息的主机发送伪造的应答,导致用户无法正常连接到网络。另外,攻击者还可以用非法的默认网关重定向用户的上网流量,以达到窃取秘密信息的目的。
由于DHCP协议中固有的安全漏洞,客户机以广播的方式请求IP地址,如果客户端收到网络上多台DHCP伺服器的回应﹐只会挑选最先抵达的那个Dhcpoffer﹐并且会向网路发送一个Dhcprequest广播封包﹐告诉所有DHCP服务器它将指定接受哪一台伺服器提供的IP位址。只要攻击者距离客户机的物理距离较实际DHCP服务器更近,欺骗攻击都会被成功实施。
针对此种攻击,本系统在配置文件中读取合法的DHCP服务器的MAC地址和IP地址,利用DHCP应答包“UDP协议、源端口号为67、目的端口号为68”的特点,抓取局域网内的DHCP应答包,当发现其源MAC或源IP与配置文件中的相应信息不相同时,就可以断定发生了DHCP欺骗攻击,利用源MAC查找攻击源,修复被欺骗的主机的IP,并记录系统日志,通过系统状态指示灯通知网管人员。