大型软件、系统的编写,并不是一两个人就能完成的,而是需要许许多多程序员共同完成。将一个软件或系统分成若干板块,分工编写,然后再汇总,测试。最后,修补,发布。 软件、系统分成若干板块,分工编写,所以有时不免会出现种种问题,且不说“几不管”的中间地带,就是在软件汇总时,为了测试方便,程序员总会留有后门;在测试以后再进行修补。 这些后门,如果一旦疏忽(或是为某种目的故意留下),或是没有发现,软件发布后自然而然就成了漏洞。 还值得一提的就是若干板块之间的空隙,这里很容易出现连程序员的都没想到的漏洞! 还有,“几不管“地带,也正是漏洞的温床! 漏洞的另一形成温床就是网络协议!网络协议有TCP、UDP、ICMP、IGMP等。其实,他们本来的用途是好的,但却被别人用于不乏的活动:例如,ICMP本来是用于寻找网络相关信息,后来却被用于网络嗅探和攻击;TCP本来是用于网络传输,后来却被用于泄漏用户信息。 有了漏洞就要补!补漏洞方法主要有两类: 1. 本身补救。这种补漏洞方法主要是厂商的补丁或者是禁用某项服务来补救。也就是说,软件或系统本身来补救。 2. 借助补救。这种补漏洞方法主要是*第三者完成,就是*别的软件来进行补救。我们用得最广泛的就是反病毒软件和网络防火墙。 软件的补救必须要有目的的补救,不能盲目的补。在补救前,可以借助别的软件来测试。例如,查找网络漏洞,可以用嗅探器;查找反病毒软件的查毒漏洞,可以通过网络上提供的病毒压缩包等。 漏洞是客观存在的,它是随软件和系统的产生的,是不可避免的。关键就在于补救,补救得好,软件或系统的性能将大大提高! |