使用ntopng和NetFlow/IPFIX检测Dos攻击(下)

描述

 

 

 

夏雨

资深网络工程师

网络工程师,专攻网络通信,负责网络流量监控的产品技术服务和售后服务,经验丰富,响应迅速。

 

Ntopng在模拟中发出的警报

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

 

01

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 就会触发警报,阈值可以更改。

 

 

02

TCP SYN SCAN(SYN扫描)
 

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

 

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

 

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

 

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

 

 

03

TCP FIN SCAN(FIN扫描)

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

 

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

 

 

04

SCAN DETECTED(扫描检测)

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

 

 

05

FLOWS FLOOD 

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

 

 

06

异常分数行为

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

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

 

 

07

异常流量行为

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

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

 

 

08

超过分数阈值

每台主机都有一个非负数值,用于存储分数值。该值的计算时间间隔为 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的文件中。

 

DoS攻击

 

在上图的左半部分,可以看到攻击的开始,在右半部分,可以看到攻击的结束,每 5 秒钟就会更新一次状态,实时报告已建立的连接、打开的连接和关闭的连接。

 

DoS攻击

 

上图片是ntopng的主屏幕。

DoS攻击

 

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

 

DoS攻击DoS攻击

 

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

 

DoS攻击

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 

 

DoS攻击

 

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

 

DoS攻击

 

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


 

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


 

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


 

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

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分