freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

【虹科干货】书接上回!使用ntopng和NetFlowIPFIX检测Dos攻击(下)
2024-04-15 15:36:53

如何结合使用ntopng和NetFlow/IPFIX检测Dos攻击,在上一篇文章中,我们已经做足了铺垫,本期我将会为大家展示并分析实操步骤。话不多说,直接进入正题。

一、Ntopng在模拟中发出的警报

应根据监控需求和可用资源对 Ntopng 进行配置和优化。在本研究中,大多数警报和警告都是以默认值激活的。显然,每个警报和警告都必须根据 Ntopng 的工作环境和网络拓扑结构进行评估。 模拟过程中的 Ntopng 检测列表:

1、SYN FLOOD(SYN 泛洪攻击)

通过发送大量的SYN请求来耗尽目标系统的资源,使其无法处理正常的连接请求。在TCP协议中,当客户端尝试建立到服务器的连接时,会发送一个SYN(同步)请求,服务器在收到该请求后会回复一个SYN-ACK(同步-确认)以表示连接的建立,最后客户端发送一个ACK(确认)以确认连接的建立。在SYN泛洪攻击中,攻击者发送大量的SYN请求但不发送最后的ACK,导致服务器在等待确认的状态下消耗资源,从而耗尽系统的资源,使得合法用户无法建立连接。

简而言之,SYN 泛洪攻击就是用虚假的连接请求使服务器饱和,从而阻止服务器处理真正的连接,造成服务中断。实施这种攻击有两种技术:

  1. 使用假IP,即用不同的 IP 地址伪装自己的 IP 地址,这样服务器就会向一个假 IP 发送 SYN-ACK 回复。
  2. 客户端故意不响应服务器,保持连接开放

当发送/接收的 SYN/秒数超过阈值 > 256 SYN/秒时,NTOPNG 就会触发警报,阈值可以更改。

2、TCP SYN SCAN(SYN扫描)

SYN 扫描是一种扫描类型,包括发送 SYN 标志激活的 TCP 数据包。

如果要检查的端口是开放的,攻击者将收到一个激活 SYN 和 ACK 标志的 TCP 数据包作为回复,并通过一个激活 RST 标志的 TCP 数据包关闭连接。

如果要控制的端口已关闭,攻击者将收到一个激活 RST 标志的 TCP 数据包,从而关闭连接。 在这两种情况下,连接都不会完成,因此几乎不会出现在日志文件中。

当 SYN 发送/接收/分钟(未应答)数超过阈值 > 256 SYN/分钟时,Ntopng 会触发警报。阈值可以更改。

3、TCP FIN SCAN(FIN扫描)

FIN 扫描是一种扫描类型,包括向受害者端口发送仅激活 FIN 标志的 TCP 数据包。在 RFC793 技术规范中,如果端口是关闭的,主机接收到 FIN 标志激活的数据包后,必须回复一个 RST 标志激活的数据包;如果端口是开放的,则应忽略该数据包。这样,攻击者就能知道哪些端口是开放的。但并非所有系统都遵守这些规范,在任何情况下都会返回一个 RST 标志激活的 TCP 数据包,从而使扫描失去作用。

当发送/接收 FINs/分钟(无响应)的数量超过阈值 > 256 FINs/分钟时,Ntopng 会触发警报。阈值可以更改。

4、SCAN DETECTED(扫描检测)

当检测到扫描(主机/端口)时,如果未完成的 TCP/UDP 流量超过指定限制,Ntopng 会触发警报... > 32 流量(分钟)。阈值可以更改。

5、FLOWS FLOOD

当新的客户端/服务器/秒流量超过阈值 > 256 流量/秒(分钟)时,Ntopng 会触发警告。阈值可以更改。

6、异常分数行为

注意异常分数行为,以发现威胁或缺陷。

当界面出现意想不到的行为时,ntopng警报可能会被触发。

7、异常流量行为

意外行为检查。

警告不正常的流量行为,以发现威胁或缺陷。

当界面出现意想不到的行为时,ntopng警报可能会被触发。

8、超过分数阈值

每台主机都有一个非负数值,用于存储分数值。该值的计算时间间隔为 1 分钟。当主机的分数在一分钟内超过分数阈值 > 5000 时,ntopng警告就会激活。阈值可以更改。


补充信息:Ntopng 如何计算得分

分数是一个数字指标,如果不为零,则表示存在某种问题,分数越高,相关问题越严重。

分数主要有三个来源:

  1. 数据流得分:表示数据流的糟糕程度,例如:有多次重传的数据流得分不为零。
  2. 流量的源主机得分:与源主机相关联的数值,例如:在步骤 1 的流量中,如果只有目的地 -> 客户端的重传,则该流量的源主机得分为 0,但如果源端也有重传,则该值为正。
  3. 流量的目的主机得分:与之前相同,但针对的是流量的目的主机。由于流量可能存在多个问题,因此流量上遇到的每个问题(例如流量上检测到的 TCP 重传或过时的 TLS 版本)都会影响得分。因此,得分是在该流量上发现的单个流量/源/目的得分的总和。

二、警告:最近的活跃流

“Warning Recently live flows”消息显示,Ntopng正在观察到网络中大量活跃的数据流,因此资源利用率很高,因此对安全的担忧;因此,有必要对此进行调查。

为了应付这一警告,可能需要:

检查当前网络活动,查看流量模式是否符合预期或是否存在异常。

查找可能存在的安全威胁或异常网络行为。

三、一个攻击和检测过程示例

使用slowhttptest进行HTTP慢速攻击

HTTP慢速攻击允许单个客户端使用最小带宽使服务器资源饱和。具体做法是尽可能保持与目标服务器的连接处于开放状态,恶意客户端连接到目标服务器并向其发送部分请求,即未完成 http 头的发送;具体来说,当客户端发出 HTTP 请求时,网络服务器只能在请求头发送完成后才能关闭 TCP 连接。这种技术迫使服务器保持连接开放,从而达到服务器可用连接的最大数量,使其无法访问其他客户端的合法请求。

下面是" slowhttptest"命令的示例:

slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 3

  • -H: 启用慢速HTTP攻击中的Slow Headers攻击模式。
  • -c 2000: 模拟的客户端数量,这里设置为2000个客户端。
  • -g: 启用慢速HTTP攻击中的Slow Read攻击模式。
  • -o output: 指定输出文件的名称为output。
  • -i 10: 设置攻击间隔为10秒。
  • -r 300: 设置攻击持续时间为300秒(5分钟)。
  • -t GET: 指定HTTP请求的类型为GET。
  • -u http://10.0.20.10: 指定目标服务器的URL为http://10.0.20.10。
  • -x 24: 设置攻击时使用的线程数为24。
  • -p 3: 设置慢速攻击的延迟参数,这里设置为3秒。

解释:

通过这个命令,slowhttptest将会模拟2000个客户端对http://10.0.20.10的GET请求,其中会包含Slow Headers攻击和Slow Read攻击,并持续5分钟。攻击过程中每10秒执行一次攻击,攻击的延迟设置为3秒,使用24个线程进行攻击。最后,攻击结果会输出到名为output的文件中。

1713166356_661cd8145ee8543e88121.png!small?1713166356578

在上面第一张图片中,您可以看到攻击的开始,在第二张图片中,您可以看到攻击的结束,每 5 秒钟就会更新一次状态,实时报告已建立的连接、打开的连接和关闭的连接。

1713166365_661cd81d2f58c926f9e67.png!small?1713166367079

如上图片是ntopng的主屏幕。

1713166376_661cd82888670039558ac.png!small?1713166376332

大约 30 秒后,Ntopng 检测到一次检测到的扫描,特别是Slow Header攻击没有扫描到,但 Ntopng 报告主机 10.0.10.10 和服务器 10.0.20.10 之间发生了超过 32 个不完整的 HTTP 流。当数据流得分/源数据流/目标数据流之和大于设定值(本例中为默认值 5000)时,Ntopng 会报告警报 SCORE THRESHOLD EXCEED,即 "超过得分阈值(在上一主题中解释过)"。

1713166401_661cd8412496dbff2fe27.png!small?1713166401138

1713166385_661cd831042e45a4b130e.png!small?1713166385472

Ntopng 还会报告与 HTTP 数据流相关的警告,这种情况发生在网络中存在大量活动数据流、资源利用率高、安全隐患大的时候。显然,有必要了解流量模式是预期的还是异常的。在我们的案例中,显然存在持续的 DoS 攻击,因为有数以百计的数据流具有相同的源 IP。

1713166407_661cd84743ba1518b5171.png!small?1713166409541

F1(左) F2(右)

这两张图是 -o -g 选项创建的 HTML 输出图,从图 F1 中可以看出,在前 10 秒内建立了 750 个连接,并打开了另外 750 个连接,这反映了命令中设置的选项,即以每秒 300 个连接的速度连接 2000 个连接。然而,在达到所需的 2000 个连接之前,服务器由于响应时间超过 3 秒而不可用,选项 -p 3

F1→  slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 3

第二张图表示始终可用的服务(绿色区域),这是因为我出于测试目的将 -p(http 响应的等待时间间隔)设置为 225,在现实中,服务器响应的等待时间如此之长是不可想象的。

F2→slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 225

1713166429_661cd85d56f88b435fe37.png!small?1713166429452

时间戳显示帧与帧之间的间隔为 10 秒;该间隔与命令中的 -i 设置相对应。

1713166435_661cd863309d531237a7d.png!small?1713166435050

一个小问题是,所有 HTTP 请求都会超时关闭,这意味着连接会被服务器强制关闭。

HTTP状态代码408 "请求超时 "表示服务器因请求超时而终止连接。当服务器在允许的最长时间内没有收到客户端的完整请求时,就会返回该代码。所有请求都以这种方式结束,因此我们可以说服务器在应用层受到了 DoS 攻击。

通过观察ntopng提供的流量数据,可以发现可能的DoS攻击迹象,比如异常的流量模式、异常的连接请求等。ntopng能够提供关于网络流量的实时和历史信息,这使得管理员能够观察流量变化并可能识别出与DoS攻击相关的异常模式。

要更好地检测和应对DoS攻击,通常需要结合使用多种安全工具和技术,包括入侵检测系统(IDS)、入侵防御系统(IPS)、防火墙、负载均衡器等。这些工具可以帮助监控和过滤网络流量,并采取相应的措施来防御和减轻DoS攻击的影响。


# Wireshark # ddos攻击 # 网络安全技术 # 威胁检测
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录