信息网络安全预警技术研究
2010-12-25马嘉川
李 翔 马嘉川
(山东省交通通信信息中心 济南 250000)
一、引言
随着国家信息化建设的快速发展,信息网络安全问题日益突出,信息网络安全面临严峻考验。当前互联网络结构无序、网络行为不规范、通信路径不确定、IP地址结构无序、难以实现服务质量保证、缺乏底层自愈能力、难以实现组播和多宿连接、骨干网核心设备易受攻击、网络安全难以保证、网络可管理性差、设备越来越复杂昂贵等困扰。
基于以上问题,以往的补救措施已不能从根本上解决问题。与以往相比,信息安全保障呈现为主动的、智能化的、动态的信息安全态势[1]。因此,解决网络安全问题,必须未雨绸缪,争取主动,坚持技术与管理并举发展。从技术上讲,要在以往的分散封堵已发现得安全漏洞为目的得研究基础上,把网络与信息安全视为一个整体,从各方面开展大力度的研究,将整个网络体系所需要的基本理论、协议和模块等基础构件,与整体要求有机结合起来,形成完整的预警响应解决方案。在新的安全形势下,研究在网络安全领域有前瞻性的专题及拥有相应的核心预警与防御技术是很有必要的。
二、系统模型架构
本文的研究构建了一个信息网络安全预警系统,我们从数据获得,数据分析,数据报警。这三方面具体阐述技术线路:
1、数据获得
即采用交换设备监听口接入,对网络流量影响很小。
2、分析数据
分析数据分为内核协议栈管理、数据分析线程、控制前端程序。
3、并行的数据分析及数据报警
对网络、系统、应用和服务进行多层次全方位的监控和管理,赋予用户从任何地方通过管理端口进行安全、直接的管理和控制的支持能力,并对发现的故障进行及时告警和响应的处理能力,从而达到保障被管理网络的可用性和可靠性。
三、端口扫描预警
本文从端口扫描的方法入手,研究其扫描技巧、扫描过程从而得到检测的方法。以下为本文的详细研究内容:
1、扫描器定义
扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器可一不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,这就能让我们间接的或直观的了解到远程主机所存在的安全问题。
2、工作原理
扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。
3、常用技术
常用的端口扫描技术有:TCP connect()扫描、TCPSYN扫描、TCPFIN扫描、IP段扫描、TCP反向ident扫描、FTP返回攻击、UDP端口扫描及NULL扫描。
4、端口扫描检测
为了检测秘密扫描技术(Stealth Scan),本系统用一个枚举变量表示新捕获的数据包中透露出的扫描方式(当然也可能是正常数据,并非扫描数据包)。该枚举类型定义如下:
typedefenum_scanType
{
sNONE=0。sUDP=1,sSYN=2,sSYNFIN=4,sFIN=8,sNULL=16,
sXMAS=32,sFULLXMAS=64,sRESERVEDBITS=128,sVECNA=256,sNOACK=512,sNMAPID=1024,
sSPAU=2048.sINVALIDACK=4096
}ScanType;
其中的每个常量值代表了相应的扫描方式。
例如sUDP代表UDP端口扫描,sNULL代表半开扫描中的NULL扫描。系统中端口扫描功能中用三级双向链表存储一段时间内(时间窗口)的端口的连接情况或数据包传送情况。每一个源地址的一个特定端口到目标地址的一个特定端口的连接用ConnectionInfo结构表示,这些ConnectionInfo结构组成双向链表,表示连接队列。这个连接队列的头指针放在DestinationInfo结构中,而DestinationInfo结构表示特定目标系统。Destination-Info组成一个双向链表,表头指针放在SourceInfo结构中,该结构表示特定的可能发起扫描的系统,该结构同样组成双向链表,表头则放在ScanList结构中,该结构定义如图1:
图1 结构定义
算法介绍:
算法描述图如图2:
图2 算法描述
算法过程说明:
(1)检测可疑地址
currTime.tv_sec=P->pkth->ts.tv_sec;currTime.Tv_usec=P->
pkth->ts.tv_usec;
ExpireConnections(scanList,maxTime,currTime);
该段程序从最新捕获的数据包(Wincap的捕获函数为每个被捕获的数据包增加一个捕获时间)获取当前时间,并依次检测三级存储链表的每一个节点上存储的连接信息,判断是否该连接还在观测时间窗口内,如果不在,则释放该节点。
(2)插入新可疑地址
numPorts=NewScan(scanList,P,scanType);
把新捕获的数据包结构及其相应的扫描类型插入三级链表的相应位置,并返回发送该数据包的计算机系统过去一段时间内新的连接数。
(3)检查是否为秘密扫描
if(scanType&~(sSYN IsUDP))
{
scanList->lastSource->stealthScanUsed=1:
scanList->lastSource->reportStealth=1;
}
如果是秘密扫描方式的一种,则表示该数据包是扫描数据包,并报警该数据包的源系统正在进行扫描。
(4) 计算访问端口个数
if(numPorts>maxPorts)
{
scanList->lastSource->scanDetected=1;
}
如果不是秘密扫描方式,但是在过去的短暂时间内的相应源地址发出的连接数超过阀值,则认为该源系统正在进行扫描。
四、网络异常行为预警
网络异常行为预警目的是发现应用中的特定行为,本文的系统模型设计结合使用协议分析的方法,采用了类似入侵检测系统(IDS)的设计思想[2]。主要解析了HTTP协议、SMTP协议、FTP协议和TELNET协议。
1、HTTP
HTTP在设计时,主要强调协议的开销与速度,将其设计为轻型的高速协议,基于Client/Server结构,由客户发起联接请求,与服务器建立联接之后,客户发送服务请求,服务器对请求进行处理,并将结果传给客户,最后关闭联接,一次基于HTTP的会话完成。所以可将一个HTTP会话分为4个步骤:联接,请求,应答,关闭。
2、SMTP
SMTP的设计基于以下的通信模型:当一个用户提出发信请求后,SMTP发送方便与SMTP接收方建立一个双向的传输通道。SMTP命令由发送方产生并送达接收方,接收方送回对这一命令的响应。当传输通道成功建立之后,SMTP发送方通过MAIL命令发送自己的用户名和电子邮件地址。如果接收方同意接收,则返回OK应答。SMTP发送方接着通过RCPT命令发送收信人的用户名和电子邮件地址,如果SMTP接收方能识别收信人,则返回OK应答,否则返回收信人无法识别的应答,但SMTP会话过程仍将继续。如果收信人不只一个,这一步骤将重复,直到SMTP发送方与接收方确认完每一个收信人。
3、FTP
FTP是Internet上主要使用的文件传输协议。其主要目的是为了多个用户更好地共享数据或程序,有效可靠地在不同的主机间传输数据,使不同的文件系统对用户透明。RFC959对其作了详尽的描述。
4、TELNET协议
telnet会话过滤是建立在进行会话的用户名基础上的。在登录阶段,telnet服务器和telnet客户端的信息交换除了telnet命令,没有规定其他标准格式。这些信息是用于显示给用户的。这使检查login和password的提示符有困难。
大多数情况下,通过telnet连接传输,一个包里表示的数据量是很少的。例如,当用户在打用户名和输入命令时,每个字符正常是以分开包传送的。这使检查用户名和监视用户命令变得比较困难。
如果用户成功登录,从服务器端传送“last login”信息。若登录不成功,传送“login incorrect”信息。这些信息有助于检测是成功登录还是不成功登录。只有在成功登录,telnet过滤器收集telnet连接的信息。
本文根据对以上各协议分析的分析结果,收集网络系统的特征参数,如网络中的MTU、报文数、数据包发送时间间隔等协议特征[3],并将特征参数组织形成规则库,为检测和预警提供依据。
五、总结
基于已有的研究成果,本文从端口扫描预警和网络行为异常预警技术出发,设计开发了信息网络安全预警系统,整个预警与应急响应体系是以入侵检测为核心的,容纳并联合了其它安全防护设备,统一进行入侵管理,支撑应急响应体系。
[1][美]Chridtopher M King,Curtis EDalton,TErtem Osmanoglu.常晓波,杨剑峰译.安全体系结构设计、部署与操作[M].北京:清华大学出版社,2003.
[2]周慧芳,张亚玲,王尚平等.协议分析与模式匹配相结合的 IDS的设计研究[J].信息技术,2007,(08):14~17.
[3]Chauhan S.ProjectReport:Analysis and Detection of Network CovertChannels[R].CMSC 691 IA.2005:08.