当前位置: 首页 > news >正文

柳州做网站设计的公司企业网站开发价格

柳州做网站设计的公司,企业网站开发价格,社交网站页面设计,淘宝网页版官网入口转载自#xff1a;http://netsecurity.51cto.com/art/200608/30428.htm 据统计#xff0c;在所有黑客攻击事件中#xff0c;SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例#xff0c;当时黑客利用的就是简单而有效的SYN攻击…转载自http://netsecurity.51cto.com/art/200608/30428.htm 据统计在所有黑客攻击事件中SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例当时黑客利用的就是简单而有效的SYN攻击有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍SYN攻击的基本原理、工具及检测方法并全面探讨SYN攻击防范技术。 据统计在所有黑客攻击事件中SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例当时黑客利用的就是简单而有效的SYN攻击有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍SYN攻击的基本原理、工具及检测方法并全面探讨SYN攻击防范技术。 一、TCP握手协议 在TCP/IP协议中TCP协议提供可靠的连接服务采用三次握手建立一个连接。 第一次握手建立连接时客户端发送syn包(synj)到服务器并进入SYN_SEND状态等待服务器确认 第二次握手服务器收到syn包必须确认客户的SYNackj1同时自己也发送一个SYN包synk即SYNACK包此时服务器进入SYN_RECV状态 第三次握手客户端收到服务器的SYNACK包向服务器发送确认包ACK(ackk1)此包发送完毕客户端和服务器进入ESTABLISHED状态完成三次握手。 完成三次握手客户端与服务器开始传送数据在上述过程中还有一些重要的概念 未连接队列在三次握手协议中服务器维护一个未连接队列该队列为每个客户端的SYN包synj开设一个条目该条目表明服务器已收到SYN包并向客户发出确认正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态当服务器收到客户的确认包时删除该条目服务器进入ESTABLISHED状态。  Backlog参数表示未连接队列的最大容纳数目。 SYN-ACK 重传次数 服务器发送完SYNACK包如果未收到客户确认包服务器进行首次重传等待一段时间仍未收到客户确认包进行第二次重传如果重传次数超过系统规定的最大重传次数系统将该连接信息从半连接队列中删除。注意每次重传等待的时间不一定相同。 半连接存活时间是指半连接队列的条目存活的最长时间也即服务从收到SYN包到确认这个报文无效的最长时间该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。 二、SYN攻击原理 SYN攻击属于DOS攻击的一种它利用TCP协议缺陷通过发送大量的半连接请求耗费CPU和内存资源。SYN攻击除了能影响主机外还可以危害路由器、防火墙等网络系统事实上SYN攻击并不管目标是什么系统只要这些系统打开TCP服务就可以实施。从上图可看到服务器接收到连接请求synj将此信息加入未连接队列并发送请求包给客户synk,ackj1此时进入SYN_RECV状态。当服务器未收到客户端的确认包时重发请求包一直到超时才将此条目从未连接队列删除。配合IP欺骗SYN攻击能达到很好的效果通常客户端在短时间内伪造大量不存在的IP地址向服务器不断地发送syn包服务器回复确认包并等待客户的确认由于源地址是不存在的服务器需要不断的重发直至超时这些伪造的SYN包将长时间占用未连接队列正常的SYN请求被丢弃目标系统运行缓慢严重者引起网络堵塞甚至系统瘫痪。 三、SYN攻击工具 SYN攻击实现起来非常的简单互联网上有大量现成的SYN攻击工具。 1、windows系统下的SYN工具 以synkill.exe为例运行工具选择随机的源地址和源端囗并填写目标机器地址和TCP端囗激活运行很快就会发现目标系统运行缓慢。如果攻击效果不明显可能是目标机器并未开启所填写的TCP端囗或者防火墙拒绝访问该端囗此时可选择允许访问的TCP端囗通常windows系统开放tcp139端囗UNIX系统开放tcp7、21、23等端囗。 四、检测SYN攻击 检测SYN攻击非常的方便当你在服务器上看到大量的半连接状态时特别是源IP地址是随机的基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击 # netstat -n -p TCP tcp 0  0 10.11.11.11:23124.173.152.8:25882  SYN_RECV - tcp 0  0 10.11.11.11:23236.15.133.204:2577  SYN_RECV - tcp 0  0 10.11.11.11:23127.160.6.129:51748  SYN_RECV - tcp 0  0 10.11.11.11:23222.220.13.25:47393  SYN_RECV - tcp 0  0 10.11.11.11:23212.200.204.182:60427 SYN_RECV - tcp 0  0 10.11.11.11:23232.115.18.38:278 SYN_RECV - tcp 0  0 10.11.11.11:23239.116.95.96:5122SYN_RECV - tcp 0  0 10.11.11.11:23236.219.139.207:49162 SYN_RECV - ... 上面是在LINUX系统中看到的很多连接处于SYN_RECV状态在WINDOWS系统中是SYN_RECEIVED状态源IP地址都是随机的表明这是一种带有IP欺骗的SYN攻击。 我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数 netstat -n -p TCP   grep SYN_RECV   grep :22   wc -l 324 显示TCP端囗22的未连接数有324个虽然还远达不到系统极限但应该引起管理员的注意。 五、SYN攻击防范技术 关于SYN攻击防范技术人们研究得比较早。归纳起来主要有两大类一类是通过防火墙、路由器等过滤网关防护另一类是通过加固TCP/IP协议栈防范.但必须清楚的是SYN攻击不能完全被阻止我们所做的是尽可能的减轻SYN攻击的危害除非将TCP协议重新设计。 1、过滤网关防护 这里过滤网关主要指明防火墙当然路由器也能成为过滤网关。防火墙部署在不同网络之间防范外来非法攻击和防止保密信息外泄它处于客户端和服务器之间利用它来防护SYN攻击能起到很好的效果。过滤网关防护主要包括超时设置SYN网关和SYN代理三种。 ■网关超时设置 防火墙设置SYN转发超时参数状态检测的防火墙可在状态表里面设置该参数远小于服务器的timeout时间。当客户端发送完SYN包服务端发送确认包后SYNACK防火墙如果在计数器到期时还未收到客户端的确认包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协议栈的调整可能会引起某些功能的受限管理员应该在进行充分了解和测试的前提下进行此项工作。 ■SynAttackProtect机制 为防范SYN攻击win2000系统的tcp/ip协议栈内嵌了SynAttackProtect机制Win2003系统也采用此机制。SynAttackProtect机制是通过关闭某些socket选项增加额外的连接指示和减少超时时间使系统能处理更多的SYN连接以达到防范SYN攻击的目的。默认情况下Win2000操作系统并不支持SynAttackProtect保护机制需要在注册表以下位置增加SynAttackProtect键值 HKLMSYSTEMCurrentControlSetServicesTcpipParameters 当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攻击中。Win2000 server默认值为100Win2000 Advanced server为500。 TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数如果超过此值系统自动启动SynAttackProtect机制。Win2000 server默认值为80Win2000 Advanced server为400。 TcpMaxPortsExhausted 是指系统拒绝的SYN请求包的数量默认是5。 如果想调整以上参数的默认值可以在注册表里修改位置与SynAttackProtect相同 ■ SYN cookies技术 我们知道TCP协议开辟了一个比较大的内存空间backlog队列来存储半连接条目当SYN请求不断增加并这个空间致使系统丢弃SYN连接。为使半连接队列被塞满的情况下服务器仍能处理新到的SYN请求SYN cookies技术被设计出来。 SYN cookies应用于linux、FreeBSD等操作系统当半连接队列满时SYNcookies并不丢弃SYN请求而是通过加密技术来标识半连接状态。 在TCP实现中当收到客户端的SYN请求时服务器需要回复SYNACK包给客户端客户端也要发送确认包给服务器。通常服务器的初始序列号由服务器按照一定的规律计算得到或采用随机数但在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队列需要占用大量的内存资源不能被无限的扩大。 WIN2000除了上面介绍的TcpMaxHalfOpen, TcpMaxHalfOpenRetried参数外WIN2000操作系统可以通过设置动态backlog(dynamic backlog)来增大系统所能容纳的最大半连接数配置动态backlog由AFD.SYS驱动完成AFD.SYS是一种内核级的驱动用于支持基于window socket的应用程序比如ftp、telnet等。AFD.SYS在注册表的位置  HKLMSystemCurrentControlSetServicesAFDParametersEnableDynamicBacklog值为1时表示启用动态backlog可以修改最大半连接数。  MinimumDynamicBacklog表示半连接队列为单个TCP端囗分配的最小空闲连接数当该TCP端囗在backlog队列的空闲连接小于此临界值时系统为此端囗自动启用扩展的空闲连接DynamicBacklogGrowthDeltaMicrosoft推荐该值为20。 MaximumDynamicBacklog是当前活动的半连接和空闲连接的和当此和超过某个临界值时系统拒绝SYN包Microsoft推荐MaximumDynamicBacklog值不得超过2000。 DynamicBacklogGrowthDelta值是指扩展的空闲连接数此连接数并不计算在MaximumDynamicBacklog内当半连接队列为某个TCP端囗分配的空闲连接小于MinimumDynamicBacklog时系统自动分配DynamicBacklogGrowthDelta所定义的空闲连接空间以使该TCP端囗能处理更多的半连接。Microsoft推荐该值为10。 LINUXLinux用变量tcp_max_syn_backlog定义backlog队列容纳的最大半连接数。在Redhat 7.3中该变量的值默认为256这个值是远远不够的一次强度不大的SYN攻击就能使半连接队列占满。我们可以通过以下命令修改此变量的值 # sysctl -w net.ipv4.tcp_max_syn_backlog2048 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-UXHP-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请求就越少。为缩短超时时间可以通过缩短重传超时时间一般是第一次重传超时时间和减少重传次数来实现。 Win2000第一次重传之前等待时间默认为3秒为改变此默认值可以通过修改网络接囗在注册表里的TcpInitialRtt注册值来完成。重传次数由TcpMaxConnectResponseRetransmissions 来定义注册表的位置是HKLMSYSTEMCurrentControlSetServicesTcpipParameters registry key。 当然我们也可以把重传次数设置为0次这样服务器如果在3秒内还未收到ack确认包就自动从backlog队列中删除该连接条目。 LINUXRedhat使用变量tcp_synack_retries定义重传次数其默认值是5次总超时时间需要3分钟。 Sun Solaris Solaris 默认的重传次数是3次总超时时间为3分钟可以通过ndd命令修改这些默认值。
http://www.zqtcl.cn/news/544680/

相关文章:

  • 青岛城阳网站制作网站建设详细步骤
  • 先做网站再付款 怎么回答设计方案步骤
  • 汕头建站模板济南网站建设富库网络
  • 创业网站建设方案项目书手机app设计软件
  • 建设端午节网站的目的主题wordpress语法高亮插件
  • 做网站开发使用百分比的好处深圳建设网站公司简介
  • 行距网站上海专业网站建设机构
  • 闵行手机网站建设鲅鱼圈规划建设局网站
  • 合肥市城乡和建设网站网页设计与网站建设区别
  • 青岛网站建设企业建站北京网站模仿
  • 广州建设网站的公司简介湛江建设厅网站
  • 做网站不赚钱了网站关键词排行查询
  • 印度人通过什么网站做国际贸易三门峡做网站
  • 网站排名快速提升工具招远建网站首选公司
  • 手机网站格式商城网游开发公司
  • 手机怎样创建网站长春网站建设哪家专业
  • 做pop网站定制开发教程
  • 成都响应式网站建报告问题
  • 做设计找素材的+网站有哪些建立平台什么意思
  • 网站设置在哪里找宁德网站建设制作
  • logo网站设计素材品牌高端网站建设公司
  • 芙蓉区乡建设局网站郑州网站建设qicaizz
  • 网站建设的缺陷个人网站制作图片
  • 四川省建设厅注册管理中心网站设计上海2021门票
  • 帝国cms做微网站人力资源公司怎么开
  • 网站建设学徒松江品划做网站公司
  • 灯饰网站需要这么做深圳专业网站设计公司
  • 政务网站设计wordpress 嵌入html5
  • 移动网站 pc网站的区别吗网站建设工厂
  • 有意义网站织梦圈子如何调用网站默认模板