在网络端口前设置一道安全门
2011-10-09兰高志
兰高志
(重庆工商大学 计算机学院,重庆 400067)
纵观天下,计算机病毒和黑客程序的查杀工具很多。目前使用比较广泛的就有江民杀毒软件、瑞星杀毒软件、金山毒霸、安全卫士360、卡巴斯基、诺顿赛门铁克等,另外还有各种各样的安全防火墙。虽然这些工具深受广大网民的青睐,也起到了不错的效果。但就最近的情况来看,病毒和黑客程序越杀越多,越防越多,杀而不灭,防不胜防,可以说病毒与反病毒,黑客与反黑客的形势十分严峻。究其原因,主要是这类工具都属于一种被动式查杀技术。也就是说当计算机病毒和黑客程序已经钻到计算机内部之后才去进行处理,包括扫描、分析、隔离、杀灭等一系列步骤,这明显滞后于病毒和黑客程序的制作过程,而且对新生的病毒和黑客程序更是无能为力,还必须等到下一次升级病毒库或者黑客程序库后才有相应的解决方法[1],到那时已经是“水漫金山”了,以至于当前全世界的病毒和黑客程序十分猖獗,这给网络的安全造成了深重的灾难,给人民的财产造成了重大的损失。为此,下面介绍一种新技术新方法,即在网络的端口前设置一道安全门,将病毒和黑客程序杀灭在这道安全门之外,使病毒或者黑客程序不能进入计算机的内部,从而在根本上解决病毒和黑客程序随心所欲大肆泛滥这一棘手问题。
1 设计思想
病毒和黑客程序的主要特点不言而喻,网民皆知,其中最为突出的特点就在于它的隐蔽性。为了不让别人发现,它们事先都会绞尽脑汁、采取各种手段去隐藏自己,常常匿于一个很不起眼的位置,甚至在给你造成了重大损失后你仍然不知道它在什么地方,往往使人们感到束手无策,捶胸顿足。尤其是特洛伊木马一类的黑客程序,它们都有着非常相似的三部曲[2]。其一是寄生在正常程序之中,随着正常程序的下载而一起进入别人的计算机;其二是在计算机启动时被某个条件触发后静悄悄地调入内存并以进程的方式来实施捣乱和破坏;其三是在目标机器中暗地里打开一个或几个特殊端口与远方的黑客电脑进行连接,遥相呼应,里应外合,疯狂进行罪恶的黑客勾当。
众所周知,所谓的进程其实就是一个正在执行着的程序,而且是一个后缀名为.exe的文件[3]。通俗地说,当一个程序从硬盘加载到内存时,系统就创建了一个进程,一旦该程序执行完毕,刚才所创建的这个进程也就消亡了。另一方面,黑客植入别人电脑中的进程,几乎采用的全是服务器/客户端模式,所以它都毫无疑问地包含着两个模块,即服务器端模块和客户端模块。而且这种具有破坏作用的进程总是由客户端模块发起的,服务器端模块则予以响应,也就是说服务器端在收到客户端的进程请求时向客户端提供相应的进程服务,释放端口,打开后门,让客户端的黑客程序从这里顺利进入。有的时候尽管客户端没有发起攻击,但被种植了木马的机器在不经意间运行了寄生有恶性进程代码的正常程序时也会产生同样的后果。在这种情况下,黑客就可以肆无忌惮地在他自己的机器上进行遥控操作,为所欲为,寻找漏洞,复制文件,修改配置,删除资料,获取非法访问权限,盗窃QQ账号、游戏账号、银行账号和个人密码等。
既然病毒和黑客程序是在网络上经过端口传播的,以后又是以进程的方式运行从而实施破坏活动的,所以只要设计一道安全大门,在网卡的前级电路中对病毒和黑客程序进行检测,把守住进入网络的端口,一旦有病毒和黑客程序从网线上传过来就对其进程代码展开捕获,并毫不留情就地加以彻底清除。
2 设计方案
在互联网上的TCP/IP 4层标准体系结构框架之下,网络上传送的所有数据均分为4个部分:帧头、报头、段头和有效数据。不同的组成部分遵循不同的网络协议,实现不同的网络功能[4]。其中,有效数据就是甲乙双方进行数据交换时的原始数据,而帧头、报头和段头都是按照TCP/IP协议逐层封装出来的附加信息,具体的封装情况如图1所示。
图1 数据包封装格式Fig.1 Encapsulation format for data package
在图1中,有效数据作为TCP/IP标准体系结构的应用层,按照原始文件的存储顺序排列成一个整体,在通信过程中通常称之为数据片 (如果数据过长时则可以切分成多个片)。这是甲乙双方彼此交换数据时的核心部分,从而构成属于应用层中真正意义上的通信实体。接下来要做的事情便是对这个核心部分进行第一次封装,也就是要在有效数据的前面加上包含有16位源端口和16位目标端口以及其他控制信息总共192位的TCP段头[5],从而构成属于传送层的数据段(Segment)。然后要对有效数据进行第二次封装,也就是要在数据段的前面加上包含有32位源IP地址和32位目标IP地址以及其他控制信息总共192位的IP报头,从而构成属于网络层的数据报(Datagram)。最后还要对有效数据进行第三次封装,也就是在数据报的前面加上包含有48位源MAC地址和48位目标MAC地址以及其他控制信息的幀头,从而构成属于接口链路层的数据幀(Data Frame)。这里的帧头大小取决于当时的网络技术,帧的大小取决于当时的网络类型。这样,有效数据被封装完毕后便通过甲方计算机网卡上的数据发送器向乙方计算机网卡上的数据接收器传送过去[6]。这批数据在网上传送的过程中,网络上的路由器要对本次传输的数据进行第一次解封装,换句话说就是要在路由器的网络管理系统中自动剥离掉帧头,只将数据报的内容从路由器的输出口往下传,并送达到该路由器所辖区域内的所有主机上。此时,辖区内的所有主机均能“侦听”到网络上所通过的流量,并将报头的相关信息与自己的IP地址相比较,如果比较后两者相同,则将该数据报接收下来;如果不相同,则丢弃该数据报。根据这种传输原理,如果在网卡的前级电路中设置一道防止病毒和黑客程序入侵的安全大门,对所接收到的数据报中的所有代码一个不漏地依次进行严格排查,那么一定能收到立竿见影、药到病除的良好效果。安全门硬件逻辑电路如图2所示。
图2 安全门硬件逻辑电路Fig.2 Hardware circuit of safery gate
在图2中,起着重要作用的是74LS273锁存器,它是一种由八D触发器构成的自带清除功能的专用芯片[7],它除了有8条数据输入线和8条数据输出线外,还有一条系统时钟线CLK和一条数据清除线CLR。通常情况下74LS273锁存器用来锁存或清除地址,在这里用来锁存或清除数据,两者的作用完全相同。当CLR=1时,74LS273就将数据锁存起来并在系统时钟脉冲CLK的控制下传向下一级电路,此时,D端输入的是什么值,Q端输出的就是什么值;当CLR=0时,数据不予锁存,下一级电路就无数据可接收,这种状态就是通常所说的74LS273的清除功能[8]。图2中的非门、八输入与非门以及四输入或门则不受时钟脉冲的控制,当输入端的数据到齐后它们会输出相应的信号传向下一级电路。进一步分析图2可知,安全门电路其实构成了一个真正意义上的检测电路,专门用来检测寄生在正常程序中的病毒或黑客程序的进程代码.exe。 现在假设某文件内嵌入有寄生的.exe代码,那么它所对应的ASCII代码就为657865H,相应的二进制代码分别为 01100101(B)、01111000(B)、01100101(B),这样,在时钟脉冲的控制下,这3个字节会按照先后顺序依次进入到74LS273(1)、74LS273(2)、74LS273(3)中。 如果在这一瞬间,让3个字节中的高电平维持不变而其中的低电平经非门转换后共产生24个高电平同时传到3个与非门74LS30之中并在定时计数器输出信号CNT=0的作用下使得CLR=0,那么就能够立刻清除嵌入到正常程序中的寄生代码 “exe”。因此,这种方法相当于掐去了病毒或黑客程序的头部,清除了该嵌入文件的后缀名,使得剩余的尾部自然不能构成一个计算机待执行的进程。而另一方面,该电路对于正常程序来说则会顺利通过,丝毫不会受到任何影响。当然这里的定时计数信号CNT=0是一个需要通过计算当前系统时钟的脉冲次数才能解决的问题,实际上关键的核心就在于要如何保证正常程序代码通过而寄生代码被清除。其实,现在的定时/计数器类型很多很成熟,比如常用的555时基芯片或者普通的RC定时电路就能实现这一功能[9]。如果再通过精确地计算就可以将甲乙双方进行通信前的定时计数输出信号CNT预置为高电平,并且在甲方的数据报刚传到乙方网卡的数据接收器的那一时刻就开始进行计数,当计数器计到192b(IP报头)+192b(TCP段头)+88b(正常文件名8个字节及其后缀名3个字节合计11个字节)=472b时就使CNT高电平立刻转换为低电平,然后将这个低电平一直保持到数据报传送完毕为止,那么,所有寄生在正常程序中的进程后缀名“.exe”都将毫无保留地被扫地出门了。
3 结束语
分析上面的逻辑电路可以知道,这种用来检测并清除病毒和黑客程序的安全大门具有许多优点,一是安全性能非常好,它对于正常程序一点也不造成任何损伤,只对嵌入到正常程序中的寄生代码予以清除;二是执行速度极快,整个电路只占3个时钟周期,以现在常见的微机系统时钟4 GHz进行计算,则延时约为0.75 ns,也就是说一个纳秒都不到,对于正常人的肉眼来说,在程序的下载过程中压根儿感觉不到有任何时间上的滞后;三是效果特别显著,比起传统的软件查杀技术来可谓是简单方便,新颖独特,易于实现,成本低廉,为净化Internet环境、保障网络安全、反病毒反黑客开辟了一条崭新的途径。
[1]龚兵.计算机维护技术[M].2版.广州:华南理工大学出版社,2003.
[2]Comer D E.Internetworking with TCP/IP principles,protocol and architecture[M].America:Prentice Hall.2000.
[3]FOROUZAN B A.TCP/IP protocol suite[M].2nd ed.New York,NY,USA:McGraw-Hill,Inc.,2002.
[4]SEBASTIAN M S.Application-specific integrated circuits[M].America:Addison-Wesley Professional,2008:25-64.
[5]于文强.计算机网络实用技术[M].北京:清华大学出版社.2006:19-28.
[6]兰高志.网卡中硬盘保护功能的增设[J].计算机工程,2004,30(6):133-134.
LAN Gao-zhi.Increasing hard-disk protection function on netcards[J].Computer Engineering,2004,30(6):133-134.
[7]中国集成电路大全.TTL集成电路[M].北京:国防工业出版社,1985:30-78.
[8]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1995:69-78.
[9]杨全胜,胡友彬.现代微机原理与接口技术[M].北京:电子工业出版社,2002:243-291.