文章总结: 本文介绍网络安全监控中的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
,,_ -*> Snort! <*-
o" )~ Version 2.9.7.0 GRE (Build XXXXXX)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.9.1 (with TPACKET_V3)
Using PCRE version: 8.39 2016-06-14
Using ZLIB version: 1.2.11
在开始实际操作之前,我们应该确保配置文件有效。 这里,“-T”用于测试配置,“-c”指定配置文件 (snort.conf)。请注意,也可以通过 “-c” 指定其他配置文件 。
配置检查
user@ubuntu$sudo snort -c /etc/snort/snort.conf -T
--== Initializing Snort ==--
Initializing Output Plugins!
Initializing Preprocessors!
Initializing Plug-ins!
... [Output truncated]
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.9.7.0 GRE (Build XXXX)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.9.1 (with TPACKET_V3)
Using PCRE version: 8.39 2016-06-14
Using ZLIB version: 1.2.11
Rules Engine: SF_SNORT_DETECTION_ENGINE Version 2.4
Preprocessor Object: SF_GTP Version 1.1
Preprocessor Object: SF_SIP Version 1.1
Preprocessor Object: SF_SSH Version 1.1
Preprocessor Object: SF_SMTP Version 1.1
Preprocessor Object: SF_POP Version 1.0
Preprocessor Object: SF_DCERPC2 Version 1.0
Preprocessor Object: SF_IMAP Version 1.0
Preprocessor Object: SF_DNP3 Version 1.1
Preprocessor Object: SF_SSLPP Version 1.1
Preprocessor Object: SF_MODBUS Version 1.1
Preprocessor Object: SF_SDF Version 1.1
Preprocessor Object: SF_REPUTATION Version 1.1
Preprocessor Object: SF_DNS Version 1.1
Preprocessor Object: SF_FTPTELNET 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)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论