这篇文章将会介绍在网络入侵检测中使用的机器学习特征,我们将会深入解析每个特征的含义和用途。
采用的数据集(dataset)
CIC-IDS-2017/2018(IDS 2017 | Datasets | Research | Canadian Institute for Cybersecurity | UNB)
CICIDS2017数据集
CICIDS2017数据集包含良性和最新的常见攻击
数据捕获期从2017年7月3日星期一开始,到2017年7月7日星期五结束,共计5天。星期一是正常日,只包括良性流量。实施的攻击包括FTP暴力破解、SSH暴力破解、DoS、Heartbleed、Web攻击、渗透、僵尸网络和DDoS攻击。它们在星期二、星期三、星期四和星期五的上午和下午被捕获。
特征解析
Flow ID: 流量ID,唯一标识一个网络会话或流量。在分析时,可以用来追踪整个会话的行为模式。
Source IP: 源IP地址,表明数据发送的起始点。这个字段对于确定流量的起源非常重要,有助于识别潜在的入侵者。
Source Port: 源端口号,与源IP一起标识了一个网络连接的发送端。端口号可以揭示使用的服务或应用程序。
Destination IP: 目的IP地址,指示数据发送的终点。结合源IP,可以分析流量的流向。
Destination Port: 目的端口号,与目的IP一起标识了网络连接的接收端。端口号同样可以反映可能的服务或应用程序。
Protocol: 协议类型,如TCP、UDP、ICMP等。协议字段对于理解流量的通信方式至关重要。
Timestamp: 时间戳,记录了数据包的发送或接收时间。时间戳可以用来分析流量的时序模式。
Flow Duration: 流量持续时间,即从第一个数据包的发送到最后一个数据包的接收之间的时间长度。长持续时间可能表明正常的通信,而异常短或异常长的持续时间可能是异常行为的迹象。
Total Fwd: 这可能是指“Total Forward”流量,记录了从源到目的方向上的总数据包数量。这个特征有助于分析流量的大小和通信的活跃程度。
Total Backward Packets:
描述:这个特征表示从目的地(服务器或响应方)发送回源地址(客户端或请求方)的数据包总数。
重要性:可以帮助识别通信模式,比如客户端-服务器交互中的请求和响应平衡。如果backward packets的数量异常高或低,可能表明异常流量或网络攻击,如DDoS攻击。
Total Length of Fwd Packets:
描述:这个特征表示所有从源地址发送到目的地址的数据包的总长度(通常以字节计)。
重要性:总长度可以反映会话的数据传输量。与单个数据包的大小结合分析,可以发现数据传输的异常模式,如过大的数据传输可能与数据泄露或文件传输攻击有关。
Total Length of Bwd Packets:
描述:类似于Total Length of Fwd Packets,但针对的是反向数据包的总长度。
重要性:这可以揭示响应方的数据传输量。如果forward和backward的数据包长度不成比例,可能表明网络流量异常。
Fwd Packet Length Max:
描述:这表示在源地址到目的地址方向上观察到的单个数据包的最大长度。
重要性:最大数据包长度可能指示某些类型的攻击,如缓冲区溢出攻击,或者可能仅仅是网络通信中的正常峰值。
Fwd Packet Length Min:
描述:这表示在源地址到目的地址方向上观察到的单个数据包的最小长度。
重要性:数据包的最小长度可以帮助识别小数据包洪水攻击,这是一种DoS攻击,攻击者发送大量小数据包以淹没网络。
Fwd Packet Length Mean (Fwd PLN Mean):
描述:这表示从源到目的地方向上所有数据包长度的平均值。
重要性:平均数据包长度可以反映正常通信的一般模式。如果平均值突然增加或减少,可能表明存在非典型的通信模式或潜在的攻击。
Fwd Packet Length Std (Fwd PLN Std):
描述:这表示从源到目的地方向上数据包长度的标准差,是衡量数据包长度变化程度的一个统计量。
重要性:一个高的标准差意味着数据包大小有较大的变化,这可能是正常行为,也可能是攻击的迹象,如拒绝服务攻击(DoS)。
Bwd Packet Length Max (Bwd PLN Max):
描述:这表示从目的地返回源方向上观察到的单个数据包的最大长度。
重要性:最大数据包长度的异常峰值可能指示某些攻击类型,如缓冲区溢出攻击,或者可能表明网络中的某些配置问题。
Bwd Packet Length Min (Bwd PLN Min):
描述:这表示从目的地返回源方向上观察到的单个数据包的最小长度。
重要性:如果数据包长度的最小值异常地小,可能表明存在小数据包洪水攻击,这类攻击通过发送大量小数据包来耗尽网络资源。
Bwd Packet Length Mean (Bwd PLN Mean):
描述:这表示从目的地返回源方向上所有数据包长度的平均值。
重要性:平均值提供了反向流量的一般视图。如果反向流量的平均数据包长度与预期的响应模式不符,可能表明存在问题。
Bwd Packet Length Std (Bwd PLN Std):
描述:这是从目的地返回源方向上数据包长度的标准差。
重要性:标准差衡量数据包长度的变异性。高变异性可能表明存在不寻常的流量模式,这可能是由于正常的网络抖动或潜在的攻击行为。
Flow Bytes/s (Flow Bytes per Second):
描述:这是在流的整个持续时间内,平均每秒钟传输的字节数。
重要性:这个特征可以反映流量的强度。异常高的值可能表明数据泄露、大文件传输或洪水攻击。
Flow Packets/s (Flow Packets per Second):
描述:这是在流的整个持续时间内,平均每秒钟传输的数据包数。
重要性:类似于Flow Bytes/s,但关注的是数据包的数量而不是大小。高数据包率可能表明高交互性的应用或攻击如DDoS。
Flow IAT Mean (Flow Inter-Arrival Time Mean):
描述:这是数据包到达时间间隔的平均值。
重要性:平均到达时间间隔可以揭示流量的周期性模式。一个突然的下降可能表明流量压力增大,可能是攻击的迹象。
Flow IAT Std (Flow Inter-Arrival Time Std):
描述:这是数据包到达时间间隔的标准差。
重要性:衡量数据包到达时间间隔的变异性。高度的不一致性可能表明网络条件的变化或非典型的流量模式。
Flow IAT Max (Flow Inter-Arrival Time Max):
描述:这是数据包到达时间间隔的最大值。
重要性:最长的到达时间间隔可能表明流量中的暂停或空闲期,这在某些应用协议中是正常的,但在其他情况下可能是异常的。
Flow IAT Min (Flow Inter-Arrival Time Min):
描述:这是数据包到达时间间隔的最小值。
重要性:最小的到达时间间隔可能表明流量高峰或紧密的数据包传输,这在某些类型的攻击如洪水攻击中是常见的。
Fwd IAT Total:
描述:这是所有前向数据包到达时间间隔的总和。
重要性:反映了整个会话中数据包发送的总空闲时间。异常高的值可能表明通信的不连贯性或潜在的通信问题。
Fwd IAT Mean (Fwd IAT Mean):
描述:这是前向数据包到达时间间隔的平均值。
重要性:提供了数据包发送频率的一般概念。与正常通信模式的偏差可能表明网络攻击或非典型的流量模式。
Fwd IAT Std (Fwd IAT Std):
描述:这是前向数据包到达时间间隔的标准差。
重要性:衡量数据包到达时间间隔的变异性。高标准差可能表明流量的不均匀性,这可能是由于网络条件的变化或攻击行为。
Fwd IAT Max (Fwd IAT Max):
描述:这是前向数据包到达时间间隔的最大值。
重要性:表示在会话中观察到的最长空闲时间。如果这个值异常地高,可能表明故意的通信延迟或网络拥塞。
Fwd IAT Min (Fwd IAT Min):
描述:这是前向数据包到达时间间隔的最小值。
重要性:表示会话中最短的空闲时间。如果这个值异常地低,可能表明高频率的数据传输,这在洪水攻击中是常见的。
Bwd IAT Total:
描述:这是所有后向数据包到达时间间隔的总和。
重要性:与Fwd IAT Total相似,但用于分析响应方的通信模式。异常值可能表明服务器响应延迟或网络问题。
Bwd IAT Mean (Bwd IAT Mean):
描述:这是后向数据包到达时间间隔的平均值。
重要性:提供了目的地响应频率的一般概念。如果与预期的服务器响应模式不符,可能表明服务过载或攻击。
Bwd IAT Std (Bwd IAT Std):
描述:这是后向数据包到达时间间隔的标准差。
重要性:衡量响应方数据包到达时间间隔的变异性。高标准差可能表明服务器响应时间的不均匀性,这可能是由于服务器负载的变化或网络攻击。
Bwd IAT Max:向后方向的最大时间间隔。这表示在接收方(Bwd)和发送方(IAT)之间的时间间隔。
Bwd IAT Min:向后方向的最小时间间隔。这表示在接收方(Bwd)和发送方(IAT)之间的时间间隔。
Fwd PSH Flags:向前方向的压力(push)标志。此标志表示数据包是否应该被立即发送,而不是等待缓冲区填满。
Bwd PSH Flags:向后方向的压力(push)标志。此标志表示数据包是否应该被立即发送,而不是等待缓冲区填满。
Fwd URG Flags:向前方向的紧急(urgent)标志。此标志表示数据包中的数据是否为紧急数据,需要尽快处理。
Bwd URG Flags:向后方向的紧急(urgent)标志。此标志表示数据包中的数据是否为紧急数据,需要尽快处理。
Fwd Header Length:向前方向的数据包头长度。此特征表示向前方向的数据包头的大小。
Bwd Header Length:向后方向的数据包头长度。此特征表示向后方向的数据包头的大小。
Fwd Packets/s:向前方向的包每秒数。此特征表示每秒向前方向发送的包的数量。
Bwd Packets/s:向后方向的包每秒数。此特征表示每秒向后方向发送的包的数量。
Min Packet Length:最小数据包长度。此特征表示数据集中数据包的最小长度。
Max Packet Length:最大数据包长度。此特征表示数据集中数据包的最大长度。
Packet Length Mean:数据包长度平均值。此特征表示数据集中所有数据包长度的平均值。
Packet Length Std:数据包长度标准差。此特征表示数据集中数据包长度分布的标准差。
Packet Length Variance:数据包长度方差。此特征表示数据集中数据包长度分布的方差。
FIN Flag Count:FIN标志计数。此标志表示连接是否应该被终止。
SYN Flag Count:SYN标志计数。此标志表示连接是否应该被建立。
RST Flag Count:RST标志计数。此标志表示连接是否应该被重置。
PSH Flag Count:压力(push)标志计数。此标志表示数据包是否应该被立即发送,而不是等待缓冲区填满。
ACK Flag Count:ACK标志计数。此标志表示接收方是否已收到所有数据包。
URG Flag Count:紧急(urgent)标志计数。此标志表示数据包中的数据是否为紧急数据,需要尽快处理。
CWE Flag Count:Congestion Window Exceeded标志计数。此标志表示发送方的拥塞窗口是否已超过。
ECE Flag Count:ECN-Echo标志计数。此标志表示接收方是否已收到ECN(拥塞通知)标志。
Down/Up Ratio:下行/上行比率。此特征表示下行流量与上行流量的比率。
Average Packet Size:平均数据包大小。此特征表示数据集中所有数据包的平均大小。
Avg Fwd Segment Size:向前方向的数据包段平均大小。此特征表示向前方向的数据包段大小的平均值。
Avg Bwd Segment Size:向后方向的数据包段平均大小。此特征表示向后方向的数据包段大小的平均值。
Fwd Header Length:向前方向的数据包头长度。此特征表示向前方向的数据包头的大小。
Fwd Avg Bytes/Bulk:向前方向的平均字节/块。此特征表示向前方向的平均字节数/块。
Fwd Avg Packets/Bulk:向前方向的平均数据包/块。此特征表示向前方向的平均数据包数/块。
Fwd Avg Bulk Rate:向前方向的平均块速率。此特征表示向前方向的平均块速率。
Bwd Avg Bytes/Bulk:向后方向的平均字节/块。此特征表示向后方向的平均字节数/块。
Bwd Avg Packets/Bulk:向后方向的平均数据包/块。此特征表示向后方向的平均数据包数/块。
Bwd Avg Bulk Rate:向后方向的平均块速率。此特征表示向后方向的平均块速率。
Subflow Fwd Packets:子流向前方发送的数据包数。此特征表示子流向前方发送的数据包数。
Subflow Fwd Bytes:子流向前方发送的字节数。此特征表示子流向前方发送的字节数。
Subflow Bwd Packets:子流向后方发送的数据包数。此特征表示子流向后方发送的数据包数。
Subflow Bwd Bytes:子流向后方发送的字节数。此特征表示子流向后方发送的字节数。
Init_Win_bytes_forward:初始窗口字节数向前方。此特征表示初始窗口字节数向前方。
Init_Win_bytes_backward:初始窗口字节数向后方。此特征表示初始窗口字节数向后方。
act_data_pkt_fwd:向前方向的活动数据包数。此特征表示向前方向的活动数据包数。
min_seg_size_forward:向前方向的最小段大小。此特征表示向前方向的数据包段的最小大小。
Active Mean:活动平均值。此特征表示活动数据的平均值。
Active Std:活动标准差。此特征表示活动数据的标准差。
Active Max:活动最大值。此特征表示活动数据的最大值。
Active Min:活动最小值。此特征表示活动数据的最小值。
Idle Mean:空闲平均值。此特征表示空闲数据的平均值。
Idle Std:空闲标准差。此特征表示空闲数据的标准差。
Idle Max:空闲最大值。此特征表示空闲数据的最大值。
Idle Min:空闲最小值。此特征表示空闲数据的最小值。
Label:标签。此特征表示数据集的标签或类别。
External IP:外部IP地址。此特征表示与数据集相关的外部IP地址。