网络技术的飞速发展,随之而来的不仅仅是惬意与便利,资料的使用、数据的安全更是让我们忧心仲仲,网络安全事件层出不穷。毫不夸张地说,无论是企业用户,还是个人用户,只是你上网,就身处危险之中!如何将这种危险降到最低点?本文试着将各种攻击伎俩列出,并给出详细的解决方案,希望能给你营造出一个安全的网络环境。
一、网络攻击概览
1.服务拒绝攻击
服务拒绝攻击企图通过使你的服务计算机崩溃或把它压跨来阻止你提供服务,服务拒绝攻击是最容易实施的攻击行为,主要包括:
(1)死亡之ping (ping of death):由于在网络技术形成早期,路由器对数据包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机。
(2)泪滴(teardrop):泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括Service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
(3)UDP洪水(UDP flood):各种各样的假冒攻击利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务攻击。
(4)SYN洪水(SYN flood):一些TCP/IP栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。在一些创建连接不受限制的实现里,SYN洪水具有类似的影响。
未来的SYN洪水令人担忧,由于释放洪水的并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。
(5)Land攻击:在Land攻击中,一个特别打造的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对Land攻击反应不同,许多UNIX实现将崩溃,NT变得极其缓慢(大约持续五分钟)。
(6)Smurf攻击:一个简单的Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。
(7)Fraggle攻击:Fraggle攻击对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP。
(8)电子邮件炸弹:电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的带宽。
(9)畸形消息攻击:各类操作系统上的许多服务都存在此类问题,由于这些服务在处理信息之前没有进行适当正确的错误校验,在收到畸形的信息可能会崩溃。
2.利用型攻击
利用型攻击是一类试图直接对你的机器进行控制的攻击,最常见的有三种:
(1)口令猜测:一旦黑客识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户账号,成功的口令猜测能提供对机器的控制。
(2)特洛伊木马:特洛伊木马是一种或是直接由一个黑客,或是通过一个不令人起疑的用户秘密安装到目标系统的程序。一旦安装成功并取得管理员权限,安装此程序的人就可以直接远程控制目标系统。最有效的一种叫做后门程序,恶意程序包括:NetBus、BackOrifice和BO2k,用于控制系统的良性程序如:netcat、VNC、pcAnywhere。理想的后门程序透明运行。
(3)缓冲区溢出:由于在很多的服务程序中大意的程序员使用象strcpy(),strcat()类似的不进行有效位检查的函数,最终可能导致恶意用户编写一小段利用程序来进一步打开安全豁口然后将该代码缀在缓冲区有效载荷末尾,这样当发生缓冲区溢出时,返回指针指向恶意代码,这样系统的控制权就会被夺取。
3.信息收集型攻击
信息收集型攻击并不对目标本身造成危害,如名所示这类攻击被用来为进一步入侵提供有用的信息。主要包括:扫描技术、体系结构刺探、利用信息服务。
(1)扫描技术:
地址扫描:运用ping这样的程序探测目标地址,对此作出响应的表示其存在。
端口扫描:通常使用一些软件,向大范围的主机连接一系列的TCP端口,扫描软件报告它成功的建立了连接的主机所开的端口。
慢速扫描:由于一般扫描侦测器的实现是通过监视某个时间帧里一台特定主机发起的连接的数目(例如每秒10次)来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。
体系结构探测:黑客使用具有已知响应类型的数据库的自动工具,对来自目标主机的、对坏数据包传送所作出的响应进行检查。由于每种操作系统都有其独特的响应方法(NT和Solaris的TCP/IP堆栈具体实现有所不同),通过将此独特的响应与数据库中的已知响应进行对比,黑客经常能够确定出目标主机所运行的操作系统。
(2)利用信息服务:
DNS域转换:DNS协议不对转换或信息性的更新进行身份认证,这使得该协议被人以一些不同的方式加以利用。如果你维护着一台公共的DNS服务器,黑客只需实施一次域转换操作就能得到你所有主机的名称以及内部IP地址。
Finger服务:黑客使用finger命令来刺探一台finger服务器以获取关于该系统的用户的信息。
上进行过滤。
LDAP服务:黑客使用LDAP协议窥探网络内部的系统和它们的用户的信息。
4.假消息攻击
用于攻击目标配置不正确的消息,主要包括:DNS高速缓存污染、伪造电子邮件。
(1)DNS高速缓存污染:由于DNS服务器与其他名称服务器交换信息的时候并不进行身份验证,这就使得黑客可以将不正确的信息掺进来并把用户引向黑客自己的主机。
(2)伪造电子邮件:由于SMTP并不对邮件的发送者的身份进行鉴定,因此黑客可以对你的内部客户伪造电子邮件,声称是来自某个客户认识并相信的人,并附带上可安装的特洛伊木马程序,或者是一个引向恶意网站的连接。