0.写作背景

目前无线网日益成为我们生活和工作中的一部分,没有Wi-Fi的地方会让人觉得“不适应”,一些黑Wifi也是危机重重。这是由于无线网络的一些特殊性造成,这使得一些人无须物理连线就可以对其进行,这样WLAN 的安全问题显得尤为突出。你肯能会问WLAN都是放置在防火墙、 虚拟专用网络第三方的安全产品之后的吗?不这就安全了吗?殊不知,无线网络不但因为基于传统有线网络 TCP/IP 架构而受到 ,还有可能受到基于IEEE 802.11 标准本身的安全问题而受到威胁。

大家在寻找开源解决方案时往往很难找到实用性强的资料,为了解这一问题,本文详细介绍利用 检测系统( IDS )为支持无线访问的网络提供一道强有力的安全防线的解决方案,向大家介绍如何架设WIDS。

1.什么是WIDS(无线IDS)

下面引用来自百度百科里面的一段话“防止非法设备的**,在需要保护的网络空间中部署监测AP,通过无线**检测系统WIDS(Wireless Intrusion Detection System),监测AP定期对无线信号进行探测,通过AP了解无线网络中设备的情况,对非法设备采取相应的防范措施。”
无线IDS安装Step by Step

读完上面这段内容大家会了解我们关注重点在WIFI的网络安全上,大家在搭建WIDS时,即使是你不会搭建Snort/Suricata都无大碍,参照下面的步骤,初学者都可以自己独立搭建一套WIDS。WIDS可以监测整个WLAN,将由分布式Sensor传感器捕获的事件流转发到OSSIM服务器,为故障排除和使用规划提供快速事件响应。

下面我们要接着介绍WIDS 的两种模式,这两种工作模式对于后期调试WIDS很重要哦,第一种是使用监听模式的无线网卡,以数据链路层基于 IEEE 802.11协议原始帧为捕获对象,辅以帧头信息用以检测IDS分析,对WLAN中的接入设备进行检测认证。第二种是使用管理模式的无线网卡,用于捕获网络层中基于IEEE 802.3协议的以太网格式数据包,用作基于主机的检测认证。
在网络中加入的RADIUS(Remote Authentication Dial In User Service,远程身份验证拨入用户服务)可实现客户与AP间的相互验证,进而达到检测和隔离欺诈性AP(不可信Un-Trusted AP)的效果。
无线IDS安装Step by Step
以上这套高大上的系统实现起来并不难,我们通过下面的例子可以将分支办公室的安装Sensor并将无线网使用情况发送到总部的OSSIM服务器,进行集中监控管理。

2.安装无线网卡

▶ 系统平台环境为OSSIM 4,无线网卡为USB无线网卡(芯片型号为Realtek RTL8187)只要使用该芯片系列的无线网卡都适合本实验环境。
无线IDS安装Step by Step
RTL8187这种网卡对于Linux系统来说更容易识别。在服务器上安装好无线网卡,进入控制台,输入dmesg命令即可查看到网卡的芯片型号,如图1-31所示。另外,使用lsmod |grep usbcore命令也可以查看USB网卡信息。
无线IDS安装Step by Step
图1-31 检测无线网卡芯片

▶工作模式:本实验使用 1 张无线网卡再加 1 张以太网卡,无线网卡设置成“杂凑”模式,监听无线数据包,以太网卡用于与OSSIM服务器通信。

▶安装无线调试工具,命令如下所示。
#apt-get install wireless-tools

安装完这个无线工具包后,即可使用iwconfig命令检查刚添加的网卡信息,并且显示对应的设备名称,此处无线网卡的设备文件为wlan0。
输入命令 iwconfig

lo         no wireless extensions.
eth0       no wireless extensions.
wlan0      IEEE 802.11bg  ESSID:off/any  
           Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
           Retry  long limit:7   RTS thr:off   Fragment thr:off
           Encryption key:off
           Power Management:off

3.设置无线网卡

▶在调试工具安装完成之后,使用命令iwlist搜索无线网信号。首先使用如下命令启动接口:
#ifconfig wlan0 up

接着,无线网卡开始扫描整个网络环境。
#iwlist wlan0 scanning

▶在本实例中加入了SSID为buff的无线网。为便于调试,不要隐藏无线网的SSID。操作命令如下:
#iwconfig wlan0 essid "buff"
#dhclient wlan0
最后,加入WiFi后通过DHCP客户端动态获取IP地址,通过ifconfig命令查看获取的IP地址。wlan0设备的详细配置信息会写入文件/etc/network/interfaces。待成功加入无线网络之后开始设置无线嗅探器。

4.安装kismet

▶kismet是一个便利的无线网络扫描程序,完成嗅探功能,它能通过检测周围的无线信号来找到非法WLAN。这里使用它来扫描无线网络。

#apt-get update //更新源

#apt-get install kismet //安装kismet

当然你也可以下载最新的源码包(2019-9)来编译安装:https://www.kismetwireless.net/downloads/

5.主要配置文件

▶kismet.conf 是主配置文件,它加载所有其他配置文件。

▶kismet_alerts.conf 完成警报/ WIDS配置,包括警报匹配规则。

▶kismet_logging.conf 日志文件

6.设置kismet

这一环节分为以下7个步骤。
编辑/etc/kismet/kismet.conf文件,找到“source=”这一行,将其改成source=rtl8187,wlan0,wlan0-wids,保存并退出。其中rtl8187代表设备驱动,wlan0代表网卡设备名称,wlan0-wids 为描述信息。

logdefault=192.168.11.10      // OSSIM传感器IP
logtemplate=/var/log/kismet/%n_%D-%i.%l

在/etc/init.d/目录下新建文件wids_alienvault.sh
#vi wids_alienvault.sh

在其中加入如下两行:
#!/bin/sh

/usr/bin/kismet_server -l xml -t kismet -f /etc/kismet/kismet.conf 2>&1 | logger -t kismet -p local7.1

给脚本文件加入执行权限。
#chmod 755 /etc/init.d/wids_alienvault.sh

将“/etc/init.d/wids_alienvault.sh”这条语句加入/etc/rc.local脚本的倒数第2行(也就是exit 0语句的上面)。

在OSSIM控制台下输入ossim-setup命令,依次选择Change Sensor Settings-Enable/ Disable detector plugins,选中kismet并保存退出,这时系统会提示重新配置。在后台,系统会将kismet选项加入到/etc/ossim/ossim_setup.conf文件中。

修改kismet配置文件
#vi /etc/ossim/agent/plugins/kismet.cfg

找到location=/var/log/syslog这一行,将其修改为如下内容。
location=/var/log/kismet.log

实现自动化配置
#vi /etc/cron.hourly/kismet

在其中加入如下两行:
#!/bin/bash
/usr/bin/perl /usr/share/ossim/www/wireless/fetch_kismet.pl

然后编辑/usr/share/ossim/www/wireless/fetch_kismet.pl 这个脚本中sites所带的IP地址。
#vi /usr/share/ossim/www/wireless/fetch_kismet.pl
无线IDS安装Step by Step
找到$location=$sites{$ip}这一行,将其改成$sites{'192.168.11.10'}='/var/log/kismet'。此处IP为无线传感器的IP地址。
如果配置成功,则在命令行中输入kismet命令,将显示图1-32所示的欢迎界面。
无线IDS安装Step by Step
图1-32 kismet界面

7.配置Rsyslog

在/etc/rsyslog.d/目录下新建文件 wids_alienvault.conf,并在其中加入以下内容:

. @192.168.11.10 //此处IP为OSSIM服务器的IP地址

然后重启动Rsyslog服务。接下来就可通过tail -f /var/log/kismet.log命令来检验成果了。

8.设置OSSIM无线传感器

在OSSIM的Web UI中进入菜单DEPLOYMENT→SYSTEM CONFIGURATION,配置SENSORS,输入无线网卡名称wlan0以及IP地址192.168.11.10,要确保正确加载了kismet服务,配置界面如图1-33所示。
在传感器配置选项中,添加wlan0为监听端口,监控网段为192.168.11.0/24。
注意,OSSIM系统中的插件Prads、Snort、Ntop和OSSEC需处于UP状态,如图1-34所示。
无线IDS安装Step by Step

图1-33 设置无线嗅探器
无线IDS安装Step by Step
图1-34 配置无线网卡
可以在Network选项中验证无线网卡模式,如图1-35所示。
无线IDS安装Step by Step
无线IDS安装Step by Step
图1-35 无线网卡模式
最后在Web UI中的Analysis→Detection→Wireless IDS子菜单进行配置。注意,首次进入操作界面时会发现Location中无配置信息,此时应单击右上角的Setup按钮,添加一个新的Location,即为上文设置好的wlan0[192.168.11.10],如图1-36所示。
无线IDS安装Step by Step
图1-36 设置Location
除了基于命令行的无线嗅探工具以外,还可以在OSSIM系统中添加基于Web的管理工具。设置完成WIDS后,即可发现周边无线信号,如图1-37所示。
无线IDS安装Step by Step
图1-37 查看无线信号
启动无线嗅探器,在OSSIM的SIEM控制台中可查看kismet发来的日志信息,如图1-38所示。
无线IDS安装Step by Step
图1-38 在SIEM中查看kismet日志
当在SIEM控制台中收到kismet发送的日志后,表示该设置成功。

注意为了实验方便我的在实验网络中未设置密码,而实际上无线网都是加密的,我们举个例子,假如你的WiFi网络SSID为home,密码是0123456789,那么就按以下规则输入命令
iwconfig wlan0 essid “home” key 0123-4567-89

9.分布式OSSIM中的WIDS

在分布式OSSIM网络中,通过不同的Sensor将分组捕获完成后,将信息送至检测引擎进行检测,主要采用的检测方法是特征匹配,即把网络包数据进行匹配,看是否有预先写在规则中的“ 内容”或特征,在OSSIM系统中采用异常检测方法(如 Spade 检测引擎等),这是和传统Snort系统最大的区别,可以说是一种补充方式。 无线网络传输的是加密数据,那么在分布式OSSM检测系统中能实现非授权伪 AP 的检测。 在发现异常行为之后,Sensor上安装的监测Agent会记录 特征,并通过安全通道(采用一定强度的加密算法加密,有线网络通常采用SSL协议,无线网络通常采用WEP将告警信息发给OSSIM Server进行关联分析等。

10.总结与展望

无线网络由于其传输媒介的特殊性以及 802.11 标准本身的缺陷,具有一些安全问题,在本文中,介绍了无线网络中潜在威胁,提出了WIDS 检测系统架构,WIDS的核心是利用kismet这款无线扫描工具,该工具通过测量周围的无线信号,可以扫描到周围附近有效AP以及信道等信息。同时还捕获网络中的数据包发送到OSSIM进行数据分析,而且提供了有好的分析界面,采用OSSIM架构的WIDS要比我们自己在Linux上安装kismet通过命令行分析网络异常行为要方便许多。

尽管Kismet可以在电脑的无线网卡上工作,但部署一系列的主机还是成本很高的事情,如果能将Kismet部署到一系列的无线路由器(路由器只负责监听工作)则可以极大的降低成本和部署的难度,OpenWRT是个不错的开源方案,它可以作为无线路由器固件程序,对于开发工程师而言,在OpenWRT上安装kismet非常简单的。通过路由器将日志转发到OSSIM Sensor这样可以将无线日志的采集很容易实现,系统的管理人员可以通过有线或无线的网络通道登陆Kismet服务器进行检测结果的检查和响应工作。由于篇幅所限这种方案的配置方法和分析结果我将在后续文章继续介绍。更多OSSIM的案例大家可以参考我的新书《开源安全运维平台OSSIM疑难解析:提高篇》。
无线IDS安装Step by Step
本文敏感词都被替换为**,大家阅读时自己替换一下哦。