百花齐放 拒绝服务攻击(DDOS)现状分析(2)
2008-02-23 06:37:42来源:互联网 阅读 ()
而且,也可以通过伪造而使得ICMP信息包不会降低攻击者的带宽。
异常
异常属于特殊情况,其可以令IP堆栈出现行为错误而造成各种不同的后果,例如崩溃、冻结等等。异常可划分为两大类:非法数据和隔离异常。
非法数据是标准所不予考虑的或予以显式否定的值或内容。大于指定长度的信息包、重叠的TCP标记组合、含非空认证序列号的SYN 信息包或甚至错误的选项类型都属于基于非法数据的异常攻击。
隔离异常是基于那些堆栈不能正常处理的异常情况(即便从标准的视角看它们完全合法)。著名的“死亡之ping”就是关于巨型(但仍然合法)ICMP回显请求信息包。如果信息包带有相同的源地址、目标地址和端口,其仍然是合法的,不过对IP 协议栈有害。古老的 land 攻击最近已脱胎换骨成为 imland,而且正在破坏 IP协议栈。只有少数异常攻击仍然能够利用单一信息包击倒系统。大多数堆栈都已打上补丁程序,而且可能大多数异常都已经过测试和开发。然而,处理这种信息包仍然会占用 CPU 的不少资源。当5 年前异常攻击出现并得到补丁程序的修补时,攻击能力还受到 CPU 和带宽的限制。处理异常情况时产生的额外计算负担不太重要。如今,工作站与服务器之间的差距日益缩小,而且任何人都可以使用宽带。这种条件下可能发动巨型负荷的异常,使得目标机器的 CPU 资源枯竭。
同样,也可以从单一的命令行实现这种攻击。
#hping3--rand-source–SAFRU –L 0 –M 0 –p --flood
同样,仍然可以选择进行伪造来进行有效有效攻击。
应用程序级攻击
网络已证明易受攻击。然而网络只是全球系统中的传输部分,是中断通信的良好手段。不过,应用程序通常是实际的攻击目标,而且这些应用程序也受到无数的拒绝服务问题的袭扰。
基于会话的攻击
大多数应用程序连接是通过会话(通常经过TCP机制的标识) 来处理。同步会话的数量是影响给定应用程序性能的重要因素,因此必须限制会话的数量。如果该限制只是基于网络和传输信息(IP TCP),那么生成拒绝服务是很容易的。一次简单的攻击便可打开 TCP 会话并让这些会话保持打开状态,从而可以迅速填满所有可用的会话槽,阻止建立任何新的会话。这种“待决”会话攻击是与 SYN 洪水等价的 7 层攻击。但是如果在第 4 层上需要有数千兆数据流量,则需要在几秒内发送数千个信息包来阻止建立任何新的会话,。
例如,很容易在web服务器上实施这种攻击。
完整和合法的会话也可以破坏应用程序,简单的F5攻击只需保持F5 键处于按下状态就可以强制完全刷新在 Internet Explorer 上加载的 web 页面。使用这种古老而简易的攻击,便会仅仅因为需要服务的 web 页面数过多而导致资源枯竭。这种会话洪水攻击还可以破坏通信信道的其他关键路径。
− 电信链接:从服务器传送到客户机的数据量可以填满与因特网的链接。这种情况下,通过该链接无法进行任何通信;针对性的拒绝服务攻击漫延至全球;
− 服务器应用程序:大量同步连接可以达到服务器处理同步会话能力的上限,这种攻击类似于“待决的”会话攻击。如果未设置上限,则处理大量会话时可能消耗绝大多数的系统资源。
− 第三方应用程序:大多数应用程序都链接到中间软件和数据库。在任一情况下,由于这些第三方应用程序在处理原始应用程序发出的巨量请求时可能遇到内部问题,因此就可能出现瓶颈。这些结果也可能是内部缺陷造成的(如下所述)。
继F5攻击技术之后,会话洪水技术便再无发展。不过,人们已发现且广泛使用平衡因子而使得这种攻击仍然是拒绝服务中一种最恶性的可能情形。
概念和逻辑缺陷
开发的应用程序是为了在正常情况下提供特定的服务,而攻击的目的就是令应用程序的行为方式出现异常。这种攻击的某些机制是通用的,但是这种攻击的大多数机制是专用于各个不同应用程序的概念和逻辑,因此想要罗列出全部有缺陷的应用程序和消灭这些缺陷的方法是不可能的。
内部
内存处理显然是可以导致拒绝服务攻击的第一内部机制。简单的“缓冲溢出”使得重写堆栈成为可能,从而让应用程序乃至整个系统都不稳定。在不同级别的应用程序通道中缺少输入检查,也使得攻击会沿着第三方应用程序传播而增加攻击的可能性。
然而,内部缺陷更加难以琢磨,更加难以修补。依赖于NFA引擎的规则表达式可能极具危险性。NFA引擎分析表达式的所有可能路径。如有一个字符令搜索失效,该引擎便会返回前一个匹配点并重试表达式的所有组合。若针对精心制作的输入而启动像通配符 * 之类极耗资源的运算符和像 (int|integer) 之类 OR 条件的组合,则会产生致命的影响。
SQL也是逻辑攻击的一种明显传播媒介,因为在大型而复杂的表格上,SQL查询可能在应用程序级生成不同的错误行为。首先遇到的缺陷就是缺少索引和数据库结构中通常使用的字符串列。如果没有正确的索引,涉及对同一个表的多个列进行筛选和排序操作的SQL 请求便会产生指数级数量的操作,这会消耗巨量的 CPU 资源并显著增加应用程序响应时间。如果搜索和排序的字段是字符串,则这些操作消耗的资源甚至会更多。
第二种缺陷与内存有关。在超大型表中,类似于“SELECT*”的请求可能产生数百万个结果。临时数据库结构和用于存储结果的应用程序结构消耗大量内存,结果可能会导致各种后果:数据交换过量、响应时间延长或整个系统拒绝服务。
另一种重要的拒绝服务攻击可以针对用于组织和搜索内存中数据的哈希函数来实施。哈希表入口是指向对象链接表的指示符。搜索操作需要两个步骤。首先,计算哈希函数以在哈希表中查找匹配的入口。然后,逐个比较列表中的对象。冲突是这种机制的第一个缺陷。如果哈希表不够大和/或哈希算法使得容易产生冲突,便可能会产生多个入口而与哈希表中相同的入口匹配。按这种方式对表格进行的任何搜索操作都将需要执行很多运算,而且消耗CPU资源,其本身很可能导致拒绝服务,或者会加强针对依赖于这种机制的某个应用程序的攻击效果。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
