文档库 最新最全的文档下载
当前位置:文档库 › 对网络隐蔽通道NUSHU的检测技术研究

对网络隐蔽通道NUSHU的检测技术研究

2007.1

32对网络隐蔽通道NUSHU的检测技术研究

蒋中国

江南计算技术研究所 江苏 214083

摘要:本文介绍了隐蔽通道,分析了隐蔽通道NUSHU的实现,并从基于主机和网络两个方面详细分析了针对NUSHU的检测方法的实现。

关键词:隐蔽通道;检测;NUSHU

0 引言

隐蔽通道(Covert Channel,CC )是一种允许违背合法的安全策略进行通信的通道。随着网络技术的飞速发展,整个网络可以被看作一个巨大的计算机系统,这种在网络环境下与网络协议密切相关的隐蔽通道,通常被称作网络隐蔽通道。它利用非正常手段在网络中传递信息,突破网络安全机制。由于这些优点,在网络攻击的角度来说对隐蔽通道的研究有着特殊的意义。所以,近些年来隐蔽通道技术发展非常迅速,技术也多种多样。

最早的Loki2,它利用ICMP协议,把信息隐藏在ICMP报文包内;著名的Covert_TCP工具利用IP和TCP报文头部中的标识域(ID)、序列号(SEQ)及确认号(ACK)等域隐藏信息,

传输报文;本文下面将要重点介绍的NUSHU,它是利用TCP连接建立过程中的报文头部初始序列号(ISN)等域来隐藏信息;还有现在比较兴起的HTTP隐蔽通道等。

NUSHU是Joanna Rutkowska编写的一个基于Linux系统的隐蔽通道工具。它与以往的工具不同的地方在于它引进了被动隐蔽通道(passive covert channel)的概念,即实现把数据隐藏在正常通信的数据包内,所以使用它不会给网络产生任何新的流量;并且采用了可加载内核模块的机制,深入网络核心堆栈。这些技术,都增加了对其有效检测的难度。本文将先介绍隐蔽通道NUSHU的实现,然后分别从基于主机和网络的两个方面重点研究针对NUSHU的检测技术。

1 NUSHU的实现

 NUSHU是通过在内核模块中注册ETH_P_ALL类型包处理器,拦截所有过往通信的TCP数据包,对每一个新的TCP连接建立产生的SYN包中的ISN于进行修改,用以传输数据,并对连接建立后的正常通信进行维护等。它主要由nushu_sender和nushu_receiver两个模块组成,提供数据加密、模块隐藏及反向模式等功能。这里将主要从检测的角度简单

地介绍NUSHU地实现及工作过程。

(1)通过注册包处理器处理函数,在每一个TCP连接建立时,拦截其SYN包,修改ISN域,用以传递我们的信息。为了维护连接正常建立和以后的通信,NUSHU为每个TCP的连接创建一个conn_info结构:

struct conn_info { __u32 laddr, faddr; __u16 lport, fport; __u32 offset; // new_isn - orig_isn

struct list_head list;

};

需要传输的数据采用DES加密,从而降低其统计等方面的特性 。

(2)通过包处理器的处理函数截获每个TCP连接建立以后正常通信的数据包,根据这个连接维护的conn_info结构,修改其SEQ和ACK域,从而保证TCP连接的正常通信。

(3)通过检查tcphash_info的信息,判断已关闭的TCP连接,释放已关闭连接的conn_info结构。

可见NUSHU的核心模块的主要任务通过修改TCP报文的SEQ和ACK域,隐藏数据或者维护正常的TCP连接通信,如图1所示。

图1 NUSHU模块实现图

作者简介:蒋中国(1982-),男,硕士,江南计算技术研究所,研究方向:信息网络安全。

2007.1

33

2 基于主机对NUSHU的检测实现

基于主机检测隐蔽通道主要根据隐蔽通道实现原理进行检测,各个隐蔽通道的实现原理不同,所以方法也不相同。对于NUSHU,Joanna Rutkowska提出了几种基于主机的检测方法,比如使用系统完整性检查工具tripwire、检查注册的ptypehandler等。本文主要介绍的检测方法就是利用可加载模块检查ptype handler(注册的ETH_P_ALL类型包处理器)的方法,即通过内核模块获得内核中ptype_all地址,遍历ptype_all链表,获得各个节点地址,及其地址所属模块,从而判断是否存在NUSHU。

2.1 Linux系统核心网络包处理器

Linux系统内核中保存两个结构,一个是ptype_all,用来接收所有类型的数据包的链表结构;另外一个ptype_base,是hash表的结构。分别定义如下(Linux 2.4.20) :

 static struct packet_type *ptype_all = NULL; static struct packet_type *ptype_base[16];其中ptype_type定义为:struct packet_type{

unsigned short type; //htons(ether_type) struct net_device *dev; //NULL means all dev int (*func); // handler address void *data ; // private data struct packet_type *next; }

如果系统注册有(ETH_P_ALL)类型的包处理器, 除了表示它接收所有类型的包外(接收到的包先交给ptype_all处理,处理完后再由ptype_base处理),系统在调用dev_queue_xmit()发送包时还会通过dev_queue_xmit_nit()将每一发送包skb_clone()一份给它,等它处理完后再调用dev->hard_start_xmit()发送包。如图2是ptype_all链式结构图。

图2 ptype_all链式结构图2.2 NUSHU检测的设计与实现

NUSHU实现模块中注册了ETH_P_ALL类型的包处理器,通过注册的包处理函数对来往数据包进行处理,实现信息隐藏和正常通信维持等功能。因此,对NUSHU检测可以通过检查内核中ETH_P_ALL类型的packet_type结构来实现。

如图3,对NUSHU的检测设计分为用户程序和内核模块两个部分。通过用户程序利用LKM机制调用内核模块进行检测。

图3 检测工具设计与结构图

用户程序通过运行Insmod命令加载mod_chknushu内核模块,并从Insmod输出信息过滤出模块检测结果,如果找到隐蔽通道NUSHU就报警。

内核模块主要分为初始化函数init_module和ETH_P_A-LL类型的包处理器合法化检查函数及卸载模块函数cleanup_module三个部分。

初始化函数init_module主要执行以下步骤:

(1)初始化一个新的ETH_P_ALL类型的packet_type结构,记为chk_proto,并通过函数dev_add_pack注册它;

(2)根据chk_proto的next域向后遍历ptype_all链式结构。取得链表中chk_proto节点后面每个节点的地址;

(3) 对于每个节点地址调用check_func函数进行检查,若该节点是属于可加载模块,输出节点注册的packet_type结构实例名和所属模块名;如果地址不属于内核本身也没有找到其所属的模块,所属模块名记为unknown module。

ETH_P_ALL类型的包处理器合法化检查函数check_func对chk_proto节点向后的ptype_all链式结构每个节点地址判断其所属模块。对每个节点地址的判断将执行以下步骤:

(1)从检测模块开始,向后扫描module_list单向链表中的节点,对于每个节点module,如果需要判断的地址属于module和module+module->size之间,则包处理器属于该模块,结束查找。如果该模块有名字则返回模块名;如果没有名字且属于内核本身,则返回所属模块名为KERNEL;

(2)如果扫描完整条模块链,对于需要判断的地址如果没有找到所属模块,则返回所属模块名为unknown module。

卸载模块函数cleanup_module主要实现检测模块卸载时需要完成的工作,如chk_proto地卸载等。

用户程序通过insmod输出信息返回结果。如果结果中存

在所属模块名为unknown module的ETH_P_ALL类型的packet_type结构,或者存在不属于系统管理员自己加载的模块及内核本身的ETH_P_ALL类型的packet_type结构,那么系统很可能存在NUSHU或者其他后门模块。

3 基于网络检测NUSHU

基于网络检测隐蔽通道是当前关于隐蔽通道研究的热点

2007.1

34

方向。对于它的研究技术比较多,并且同时涉及到概率论、统计学习等多个领域的知识。但是,现在不少技术还是处于初

级阶段,stream profiling相对比较发展成熟的技术。它通过记录和分析各种不同协议的正常数据流,提取、建立各种正常流的特征判别模型。当检测一个网络中是否存在某类隐蔽通道时,只需要看当前网络中的通信特性是否符合相应的特征模型,就可以判断是否具有存在隐蔽通道的可能性。现在大多数的应用实现都是基于这种技术。

提取特征模型应该是stream profiling技术的关键。如何建立特征模型,有很多方法,比如样条函数、神经网络、有限向量机等。在参考文献『2』中详细介绍了一种利用神经网络检测隐蔽通道NUSHU的方法。它的检测实现主要有以下两个步骤:

(1)建立训练模型

对于NUSHU,它利用TCP连接建立过程中的报文头部初始序列号(ISN)等域来隐藏信息。而每个系统的ISN都有其固定产生机制所以我们通过对收集正常的系统的连续数据包,建立训练数据集,

Pi = ISNi,Ti= ISNi+1,i=N-1

其中N是训练所用正常数据包的数量。

然后,利用Elman神经网络对其归纳建立预测模型。这样就可以通过前面的SYN包的ISN计算出下一个SYN包的ISN值,在这个过程中同时计算出一个合适的相似阈值。

网络中的SYN包通过这个模型后,就可以判断其ISN是否正常,会不会可能存在隐蔽通道NUSHU。

(2)实际测试判断

对于NUSHU的检测,主要就是通过网络截获相应主机SYN包,利用模型对其ISN进行判断通信是否正常。

4 结束语

隐蔽通道虽然存在一些弱点:比如数据传输的效率低;差错控制不易保证;需要预先知道数据接收主机的真实IP地址等等。 但这些弱点并没有影响人们对它们的重视。目前,隐蔽通道技术还是研究的热点之一。隐蔽通道仍然是威胁计算机安全的重要因素之一。

本文主要介绍了隐蔽通道NUSHU的实现及对其的检测方法。隐蔽通道种类多种多样,比如利用IP报文头部、TCP报文头部、ICMP报文以及HTTP报文等等。但是对其的检测方法从大的方面都是分为基于主机和基于网络检测两个方面。因此,只要对相关隐蔽通道原理实现比较清楚,是可以对其进行有效检测。

参考文献

[1]Joanna Rutkowska.Linux Kernel Backdoors And Their Detection.ppt.ITUnderground Conference.October 12th-13th 2004.Warsaw.[2]Eugene Tumoian,Maxim Anikeev Network Based Detectionof Passive Covert Channels in TCP/IP Local Computer Networks30th Anniversary(LCN’05).

形成了一个分布式的空间要素服务框架,而且可以支持多源空间数据的存取访问,可以实现分布式空间信息的共享,并为分布式空间信息的集成建立了技术基础。另外,本文还在提高空间要素服务性能方面讨论了一些相关的技术。

参考文献

[1]Open GIS Consortium,Inc.“OpenGIS Implementation Specifi-cation/OGC 02-058:Web Feature Service Implementation

Specification. 2002.http://www.opengis.org/ogcSpecs.htm.[2]Open GIS Consortium,Inc.OpenGIS? ography Markup Lan-guage (GML) Implementation Specification Version 3.2003.http://www.opengis.org/docs/02-023r4.pdf.

[3]Oracle Corporation. Oracle? Spatial User’s Guide and Refer-ence 9.2,.2002.

http://download.oracle.com/docs/pdf/A96630_01.pdf .

A Multi-Source Distributed Spatial Feature Service System Based on the Internet and Intranet Application

Jin Zhiwei

College of Computer Science,Beijing University of Technology,Beijing,100022

Abstract :According to the OpenGIS WFS and GML Implementation Specification, with the utilization of Web Service,SOAP technology, and EJB,this paper presents the design and implementation of a Multi-Source distributed spatial feature service system which can satisfy the requirements of the internet users and intranet users.A unified interface for multi-spatial databases access is described in this paper and the technology of improving the performance of this system is discussed such as SOAP with attachment,data compressing and cache,database pooling.Keywords :WFS;IFS;Web Service

相关文档