我怀疑我的一台服务器不久前遭到了攻击。我的问题是,如何在受到攻击时或攻击结束后识别 DOS 或 DDOS 攻击?
答案1
拒绝服务攻击专注于消耗有限的资源。这主要是指网络流量,但也可能是任何可能耗尽的资源。例如,如果您的 Web 服务器需要五秒钟才能生成某个复杂的页面,那么我可以节省大量流量,只需对这个缓慢的页面发出大量请求,这会迅速消耗服务器的后端资源。
拒绝服务攻击可通过查看资源使用量大幅增加来确定。如果您查看图表并发现资源使用量大幅增加,则这可能是拒绝服务事件的候选。
仅仅因为您看到大量流量或资源使用并不意味着这是一次攻击。斜点效果解释了这一现象。您只能通过查看日志来弄清楚。如果一半的连接都有指向刚刚发布在主要网站上的合法文章的引荐来源,那么这就是真正的流量。如果不是,也许您受到了攻击。
DOS 攻击和 DDOS 攻击的区别在于“关闭阀门”的难度。如果不是分布式攻击,我只需在网络边缘关闭攻击主机或网络,一切就都能继续。而分布式攻击的难度就大得多。如果攻击者试图让不受欢迎的流量看起来与你的正常流量非常相似,难度就更大了。
概括
- 参见
- 确定原因
- 识别负责任的交通
答案2
这取决于你正在运行的服务。Wikipedia 对此有一个很好的定义:
拒绝服务攻击(DoS 攻击)或分布式拒绝服务攻击(DDoS 攻击)是一种试图 计算机或网络资源不可用对其目标用户。尽管 DoS 攻击的实施手段、动机和目标可能各不相同,但它通常由一个人或多个人共同努力,暂时或无限期地阻止互联网网站或服务有效运行或完全停止运行。
该术语通常用于计算机网络,但不限于该领域;例如,它也用于 CPU 资源管理。
当您运行 Web 服务器时,您会看到 GET 请求数量激增,对于 DNS 服务来说,这将是查找……攻击主要是向您的服务器发出大量请求,直到它无法应对。
答案3
确定故意、恶意行为与非恶意但仍然具有破坏性的行为之间的区别是困难的。
您看到该状态下有大量半开连接SYN_RECV
。您是否遭受了 SYN 洪水攻击,或者您的同事更改了防火墙规则或出站路由规则?
您看到来自单个 IP 地址的 HTTP 请求数量大幅增加。这是行为不当的机器人还是脚本小子试图从他母亲的地下室对您进行 DoS 攻击?或者可能是某所大学的所有学生刚刚收到了一封电子邮件,其中包含指向您网站的链接。
您会看到来自许多 IP 地址的 HTTP 请求数量大幅增加。DDoS 还是 Reddit?
您看到来自一个 IP 地址的大量 DNS 请求。该服务器是否试图对您进行 DoS 攻击,或者是否有其他人伪造源地址,让您成为反射 DNS 攻击的一部分?
有几种迹象可以表明您的网站是否因蓄意攻击或自然流量而瘫痪。其中一些可以从日志中确定,一些则只能在攻击发生时确定。:
正如 Jeff Ferland 所提到的,有效的Referer
标头可以很好地表明流量是合法的,但这并不是绝对的证据。一个稍微受欢迎的页面,其中包含数百张从您的网站热链接的隐藏图像,可能是发起 DDoS 的一种方法。它甚至不必是图像,任何页面都可以。<img href="http://target-site.com" />
仍然会导致客户端从您的 Web 服务器加载该页面,但显示损坏的图像图标。如果您找到引荐来源,请尽可能检查该页面并确保它确实合法。
电子邮件客户端通常不设置引荐来源,但网络邮件客户端会设置。虽然您无法通过加载引荐来源来查看电子邮件,但事实上存在引荐来源表明这是一个合法请求。
标题User-Agent
可能是一个很好的线索。大多数合法机器人使用独特的用户代理,并带有指向关于页面。许多不太合法的机器人(垃圾邮件机器人和电子邮件抓取工具)使用 IE 6.0 作为其用户代理。大多数 DoS 工具都包含来自最流行浏览器的真实但较旧的用户代理列表,它们在每次请求后轮换。如果您知道网站上每个浏览器不同版本的正常比例,Firefox 7.0.1 和 IE 8.0 的大量峰值应该会很明显。特别是因为 Firefox 和 Chrome 现在会自动更新,所以看到一个月前的版本是很罕见的。
DoS 工具可以请求单个页面或循环浏览页面列表,但无论哪种情况,它们通常都不会请求所有相关内容,例如样式表、javascript 和图像。它们也不会发送诸如和之类的缓存控制标头,If-Modified-Since
因为If-None-Match
这些在很大程度上违背了发出请求的目的。如果您看到很多客户端都表现出这种行为,则很可能是恶意的。(只要您的缓存控制设置正确。)
DoS 工具通常不会发送与普通 Web 浏览器相同的标头。tcpdump
在您的服务器上运行以捕获一些流量并进行分析。我在机器人程序中看到的一些差异(不一定是 DoS 工具):
- 标
Host:
头位于最后而不是最前面。普通浏览器似乎将其列在 GET 之后。 - POST 数据的 URL 编码不正确。某些实际浏览器(例如 IE6)也无法正确处理。
- 具体而独特的
Accept-*:
标题。中文和俄语引起了我的注意,但这只是轶事,而不是统计数据。 - 没有 Cookie。
某些标头显然是恶意的,例如Range:
列出数千个重叠范围的标头。
如果你有mod_forensic开启后您可能能够在攻击后分析这些标头,但是 mod_forensic 可以在您的日志中生成大量数据,这可能会导致 DoS。
至于反射 DNS 攻击,仅通过分析流量几乎不可能判断。您必须使用带外技术才能弄清楚。找出谁拥有 IP 地址,然后给他们发送电子邮件或打电话,询问他们是否确实发出了所有这些 DNS 请求。
这让我想到了找出恶意意图的带外方法。通常,DoS 攻击背后都有原因。Google 可以帮助您找到原因。搜索您的域名(但使用 删除来自该域名的结果-site:yourdomain.com
)和/或 IP 地址,并将结果限制为最新的结果。您可能会发现攻击者吹嘘要打倒您或 @anononops 的推文表明您是当前目标的证据。您还可能会找到提到您的 Slashdot 故事。无论哪种方式,搜索您的网站都可能有效。别忘了其他搜索引擎,它们都有自己的爬虫,而且由于您正在寻找最近几个小时内的结果,因此它们都不会完全覆盖。
一些 DoS 攻击是出于敲诈勒索的目的。特别是针对资金充裕的网站和特定、预定的活动,例如赌博网站。通常的做法是在超级碗或大赛开始前一两周发起一次简短的 DoS 攻击,然后威胁说,如果他们得不到报酬,他们会在关键时期再次发起此类攻击。如果您收到敲诈勒索请求,则该 DoS 攻击很可能是蓄意且恶意的。
答案4
对一个简单直接的问题进行简单直接的回答:
在路由器上设置监控以绘制每秒数据包数 (pps) 的图表。如果您无法绘制 pps 的图表,那么绘制带宽使用情况的图表。我建议使用 Cacti 之类的软件包来执行此操作,使用 Cisco 设备和本地网络接口非常简单。
一旦运行完毕,您就可以留意 pps 的峰值。
如果这是简单的 DoS 攻击,您可以通过防火墙规则轻松阻止流量来源。
如果是 DDoS,那么除非您自己拥有一些非常强大的设备,否则您将需要让您的 IP 传输提供商通过 DDoS 过滤器/保护服务传递受影响的路由。大多数传输提供商都提供此服务。