《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 基于PowerPC的无线局域网安全分析终端设计
基于PowerPC的无线局域网安全分析终端设计
宋 见1,2, 周 颢1,2, 赵保华1,2
1. 中国科学技术大学 计算机科学与技术系, 安徽 合肥230027;2. 安徽省计算与通讯软件重点
摘要: WLAN由于无线信道的开放性和安全机制的缺陷,需要安全分析系统进行管理。选用PowerPC(mpc8270)处理器为硬件平台,嵌入式Linux系统为软件平台,设计并实现了安全分析系统中的无线局域网安全分析终端。终端提供了WLAN报文的抓取、定制发送、编解码及测试脚本的解析与执行等功能。
Abstract:
Key words :

摘 要: WLAN由于无线信道的开放性和安全机制的缺陷,需要安全分析系统进行管理。选用PowerPC(mpc8270)处理器为硬件平台,嵌入式Linux系统为软件平台,设计并实现了安全分析系统中的无线局域网安全分析终端。终端提供了WLAN报文的抓取、定制发送、编解码及测试脚本的解析与执行等功能。
关键词:无线局域网; 安全分析; 终端; PowerPC

  在无线局域网(WLAN))的使用环境中,无线设备通过连接无线访问点(Access Point)进行通讯。由于无线信道的开放性,非法用户能够在不被发现的情况下监听获取信道中的数据包,也可以主动攻击无线访问点使其崩溃,导致整个无线局域网的通讯服务停止,WLAN的安全性受到了严重的挑战。目前,WLAN常用的安全措施有:设置无线访问点的SSID(Service Set Identifier)来限制非法接入、MAC 认证来确保合法用户才能够接入、WEP加密等。针对这些安全措施出现了数据窃听、数据分析、伪装合法用户、拒绝服务、修改数据、重放攻击等安全问题[1-2]。要解决这些安全问题,需要进行主动或者被动安全分析[3]。主动安全分析:通过构造协议报文序列,模拟针对无线局域网安全漏洞的网络攻击,同待测设备交互,检测待测设备是否能够防御此攻击,以判断待测设备是否存在安全漏洞。被动安全分析:根据监测到的网络数据,判断是否存在针对已知漏洞的攻击。要进行主动和被动安全分析,需要在WLAN环境中放置设备来对主动和被动安全分析技术提供支持,即无线局域网安全分析终端。
1  终端的部署结构及功能需求
1.1 部署结构
  无线安全分析终端部署结构如图1所示。图中包括多个无线安全分析终端、多个无线访问点(AP)、1个主控节点及其他无线接入设备。其中,无线安全分析终端与主控节点构成了无线安全分析系统。

1.2  功能需求
  主控节点包含主动与被动分析模块,终端对主动与被动分析模块进行支持。如图2所示,终端进行主动分析时,首先通过主控端有线网络接口接收来自主控节点的攻击测试脚本;然后执行脚本时,通过无线网络接口发送数据包;最后通过无线网络接口采集数据处理后发送回主控节点。终端进行被动分析时,首先通过无线网络接口采集无线报文;然后按照规则中的报文处理规则(包含各种网络协议编解码方式及处理规则)进行处理,将需要的数据通过主控端网络接口返回给主控节点进行分析处理。


  根据以上分析可知,终端需实现以下功能:
  (1) WLAN报文的抓取、定制发送及编解码功能。这是实现主动与被动安全分析的基础。
  (2) 主动与被动安全分析的过程控制。
  (3) 终端能够提供解析与执行测试脚本的能力。
  (4) 随着针对WLAN的攻击方式不断增多,终端应具有良好的扩展性。
2 硬件组成
  无线安全分析终端的硬件平台由核心板和底板组成。如图3所示,核心板上集成了CPU(MPC8270)、Flash ROM和SDRAM等。底板上提供了丰富的外设接口:包括1个10 M/100 M以太网接口、2个PCI接口、1个四线RS-232串口、JTAG接口等。

2.1  核心板MPC8270处理器及存储器
  MPC8270属于Power QUICC II系列,其内部集成了2个处理单元:1个嵌入式PowerPC 603e核心,1个精减指令集(RISC)的通讯处理模块(CPM)。同时,还拥有独立的16 KB数据Cache和16 KB指令Cache,它支持60 x总线、PCI/LOCAL总线,内核工作时钟最高450 MHz。由于CPU专注于管理高端的任务,CPM承担了底层外围的通讯,这种双核的设计除可以满足有线和无线网络的通讯处理任务外,还可以比传统设计更大地降低功耗,提供更加平衡的处理能力。16 MB的Flash ROM和128 MB的SDRAM构成了系统的存储空间。Flash作为程序存储器,固定为16bit数据读写访问模式,它只连接MPC8270的低16bit数据总线,用片选信号/CS0选中。SDRAM作为系统的内存,采用1根144引脚的128 MB内存条,以60 x总线与MPC8270相连,数据宽度为64 bit。MPC8270提供了SDRAM控制器,故只需进行寄存器的设置即可。
2.2 底板外设接口
  外设接口包括RS-232串行接口、JTAG口、以太网口和PCI接口等。RS-232接口用于人机交互及调试。JTAG口主要用于Bootloader的下载。Bootloader是嵌入式系统中引导系统的初始化部分,功能类似于PC机的BIOS。以太网口使用MPC8270的FCC模块作为网口通讯,用于开发时搭建交叉编译环境进行调试及正常工作时与主控节点的通讯。2个PCI接口分别插入2块无线网卡,本文中以芯片组型号为AR5212的PCI接口的无线网卡(TL-WN651G)为例。
3  软件设计与实现
  终端以Linux作为软件开发平台,主要实现对无线局域网的主动安全和被动安全分析的支持。针对前面所描述的终端功能需求,文中将软件划为4个模块。如图4所示,包括连接控制模块、执行控制模块、测试支撑命令库、网络适配器模块。

3.1  连接控制模块
  连接控制模块负责通过有线网络接口与主控节点通讯。终端启动后,将建立Socket,然后将广播本终端信息以进行注册,主控节点收到信息后更新终端列表,其后Socket将处于监听状态,负责随时与主控节点的通讯。
3.2 执行控制模块
  执行控制模块负责主动与被动安全分析的过程控制,提供执行测试脚本的能力。
  终端采用Tcl命令解释器作为执行控制模块的核心。终端与主控节点的控制命令、测试脚本等都通过Tcl命令解释器解释实现。
  Tcl语言是一种脚本语言,一个重要特性是它的扩展性。用Tcl的C/C++接口将编写的低层网络通讯函数扩展成命令。基于这些扩展命令,用Tcl脚本语言编写顶层接口模块。主控节点也可以利用这些扩展命令编写安全分析脚本和控制命令。基于这样的思想,通过编写扩展命令,终端的软件具有很强的可扩展性。本文中,终端移植安装了ActiveTcl8.4版本。
3.2.1 主动分析过程控制
  主动分析控制由连接控制模块的Socket进行触发,当Socket接收到来自主控节点的测试脚本后,将单独开始一个线程进行主动分析并负责返回测试结果。
3.2.2 被动分析过程控制
  802.11g标准最大传输速率为108 Mb/s。被动分析过程控制应尽可能无遗漏地接收无线信道中的所有数据,对于可能出现捕获数据包过多而终端无法及时处理致使数据包丢失的情况,文中采用了多线程和缓冲机制,如图5所示。接收子线程负责将接收到的数据报文缓冲在队列中,主线程从缓存队列中读取报文进行处理。


3.3 测试支撑命令库
  测试支撑命令库提供了对主控节点与终端间的控制命令、脚本解析、WLAN报文编解码的支持。
3.3.1 测试支撑命令库的实现原理
  平台支撑命令库提供测试所使用的Tcl命令,除采用Tcl语言自身实现某些简单命令外,其他都基于C/C++实现。图6是实现基于有线网卡发送数据的sock_send命令的编写过程示例。


3.3.2 测试支撑命令库组成
  平台支撑命令库主要有2部分:Socket.dll和Base文件。实现了以下Tcl支撑命令:
  (1)缓冲区编解码支持命令。数据包在发送前和接收后都是先存放在缓冲区(buffer)中。缓冲区编解码支持命令提供了一组管理和操作报文缓冲区的操作命令,包括缓冲区的申请和释放,按各种格式填写缓冲区和获取缓冲区的内容等。
  (2)PCO支持命令。提供了一组访问TCP/IP协议的各个层次接口的控制观察点(PCO)。
  (3)协议报文编解码、报文收发等支持命令。协议包括DLC、IPv4、IPv6、ARP、ICMPv4、ICMPv6、TCP、UDP、DNS、
ISIS、STP等。
  (4)定时器操作、批量发包等。
3.3.3   无线数据包接收命令实现
  作为无线终端的基本功能之一,必须能够接收所在区域网络的无线数据包,本文采用了libpcap[4]库函数实现。
  144 B Prism头或者26 B左右的Radiotap头,是无线网卡自动添加在802.11MAC头前的数据,它记录了所在区域无线信号的强度、噪声强度和传输速率等物理层信息。通常情况下,使用libpcap捕获无线数据包后,网卡将自动报文头部分的Prism头、Radiotap头、802.11头转换为802.3报文头提供给上层。本文采用了libpcap与madwifi相结合的方法来获取所需要的无线网络报文头,终端使用的是libpcap 0.8.1版本。
3.3.4  无线数据包发送命令实现
  开源项目Lorcon[5]对实现WLAN报文的定制发送需求提供了支持,它专为Linux操作系统所设计,其屏蔽了底层的具体实现,用户只需指定使用的无线网卡的驱动程序名及型号即可调用。用户事先设定好要发送的数据内容(包括802.11报文头),然后调用Lorcon库函数即可。
  由于使用Lorcon库函数,发送时未提供发送确认机制,当同一信道中发生冲突时,会出现发送数据包不成功的情况,文中采用了在1块无线网卡上发送无线数据包同时通过另一块无线网卡监听的方法,如果监听接收到此数据包,表示此数据已发送成功;如果在规定时间内未接收到此数据包表示发送失败,则重新发送。
3.4 网络适配模块
  网络适配模块提供对无线网卡的驱动支持和工作模式设置。
  无线网卡有多种工作模式,本文中终端需要使用正常模式和监听模式(monitor模式)。在正常模式下,网卡工作在非侦听状态,只会接收到发给自己的数据包和广播包,而丢弃其他包。在监听模式下,网卡就可以接收其设定工作信道(channel)上的所有数据包。
  本文需要使1块无线网卡工作在监听模式,采用与所使用无线网卡芯片相配套的无线网卡驱动madwifi-ng 0.9.4。安装驱动后,可以使用wlanconfig命令设置无线网卡为监听模式。
4 系统测试
  因终端在提供主动分析支持时,也要执行提供被动分析支持时所要执行的操作,本文以一个主动测试用例为例,对终端系统能否正常工作进行测试。
4.1 认证请求洪泛攻击测试用例原理
  当无线设备发送了一个认证请求给无线访问点(AP)而又未进行连接之前,无线访问点必须保持这个无线设备在已认证、未连接状态,等待该无线设备的连接请求。攻击者伪造大量的无线设备向无线访问点发送认证请求,使无线访问点没有能力接收更多其他无线设备的请求。此时,则表示此次主动攻击测试成功,被测无线访问点不具备防御认证请求洪泛攻击(Authentication Frame Flood)的能力。
4.2 测试环境
  待测无线访问点(AP)的MAC地址为:3e.d4.37.85.
64.33,无线终端IP地址为:192.168.1.43。
4.3 测试结果
  终端首先按照主控端测试脚本组成攻击数据包,然后进行洪泛攻击待测无线访问点,最后检查攻击结果,显示攻击成功,表示被测无线访问点不具备防备认证请求洪泛攻击能力。
  本文设计实现了基于PowerPC的无线局域网安全测试终端。实现了对安全分析系统的主动分析与被动分析模块的支持,从而能够提前检测到被测目标是否存在安全漏洞,防范多种针对无线局域网的攻击并进行相应处理。终端可通过修改测试支撑命令库而进行扩展。此外,终端还提供了对多种协议的支持,应用前景广阔。
参考文献
[1] BORISOV N. Intercepting mobile communications: the insecurity of 802.11. In Seventh Annual International  Conference on Mobile Computing and Networking, July, 2001.
[2]  ZHOU Wen Zhe, ALAN M, GU Qiang, A novel classification scheme for 802.11 WLAN active attacking traffic patterns. Wireless Communications and Networking Conference, 2006.
[3]  ZHAO Yin, WU Jian Ping, YIN Xia. From active to  passive——progress in testing of internet routing protocols  (Extended Version)[J]. Journal of Computer Science and  Technology, 2002,17(2):264-283.
 

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