拒绝服务(简称DoS)——特别是分布式拒绝服务(简称DDoS)——攻击近来困扰着许多知名企业,从索尼公司到美国银行皆未能幸免。
经年以来,大多数企业都将DoS攻击列为一种可接受范围内的安全风险,因为其发生概率与业务破坏风险类似,相对较低。然而如今,这一类攻击的出镜频率大为提高,进而使得不少机构不得不重新估量其相对危险性。CIO们懊恼于其所带来的收益损失及负面新闻;IT部门也被其导致的应用程序崩溃及额外工作量弄得焦头烂额。
虽然没人能彻底杜绝所有DDoS攻击,但我们仍然有办法减弱其不良影响并使自己的机构尽快从问题中恢复正常。在当下的袭击中,大多数是针对Web应用程序而来——它们只需轻松地发送大量请求,即可让目标Web应用程序应接不暇,进而导致其他访问者无法正常使用。
在这类攻击活动中,大多数攻击者并不在意目标系统及应用程序是否确实崩溃掉了,当然如果崩溃结果真的发生,他们绝对会乐观其成。事实上他们的主要诉求是通过给受害企业挖坑,进而妨害合法用户的正常操作。
如果大家具备适当的监控技术,那么这类攻击活动很容易被揪出来。我们的网络操作中心(简称NOC)将明确反馈运行现状——带宽、每秒请求数量以及系统资源使用情况等各项参数都应显示正常。一旦所有参数在很短或是较短的一段时间中突然增大并既而达到阈值,监控系统将立即发出警报。
一般说来,成熟的机构会立即就此做出反应,例如调动IT团队中合适的技术人员加以处理。管理层也将很快拿到此次站点及应用程序异常事态的通知,同时这种短时间内各项参数急速提升的情况会立刻引起大家的警觉。
此时,除非你的网站上了Slashdot网站的主页,否则最可能的情况一定是DDoS攻击光顾了。恭喜!你现在正式成为DDoS受害者俱乐部中的一员——这些攻击活动的通常起因是那帮家伙不喜欢你的企业政策,当然也可能是有人花钱雇人来阴你。
首先我们要做的是对记录请求信息的日志文件展开分析。你肯定想知道激增的请求到底在请求些啥功能,另外这些请求到底来自何处。通过对新请求与正常请求的对比来判断这到底是汹涌而来的高人气还是切实存在的攻击行为。
要作个聪明人,集中管理日志记录是不可或取的好习惯,这样一来我们就可以立即着手系统分析而不必担心查询请求被淹没在攻击者的请求大潮中。遗憾的是,如果登录服务无法正常运作,那么它可能也处于过载状态下了——这时日志文件可能丢失、你的搜索也可能得不到正确响应。如果攻击已经彻底拿下了你的应用程序,日志文件可能无法从受影响的服务器上传输到登录系统中。这时你必须抢在攻击活动整体展开前进行分析,否则就只能望洋兴叹了。
如果大家需要更多的当前日志信息——而且还同时具备用于托管目标应用程序的冗余系统——可以将其中之一暂时从池中取出、获取日志文件、再将其放回集群当中。这种方式可能会在一段时间内令攻击活动的效果更加明显,但如果不及时拿到日志文件,这帮贼人会在疯狂地扇了我们无数耳光之后瞬间消失,而你再也没机会将其绳之以法了。
一旦我们得到了日志文件,立刻选用自己最顺手的排序工具及分析工具进行处理。我个人的推荐是grep和sed。通过分析,我们可以从日志中找出一些关键性信息,并顺藤摸瓜了解整个攻击的实施过程并加以应对。
首先,我们需要确定此次攻击的实施方式。该攻击是对某个远程系统上未开放的端口发送数据,进而消耗大量防火墙资源吗?还是在搞TCP三路握手,一遍又一遍地索取某个特定的URL?抑或是仅仅简单地向网页服务器发送基础的"Get /HTTP/1.1"指令?
通过企业监控系统,应该有可能对当前负载的所处位置加以锁定。如果大家的防火墙已然失守但网页服务器常未被攻陷,那么结论就是我们遇上了第一类攻击。而如果网页服务器在后方已经被无数处理请求折磨得死去活来——同时防火墙尚能抵挡一阵,但资源占用率已经高于平时——那么可以认定网页应用程序是攻击活动的直接目标。
一旦攻击方式得以确认,我们接下来要做的就是通过日志文件对几个关键因素进行辨别。
通过查看日志文件内容,我们能够判断出攻击工具的实时动态。无论请求指向网页应用程序还是由防火墙在处理,我们观察到的数据都是相同的。
首先,我们要识别出那些违规请求。日志文件中应该可以清楚地留下攻击痕迹,例如大量相似的请求或者以集合形式存在的一类请求。也就是说,其中可能存在上万个尝试访问某个URL的请求或是指向某个无效的端口。
在某些情况下,分布式攻击工具可能会产生不同类型的请求。但是总体来说,我们能够找出来自同一资源且指向另一种相同资源的请求集合——例如日志中记录下的不断向某个不存在的URL发出的请求。由此我们可以判断攻击所使用的请求样式。如果所有攻击节点使用的都是同类请求,我们就具备了掌握攻击者蛛丝马迹并将其从正常流量中区分出来的钥匙。
当我们明确了请求的模式,下一步就是要揪出攻击者。找到那些发送量最高且提交请求最快的攻击节点,这些正是引起麻烦的罪魁祸首,控制住它们能够有效地缓解攻击活动带来的负面作用。换言之,只要了解了攻击请求的通常形式及其来源,我们就能够有效地做出回应。
在攻击活动最猖獗的时期,我常常收到诸如将受影响的资源进行重命名的建议——例如更改URL或是主机名称。这么做可谓正中攻击者的下怀;因为只要他们搞清楚了我们的应对方式,就可以马上重新组织进攻、或是将目标指向新的资源。
更多阅读到 //wsw.fkddos.com/tech/2012/1009/7.html