﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-beautykingdom-随笔分类-security</title><link>http://www.cppblog.com/beautykingdom/category/12594.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 22 Jan 2010 11:40:06 GMT</lastBuildDate><pubDate>Fri, 22 Jan 2010 11:40:06 GMT</pubDate><ttl>60</ttl><item><title>利用反弹技术进行DDoS攻击的分析与防御</title><link>http://www.cppblog.com/beautykingdom/archive/2010/01/22/106234.html</link><dc:creator>chatler</dc:creator><author>chatler</author><pubDate>Fri, 22 Jan 2010 10:08:00 GMT</pubDate><guid>http://www.cppblog.com/beautykingdom/archive/2010/01/22/106234.html</guid><wfw:comment>http://www.cppblog.com/beautykingdom/comments/106234.html</wfw:comment><comments>http://www.cppblog.com/beautykingdom/archive/2010/01/22/106234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/beautykingdom/comments/commentRss/106234.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beautykingdom/services/trackbacks/106234.html</trackback:ping><description><![CDATA[<h1>
<p>攻击者可以通过反弹技术使我们对DDOS
攻击更难以防御——利用反弹服务器反弹DDOS的洪水包，也就是说，通过发送大量的欺骗请求数据包（来源地址为victim，受害服务器，或目标服务器）
给Internet上大量的服务器群，而这些服务器群收到请求后将发送大量的应答包给victim。结果是原来用于攻击的洪水数据流被大量的服务器所稀
释，并最终在受害者处汇集为洪水，使受害者更难以隔离攻击洪水流，并且更难以用Traceback 跟踪技术去找到洪水流的来源。 </p>
<p>　　在分布式DOS攻击（DDOS）中，攻击者事先入侵了大量服务器，并在这些服务器上植入了DDOS攻击程序，然后结合这些被入侵的服务器的网络传输力量发动攻击。利用大量的服务器发动攻击不仅增加了攻击的力度，而且更难于防范。</p>
<p align="center"><img id="eWebEditor_TempElement_Img" style="cursor: pointer;" onclick="showimg(this.src);return false;" alt="利用反弹技术进行DDoS攻击的分析与防御1" src="http://ttcma.techtarget.com.cn/UpLoad/ArticlePic/2009-11-27-12-57-57.gif" border="0"></p>
<p>
图一显示了以往DDOS攻击的结构：一个主机，主服务器（Master），作用是发送控制消息给事先入侵并已植入DDOS程序的从服务器群
（Slave），控制从服务器群发起对目标服务器的攻击。从服务器群将产生高容量的源地址为伪造的或随机的网络数据流，并把这些数据流发送给目标服务器。
因为数据流的源地址是伪造的，增加了追查的难度。 </p>
<p><br>　　利用成百上千的从服务器不仅可以另追查的难度加大（因为难以识别大量不同的来源，需要查询大量的路由器），而且极大的阻碍了当成功追查后所需采取的行动（因为这要与大量的网络管理员联系，安装大量的网络过滤器）。</p>
<p align="center"><img id="eWebEditor_TempElement_Img" style="cursor: pointer;" onclick="showimg(this.src);return false;" alt="利用反弹技术进行DDoS攻击的分析与防御2" src="http://ttcma.techtarget.com.cn/UpLoad/ArticlePic/2009-11-27-12-58-26.gif" border="0" width="500"></p>
<p>
而今考虑周密的攻击者可以通过利用反弹服务器（Reflector），更好的组织他们的攻击。反弹服务器是指，当收到一个请求数据报后就会产生一个回应
数据报的主机。例如，所有的WEB服务器，DNS服务器，及路由器都是反弹服务器，因为他们会对SYN报文或其他TCP报文回应SYN
ACKs或RST报文，以及对一些IP报文回应ICMP数据报超时或目的地不可达消息的数据报。而攻击者可以利用这些回应的数据报对目标服务器发动
DDOS攻击。 </p>
<p><br>　　攻击者首先锁定大量的可以做为反弹
服务器的服务器群，比如说100万台（这并不是件很难的工作，因为在Internet上光是WEB服务器就不止这么多的，更何况还有更多其他的机器可以作
为反弹服务器）。然后攻击者们集中事先搞定的从服务器群，向已锁定的反弹服务器群发送大量的欺骗请求数据包（来源地址为victim，受害服务器或目标服
务器）。反弹服务器将向受害服务器发送回应数据报。结果是：到达受害服务器的洪水数据报不是几百个，几千个的来源，而是上百万个来源，来源如此分散的洪水
流量将堵塞任何其他的企图对受害服务器的连接。</p>
<p>　　图二显示了利用
反弹进行DDOS攻击的结构。注意到，受害服务器不需要追查攻击的来源，因为所有攻击数据报的源IP都是真实的，都是反弹服务器群的IP。而另一方面，反
弹服务器的管理人员则难以追查到从服务器的位置，因为他所收到的数据报都是伪造的（源IP为受害服务器的IP）。</p>
<p>
原则上，我们可以在反弹服务器上利用追踪技术来发现从服务器的的位置。但是，反弹服务器上发送数据报的流量远小于从服务器发送的流量。每一个从服务器可
以把它发送的网络流量分散到所有或者一大部分反弹服务器。例如：如果这里有Nr 个反弹服务器，Ns
个从服务器，每个从服务器发送的网络流量为F，那么每一个反弹服务器将产生的网络流量为</p>
<p align="center"><img id="eWebEditor_TempElement_Img" style="cursor: pointer;" onclick="showimg(this.src);return false;" alt="利用反弹技术进行DDoS攻击的分析与防御3" src="http://ttcma.techtarget.com.cn/UpLoad/ArticlePic/2009-11-27-12-58-49.gif" border="0"></p>
<p><br>　　而Nr 远大于Ns 。所以，服务器根据网络流量来自动检测是否是DDOS攻击源的这种机制将不起作用。</p>
<p>
值得注意的是，不象以往DDOS攻击，利用反弹技术，攻击者不需要把服务器做为网络流量的放大器（发送比攻击者发送的更大容量的网络数据）。他们甚至可
以使洪水流量变弱，最终才在目标服务器回合为大容量的洪水。这样的机制让攻击者可以利用不同网络结构机制的服务器作为反弹服务器，使其更容易找到足够数量
的反弹服务器，用以发起攻击。</p>
<p>　　我们的分析显示，有三种特别具威胁性的反弹服务器是：DNS服务器、Gnutella服务器、和基于TCP-IP的服务器（特别是WEB 服务器），基于TCP的实现将遭受可预测初始序列号的威胁。</p>
<br></h1>
from:<br>http://www.searchsecurity.com.cn/showcontent_29184.htm<br><br><img src ="http://www.cppblog.com/beautykingdom/aggbug/106234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beautykingdom/" target="_blank">chatler</a> 2010-01-22 18:08 <a href="http://www.cppblog.com/beautykingdom/archive/2010/01/22/106234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Suse防火墙修改端口</title><link>http://www.cppblog.com/beautykingdom/archive/2009/12/25/104032.html</link><dc:creator>chatler</dc:creator><author>chatler</author><pubDate>Fri, 25 Dec 2009 03:33:00 GMT</pubDate><guid>http://www.cppblog.com/beautykingdom/archive/2009/12/25/104032.html</guid><wfw:comment>http://www.cppblog.com/beautykingdom/comments/104032.html</wfw:comment><comments>http://www.cppblog.com/beautykingdom/archive/2009/12/25/104032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/beautykingdom/comments/commentRss/104032.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beautykingdom/services/trackbacks/104032.html</trackback:ping><description><![CDATA[<div id=fileContent>手动修改：<br>#vi /etc/sysconfig/SuSEfirewall2<br><br>#TCP端口的情况：<br>FW_SERVICES_EXT_TCP = "6000"<br>#UDP端口的情况：<br>FW_SERVICES_EXT_UDP = "177"<br>防火墙设置的生效：<br>#rcSuSEfirewall2 restart</div>
<img src ="http://www.cppblog.com/beautykingdom/aggbug/104032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beautykingdom/" target="_blank">chatler</a> 2009-12-25 11:33 <a href="http://www.cppblog.com/beautykingdom/archive/2009/12/25/104032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOS攻击原理及方法介绍</title><link>http://www.cppblog.com/beautykingdom/archive/2009/12/20/103595.html</link><dc:creator>chatler</dc:creator><author>chatler</author><pubDate>Sun, 20 Dec 2009 14:57:00 GMT</pubDate><guid>http://www.cppblog.com/beautykingdom/archive/2009/12/20/103595.html</guid><wfw:comment>http://www.cppblog.com/beautykingdom/comments/103595.html</wfw:comment><comments>http://www.cppblog.com/beautykingdom/archive/2009/12/20/103595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/beautykingdom/comments/commentRss/103595.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beautykingdom/services/trackbacks/103595.html</trackback:ping><description><![CDATA[已经有很多介绍DOS（Denial of Service，即拒绝服务）攻击的文章，但是，多数人还是不知道DOS到底是什么，它到底是怎么实现的。本文主要介绍DOS的机理和常见的实施方法。因前段时间仔细了解了TCP/IP协议以及RFC文档，有点心得。同时，文中有部分内容参考了Shaft的文章翻译而得<br>。要想了解DOS攻击得实现机理，必须对TCP有一定的了解。所以，本文分为两部分，第一部分介绍一<br>些实现DOS攻击相关的协议，第二部分则介绍DOS的常见方式。<br><br>1、 什么是DOS攻击<br>DOS：即Denial Of Service，拒绝服务的缩写，可不能认为是微软的dos操作系统了。好象在5&#183;1的时候闹过这样的笑话。拒绝服务，就相当于必胜客在客满的时候不再让人进去一样，呵呵，你想吃馅饼，就必须在门口等吧。DOS攻击即攻击者想办法让目标机器停止提供服务或资源访问，这些资源包括磁盘空间、内存、进程甚至网络带宽，从而阻止正常用户的访问。比如：<br>* 试图FLOOD服务器，阻止合法的网络通?br&gt;* 破坏两个机器间的连接，阻止访问服务<br>* 阻止特殊用户访问服务<br>* 破坏服务器的服务或者导致服务器死机<br>不过，只有那些比较阴险的攻击者才单独使用DOS攻击，破坏服务器。通常，DOS攻击会被作为一次入侵的一部分，比如，绕过入侵检测系统的时候，通常从用大量的攻击出发，导致入侵检测系统日志过多或者反应迟钝，这样，入侵者就可以在潮水般的攻击中混骗过入侵检测系统。<br><br>2、有关TCP协议的东西<br>TCP（transmission control protocol，传输控制协议），是用来在不可靠的因特网上提供可靠的、端到端的字节流通讯协议，在RFC793中有正式定义，还有一些解决错误的东西在RFC 1122中有记录，RFC 1323则有TCP的功能扩展。<br><br>我们常见到的TCP/IP协议中，IP层不保证将数据报正确传送到目的地，TCP则从本地机器接受用户的数据流，将其分成不超过64K字节的数据片段，将每个数据片段作为单独的IP数据包发送出去，最后在目的地机器中再组合成完整的字节流，TCP协议必须保证可靠性。<br><br>发送和接收方的TCP传输以数据段的形式交换数据，一个数据段包括一个固定的20字节头，加上可选部分，后面再跟上数据，TCP协议从发送方传送一个数据段的时候，还要启动计时器，当数据段到达目的地后，接收方还要发送回一个数据段，其中有一个确认序号，它等于希望收到的下一个数据段的顺序号，如果计时器在确认信息到达前超时了，发送方会重新发送这个数据段。<br><br>上面，我们总体上了解一点TCP协议，重要的是要熟悉TCP的数据头（header）。因为数据流的传输最重要的就是header里面的东西，至于发送的数据，只是header附带上的。客户端和服务端的服务响应就是同header里面的数据相关，两端的信息交流和交换是根据header中的内容实施的，因此，要实现DOS，就必须对header中的内容非常熟悉。<br><br>下面是TCP数据段头格式。<br>Source Port和 Destination Port :是本地端口和目标端口<br>Sequence Number 和 Acknowledgment Number ：是顺序号和确认号，确认号是希望接收的字节号。这都是32位的，在TCP流中，每个数据字节都被编号。Data offset :表明TCP头包含多少个32位字，用来确定头的长度，因为头中可选字段长度是不定的。Reserved : 保留的6位，现在没用，都是0<br>接下来是6个1位的标志，这是两个计算机数据交流的信息标志。接收和发送断根据这些标志来确定信息流的种类。下面是一些介绍： URG：（Urgent Pointer field significant）紧急指针。用到的时候值为1，用来处理避免TCP数据流中断ACK：（Acknowledgment field significant）置1时表示确认号（Acknowledgment Number）为合法，为0的时候表示数据段不包含确认信息，确认号被忽略。<br>PSH：（Push Function），PUSH标志的数据，置1时请求的数据段在接收方得到后就可直接送到应用程序，而不必等到缓冲区满时才传送。<br>RST：（Reset the connection）用于复位因某种原因引起出现的错误连接，也用来拒绝非法数据和请求。如果<br>接收到RST位时候，通常发生了某些错误。<br>SYN：（Synchronize sequence numbers）用来建立连接，在连接请求中，SYN=1，CK=0，连接响应时，SYN=1，<br>ACK=1。即，SYN和ACK来区分Connection Request和Connection Accepted。<br>FIN：（No more data from sender）用来释放连接，表明发送方已经没有数据发送。<br><br>知道这重要的6个指示标志后，我们继续来。<br>16位的WINDOW字段：表示确认了字节后还可以发送多少字节。可以为0，表示已经收到包括确认号减1（即已发送所有数据）<br>在内的所有数据段。<br>接下来是16位的Checksum字段，用来确保可靠性的。<br>16位的Urgent Pointer，和下面的字段我们这里不解释了。不然太多了。呵呵，偷懒啊。<br><br>我们进入比较重要的一部分：TCP连接握手过程。这个过程简单地分为三步。在没有连接中，接受方（我们针对服务器），服务器处于LISTEN状态，等待其他机器发送连接请求。<br>第一步：客户端发送一个带SYN位的请求，向服务器表示需要连接，比如发送包假设请求序号为10，那么则为：SYN=10，ACK=0，然后等待服务器的响应。<br>第二步：服务器接收到这样的请求后，查看是否在LISTEN的是指定的端口，不然，就发送RST=1应答，拒绝建立连接。如果接收连接，那么服务器发送确认，SYN为服务器的一个内码，假设为100，ACK位则是客户端的请求序号加1，本例中发送的数据是：SYN=100，ACK=11，用这样的数据发送给客户端。向客户端表示，服务器连接已经准备好了，等待客户端的确认这时客户端接收到消息后，分析得到的信息，准备发送确认连接信号到服务器<br>第三步：客户端发送确认建立连接的消息给服务器。确认信息的SYN位是服务器发送的ACK位，ACK位是服务器发送的SYN位加1。即：SYN=11，ACK=101。<br>这时，连接已经建立起来了。然后发送数据，&lt;SYN=11，ACK=101&gt;&lt;DATA&gt;。这是一个基本的请求和连接过程。需要注意的是这些标志位的关系，比如SYN、ACK。<br><br>3、服务器的缓冲区队列（Backlog Queue）<br>服务器不会在每次接收到SYN请求就立刻同客户端建立连接，而是为连接请求分配内存空间，建立会话，并放到一个等待队列中。如果，这个等待的队列已经满了，那么，服务器就不在为新的连接分配任何东西，直接丢弃新的请求。如果到了这样的地步，服务器就是拒绝服务了。<br>如果服务器接收到一个RST位信息，那么就认为这是一个有错误的数据段，会根据客户端IP，把这样的连接在缓冲区队列中清除掉。这对IP欺骗有影响，也能被利用来做DOS攻击。<br><br>####################################################################<br><br>上面的介绍，我们了解TCP协议，以及连接过程。要对SERVER实施拒绝服务攻击，实质上的方式就是有两个：<br>一， 迫使服务器的缓冲区满，不接收新的请求。<br>二， 使用IP欺骗，迫使服务器把合法用户的连接复位，影响合法用户的连接<br>这就是DOS攻击实施的基本思想。具体实现有这样的方法：<br><br>1、SYN FLOOD<br>利用服务器的连接缓冲区（Backlog Queue），利用特殊的程序，设置TCP的Header，向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候，都认为是没有建立起来的连接请求，于是为这些请求建立会话，排到缓冲区队列中。<br>如果你的SYN请求超过了服务器能容纳的限度，缓冲区队列满，那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续你的SYN请求发送，直到缓冲区中都是你的只有SYN标记的请求。现在有很多实施SYN FLOOD的工具，呵呵，自己找去吧。<br><br>2、IP欺骗DOS攻击<br>这种攻击利用RST位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接，攻击者构造攻击的TCP数据，伪装自己的IP为1.1.1.1，并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后，认为从1.1.1.1发送的连接有错误，就会清空缓冲区中建立好的连接。这时，如果合法用户1.1.1.1再发送合法数据，服务器就已经没有这样的连接了，该用户就必<br>须从新开始建立连接。攻击时，伪造大量的IP地址，向目标发送RST数据，使服务器不对合法用户服务。<br><br>3、 带宽DOS攻击<br>如果你的连接带宽足够大而服务器又不是很大，你可以发送请求，来消耗服务器的缓冲区消耗服务器的带宽。这种攻击就是人多力量大了，配合上SYN一起实施DOS，威力巨大。不过是初级DOS攻击。呵呵。Ping白宫？？你发疯了啊！<br><br><br>4、自身消耗的DOS攻击<br>这是一种老式的攻击手法。说老式，是因为老式的系统有这样的自身BUG。比如Win95 (winsock v1), Cisco IOS v.10.x, 和其他过时的系统。<br>这种DOS攻击就是把请求客户端IP和端口弄成主机的IP端口相同，发送给主机。使得主机给自己发送TCP请求和连接。这种主机的漏洞会很快把资源消耗光。直接导致当机。这中伪装对一些身份认证系统还是威胁巨大的。<br>上面这些实施DOS攻击的手段最主要的就是构造需要的TCP数据，充分利用TCP协议。这些攻击方法都是建立在TCP基础上的。还<br>有其他的DOS攻击手段。<br><br>5、塞满服务器的硬盘<br>通常，如果服务器可以没有限制地执行写操作，那么都能成为塞满硬盘造成DOS攻击的途径，比如：<br>发送垃圾邮件。一般公司的服务器可能把邮件服务器和WEB服务器都放在一起。破坏者可以发送大量的垃圾邮件，这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中，直到邮箱被撑破或者把硬盘塞满。<br>让日志记录满。入侵者可以构造大量的错误信息发送出来，服务器记录这些错误，可能就造成日志文件非常庞大，甚至会塞满硬盘。同时会让管理员痛苦地面对大量的日志，甚至就不能发现入侵者真正的入侵途径。<br>向匿名FTP塞垃圾文件。这样也可以塞满硬盘空间。<br><br>6、合理利用策略<br>一般服务器都有关于帐户锁定的安全策略，比如，某个帐户连续3次登陆失败，那么这个帐号将被锁定。这点也可以被破坏者利用，他们伪装一个帐号去错误登陆，这样使得这个帐号被锁定，而正常的合法用户就不能使用这个帐号去登陆系统了
.<br><br>from:<br>http://lib.360doc.com/06/1103/22/4546_249496.shtml
<br><br><br><img src ="http://www.cppblog.com/beautykingdom/aggbug/103595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beautykingdom/" target="_blank">chatler</a> 2009-12-20 22:57 <a href="http://www.cppblog.com/beautykingdom/archive/2009/12/20/103595.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>