TryHackMe-SOC-Section7:网络安全监控(2)

admin 2026-01-09 03:18:18 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍网络安全监控中的IDS及Snort工具使用。对比了IDS与防火墙区别,讲解HIDS与NIDS分类及特征与异常检测模式。重点阐述Snort的三种运行模式:嗅探、数据包记录和NIDS/IPS模式。详细讲解Snort规则编写语法,包括规则头部动作、协议、IP端口设置及SID、内容匹配等选项,并提供配置管理与PCAP流量分析的实际操作指南。 综合评分: 88 文章分类: 网络安全,安全运营,安全工具,安全建设


入侵检测系统(IDS)

IDS是一种被动监控解决方案,用于检测潜在的恶意活动/模式、异常事件和策略违规行为。它会针对每个可疑事件生成警报。

IDS系统主要分为两大类:

  • 网络入侵检测系统(NIDS):NIDS监控来自网络各个区域的流量。其目的是调查整个子网上的流量。如果识别出特征码, 则会生成警报。
  • 基于主机的入侵检测系统(HIDS):HIDS监控来自单个终端设备的流量。 其目的是调查该设备上的流量。如果识别出特征码,则会生成警报。
入侵防御系统(IPS)

入侵防御系统 (IPS)是一种主动防护解决方案,用于预防潜在的恶意活动/模式、异常事件和策略违规。它负责在检测到可疑事件后立即阻止/预防/终止这些事件。

 入侵防御系统主要有四种类型;

  • 网络入侵防御系统(NIPS):NIPS监控来自网络各个区域的流量。其目的是保护整个子网上的流量。如果检测到可疑特征, 则会终止连接。
  • 基于行为的入侵防御系统(网络行为分析 – NBA):基于行为的系统监控来自网络各个区域的流量。其目标是保护整个子网的流量。如果检测到异常情况,则会终止连接。

网络行为分析系统 (NBA) 的工作原理与网络入侵防御系统 (NIPS) 类似。NIPS与基于行为的系统之间的区别在于,基于行为的系统需要一个训练期(也称为“基线化”)来学习正常流量并区分恶意流量和威胁。这种模型能够更有效地应对新的和未知的威胁。

该系统经过训练,能够识别“正常”状态,从而检测出“异常”状态。训练阶段至关重要,可以避免误报。如果在训练期间发生安全漏洞,后果将不堪设想。另一个关键点是确保系统经过充分训练,能够识别良性活动。

  • 无线入侵防御系统(WIPS):WIPS监控无线网络的流量。其目的是保护无线流量并阻止可能发起的攻击。如果检测到可疑特征码, 则会终止连接。
  • 基于主机的入侵防御系统(HIPS):HIPS主动保护来自单个终端设备的流量。其目的是调查特定设备上的流量。如果识别出特征码,则终止连接。

HIPS的工作机制与HIDS类似。区别在于,HIDS会针对威胁发出警报,而HIPS 则通过终止连接来阻止威胁。

检测/预防技术

IDS和IPS解决方案中使用的主要检测和预防技术有三种;

| 技术 | 方法 | | — | — | | 基于签名的 | 这项技术依赖于识别已知恶意行为特定模式的规则。该模型有助于检测已知威胁。 | | 基于行为的 | 这项技术通过特征码识别具有新模式的新威胁。该模型将已知/正常行为与未知/异常行为进行比较,从而帮助检测先前未知或全新的威胁。 | | 基于政策的 | 该技术将检测到的活动与系统配置和安全策略进行比较。该模型有助于检测策略违规行为。 |

概括

让我们简要总结一下IDS和IPS的总体功能。

  • IDS可以识别威胁,但需要用户协助才能阻止威胁。
  • IPS可以在检测到威胁时,以较少的用户协助识别和阻止威胁。
Snort

现在我们来聊聊Snort。以下是Snort的官方介绍剩余部分;

Snort也可以部署在网络中来拦截这些数据包。Snort 主要有三个用途:作为类似 tcpdump 的数据包嗅探器、作为数据包记录器(可用于网络流量调试)或作为功能齐全的网络入侵防御系统。Snort 可供个人和企业用户下载和配置。

SNORT 是一个开源的、基于规则的网络入侵检测和防御系统 ( NIDS / NIPS )。它由 Martin Roesch、开源贡献者和 Cisco Talos 团队开发并维护至今。

Snort 的功能

Snort 具备以下功能:

  • 实时交通分析
  • 攻击和探测检测
  • 数据包日志
  • 方案分析
  • 实时警报
  • 模块和插件
  • 预处理器
  • 跨平台支持!(Linux 和 Windows)

Snort模式

Snort 有以下三种主要使用模式:

  • 嗅探模式:在控制台应用程序中读取并提示 IP 数据包。
  • 数据包记录器模式:记录所有访问网络的 IP 数据包(入站和出站)。
  • NIDS(网络入侵检测系统)和NIPS(网络入侵防御系统)模式:根据用户定义的规则记录/丢弃被认为是恶意的数据包。

请回答以下问题。

哪种类型的入侵检测系统 (IDS) 或入侵防御系统 (IPS) 可以帮助您阻止本地计算机上的威胁?

HIPS

哪种类型的入侵检测系统 (IDS) 或入侵防御系统 (IPS) 可以帮助您检测本地网络中的威胁?

NIDS

哪种类型的入侵检测系统 (IDS) 或入侵防御系统 (IPS) 可以帮助您检测本地计算机上的威胁?

HIDS

哪种类型的入侵检测系统 (IDS) 或入侵防御系统 (IPS) 可以帮助您阻止本地网络上的威胁?

NIPS

上述哪种解决方案的工作原理是检测网络中的异常情况?

NBA

根据官方对该Snort的描述,它属于哪种类型的Snort?

full-blown

NBA训练期也称为……

baselining

与 Snort 的初次互动

首先,我们来验证 Snort 是否已安装。以下命令将显示实例版本。

版本检查

user@ubuntu$snort -V

&nbsp; &nbsp;,,_ &nbsp; &nbsp; -*> Snort! <*-
&nbsp; o" &nbsp;)~ &nbsp; Version 2.9.7.0 GRE (Build XXXXXX)
&nbsp; &nbsp;'''' &nbsp; &nbsp;By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Copyright (C) 1998-2013 Sourcefire, Inc., et al.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using libpcap version 1.9.1 (with TPACKET_V3)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using PCRE version: 8.39 2016-06-14
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using ZLIB version: 1.2.11

在开始实际操作之前,我们应该确保配置文件有效。 这里,“-T”用于测试配置,“-c”指定配置文件 (snort.conf)。请注意,也可以通过 “-c” 指定其他配置文件 。

配置检查

user@ubuntu$sudo snort -c /etc/snort/snort.conf -T

&nbsp; &nbsp; &nbsp; &nbsp; --== Initializing Snort ==--
Initializing Output Plugins!
Initializing Preprocessors!
Initializing Plug-ins!
... [Output truncated]
&nbsp; &nbsp; &nbsp; &nbsp; --== Initialization Complete ==--
&nbsp; &nbsp;,,_ &nbsp; &nbsp; -*> Snort! <*-
&nbsp; o" &nbsp;)~ &nbsp; Version 2.9.7.0 GRE (Build XXXX)
&nbsp; &nbsp;'''' &nbsp; &nbsp;By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Copyright (C) 1998-2013 Sourcefire, Inc., et al.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using libpcap version 1.9.1 (with TPACKET_V3)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using PCRE version: 8.39 2016-06-14
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Using ZLIB version: 1.2.11

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Rules Engine: SF_SNORT_DETECTION_ENGINE &nbsp;Version 2.4
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_GTP &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_SIP &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_SSH &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_SMTP &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_POP &nbsp;Version 1.0
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_DCERPC2 &nbsp;Version 1.0
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_IMAP &nbsp;Version 1.0
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_DNP3 &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_SSLPP &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_MODBUS &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_SDF &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_REPUTATION &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_DNS &nbsp;Version 1.1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Preprocessor Object: SF_FTPTELNET &nbsp;Version 1.2
... [Output truncated]
Snort successfully validated the configuration!
Snort exiting

使用配置文件后,Snort 的功能将大大增强!配置文件是 Snort 的一体化管理文件,其中包含规则、插件、检测机制、默认操作和输出设置等信息。虽然可以针对不同的用途和场景创建多个配置文件,但在运行时只能使用其中一个。

请注意,Snort 启动时会自动显示默认横幅和初始设置信息。您可以使用“ -q”  参数阻止此行为。

| 范围 | 描述 | | — | — | | -V / –version | 此参数提供有关您的实例版本的信息。 | | -c | 识别配置文件 | | -T | Snort 的自检参数允许您使用此参数测试您的设置。 | | – q | 静默模式会阻止 Snort 显示默认横幅和有关您设置的初始信息。 |

这很简单,让我们继续下一个任务,继续探索 Snort 的各种模式。


运行 Snort 实例并检查构建版本号。 snort -V

149

使用“/etc/snort/snort.conf”文件测试当前实例,并检查当前版本加载了多少条规则。 snort -T -c /etc/snort/snort.conf

4151

使用“/etc/snort/snortv2.conf”文件测试当前实例,并检查当前版本加载了多少条规则。 snort -T -c /etc/snort/snortv2.conf

1

操作模式 1:嗅探模式

执行:snort -c local.rules -A full -l . -r task9.pcap 完事后他会保存一个snort.log.xxx文件的 使用snort -dvr snort.log.xxx 打开即可看到下面数据

TIMESTAMP REQUEST

清除之前的告警文件并注释掉旧规则。创建一条规则来过滤带有Syn标志的数据包,并针对给定的 pcap 文件运行该规则。检测到的数据包数量是多少? 规则:alert tcp any any <> any any (MSG:"SYN alert"; FLAGS:S; SID:10002; REV:1) 执行:snort -c local.rules -A full -l . -r task9.pcap 完事后他会保存一个snort.log.xxx文件的 使用snort -dvr snort.log.xxx 打开即可看到下面数据

1

清除之前的告警文件并注释掉旧规则。编写一条规则来过滤带有Push-Ack标志的数据包,并将其应用于给定的 pcap 文件。检测到的数据包数量是多少?

# 删掉这些产生的日志文件先
sudorm-rf snort.log.*

把规则写进local.rules,规则如下: 规则:alert tcp any any <> any any (MSG:"SYN PUSH ACK alert"; FLAGS:P,A; SID:10003; REV:1) 执行:snort -c local.rules -A full -l . -r task9.pcap 回车snort查看后就能看到多少个包了

216

清除之前的告警文件并注释掉旧规则。创建一条规则来过滤源 IP 和目标 IP 相同的UDP数据包,并将其应用于给定的 pcap 文件。有多少个数据包的源地址和目标地址相同? 做之前记得删除那个snort.log.xxx,你不想删除也可以,记得找时间戳作为文件后缀最大的那个才是最新的 规则:alert udp any any <> any any (MSG:"sampeip alert"; SAMPEIP; SID:10004; REV:1) 执行:snort -c local.rules -A full -l . -r task9.pcap 同理执行后使用snort查看这个log

7

案例示例——一位分析师成功修改了一条现有规则。实施后,分析师必须更改规则中的哪个选项?

# 版本
rev

Snort2 操作逻辑:要点回顾

要点回顾 鼻喷剂的主要成分

  • 数据包解码器 – Snort 的数据包收集器组件。它收集并准备数据包以进行预处理。
  • 预处理器 – 用于整理和修改检测引擎数据包的组件。
  • 检测引擎 – 主要组件,它通过应用规则来处理、剖析和分析数据包。
  • 日志记录和告警 – 日志和告警生成组件。
  • 输出和插件 – 此组件支持输出集成模块(例如,向 syslog/mysql 发送警报)和其他插件(规则管理检测插件)。
Snort规则

Snort 共有三种规则类型,具体说明如下:

  • 社区规则 – 根据 GPLv2 协议发布的免费规则集。公开访问,无需注册。
  • 注册规则 – 免费规则集(需要注册)。此规则集包含订阅者规则,延迟 30 天生效。
  • 订阅用户规则(付费) – 付费规则集(需要订阅)。此规则集为主规则集,每周更新两次(周二和周四)。

下载并阅读更多规则:https://www.snort.org/downloads

注意:安装 Snort2 后,它会自动创建所需的目录和文件。但是,如果您想使用社区版或付费版规则,则需要在 Snort.conf 文件中分别指定每条规则。

由于 Snort 的配置文件篇幅很长,而且包含所有功能,因此对于一些用户来说,在不造成配置错误的情况下对其进行编辑会比较麻烦。正因如此,Snort 提供了多个规则更新模块和集成工具。总而言之,切勿直接替换已配置的 Snort 配置文件;而应手动编辑配置文件,或使用其他工具和模块更新规则,以避免出现故障、崩溃或功能缺失等问题。

  • snort.conf:主配置文件。
  • local.rules:用户生成的规则文件。 让我们先来概览一下主配置文件(snort.conf)。 sudo gedit /etc/snort/snort.conf。

导航至“步骤 1:设置网络变量”部分。 本节管理检测范围和规则路径。

| 标签名称 | 信息 | 例子 | | — | — | — | | 家庭网络 | 这就是我们正在保护的地方。 | ‘any’ 或 ‘192.168.1.1/24’ | | 外部网络 | 此字段表示外部网络,因此我们需要将其设置为“any”或“!$HOME_NET”。 | ‘any’ 或 ‘!$HOME_NET’ | | 规则路径 | 硬编码规则路径。 | /etc/snort/rules | | SO_RULE_PATH | 这些规则与注册用户规则和订阅用户规则一起提供。 | $RULE_PATH/so_rules | | PREPROC_RULE_PATH | 这些规则与注册用户规则和订阅用户规则一起提供。 | $RULE_PATH/plugin_rules |

导航至“步骤 2:配置解码器”部分。 在本节中,您可以管理Snort 的IPS模式。单节点安装的IPS模型与“afpacket”模式配合使用效果最佳。您可以启用此模式并在IPS 模式下运行 Snort 。

| 标签名称 | 信息 | 例子 | | — | — | — | | #配置数据采集 | IPS模式选择。 | afpacket | | #配置 daq_mode | 激活内联模式 | inline | | #配置日志目录 | 默认日志路径是硬编码的。 | /var/logs/snort |

数据采集模块 (DAQ) 是专门用于数据包 I/O 的库,可提供灵活的数据包处理方式。可以根据不同的用途选择DAQ类型和模式。

Snort 中有六个数据采集模块:

  • PCAP:默认模式,也称为嗅探器模式。
  • Afpacket:内联模式,也称为IPS模式。
  • Ipq:在Linux上使用 Netfilter 实现的内联模式。它取代了 snort_inline 补丁。
  • Nfq: Linux上的内联模式。
  • Ipfw:在 OpenBSD 和 FreeBSD 上使用重定向套接字,配合 pf 和 ipfw 防火墙进行内联。
  • 转储:测试内联和规范化模式。

最流行的模式是默认模式(pcap)和内联/ IPS(Afpacket)。

导航至“步骤 6:配置输出插件”部分。 此部分管理IDS / IPS操作的输出,包括日志记录和告警格式的详细信息。默认情况下,所有信息都会显示在控制台应用程序中,因此配置此部分将有助于您更高效地使用 Snort。

导航至“步骤 7:自定义规则集”部分。

| 标签名称 | 信息 | 例子 | | — | — | — | | # 特定站点规则 | 硬编码的本地和用户生成的规则路径。 | 包含 $RULE_PATH/local.rules | | #include $RULE_PATH/ | 硬编码的默认/已下载规则路径。 | 包含 $RULE_PATH/规则名称 |

请注意,“#” 是注释运算符。 您需要取消注释才能激活该行。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:竹等寒安全 竹等寒《TryHackMe-SOC-Section 7:网络安全监控(2)》

评论:0   参与:  0