漏洞
概念:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。
因而这些都可以认为是系统中存在的安全漏洞。
系统漏洞:
概括:系统漏洞是指应用软件或操作系统软件在逻辑设计上的缺陷或在编写时产生的错误,这个缺陷或错误可以被不法者或者电脑黑客利用,通过植入木马、病毒等方式来攻击或控制整个电脑,从而窃取您电脑中的重要资料和信息,甚至破坏您的系统。
原理:windows系统漏洞问题是与时间紧密相关的。一个windows系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商:微软公司发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。
因而随着时间的推移,旧的系统漏洞会不断消失,新的系统漏洞会不断出现。系统漏洞问题也会长期存在。
分类:苍蝇不盯无缝的蛋,入侵者只要找到复杂的计算机网络中的一个缝,就能轻而易举地闯入系统。所以了解这些缝都有可能在哪里,对于修补它们至关重要。通常裂缝主要表现在软件编写存在bug、系统配置不当、口令失窃、明文通讯信息被监听以及初始设计存在缺陷等方面。
软件编写存在bug
无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的东西,都会存在不同程度的bug。Bug主要分为以下几类:
(1) 、缓冲区溢出:指入侵者在程序的有关输入项目中输入了超过规定长度的字符串,超过的部分通常就是入侵者想要执行的攻击代码,而程序编写者又没有进行输入长度的检查,最终导致多出的攻击代码占据了输入缓冲区后的内存而执行。别以为为登录用户名留出了200个字符就够了而不再做长度检查,所谓防小人不防君子,入侵者会想尽一切办法尝试攻击的途径的。
(2)、意料外的联合使用问题:一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。入侵者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。例如:对于由Perl编写的程序,入侵者可以在程序的输入项目中输入类似“mail</etc/passwd”的字符串,从而使perl让操作系统调用邮件程序,并发送出重要的密码文件给入侵者。借刀杀人、借Mail送“信”,实在是高!
(3) 、不对输入内容进行预期检查:有些编程人员怕麻烦,对输入内容不进行预期的匹配检查,使入侵者输送炸弹的工作轻松简单。
(4)Raceconditions:多任务多线程的程序越来越多,在提高运行效率的同时,也要注意Raceconditions的问题。比如说:程序A和程序B都按照“读/改/写”的顺序操作一个文件,当A进行完读和改的工作时,B启动立即执行完“读/改/写”的全部工作,这时A继续执行写工作,结果是B的操作没有了表现!入侵者就可能利用这个处理顺序上的漏洞改写某些重要文件从而达到闯入系统的目的,所以,编程人员要注意文件操作的顺序以及锁定等问题。
系统配置不当
(1) 、默认配置的不足:许多系统安装后都有默认的安全配置信息,通常被称为easy to use。但遗憾的是,easy to use还意味着easy to break in。所以,一定对默认配置进行扬弃的工作。
(2)、 管理员懒散:懒散的表现之一就是系统安装后保持管理员口令的空值,而且随后不进行修改。要知道,入侵者首先要做的事情就是搜索网络上是否有这样的管理员为空口令的机器。
(3) 、临时端口:有时候为了测试之用,管理员会在机器上打开一个临时端口,但测试完后却忘记了禁止它,这样就会给入侵者有洞可寻、有漏可钻。通常的解决策略是:除非一个端口是必须使用的,否则禁止它!一般情况下,安全审计数据包可用于发现这样的端口并通知管理者。
(4) 、信任关系:网络间的系统经常建立信任关系以方便资源共享,但这也给入侵者带来隔山打牛、间接攻击的可能,例如,只要攻破信任群中的一个机器,就有可能进一步攻击其他的机器。所以,要对信任关系严格审核、确保真正的安全联盟。
口令失窃
(1) 、弱不禁破的口令:就是说虽然设置了口令,但却简单得再简单不过,狡猾的入侵者只需吹灰之力就可破解。
(2) 、字典攻击:就是指入侵者使用一个程序,该程序借助一个包含用户名和口令的字典数据库,不断地尝试登录系统,直到成功进入。毋庸置疑,这种方式的关键在于有一个好的字典。
(3) 、暴力攻击:与字典攻击类似,但这个字典却是动态的,就是说,字典包含了所有可能的字符组合。例如,一个包含大小写的4字符口令大约有50万个组合,1个包含大小写且标点符号的7字符口令大约有10万亿组合。对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。看到了长口令的好处了吧,真正是一两拨千斤啊!
嗅探未加密通讯数据
(1)、共享介质:传统的以太网结构很便于入侵者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。
(2)、服务器嗅探:交换型网络也有一个明显的不足,入侵者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及信任的机器。例如,虽然不知道用户的口令,但当用户使用Telnet软件登录时就可以嗅探到他输入的口令了。
(3)、 远程嗅探:许多设备都具有RMON(Remotemonitor,远程监控)功能以便管理者使用公共体字符串(publiccommunitystrings)进行远程调试。随着宽带的不断普及,入侵者对这个后门越来越感兴趣了。
设计存在缺陷
(1) 、 TCP/IP协议的缺陷:TCP/IP协议现在已经广为应用、但是它设计时却是在入侵者猖狂肆虐的今天之很早以前设计出来的。因此,存在许多不足造成安全漏洞在所难免,例如smurf攻击、ICMPUnreachable数据包断开、IP地址欺骗以及SYNflood。然而,最大的问题在于IP协议是非常容易“轻信”的,就是说入侵者可以随意地伪造及修改IP数据包而不被发现。现在Ipsec协议已经开发出来以克服这个不足,但还没有得到广泛的应用。
系统攻击
系统攻击是指某人非法使用或破坏某一信息系统中的资源,以及非授权使系统丧失部分或全部服务功能的行为。
通常可以把攻击活动大致分为远程攻击和内部攻击两种。现在随着互联网络的进步,其中的远程攻击技术得到很大发展,威胁也越来越大,而其中涉及的系统漏洞以及相关的知识也较多,因此有重要的研究价值。
Robots协议
Robots协议(也称为爬虫协议、爬虫规则、机器人协议等)也叫robots.txt,是一种存放于网站根目录下的ASCII编码的文本文件。
它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取,哪些是可以被漫游器获取。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写,应放置于网站的根目录下。robots协议并不是一个规范,只是约定俗成的,所以并不能保证网站的隐私。