《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 无线局域网安全分析终端的设计与实现

无线局域网安全分析终端的设计与实现

2009-06-11
作者:曹能华, 屈玉贵, 赵保华

  摘 要: 无线局域网(WLAN)的安全机制是非常脆弱的,因此需要安全分析系统管理WLAN。设计实现了WLAN安全分析系统中的基于嵌入式处理器PowerPC和Linux操作系统的分布式终端。该终端实现了支持安全分析系统中的被动分析和主动分析的接口模块。WLAN数据包的成功捕获和定制发送为接口模块的功能实现提供了依据。
  关键词: WLAN; 安全分析终端;PowerPC;Linux

 

  无线局域网WLAN因利用无线介质进行数据传输,在无线设备覆盖区域内任何人都可以利用设备接收到通信数据,所以通信数据的安全性显得尤为重要。在802.11标准中,采用了MAC地址列表、WEP加密等安全措施,但是后来的实践和研究证明,其安全机制是非常脆弱的,存在无线拒绝服务攻击、MAC地址欺骗、伪装AP、中间人攻击、IP重定向攻击和身份认证过程中的欺骗等安全问题。因此通过安全产品提高WLAN的安全性具有重要意义。
  本文所介绍的安全分析系统实现了被动和主动的安全分析。它包括一个主控节点和多个无线安全分析终端。系统在WLAN中的部署结构如图1所示。

 


  主控节点集成了WLAN被动和主动安全分析模块。主控节点接收各个终端采集来的WLAN数据报文,报文经过处理后被发送到被动安全分析模块进行分析,系统根据当前分析结果自动选取合适的安全策略;主控节点根据主动安全分析技术编写攻击脚本,并将脚本分发到各个终端,终端根据脚本对目标实施主动攻击,以检查目标是否有安全漏洞。
  本文设计和实现了基于PowerPC和Linux操作系统的分布式终端,该终端支持安全分析系统中的被动和主动安全分析的接口模块。
1 终端的功能需求
  该嵌入式终端必须具备以下基本功能:
  (1) WLAN数据包的捕获和定制发送:这是实现WLAN安全分析的重要一步,为下面的需求提供了必要依据。
  (2) 被动分析接口模块:采集WLAN网络信息并进行预定的本地处理,将处理后的数据发送到主控节点,这是对系统的被动分析提供支持。
  (3) 主动分析接口模块:接收主控节点的攻击脚本并执行,将执行结果返回给主控节点,这是对系统的主动分析提供支持。
  目前常见的嵌入式体系架构是按要求选用相应嵌入式处理器以及嵌入式操作系统。
  由于分布式终端要收发无线数据包以及进行数据包的预处理,这就对处理器的处理速度提出了要求,如果速度达不到要求,就会出现丢包现象。所以本文采用Freescale的PowerPC家族的MPC 8270嵌入式处理器,它的内核工作时钟最高可达450 MHz。操作系统选择Linux,Linux是免费且源码开放的嵌入式操作系统。在开源社区,有很多项目致力于无线网卡的驱动开发以及无线数据包的定制发送。利用这些资源,能很好地缩短设计周期。
2 终端的硬件设计
  本文设计的终端由核心板和接口板组成,其硬件结构主要由处理器模块、数据通信接口模块和存储模块组成,如图2所示。核心板集成了Freescale的MPC8270处理器,128 MB SDRAM以及16 MB的Flash,为系统软件提供了足够的空间。底板上则集成了非常丰富的外设接口:2个10 M/100 Mb/s以太网接口;1个两线RS-232 串口(COM1);2个PCI槽,接入无线网卡后,作为无线分析终端的RF,一块无线网卡用于被动分析接口模块,捕获WLAN数据包,随时监控网络状况;另一块用于主动分析接口模块,实现数据的定制发送,调整网络性能。该系统具有体积小、耗电低、处理能力强、网络功能强大的特点,能够装载和运行Linux操作系统。

2.1 处理器模块
  MPC8270基于PowerQUICC II结构,主要由高速PowerPC内核、系统接口单元SIU、通信处理单元CPM构成。它支持60 x总线和PCI/LOCAL总线,内核工作时钟最高为450 MHz。MPC8270采用双处理器结构,内部集成PowerPC处理器和CPM处理器。PowerPC完成对外设的配置;CPM用来完成通信处理,两个处理器通过内部的双端口RAM相互配合工作。由于CPM分担了PowerPC的外围工作任务,减少了PowerPC对底层通信任务的干预,因而提高了PowerPC的工作效率。MPC8270内部集成了微处理器和通信领域的常用外设控制组件,并且通信处理模块中各通信控制器支持多种协议。
2.2 存储模块
  选用了1片8 M×16 bit共16 MB数据宽度的Flash,Flash芯片型号为Intel 28F128J3D75,速度为150 ns。Flash固定为16 bit数据读写访问模式,它只接MPC8270的低16 bit数据总线,用片选信号/CS0选中。SDRAM用于存放用户的数据和代码,为程序的运行和保存临时文件提供空间。采用商用的144引脚的128 MB内存条,以MPC8270与60 x总线相连。数据宽度为64 bit。MPC8270提供了SDRAM控制器,故只需进行寄存器的设置即可。
2.3 数据通信模块
  数据通信接口包括1个两线RS-232接口、2个以太网接口和2个PCI插槽。
  RS-232接口是用来调试的控制口,只有收发两根线;使用MPC8270的SMC模块作为串口通信,配合MAX3222收发器实现硬件功能。
  两个10 M/100 Mb/s网口中,一个用于调试,另一个被应用程序用于发送和接收有线口数据包。使用MPC8270的FCC1和FCC2模块作为网口通信,配合LXT972收发器实现硬件功能。
  MPC8270处理器集成了PCI总线,如果选择PCI接口的无线网卡,就不需要附加额外的芯片,网卡可以直接通过PCI插槽接入,非常方便。无线网卡是这个终端的重要设备,根据无线网卡采用的芯片组类型的不同,无线网卡可分为多种类型。而Linux并未针对每一种无线网卡都提供专属的驱动程序,而是针对无线芯片组来提供驱动程序,所以不同类型的无线网卡所使用的驱动程序也是大不相同的,如Prism类型的无线网卡使用的驱动程序是Wlan-ng系列,而针对Atheros生产的AR系列则使用Madwifi-ng[4]。本设计则以芯片组型号为AR5212的PCI接口的无线网卡(TL-WN651G)为例。
3 终端的软件设计
  基于嵌入式Linux操作系统的软件设计包括BootLoader引导程序的移植、Linux操作系统的移植和用户程序的编写。Boot-Loader引导程序完成硬件的初始化并将操作系统引导装入SDRAM;Linux操作系统是整个软件的支撑,包含有内存管理、设备驱动及TCP/IP通信协议等模块;用户程序完成无线数据包的捕获和定制发送,实现支持安全分析系统中的被动分析和主动分析的接口模块。下面重点介绍用户程序的设计。
3.1 软件设计的层次结构
  终端的软件设计思想:用Tcl的C/C++接口将编写的低层网络通信函数扩展成命令;基于这些扩展命令,用Tcl脚本语言编写顶层接口模块;主控节点也可以利用这些扩展命令编写安全分析脚本。这样的层次结构模型具有良好的扩展性与灵活性,而且修改接口模块程序时,不需要重新编译,直接就可以运行。图3为软件设计的层次结构模型。
驱动程序是整个模型的要点,它向上层提供访问硬件层的接口。本文选择针对AR5212无线芯片组的开源驱动程序Madwifi-ng[4](版本号为0.9.4),通过模块的形式加载驱动程序。

  网络操作命令支撑库为上层提供扩展命令的支持。Tcl的C/C++函数库有清晰的接口,本文通过接口自定义新的Tcl命令,这些命令与网络操作程序提供的C函数相关联,从而实现对Tcl的扩展,成为一个以最大程度符合用户需求的新工具。网络操作程序直接访问硬件驱动层,实现WLAN数据包的定制发送或捕获;通过调用无线配置命令,实现网卡的配置。
  主动/被动分析接口模块由Tcl扩展命令来构建。被动分析接口模块和主动分析接口模块实现WLAN数据包的发送和定制捕获,以及对安全分析系统中的被动分析和主动分析予以支持。
3.2 网络操作命令支撑库
  安全分析终端提供以下两类低层网络操作命令:
  (1) 网络通信支撑命令。包括有线口和无线口的网络通信。
  有线口网络操作命令:它提供了一组访问数据链路层socket的命令,包括socket的创建以及通过socket进行数据包发送和接收。
  无线口网络操作命令:实现WLAN数据包的定制发送或捕获以及设置网卡的工作模式和工作信道等。
  (2)协议报文编、解码命令。在被动分析模块和主动分析模块中,需要对相关头部域进行解析或重组,以实现过滤报文或定制头部域的功能,这就需要编写报文编、解码命令。
3.3 被动分析接口模块
  被动分析是基于捕获的数据包,因此捕获WLAN数据包是该模块实现的基础。从协议分析的角度来检测非法入侵和攻击,需要将捕获的数据包发往主控节点。每个安全分析终端都将大量的报文发送主控节点,为了减轻主控节点处理报文的压力,安全分析终端将根据主控节点的需要过滤掉部分报文。终端的被动分析接口模块就是实现这一功能的。
3.3.1 捕获WLAN数据包的实现
  无线网卡有两种工作模式:正常模式和监听模式。在正常模式下,网卡工作在非侦听状态,只会接收到发给自己的数据包和广播包,而丢弃其他包。如果把网卡设置为监听模式,则可使网卡工作在侦听状态时,就可以接收某一信道上的所有数据包。为了实现程序的可移植性,本文使用Libpcap函数库捕获数据包。
  用Libpcap捕获的数据包中,包含Prism头或者Radiotap头部。这是网卡添加在802.11MAC头部前的数据,它记录了信号强度、噪声强度和传输速率等物理层信息。由于Radiotap头部比Prism头部更能灵活地表达捕获帧的物理层信息,所以本文选择Radiotap头部来表达。
3.3.2 被动分析接口模块的实现
  程序设计的难点是防止出现丢包现象。当某一信道上的负载很大时,受到处理速度的限制,将不能捕获到该信道上的每一个报文,即出现丢包现象。
  为了解决该问题,本文使用多线程并发执行,主线程用来处理捕获到的数据包;子线程1用来不间断地捕获无线数据包;子线程2与主控机交互,实现过滤规则的改变。同时,还引入了先入先出的队列来缓存接收到的数据报文。在笔者搭建的环境中,当某一信道上的负载达到24 Mb/s、将队列长度设为500时,就能很好地解决这一问题。
  为了实现队列操作的同步,本文使用信号量hAccess和hRecive,当子线程1接收到报文,并将报文存放到队列之后,将释放信号量hRecive,通知主线程从队列中提取报文来处理。主线程提取出报文后,释放信号量hAccess,通知子线程1继续接收数据包。
  子线程2接收主控节点发送来的配置文件,并且执行该文件。配置文件的主要作用就是设置全局变量。在过滤前,主线程都重新获取全局变量的值,从而设定主线程的包过滤规则。采用的过滤规则主要有源和目的MAC地址过滤以及序列号过滤等。主线程、子线程1、子线程2的流程图分别如图4、图5、图6所示。

3.4 主动分析接口模块
  主动分析的作用有两个:一是对被测目标实施主动攻击,探测其是否有安全漏洞;二是根据被动分析结果,采用相应的措施调整网络性能。它们都主要通过发送相应的数据包来实现。为了对系统中的主动分析予以支持,终端需要实现主动分析接口模块。WLAN数据包的定制发送是该模块实现的基础。
3.4.1 WLAN数据包的定制发送
  由于要实现目标漏洞的探测或攻击,必须能将自己定制的WLAN数据包发送出去,这里的定制是指数据包的每个域都可以任意指定。在开源社区,开源项目Lorcon[5]实现WLAN数据包的定制发送。它是专为Linux操作系统设计的,它屏蔽了通过抽象层来发送802.11信息包的底层操作,提供了更高层次的接口来发送802.11信息包。通过Lorcon本设计不需要编写特定驱动的代码,只需通过驱动的名字就能找到相应的接口,进而调用Lorcon库函数发送报文。Lorcon是纯C语言编写的函数库,它直接将用户空间的报文通过无线口发送出去,实现报文的定制发送。
3.4.2 主动分析接口模块的实现
  主控节点使用安全分析终端提供的底层网络操作命令编写各种网络攻击脚本。攻击脚本由主控节点分发到各个安全分析终端,由各安全分析终端并行地执行,以保证攻击的性能,使得攻击脚本的执行与目前存在的实际网络攻击过程有同样的效果。
  为了实现主动分析,无线安全分析终端需要创建基于有线网口的TCP服务器端,接收主控节点发送的攻击脚本。执行该脚本,将脚本执行的结果返回给主控节点以供其分析。其PAD图如图7所示。


  本文设计实现了基于嵌入式处理器PowerPC和Linux操作系统的安全分析终端。通过与主控节点的主动和被动分析模块配合,能检测到被测目标是否存在安全漏洞;也能检测出WLAN中的MAC地址欺骗、伪装AP、中间人攻击、IP重定向攻击以及身份认证过程中的欺骗等安全问题,并采取相应的措施,成功地改善了网络性能。

参考文献
[1] ANSI/IEEE Std 02.11.Wireless LAN medium access control(MAC) and physical layer(PHY) specifications[S].1999.
[2] PORRAS P, SCHNACKENBERG D, CHEN S S ,et al.The common intrusion detection framework architecture
 [EB/OL]. [2006-05-02]
[3]  GARVEY T D, LUNT T F. Model-based intrusion detection. In Proc.of the 14th National Computer Security Coal.  Oct. 1991.
[4]  How to get, install and use lorcon, http://802.11 niniga.net/lorcon/, 2007.
[5]  How to support radiotap under Linux operating system,www.radiotap.org. 2007.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。