现在知道一个IP地址我要攻击他,
黑客如何攻击网络 如何针对其攻击行为进行防范?
来源:yesky 2004-03-11
摘要:首先阐述目前计算机网络中存在的安全问题,接着分析黑客网络攻击的一般过程,并在此基础上针对网络攻击的具体预防措施进行了讨论和分析。
引言
随着计算机网络的发展,网络的开放性、共享性、互连程度随之扩大。特别是Internet的普及,使得商业数字货币、互联网络银行等一些网络新业务的迅速兴起,网络安全问题显得越来越重要。 目前造成网络不安全的主要因素是在协议、系统及数据库等的设计上存在缺陷。网络互连一般采用TCP/IP协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全...全部
黑客如何攻击网络 如何针对其攻击行为进行防范?
来源:yesky 2004-03-11
摘要:首先阐述目前计算机网络中存在的安全问题,接着分析黑客网络攻击的一般过程,并在此基础上针对网络攻击的具体预防措施进行了讨论和分析。
引言
随着计算机网络的发展,网络的开放性、共享性、互连程度随之扩大。特别是Internet的普及,使得商业数字货币、互联网络银行等一些网络新业务的迅速兴起,网络安全问题显得越来越重要。
目前造成网络不安全的主要因素是在协议、系统及数据库等的设计上存在缺陷。网络互连一般采用TCP/IP协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全问题并没有考虑太多,协议中存在很多的安全漏洞。
对于操作系统,由于目前使用的计算机网络操作系统在本身结构设计和代码设计时偏重于考虑系统的使用方便性,导致了系统在远程访问、权限控制和口令管理及等许多方面存在安全漏洞。同样,数据库管理系统(DBMS)也存在权限管理、数据的安全性及远程访问等许多方面问题,在DBMS或应用程序中能够预先安置从事情报收集、受控激发破坏程序。
由上述可见,针对协议、系统及数据库等,无论是其本身的设计缺陷,还是由于人为因素造成的各种漏洞,都可能被一些另有图谋的黑客利用进行网络攻击,因此要保证网络信息的安全,必须熟知黑客网络攻击的一般过程,在此基础上才能制定防范策略,确保网络安全。
1、黑客进行网络攻击的一般过程
1。1 信息收集
信息收集并不对目标本身造成危害,只是为进一步入侵提供有用的信息。黑客可能会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息:
·SNMP协议:用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。
·TraceRoute程序:能够用该程序获得到达目标主机所要经过的网络数和路由器数。
·Whois协议:该协议的服务信息能提供所有有关的DNS域和相关的管理参数。
·DNS服务器:该服务器提供了系统中可以访问的主机IP地址表和它们所对应的主机名。
·Ping实用程序:可以用来确定一个指定的主机的位置。
1。2 系统安全弱点的探测
在收集到攻击目标的一批网络信息之后,黑客会探测目标网络上的每台主机,以寻求该系统的安全漏洞或安全弱点,其主要使用下列方式进行探测:
·自编程序:对某些产品或者系统,已经发现了一些安全漏洞,但是用户并不一定及时使用对这些漏洞的“补丁”程序。
因此入侵者可以自己编写程序,通过这些漏洞进入目标系统。
·利用公开的工具:象Internet的电子安全扫描程序IIS、审计网络用的安全分析工具SATAN等这样的工具,可以对整个网络或子网进行扫描,寻找安全漏洞。
·慢速扫描:由于一般扫描侦测器的实现是通过监视某个时间段里一台特定主机发起的连接的数目来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。
·体系结构探测:黑客利用一些特定的数据包传送给目标主机,使其作出相应的响应。
由于每种操作系统都有其独特的响应方式,将此独特的响应报与数据库中的已知响应进行匹配,经常能够确定出目标主机所运行的操作系统及其版本等信息。
1。3 建立模拟环境,进行模拟攻击
根据前两步所获得的信息,建立一个类似攻击对象的模拟环境,然后对模拟目标机进行一系列的攻击。
在此期间,通过检查被攻击方的日志,观察检测工具对攻击的反应等,可以了解攻击过程中留下的“痕迹”及被攻击方的状态,以此来制定一个系统的、周密的攻击策略。
1。4 具体实施网络攻击
入侵者根据前几步所获得的信息,同时结合自身的水平及经验总结出相应的攻击方法,在进行模拟攻击的实践后,将等待时机,以备实施真正的网络攻击。
2、协议欺骗攻击及其防范措施
2。1 源IP地址欺骗攻击
许多应用程序认为如果数据包能够使其自身沿着路由到达目的地,而且应答包也可以回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的前提。
假设同一网段内有两台主机A、B,另一网段内有主机X。B 授予A某些特权。X 为获得与A相同的特权,所做欺骗攻击如下:首先,X冒充A,向主机 B发送一个带有随机序列号的SYN包。主机B响应,回送一个应答包给A,该应答号等于原序 列号加1。
然而,此时主机A已被主机X利用拒绝服务攻击 “淹没”了,导致主机A服务失效。结果,主机A将B发来的包丢弃。为了完成三次握手,X还需要向B回送一个应答包,其应答号等于B向A发送数据 包的序列号加1。
此时主机X 并不能检测到主机B的数据包(因为不在同一网段),只有利用TCP顺序号估算法来预测应答包的顺序号并将其发送给目标机B。如果猜测正确,B则认为收到的ACK是来自内部主机A。此时,X即获得了主机A在主机B上所享有的特权,并开始对这些服务实施攻击。
要防止源IP地址欺骗行为,可以采取以下措施来尽可能地保护系统免受这类攻击:
·抛弃基于地址的信任策略: 阻止这类攻击的一种非常容易的办法就是放弃以地址为基础的验证。不允许r类远程调用命令的使用;删除。
rhosts 文件;清空/etc/hosts。equiv 文件。这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。
·使用加密方法: 在包发送到 网络上之前,我们可以对它进行加密。
虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性和真实性。
·进行包过滤:可以配置路由器使其能够拒绝网络外部与本网内具有相同IP地址的连接请求。而且,当包的IP地址不在本网内时,路由器不应该把本网主机的包发送出去。
有一点要注意,路由器虽然可以封锁试图到达内部网络的特定类型的包。但它们也是通过分析测试源地址来实现操作的。因此,它们仅能对声称是来自于内部网络的外来包进行过滤,若你的网络存在外部可信任主机,那么路由器将无法防止别人冒充这些主机进行IP欺骗。
2。2 源路由欺骗攻击
在通常情况下,信息包从起点到终点走过的路径是由位于此两点间的路由器决定的,数据包本身只知道去往何处,但不知道该如何去。源路由可使信息包的发送者将此数据包要经过的路径写在数据包里,使数据包循着一个对方不可预料的路径到达目的主机。
下面仍以上述源IP欺骗中的例子给出这种攻击的形式:
主机A享有主机B的某些特权,主机X想冒充主机A从主机B(假设IP为 c。ddd)获得某些服务。首先,攻击者修改距离X最近的路由器,使得到达此路由器且包含目的地址 c。
ddd的数据包以主机X所在的网络为目的地;然后,攻击者X利用IP欺骗向主机B发送源路由(指定最近的路由器)数据包。当B回送数据包时,就传送到被更改过的路由器。这就使一个入侵者可以假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。
为了防范源路由欺骗攻击,一般采用下面两种措施:
·对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。
·在路由器上关闭源路由。用命令no ip source-route。
3、拒绝服务攻击及预防措施
在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用。SYN Flood攻击是典型的拒绝服务攻击。
SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连接攻击,每当我们进行一次标准的TCP连接就会有一个三次握手的过程。
而SYN Flood在它的实现过程中只有前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认报文后,请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报文的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器的系统可用资源、网络可用带宽急剧下降,将无法向用户提供正常的网络服务。
为了防止拒绝服务攻击,我们可以采取以下预防措施:
·对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽限制,控制其在一定的范围内。
·要防止SYN数据段攻击,我们应对系统设定相应的内核参数,使得系统强制对超时的Syn请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的Syn请求数据包。
·建议在该网段的路由器上做些配置的调整,这些调整包括限制Syn半开数据包的流量和个数。
·建议在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效地保护本网段内的服务器不受此类攻击。
总之,要彻底杜绝拒绝服务攻击,只有追根溯源去找到正在进行攻击的机器和攻击者。
要追踪攻击者不是一件容易的事情,一旦其停止了攻击行为,很难将其发现。唯一可行的方法就是在其进行攻击的时候,根据路由器的信息和攻击数据包的特征,采用逐级回溯的方法来查找其攻击源头。这时需要各级部门的协同配合才能很好的完成。
4、针对其他网络攻击行为的防范措施
协议攻击和拒绝服务攻击是黑客惯于使用的攻击方法,但随着计算机网络技术的飞速发展,网络攻击行为千变万化,新的攻击技术层出不穷。下面将阐述网络嗅探及缓冲区溢出的攻击原理及防范措施。
4。1 针对网络嗅探的防范措施
网络嗅探就是使网络接口接收不属于本主机的数据。计算机网络通常建立在共享信道上,以太网就是这样一个共享信道的网络,其数据报头包含目的主机的硬件地址,只有硬件地址匹配的机器才会接收该数据包。
一个能接收所有数据包的机器被称为杂错节点。通常账户和口令等信息都以明文的形式在以太网上传输,一旦被黑客在杂错节点上嗅探到,用户就可能会遭到损害。
对于网络嗅探攻击,我们可以采取以下一些措施进行防范:
·网络分段:一个网络段包括一组共享低层设备和线路的机器,如交换机,动态集线器和网桥等设备,可以对数据流进行限制,从而达到防止嗅探的目的。
·加密:一方面可以对数据流中的部分重要信息进行加密,另一方面也可只对应用层加密,然而后者将使大部分与网络和操作系统有关的敏感信息失去保护。选择何种加密方式这就取决于信息的安全级别及网络的安全程度。
·一次性口令技术:口令并不在网络上传输而是在两端进行字符串匹配,客户端利用从服务器上得到的Challenge和自身的口令计算出一个新字符串并将之返回给服务器。在服务器上利用比较算法进行匹配,如果匹配,连接就允许建立,所有的Challenge和字符串都只使用一次。
·禁用杂错节点:安装不支持杂错的网卡,通常可以防止IBM兼容机进行嗅探。
4。2 缓冲区溢出攻击及其防范措施
缓冲区溢出攻击是一种系统攻击手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。
当然,随便往缓冲区中填东西并不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序具有root权限的话,攻击者就可以对系统进行任意操作了。
缓冲区溢出对系统带来了巨大的危害,要有效地防止这种攻击,应该做到以下几点:
·程序指针完整性检查:在程序指针被引用之前检测它是否改变。即便一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。
·堆栈保护:这是一种提供程序指针完整性检查的编译器技术,通过检查函数活动纪录中的返回地址来实现。在堆栈中函数返回地址后面加了一些附加的字节,而在函数返回时,首先检查这个附加的字节是否被改动过。
如果发生过缓冲区溢出的攻击,那么这种攻击很容易在函数返回前被检测到。但是,如果攻击者预见到这些附加字节的存在,并且能在溢出过程中同样地制造他们,那么他就能成功地跳过堆栈保护的检测。
·数组边界检查:所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内。
最直接的方法是检查所有的数组操作,通常可以采用一些优化的技术来减少检查的次数。目前主要有以下的几种检查方法:Compaq C编译器、Jones & Kelly C数组边界检查、Purify存储器存取检查等。
5、结束语
未来的战争是信息战争,而网络战是信息战的重要组成部分。网络对抗,实际上是人与人的对抗,它具体体现在安全策略与攻击策略的交锋上。为了不断增强信息系统的安全防御能力,必须充分理解系统内核及网络协议的实现,真正做到洞察对方网络系统的“细枝末节”,同时应该熟知针对各种攻击手段的预防措施,只有这样才能做到“知己知彼,百战百胜”。
。收起