本文目录一览:
黑客的入侵手段~~
死亡之ping (ping of death)
概览:由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。
防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows98之后的windows,NT(service pack 3之后),linux、Solaris、和Mac OS都具有抵抗一般ping ofdeath攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。
泪滴(teardrop)
概览:泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括servicepack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
防御:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。
UDP洪水(UDP flood)
概览:各种各样的假冒攻击利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务攻击。
防御:关掉不必要的TCP/IP服务,或者对防火墙进行配置阻断来自Internet的请求这些服务的UDP请求。
SYN洪水(SYN flood)
概览:一些TCP/IP栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。在一些创建连接不受限制的实现里,SYN洪水具有类似的影响。
防御:在防火墙上过滤来自同一主机的后续连接。
未来的SYN洪水令人担忧,由于释放洪水的并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。
Land攻击
概览:在Land攻击中,一个特别打造的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续五分钟)。
防御:打最新的补丁,或者在防火墙进行配置,将那些在外部接口上入站的含有内部源地址滤掉。(包括10域、127域、192.168域、172.16到172.31域)
Smurf攻击
概览:一个简单的smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比pingof death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。
防御:为了防止黑客利用你的网络攻击他人,关闭外部路由器或防火墙的广播地址特性。为防止被攻击,在防火墙上设置规则,丢弃掉ICMP包。
Fraggle攻击
概览:Fraggle攻击对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP
防御:在防火墙上过滤掉UDP应答消息
电子邮件炸弹
概览:电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮,攻击者能够耗尽接受者网络的带宽。
防御:对邮件地址进行配置,自动删除来自同一主机的过量或重复的消息。
畸形消息攻击
概览:各类操作系统上的许多服务都存在此类问题,由于这些服务在处理信息之前没有进行适当正确的错误校验,在收到畸形的信息可能会崩溃。
防御:打最新的服务补丁。
利用型攻击
利用型攻击是一类试图直接对你的机器进行控制的攻击,最常见的有三种:
口令猜测
概览:一旦黑客识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户帐号,成功的口令猜测能提供对机器控制。
防御:要选用难以猜测的口令,比如词和标点符号的组合。确保像NFS、NetBIOS和Telnet这样可利用的服务不暴露在公共范围。如果该服务支持锁定策略,就进行锁定。
特洛伊木马
概览:特洛伊木马是一种或是直接由一个黑客,或是通过一个不令人起疑的用户秘密安装到目标系统的程序。一旦安装成功并取得管理员权限,安装此程序的人就可以直接远程控制目标系统。
最有效的一种叫做后门程序,恶意程序包括:NetBus、BackOrifice和BO2k,用于控制系统的良性程序如:netcat、VNC、pcAnywhere。理想的后门程序透明运行。
防御:避免下载可疑程序并拒绝执行,运用网络扫描软件定期监视内部主机上的监听TCP服务。
缓冲区溢出
概览:由于在很多的服务程序中大意的程序员使用象strcpy(),strcat()类似的不进行有效位检查的函数,最终可能导致恶意用户编写一小段利用程序来进一步打开安全豁口然后将该代码缀在缓冲区有效载荷末尾,这样当发生缓冲区溢出时,返回指针指向恶意代码,这样系统的控制权就会被夺取。
防御:利用SafeLib、tripwire这样的程序保护系统,或者浏览最新的安全公告不断更新操作系统。
信息收集型攻击
信息收集型攻击并不对目标本身造成危害,如名所示这类攻击被用来为进一步入侵提供有用的信息。主要包括:扫描技术、体系结构刺探、利用信息服务
扫描技术
地址扫描
概览:运用ping这样的程序探测目标地址,对此作出响应的表示其存在。
防御:在防火墙上过滤掉ICMP应答消息。
端口扫描
概览:通常使用一些软件,向大范围的主机连接一系列的TCP端口,扫描软件报告它成功的建立了连接的主机所开的端口。
防御:许多防火墙能检测到是否被扫描,并自动阻断扫描企图。
反响映射
概览:黑客向主机发送虚假消息,然后根据返回“hostunreachable”这一消息特征判断出哪些主机是存在的。目前由于正常的扫描活动容易被防火墙侦测到,黑客转而使用不会触发防火墙规则的常见消息类型,这些类型包括:RESET消息、SYN-ACK消息、DNS响应包。
防御:NAT和非路由代理服务器能够自动抵御此类攻击,也可以在防火墙上过滤“hostunreachable”ICMP应答?.
慢速扫描
概览:由于一般扫描侦测器的实现是通过监视某个时间桢里一台特定主机发起的连接的数目(例如每秒10次)来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。
防御:通过引诱服务来对慢速扫描进行侦测。
体系结构探测
概览:黑客使用具有已知响应类型的数据库的自动工具,对来自目标主机的、对坏数据包传送所作出的响应进行检查。由于每种操作系统都有其独特的响应方法(例NT和Solaris的TCP/IP堆栈具体实现有所不同),通过将此独特的响应与数据库中的已知响应进行对比,黑客经常能够确定出目标主机所运行的操作系统。
防御:去掉或修改各种Banner,包括操作系统和各种应用服务的,阻断用于识别的端口扰乱对方的攻击计划。
利用信息服务
DNS域转换
概览:DNS协议不对转换或信息性的更新进行身份认证,这使得该协议被人以一些不同的方式加以利用。如果你维护着一台公共的DNS服务器,黑客只需实施一次域转换操作就能得到你所有主机的名称以及内部IP地址。
防御:在防火墙处过滤掉域转换请求。
Finger服务
概览:黑客使用finger命令来刺探一台finger服务器以获取关于该系统的用户的信息。
防御:关闭finger服务并记录尝试连接该服务的对方IP地址,或者在防火墙上进行过滤。
LDAP服务
概览:黑客使用LDAP协议窥探网络内部的系统和它们的用户的信息。
防御:对于刺探内部网络的LDAP进行阻断并记录,如果在公共机器上提供LDAP服务,那么应把LDAP服务器放入DMZ。
假消息攻击
用于攻击目标配置不正确的消息,主要包括:DNS高速缓存污染、伪造电子邮件。
DNS高速缓存污染
概览:由于DNS服务器与其他名称服务器交换信息的时候并不进行身份验证,这就使得黑客可以将不正确的信息掺进来并把用户引向黑客自己的主机。
防御:在防火墙上过滤入站的DNS更新,外部DNS服务器不应能更改你的内部服务器对内部机器的认识。
伪造电子邮件
概览:由于SMTP并不对邮件的发送者的身份进行鉴定,因此黑客可以对你的内部客户伪造电子邮件,声称是来自某个客户认识并相信的人,并附带上可安装的特洛伊木马程序,或者是一个引向恶意网站的连接。
防御:使用PGP等安全工具并安装电子邮件证书。
漏洞攻击
对微软(Microsoft)而言,最具讽刺的是总被黑客先发现漏洞,待Windows们倒下后,微软才站出来补充两句:“最新的补丁已经发布,如果客户没有及时下载补丁程序而造成的后果,我们将不承担责任!”
攻击:
细细盘查,漏洞攻击主要集中在系统的两个部分:1.系统的对外服务上,如“冲击波”病毒针对系统的“远程协助”服务;“尼姆达”病毒由系统的“IPC漏洞”(资源共享)感染。2. 集成的应用软件上, IE、OutLook Express、MSN Messager、Media Player这些集成的应用程序,都可能成为漏洞攻击的桥梁。
那黑客又是如何利用这些漏洞,实施攻击的呢?首先利用扫描技术,了解对方计算机存在哪些漏洞,然后有针对性地选择攻击方式。以IE的IFRAME漏洞为例,黑客能利用网页恶意代码(恶意代码可以采用手工编写或者工具软件来协助完成),制作带毒网页,然后引诱对方观看该网页,未打补丁的IE将会帮助病毒进入计算机,感染后的系统利用IE通讯簿,向外发送大量带毒邮件,最终堵塞用户网络。
防范:
漏洞的防御,升级自然是首选。有两种方式可以很好的升级:
1. Update
系统的“开始”菜单上,会有“Windows Update”的链接,选择后,进入Microsoft的升级主页,网站上的程序会自动扫描当前系统存在哪些漏洞,哪些需要升级,根据“向导”即可完成,如图所示(笔者推崇这种方式)。
漏洞攻击
对微软(Microsoft)而言,最具讽刺的是总被黑客先发现漏洞,待Windows们倒下后,微软才站出来补充两句:“最新的补丁已经发布,如果客户没有及时下载补丁程序而造成的后果,我们将不承担责任!”
攻击:
细细盘查,漏洞攻击主要集中在系统的两个部分:1.系统的对外服务上,如“冲击波”病毒针对系统的“远程协助”服务;“尼姆达”病毒由系统的“IPC漏洞”(资源共享)感染。2. 集成的应用软件上, IE、OutLook Express、MSN Messager、Media Player这些集成的应用程序,都可能成为漏洞攻击的桥梁。
那黑客又是如何利用这些漏洞,实施攻击的呢?首先利用扫描技术,了解对方计算机存在哪些漏洞,然后有针对性地选择攻击方式。以IE的IFRAME漏洞为例,黑客能利用网页恶意代码(恶意代码可以采用手工编写或者工具软件来协助完成),制作带毒网页,然后引诱对方观看该网页,未打补丁的IE将会帮助病毒进入计算机,感染后的系统利用IE通讯簿,向外发送大量带毒邮件,最终堵塞用户网络。
防范:
漏洞的防御,升级自然是首选。有两种方式可以很好的升级:
1. Update
系统的“开始”菜单上,会有“Windows Update”的链接,选择后,进入Microsoft的升级主页,网站上的程序会自动扫描当前系统存在哪些漏洞,哪些需要升级,根据“向导”即可完成,如图所示(笔者推崇这种方式)。
2. 使用升级程序
使用Update虽然比较准确、全面。但它所有的升级组件都需要在Microsoft的网站上下载,“窄带”的情况下显然不现实;“宽带”也需要很长的时间。Microsoft提供升级程序的打包下载,或者一些工具光盘上也带有这些升级包。常说的“Service Pack 1”、“Service Pack 2”就是指这些升级包。
除了升级,使用一些工具软件,也能够达到效果,如3721的“上网助手”,它能够很好填补IE漏洞。这些软件一般定向保护系统的应用程序,针对“对外服务”漏洞的较少。
DDOS攻击
DDOS(分布式拒绝服务攻击)的本质是:利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。它实现简单,是目前黑客常用的一种方式。
攻击:
DDOS的实现方式较多,如多人同时向主机提出Web请求;多人同时Ping主机……这里介绍一种“先进”的“伪装IP地址的洪水Ping攻击”。
Ping指令是用来探测网络通讯状况和对方主机状况的网络指令,先前有过一些资料介绍不断的Ping对方主机,可能会造成该主机无法承受的情况,但随着Windows XP等新系统的普及,网络带宽的升级、计算机硬件的升级,单纯的大量Ping包基本上没有效果了。
Ping指令的工作流程是这样的:先由使用Ping命令的主机A发送ICMP报文给主机B;再由主机B回送ICMP报文给主机A。
网络通讯中有一种被称为“广播”(Broadcast)的方式,所谓广播的意思是说有一个地址,任何局域网内的主机都会接收发往这个地址的报文(就像电台广播一样),以此类推。如果往一个局域网的广播地址(利用一些“局域网嗅探软件”就可以查找它的广播地址)发送一个ICMP报文(就是一下Ping广播地址),会得到非常多的ICMP报文回应。把当前计算机的地址伪装成被攻击主机的(SOCK_RAW就可以实现伪装IP),向一个广播地址发送Ping请求的时候,所有这个广播地址内的主机都会回应这个Ping请求,被攻击主机被迫接受大量的Ping包。这就形成了伪装IP地址的洪水Ping攻击形式。
防范:
对于DDOS而言,目前网络上还没有找到什么有效的防御方法,对于一种使用Ping包的攻击方式,虽然可以使用一些防火墙拒绝Ping包,但如果DDOS采用了另一种载体——合法的Web请求(打开该主机上的网页)时,依然无法防范。现在对付DDOS的普遍方法是由管理员,手工屏蔽DDOS的来源和服务器形式,如有一段IP对主机进行DDOS,就屏蔽该段IP的访问;DDOS使用的是FTP、HTTP服务,就暂时停止这些服务。
最后还要提醒一下大家,高明的黑客在攻击后都会做一些扫尾工作,扫尾工作就是要清除一些能够发现自己的残留信息。对于用户而言一般只能通过日志来捕捉这些残留信息,如防火墙的日志;Web服务器的日志(IIS、Server_U都具有日志查看功能)。能否通过日志找到这些残留信息只能靠运气了,真正够厉害的黑客会悄然无声地离去,而不留下一片“云彩”。
六、ICMP Flood能防吗?
先反问你一个问题:洪水迅猛的冲来时,你能否拿着一个脸盆来抵挡?(坐上脸盆做现代鲁宾逊倒是个不错的主意,没准能漂到MM身边呢)
软件的网络防火墙能对付一些漏洞、溢出、OOB、IGMP攻击,但是对于洪水类型的攻击,它们根本无能为力,我通常对此的解释是“倾倒垃圾”:“有蟑螂或老鼠在你家门前逗留,你可以把它们赶走,但如果有人把一车垃圾倾倒在你家门口呢?”前几天看到mikespook大哥对此有更体面的解释,转载过来——“香蕉皮原理:如果有人给你一个香蕉和一个香蕉皮你能区分,并把没有用的香蕉皮扔掉。(一般软件防火墙就是这么判断并丢弃数据包的。)但是如果有人在同一时间内在你身上倒一车香蕉皮,你再能区分有用没用也没啥作用了~~因为你被香蕉皮淹没了~~~~(所以就算防火墙能区分是DoS的攻击数据包,也只能识别,根本来不及丢弃~~死了,死了,死了~~)”
所以,洪水没法防!能做的只有提高自己的带宽和预防洪水的发生(虽然硬件防火墙和分流技术能做到,但那价格是太昂贵的,而且一般人也没必要这样做)。
如果你正在被攻击,最好的方法是抓取攻击者IP(除非对方用第一种,否则抓了没用——假的IP)后,立即下线换IP!(什么?你是固定IP?没辙了,打电话找警察叔叔吧)
七、被ICMP Flood攻击的特征
如何发现ICMP Flood?
当你出现以下症状时,就要注意是否正被洪水攻击:
1.传输状态里,代表远程数据接收的计算机图标一直亮着,而你没有浏览网页或下载
2.防火墙一直提示有人试图ping你
3.网络速度奇慢无比
4.严重时系统几乎失去响应,鼠标呈跳跃状行走
如果出现这些情况,先不要慌张,冷静观察防火墙报警的频率及IP来确认是否普通的Ping或是洪水,做出相应措施(其实大多数情况也只能换IP了)。
1.普通ping
这种“攻击”一般是对方扫描网络或用ping -t发起的,没多大杀伤力(这个时候,防火墙起的作用就是延迟攻击者的数据报发送间隔时间,请别关闭防火墙!否则后果是严重的!),通常表现如下:
==============================================================
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:24] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:26] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:30] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
=============================================================
这么慢的速度,很明显是由ping.exe或IcmpSendEcho发出的,如果对方一直不停的让你的防火墙吵闹,你可以给他个真正的ICMP Flood问候。
2.直接Flood
这是比较够劲的真正意义洪水了,防火墙的报警密度会提高一个数量级:
==============================================================
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机,
该操作被拒绝。
=============================================================
这时候你的防火墙实际上已经废了,换个IP吧。
3.伪造IP的Flood
比较厉害的ICMP Flood,使用的是伪造的IP而且一样大密度,下面是the0crat用56K拨号对我的一次攻击测试的部分数据(看看时间,真晕了,这可是56K小猫而已啊)
=============================================================
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
[18:52:13] 1.1.1.1 尝试用Ping 来探测本机,
该操作被拒绝。
=============================================================
无言…………
4、反射ICMP Flood
估计现在Smurf攻击还没有多少人会用(R-Series的RSS.EXE就是做这事的,RSA.EXE和RSC.EXE分别用作SYN反射和UDP反射),所以这种方法还没有大规模出现,但Smurf是存在的!而且这个攻击方法比前面几种更恐怖,因为攻击你的是大网站(或一些受苦受难的服务器)!
我正在被网易、万网和新浪网站攻击中(懒得修改天网策略,直接用其他工具抓的。实际攻击中,反射的IP会多几倍!)
=======================================================================
[15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52)
[15:26:32] RECV:ICMP Packet fro
黑客攻防的过滤网关防护
这里,过滤网关主要指明防火墙,当然路由器也能成为过滤网关。防火墙部署在不同网络之间,防范外来非法攻击和防止保密信息外泄,它处于客户端和服务器之间,利用它来防护SYN攻击能起到很好的效果。过滤网关防护主要包括超时设置,SYN网关和SYN代理三种。
·网关超时设置:
防火墙设置SYN转发超时参数(状态检测的防火墙可在状态表里面设置),该参数远小于服务器的timeout时间。当客户端发送完SYN包,服务端发送确认包后(SYN+ACK),防火墙如果在计数器到期时还未收到客户端的确认包(ACK),则往服务器发送RST包,以使服务器从队列中删去该半连接。值得注意的是,网关超时参数设置不宜过小也不宜过大,超时参数设置过小会影响正常的通讯,设置太大,又会影响防范SYN攻击的效果,必须根据所处的网络应用环境来设置此参数。
·SYN网关:
SYN网关收到客户端的SYN包时,直接转发给服务器;SYN网关收到服务器的SYN/ACK包后,将该包转发给客户端,同时以客户端的名义给服务器发ACK确认包。此时服务器由半连接状态进入连接状态。当客户端确认包到达时,如果有数据则转发,否则丢弃。事实上,服务器除了维持半连接队列外,还要有一个连接队列,如果发生SYN攻击时,将使连接队列数目增加,但一般服务器所能承受的连接数量比半连接数量大得多,所以这种方法能有效地减轻对服务器的攻击。
·SYN代理:
当客户端SYN包到达过滤网关时,SYN代理并不转发SYN包,而是以服务器的名义主动回复SYN/ACK包给客户,如果收到客户的ACK包,表明这是正常的访问,此时防火墙向服务器发送ACK包并完成三次握手。SYN代理事实上代替了服务器去处理SYN攻击,此时要求过滤网关自身具有很强的防范SYN攻击能力。
2、加固tcp/ip协议栈防范SYN攻击的另一项主要技术是调整tcp/ip协议栈,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等。tcp/ip协议栈的调整可能会引起某些功能的受限,管理员应该在进行充分了解和测试的前提下进行此项工作。otect机制
为防范SYN攻击,Windows2000系统的tcp/ip协议栈内嵌了SynAttackProtect机制,Win2003系统也采用此机制。SynAttackProtect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。默认情况下,Windows2000操作系统并不支持SynAttackProtect保护机制,需要在注册表以下位置增加SynAttackProtect键值:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
当SynAttackProtect值(如无特别说明,本文提到的注册表键值都为十六进制)为0或不设置时,系统不受SynAttackProtect保护。
当SynAttackProtect值为1时,系统通过减少重传次数和延迟未连接时路由缓冲项(route cache entry)防范SYN攻击。
当SynAttackProtect值为2时(Microsoft推荐使用此值),系统不仅使用backlog队列,还使用附加的半连接指示,以此来处理更多的SYN连接,使用此键值时,tcp/ip的TCPInitialRTT、window size和可滑动窗囗将被禁止。
我们应该知道,平时,系统是不启用SynAttackProtect机制的,仅在检测到SYN攻击时,才启用,并调整tcp/ip协议栈。那么系统是如何检测SYN攻击发生的呢?事实上,系统根据TcpMaxHalfOpen,TcpMaxHalfOpenRetried 和TcpMaxPortsExhausted三个参数判断是否遭受SYN攻击。
TcpMaxHalfOpen 表示能同时处理的最大半连接数,如果超过此值,系统认为正处于SYN攻击中。Windows2000 server默认值为100,Windows2000 Advanced server为500。
TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数,如果超过此值,系统自动启动SynAttackProtect机制。Windows2000 server默认值为80,Windows2000 Advanced server为400。
TcpMaxPortsExhausted 是指系统拒绝的SYN请求包的数量,默认是5。
如果想调整以上参数的默认值,可以在注册表里修改(位置与SynAttackProtect相同)
· SYN cookies技术
我们知道,TCP协议开辟了一个比较大的内存空间backlog队列来存储半连接条目,当SYN请求不断增加,并这个空间,致使系统丢弃SYN连接。为使半连接队列被塞满的情况下,服务器仍能处理新到的SYN请求,SYN cookies技术被设计出来。
SYN cookies应用于linux、FreeBSD等操作系统,当半连接队列满时,SYNcookies并不丢弃SYN请求,而是通过加密技术来标识半连接状态。
在TCP实现中,当收到客户端的SYN请求时,服务器需要回复SYN+ACK包给客户端,客户端也要发送确认包给服务器。通常,服务器的初始序列号由服务器按照一定的规律计算得到或采用随机数,但在SYN cookies中,服务器的初始序列号是通过对客户端IP地址、客户端端囗、服务器IP地址和服务器端囗以及其他一些安全数值等要素进行hash运算,加密得到的,称之为cookie。当服务器遭受SYN攻击使得backlog队列满时,服务器并不拒绝新的SYN请求,而是回复cookie(回复包的SYN序列号)给客户端, 如果收到客户端的ACK包,服务器将客户端的ACK序列号减去1得到cookie比较值,并将上述要素进行一次hash运算,看看是否等于此cookie。如果相等,直接完成三次握手(注意:此时并不用查看此连接是否属于backlog队列)。
在RedHat linux中,启用SYN cookies是通过在启动环境中设置以下命令来完成:
# echo 1 ?? /proc/sys/net/ipv4/tcp_syncookies
· 增加最大半连接数
大量的SYN请求导致未连接队列被塞满,使正常的TCP连接无法顺利完成三次握手,通过增大未连接队列空间可以缓解这种压力。当然backlog队列需要占用大量的内存资源,不能被无限的扩大。
Windows2000:除了上面介绍的TcpMaxHalfOpen, TcpMaxHalfOpenRetried参数外,Windows2000操作系统可以通过设置动态backlog(dynamic backlog)来增大系统所能容纳的最大半连接数,配置动态backlog由AFD.SYS驱动完成,AFD.SYS是一种内核级的驱动,用于支持基于window socket的应用程序,比如ftp、telnet等。AFD.SYS在注册表的位置:
HKLM\System\CurrentControlSet\Services\AFD\Parameters\EnableDynamicBacklog值为1时,表示启用动态backlog,可以修改最大半连接数。
MinimumDynamicBacklog表示半连接队列为单个TCP端囗分配的最小空闲连接数,当该TCP端囗在backlog队列的空闲连接小于此临界值时,系统为此端囗自动启用扩展的空闲连接(DynamicBacklogGrowthDelta),Microsoft推荐该值为20。
MaximumDynamicBacklog是当前活动的半连接和空闲连接的和,当此和超过某个临界值时,系统拒绝SYN包,Microsoft推荐MaximumDynamicBacklog值不得超过2000。
DynamicBacklogGrowthDelta值是指扩展的空闲连接数,此连接数并不计算在MaximumDynamicBacklog内,当半连接队列为某个TCP端囗分配的空闲连接小于MinimumDynamicBacklog时,系统自动分配DynamicBacklogGrowthDelta所定义的空闲连接空间,以使该TCP端囗能处理更多的半连接。Microsoft推荐该值为10。
LINUX:Linux用变量tcp_max_syn_backlog定义backlog队列容纳的最大半连接数。在Redhat 7.3中,该变量的值默认为256,这个值是远远不够的,一次强度不大的SYN攻击就能使半连接队列占满。我们可以通过以下命令修改此变量的值:
# sysctl -w net.ipv4.tcp_max_syn_backlog=`2048`
Sun Solaris Sun Solaris用变量tcp_conn_req_max_q0来定义最大半连接数,在Sun Solaris 8中,该值默认为1024,可以通过add命令改变这个值:
# ndd -set /dev/tcp tcp_conn_req_max_q0 2048
HP-UX:HP-UX用变量tcp_syn_rcvd_max来定义最大半连接数,在HP-UX 11.00中,该值默认为500,可以通过ndd命令改变默认值:
#ndd -set /dev/tcp tcp_syn_rcvd_max 2048
·缩短超时时间
上文提到,通过增大backlog队列能防范SYN攻击;另外减少超时时间也使系统能处理更多的SYN请求。我们知道,timeout超时时间,也即半连接存活时间,是系统所有重传次数等待的超时时间总和,这个值越大,半连接数占用backlog队列的时间就越长,系统能处理的SYN请求就越少。为缩短超时时间,可以通过缩短重传超时时间(一般是第一次重传超时时间)和减少重传次数来实现。
Windows2000第一次重传之前等待时间默认为3秒,为改变此默认值,可以通过修改网络接囗在注册表里的TcpInitialRtt注册值来完成。重传次数由TcpMaxConnectResponseRetransmissions 来定义,注册表的位置是:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters registry key
当然我们也可以把重传次数设置为0次,这样服务器如果在3秒内还未收到ack确认包就自动从backlog队列中删除该连接条目。
LINUX:Redhat使用变量tcp_synack_retries定义重传次数,其默认值是5次,总超时时间需要3分钟。
Sun Solaris Solaris 默认的重传次数是3次,总超时时间为3分钟,可以通过ndd命令修改这些默认值。
包过滤技术如何防御黑客攻击以及包过滤技术的优缺点(越详细越好)
花钱下载的文章,希望对你有帮助!
用专业术语来说,防火墙是一种位于两个或多个网络间,实施网
络之 访问控制的组件集合。对于普通用户来说,所谓 “ 防火墙”,
指的就是一种破放置在自己的计算机与外界网络之间的防御系统,从
网络发往计算机的所有数据都要经过它的判断处理后,才会决定能不
能把这些数据交给计算机,一旦发现有害数据,防火墙就会拦截下
来,实现了对汁算机的保护功能。
1 防火墙的主要功能
(1 )防火墙是网络安全的屏障。一个防火墙能极大地提高一个
内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有
经过精心选择的应用协议才能过防火墙,所以网络环境变得更安全。
如防火墙可以禁止诸如众所』 吉 I 知的不安全的NF S 协议进出受保护网
络,这样外部的攻击者就不可能利1 } f 】 这些脆弱的协议来攻击内部网
络。防火墙吲时可以保护网络免受基于路由的攻击 ,如I P 选项中的源
路由攻击和I CMP 重定向中的重定向路径。防火墙应该可以拒绝所有
以上类型攻击的报文并通知系统管理员。
( 2)防火墙可以强化网络安全策略。通过以防火墙为中心的安
全方案配置 ,能将所有安全软件 ( 如口令、加密、身份认证、审计
等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防
火墙的集中安全管理更经济。例如在网络访 时,一次一密口令系统
和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防
火墙上。
( 3)对婀络存取和访问进行监控审汁。如果所有的访i ' u 】 部经过
防火墙 ,那么,防火墙就能记录下这些访问并作出E t 志汜录, 时也
能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行
适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收
集一个网络的使用和误用情况也是非常重要的 首先的理由是可以清
楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制
是否充足。而网络使用统汁对I 矧络需求分析和威胁分析等而言也是非
常重要的。
( 4)防止内部信息的外泄。通过利用防火墙对内部网络的划
分,可实现内部网重点网段的隔离 ,从而限制了局部重点或敏感网络
安全问题对全局网络造成的影响。使用防火墙就可以隐蔽那些透漏内
部细节j t l F i n g e r ,DNS 等服务。F i n g e r 显示了主机的所有用户的注册
名、真名,最后器录时间和使用s h e l l 类型等。但是F i n g e r 显示的信息
非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程
度,这个系统是否有用户正在连线上嘲,这个系统是否在被攻击时引
起注意等等。防火墙可以同样阻塞有关内部网络中的DNS 信息,这样
一
台主机的域名和I P 地址就不会谈外界所了解。
2 防火墙体系结构
(1 )双宿/ 多宿主机。这种模式是在堡垒主机上配置两块或两块
以上的网卡实现的。其中,一块网卡用于外部网络 ,而其余网卡则用
于内部网络,并通过代理服务系统来实现防火墙的各种功能。
( 2)屏蔽主机。这种模式是在双宿/ 多宿主机模式的基础上增加
外部过滤路由没备实现的。堡垒主机通过一个外部过滤路由器进行连
接,在通过代 服务系统将外部过滤路由器传来的消息于内部网络联
系在一起,从而起到保护内部网络的作用。
( 3)屏蔽子网。这种模式是在屏蔽主饥模式的基础上增加内部
过滤路由设备实现的。堡垒主机使用的两个过滤路由器,分别于内部
网络和外部网络连接,再通过代理服务系统处理经过过滤路d t 器的信息
3 防火墙包过滤技术
(1 ) “ 包过滤”技术简介。 “ 包过滤”是最早使用的一种防火
墙技术,也是防火墙所要实现的最基本功能,它可将不符合要求的包
过滤掉。它的第一代模型是 “ 静态包过滤”,使用包过滤技术的防火
墙通常工作在o s i 模型 中的网络层上,后来发展更新的 “ 动态包过
滤”增加了传输层 ,简言之 ,包过滤技术工作的地方就是各种基于
T C P / I P 协议的数据报文进出的通道 ,它把这两层作为数据监控的对
象,对每个数据包的头部、协议、地址 、端口、类型等信息进行分
析,并与预先没定好的防火墙过滤规则进行核对,一旦发现某个包的
某个或多个部分与过滤规则匹配并且条件为 “ 阻止”的时候,这个包
就会被丢弃。
( 2) “ 包过滤”防火墙的一般工作原理。包过滤是在I P 层实现
的,因此,它可以只用路由器完成。包过滤根据包的源I P J ~J L、目的
I P 地址、源端口、目的端口及包传递方向等报头信息来判断是否允许
包通过。过滤用户定义的内容,如I P 地址。其工作原理是系统在网络
层检查数据包 ,与应用层无关 ,包过滤器的应用非常广泛 ,因为
CP U用来处理包过滤的时间可以忽略不汁。而且这种防护措施对用户
透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很
方便。这样系统就具有很好的传输性能,易扩展:但是这种防火墙不
太安全,因为系统对应用层信息无感知也就是说,它们不理解通信的
内容,不能在用户级别上进行过滤 ,即不能识别不同的用户和防止
I P 地址的盗用。如果攻击者把自己主机的I P 地址没成一个合法主机的
l P 地址,就可以很轻易地通过包过滤器,这样更容易被黑客攻破。
( 3)黑客攻击包过滤防火墙的常用手段。 “ I P 地址欺骗”是黑
客比较常用的一种攻击手段。黑客们 包过滤防火墙发出一系列信息
包 ,这些包中的l P 地址已经被替换为一串顺序的I P 地址,一旦有一个
包通过了防火墙,黑客便可以用这个I P 地址来伪装他们发出的信息。
攻击者向被攻击的计算机发出许许多多个虚假的 “ 同步请求”信息
包 ,目标计算机响应了这种信息包后会等待请求发出者的应答.而攻
击者却不做任何回应 ,服务器在一定时间里没有收到响应信号的话就
会结束这次请求连接 ,但是当服务器在遇到成千上万个虚假请求时,
它便没有能力来处理正常的用户服务请求,处于这种攻下的服务器表 现为性能下降,服务响应时间变长,严重时服务完全停止甚至死机。
但是 ,如果防火墙能结合接口,地址来匹配,这种攻击就不能成功。
4 包过滤技术的优缺点及其发展趋势
随着网络应用的增加,对网络带宽提出了更高的要求。这意味着
防火墙要能够以非常高的速率处理数据。为了满足这种需要,一些防
火墙制造商开发了基于AS I C 的防火墙和基于网络处理器的防火墙。
从执行速度的角度看来 ,基于网络处理器的防火墙也是基于软件的解
决方案,它需要在很大程度上依赖于软件的性能,但是由于这类防火
墙中有一些专门用于处理数据层面任务的引擎,从而减轻了C P U的负
担 ,该类防火墙的性能要比传统防火墙的性能好许多。