freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

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

如何结合使用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攻击 # 网络安全技术 # 威胁检测
本文为 艾体宝IT 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
艾体宝IT LV.8
网络流量监控,网络可视化,网络仿真及性能测试,终端安全,物联网固件安全分析等
  • 139 文章数
  • 7 关注者
艾体宝干货丨OT网络流量分析的突破口:IOTA助力安全与效率双提升
2025-04-03
艾体宝干货丨深度防御策略:构建USB安全防线的五大核心层次
2025-02-10
艾体宝干货丨保护 Windows 服务器安全的 10 个最佳实践
2025-01-20
文章目录