为了和大家探讨网络安全领域中的关键问题,我将分两期来展示如何使用ntopng和NetFlow/IPFIX检测Dos攻击。在本篇中,我先简单介绍网络安全面临的挑战、为何网络流量分析在应对网络安全挑战中起重要作用,此外,我会介绍在此次检测中使用到的工具软件。
一、网络安全挑战
近年来,由于网络攻击和在线安全威胁的增加令人担忧,造成这种增长的原因包括以下几个方面:
- 对技术的依赖性越来越强: 随着我们对各种设备的依赖性增加,与互联网的连接也日益紧密,这为攻击者提供了更多的机会。网络中的每个连接点都可能成为攻击的目标,因此对网络流量进行持续的监控变得至关重要。
- 攻击的复杂化: 网络攻击变得越来越复杂。网络犯罪分子不断开发先进技术,如更具说服力的社会工程学攻击、更先进的恶意软件以及能够绕过安全防御的针对性攻击。这些攻击形式的演变使得传统的安全措施往往难以应对。
- 动机多样: 网络攻击者的动机多种多样,包括窃取个人、财务或企业数据、工业间谍活动、勒索软件、破坏活动等。这种多样性使得攻击更加广泛,也更加难以防范。
- 物联网 (IoT) 的发展: 物联网的发展引入了大量的网络连接设备,而这些设备往往缺乏足够的安全标准。这些设备不仅可能成为攻击的目标,还可以作为攻击者实施更广泛攻击的接入点。
- 威胁全球化: 互联网的普及使得威胁变得全球化,攻击者可以从世界任何地方采取行动。这种全球化的威胁加大了网络安全的挑战,需要全球范围内的合作和协调来应对。
- 缺乏意识和培训: 缺乏网络安全意识和培训是一个关键因素。许多用户缺乏对网络安全的基本理解,容易成为网络钓鱼攻击的受害者,或者忽视安全最佳实践,使攻击者更容易侵入系统。
- 与加密有关的问题: 加密是网络安全的重要工具,但攻击者也可以利用它来隐藏自己的活动。端到端加密会使当局难以监控和防止非法在线活动,这使得追踪和阻止网络威胁变得更加困难。因此,解决加密技术与安全之间的平衡成为一项重要挑战。
二、网络流量分析的作用
网络实现了快速可靠的数据传输,促进了通信发展,并支持从交换个人信息到执行复杂业务流程的广泛应用。然而,这种互联性也使网络更易受到网络攻击,如何应对此类威胁?方法如下:
- 流量实时监控和回溯分析:网络流量代表设备和服务器之间的数据流,网络流量分析可以实时监控网络中的数据流量和通信模式。通过持续监测网络流量,可以及时发现异常行为和潜在的安全威胁,从而采取及时的防御措施。
- 异常检测:通过分析网络流量,可以识别可疑活动,如未经授权的访问尝试、如大量的数据包丢失、不寻常的通信模式、异常的数据传输、恶意软件或异常行为。异常流量可能是正在进行的攻击或试图破坏安全的迹象。 分布式拒绝服务(DoS/DDoS)攻击可通过监控试图压垮目标系统的异常流量峰值来检测。
- 威胁识别: 网络流量分析可以帮助识别各种类型的网络安全威胁,包括恶意软件传播、网络入侵、数据泄露等。通过分析网络流量中的特征和模式,可以识别出潜在的攻击行为,并采取相应的应对措施。
- 安全事件响应:了解网络流量对于快速事件响应至关重要。及早识别攻击可隔离威胁、减轻损害并恢复安全。网络流量信息可用于追踪攻击来源、识别被利用的漏洞并制定适当的应对措施。
- 安全策略改进: 通过对网络流量的长期分析,可以识别出网络安全策略的漏洞和不足之处。这有助于安全团队改进现有的安全措施和策略,加强网络的防御能力,提高网络安全水平。
- 保护敏感数据:网络流量可能包含敏感信息,仔细监控这些流量有助于识别和保护敏感数据,防止数据丢失、被盗或未经授权的访问。
总之,网络流量是了解、检测和应对网络攻击的宝贵信息来源。对网络流量的准确分析可帮助企业加强安全,有效应对新出现的威胁。
三、DOS 攻击
DOS(denial of service,拒绝服务)攻击是一种计算机攻击,其目的是通过各种手段使合法用户无法正常使用资源或严重降低服务速度。这种攻击的实施通常是通过限制或拒绝合法客户端的访问,从而耗尽系统(服务器)的资源,如网络带宽、CPU 处理能力或系统内存。
DoS 攻击可由单个主机实施,并且有可能被追踪到攻击源。其运行模式主要包括以下几种:
- 流量泛洪: DoS 攻击通常会导致目标系统遭受大量的网络流量。例如,SYN 泛洪攻击的目的是通过向目标系统发送大量的SYN请求(TCP连接的三方握手的第一步),从而使系统超载,因为它不断等待着从未到达的回复。
- 耗尽资源攻击: DoS 攻击可能旨在耗尽系统的资源,包括内存或 CPU。攻击者通过向系统发送大量的请求或占用大量的系统资源,以使系统无法正常工作。
- 协议攻击: 有些 DoS 攻击会利用通信协议中的特定漏洞。例如,ICMP 泛洪攻击利用 ICMP 数据包淹没目标系统,从而消耗带宽并使系统不可用。
- 低速DoS攻击: 有些 DoS 攻击并不完全中断服务,而是试图使服务严重减速,从而使合法用户无法正常访问服务。这种方式下,攻击者可能会利用系统的弱点或缺陷来减慢其响应速度,导致服务的延迟或不稳定性。
四、DDoS攻击
DDoS(Distributed Denial of Service,分布式拒绝服务)是一种 DoS 攻击的变体,涉及分布在不同地理位置的多个设备,以增强攻击的威力。这些被攻击的系统通常是 BotNet(僵尸网络) 的一部分,即一组受恶意软件感染的机器,它们会响应攻击者的命令,但也可以自主行动。其目的与 DoS 攻击相同,即通过限制或拒绝合法客户端的访问,耗尽系统(服务器)的资源,如网络带宽、CPU 处理能力或系统内存。
为了防止 DoS/DDoS 攻击,企业通常会采取一些安全措施,如防火墙、入侵检测和防御系统(IDS 入侵检测系统/IPS 入侵防御系统)。
在我的模拟中,我将使用 Ntopng,这是一个网络分析和监控应用程序,能够实时分析从思科路由器传入的 NetFlow 流量,也可以离线分析。
五、Netflow
NetFlow 是思科开发的一种用于收集、监控和分析网络流量的协议。Netflow 用于获取网络活动的详细信息,以进行性能优化、安全、带宽使用、流量和异常行为检测。
Netflow 可以发送大量信息,以下是主要信息:
图1 Netflow字段格式
数据通过数据报(UDP)从路由器或其他网络设备发送到收集器。
NetFlow 对带宽和网络开销的影响非常小,因此非常高效。以下是 NetFlow 的一些特性:
- 聚合数据表示:NetFlow 为通过网络的每个数据包发送部分信息,因此轻便高效。它以 "流 "的形式发送汇总信息。每个流由具有共同特征(如协议、IP 地址和源/目的端口)的数据包序列表示。
- 取样:取样只允许收集部分数据包,从而进一步减少了开销,同时仍保留了具有代表性的流量样本。
- 协议效率:NetFlow 的设计轻便高效。数据包头的结构设计可将开销降至最低,数据以紧凑的方式传输,从而提高通信效率。
这些功能可以监控和分析大量数据,而不会使系统资源超负荷,因此非常实用。
六、使用的基础设施和软件
为了实现虚拟网络,我们使用了 GNS3 软件。
GNS3 是一款开源软件,可真实模拟复杂网络,无需专用网络硬件。它有一个图形界面,可在多个操作系统上运行:
- Dynamips,一种可模拟思科 IOS 操作系统的软件
- VirtualBox 是运行虚拟机的免费开放源码软件(见下文 GNS3 - VirtualBox 集成允许虚拟机连接并放置在由思科虚拟网络设备(路由器和交换机)组成的网络中。)
图2 GNS3 - VirtualBox 集成
网络内有:
- 一个客户端网络(10.0.10.0/24),其中有一个装有 Kali Linux 操作系统的客户端,这是一个以内置多种渗透测试工具而闻名的 Unix 发行版。
- 服务器网络(10.0.20.0/24),其中有一台可提供网络服务的服务器,这就是目标服务器,为简化场景,该网络没有防火墙保护。
- NetFlow 服务器网络(10.0.30.0/24),我们的 NetFlow 服务器就在其中,它负责接收和收集思科路由器发送的 NetFlow 数据。
- 在这里,我们连接了一个 Ntopng 服务器 (https://www.Ntopng.org/),它可以 "读取 "并处理 Cisco 路由器发送的 NetFlow 数据。
- GNS3 软件使用的 NAT 网络(192.168.56.0/24),通过 "云 NAT "设备执行输出和互联网导航。
- 在上述不同子网之间路由的 Cisco 路由器,对流量进行采样并将其详细信息发送到 NetFlow 服务器。
图3 网络拓扑图
七、Ntopng
为了处理 NetFlow 数据,我们决定使用 Ntopng 软件。 Ntopng 是一款高效网络流量监控应用程序,旨在提供有关网络活动的详细信息。它的主要功能是实时流量分析,使网络管理员能够深入了解网络活动、性能和可能存在的安全问题。
Ntopng 可以通过以下两种主要方式读取 NetFlow 数据:
1.NetFlow 收集器(NetFlow 收集器模式):
在此模式下,Ntopng 充当 NetFlow 收集器。它接收并分析由路由器和交换机等网络设备发送的 NetFlows,这些设备会生成此类数据。这些 NetFlows 包含网络流量信息,如源和目标 IP 地址、端口、协议、连接持续时间和传输数据量。Ntopng 会处理这些 NetFlows,生成详细的网络流量报告。
这就是我们的基础设施所使用的模式。
2.NetFlow 探测(NetFlow 探测模式):
在这种模式下,Ntopng 充当 NetFlow 探测器。它可以向要监控的网络设备发送 NetFlow 数据包,并分析其响应以获取流量信息。当网络设备不支持 NetFlow 本机生成,但仍允许流量监控时,这种方法尤其有用。
这两种模式都允许 Ntopng 提供有关网络流量的详细信息,识别模式和异常情况,并促进网络资源的有效管理。在 NetFlow 收集模式和 NetFlow 探测模式之间做出选择,取决于网络环境的具体要求以及相关网络设备中 NetFlow 功能的可用性。
在实施过程中,我们在 Ubuntu Linux 20.04lts 服务器上安装了 Ntopng 软件。
通过该许可证,我们可以不受限制地管理 NetFlow 流量的数量,并利用一些附加功能,如警报管理。
八、VirtualBox
Oracle VM VirtualBox 是一款免费开源软件,用于运行 x86 和 64 位架构的虚拟机(根据 GNU 通用公共许可证条款发布的精简版),支持将 Windows、GNU/Linux 和 macOS 作为主机操作系统,并能够将 Windows、GNU/Linux、OS/2 Warp、BSD(如 OpenBSD、FreeBSD)以及 Solaris 和 OpenSolaris 作为客户操作系统。
在我们的基础架构中,我们在 Windows 主机上安装了 Virtualbox,并安装了以下虚拟机:
- Kali Linux 虚拟机,如上所述,在客户端网络中模拟恶意和/或受感染的客户端
- 安装了 Ntopng 和 Nprobe 软件的 Ubuntu 虚拟机,用于接收和管理 NetFlow 流量
- Ubuntu 服务器虚拟机,扮演目标/靶标角色
网络地址