【网络安全】Snort 使用入门:命令详解与实践指南

1. Snort 简介

Snort 是一个强大的开源入侵检测系统(IDS)和入侵防御系统(IPS),在网络安全领域被广泛使用。本文将介绍如何使用命令行正确运行 Snort,以及排查常见问题的方法。Snort 是由 Cisco 维护的基于规则的网络检测工具,它能够:

  • 实时检测网络攻击
  • 记录网络活动
  • 与自定义规则配合使用实现深度检测

Snort 可以工作在三种模式下:

  1. 嗅探模式(Sniffer):只监听数据包,不分析。
  2. 包记录模式(Packet Logger):将数据包保存到日志。
  3. 入侵检测模式(IDS):根据规则分析数据包并产生警报。

2. 常用命令解释

每条规则都应该包含操作类型、协议、源 IP 和目标 IP、源端口和目标端口以及一个选项。请记住,Snort 默认处于被动模式。因此,大多数情况下,您会将 Snort 用作入侵检测系统 (IDS)。您需要启动"内联模式"才能启用入侵检测系统(IPS)模式。但在开始使用内联模式之前,您应该熟悉 Snort 的功能和规则。

Snort 规则结构易于理解,但生成起来却比较困难。为了创建高效的规则,您应该熟悉规则选项及其相关细节。建议您针对不同的用例练习 Snort 规则和选项细节。

在本单元中,我们将介绍基本的规则结构,并帮助您逐步掌握 Snort 规则。您可以通过练习不同的用例并深入研究规则选项的细节,不断提升使用不同规则选项的规则创建技能。我们将重点介绍两种操作:IDS模式下的"警报 alert"和IPS模式下的"拒绝 reject"。

如果没有标头,规则将无法处理。规则选项是"可选"部分。 然而,如果不使用规则选项,几乎不可能检测到复杂的攻击。

操作

规则有多种操作。在为实际系统创建规则之前,请确保您了解这些功能并进行测试。以下列出了最常见的操作。

  • alert:生成警报并记录数据包。
  • log:记录数据包。
  • drop:阻止并记录数据包。
  • reject:阻止数据包,记录它并终止数据包会话。
    协议参数标识了规则过滤的协议类型。

协议过滤器

请注意,Snort2 规则中仅支持四种协议过滤器(IP、TCP、UDP和 ICMP)。但是,您可以使用端口号和选项检测应用程序流量。例如,如果要检测FTP流量,则不能在协议字段中使用FTP关键字,而是通过调查端口 21 上的TCP流量来过滤FTP流量。

IP和端口号

IP Filtering alert icmp 192.168.1.56 any <> any any (msg: "ICMP Packet From "; sid: 100001; rev:1;)
Filter an IP range alert icmp 192.168.1.0/24 any <> any any (msg: "ICMP Packet Found"; sid: 100001; rev:1;)
Filter multiple IP ranges alert icmp [192.168.1.0/24, 10.1.1.0/24] any <> any any (msg: "ICMP Packet Found"; sid: 100001; rev:1;)
Exclude IP addresses/ranges alert icmp !192.168.1.0/24 any <> any any (msg: "ICMP Packet Found"; sid: 100001; rev:1;)
Port Filtering alert tcp any any <> any 21 (msg: "FTP Port 21 Command Activity Detected"; sid: 100001; rev:1;)
Exclude a specific port alert tcp any any <> any !21 (msg: "Traffic Activity Without FTP Port 21 Command Channel"; sid: 100001; rev:1;)
Filter a port range (Type 1) alert tcp any any <> any 1:1024 (msg: "TCP 1-1024 System Port Activity"; sid: 100001; rev:1;)

方向

方向运算符指示 Snort 需要过滤的流量。规则左侧显示源,右侧显示目标。

->源到目标流。

<>双向流

请注意, Snort 中没有"<-"运算符。

Snort 中有三个主要规则选项;

常规规则选项 - Snort 的基本规则选项。

有效载荷规则选项 - 有助于调查有效载荷数据的规则选项。这些选项有助于检测特定的有效载荷模式。

非有效负载规则选项 - 专注于非有效负载数据的规则选项。这些选项有助于创建特定模式并识别网络问题。

常规规则选项

消息字段是规则的基本提示和快速标识符。一旦规则被触发,消息字段就会出现在控制台或日志中。通常,消息部分是一行概括事件的内容。

Snort 规则ID (SID) 具有预定义的范围,并且每条规则必须具有正确格式的 SID。SID 有三种不同的范围,如下所示。

复制代码
<100: 保留规则
100-999,999: 规则随构建而来。
>=1,000,000: 由用户创建的规则。

简而言之,我们创建的规则的 SID 应大于 100.000.000。另一个要点是:SID 不应重叠,并且每个 ID 必须是唯一的。

每条规则都可以包含附加信息或参考信息,以解释规则或威胁模式的用途。这些信息可以是通用漏洞和暴露 ( CVE ) ID 或外部信息。规则的参考信息始终有助于分析师进行警报和事件调查。

Snort 规则可以根据性能和效率问题进行修改和更新。Rev 选项可帮助分析人员掌握每条规则的修订信息,从而轻松了解规则的改进情况。每条规则都有其唯一的修订编号,并且规则历史记录没有自动备份功能。分析人员应自行保存规则历史记录。Rev 选项仅指示规则的修订次数。

bash 复制代码
alert icmp any any <> any any (msg: "ICMP Packet Found"; sid: 100001; reference:cve,CVE-XXXX; rev:1;)

有效载荷检测规则选项

有效载荷数据。它通过 ASCII、十六进制或两者匹配特定的有效载荷数据。可以在单个规则中多次使用此选项。但是,创建的特定模式匹配功能越多,调查数据包所需的时间就越长。

以下规则将为每个包含关键字"GET"的HTTP数据包创建警报。此规则选项区分大小写!

复制代码
ASCII mode - alert tcp any any <> any 80  (msg: "GET Request Found"; content:"GET"; sid: 100001; rev:1;)

HEX mode - alert tcp any any <> any 80  (msg: "GET Request Found"; content:"|47 45 54|"; sid: 100001; rev:1;)

优先搜索内容以加快有效载荷搜索操作。默认情况下,Snort 使用最大的内容并根据规则进行评估。"fast_pattern"选项可帮助您选择与特定值匹配的初始数据包,以供进一步调查。此选项始终不区分大小写,并且每个规则只能使用一次。请注意,使用多个"content"选项时,此选项是必需的。

以下规则有两个内容选项,fast_pattern 选项告诉 snort 使用第一个内容选项(在本例中为"GET")进行初始数据包匹配。

bash 复制代码
alert tcp any any <> any 80  (msg: "GET Request Found"; content:"GET"; fast_pattern; content:"www";  sid:100001; rev:1;)

非有效载荷检测规则选项

过滤TCP标志

F - FIN

S - SYN

R - RST

P - PSH

A - ACK

U - URG

bash 复制代码
 alert tcp any any <> any any (msg: "FLAG TEST"; flags:S;  sid: 100001; rev:1;)

3. 结语

Snort 是学习网络安全的绝佳工具,通过掌握命令行运行方式与规则编写,你可以搭建属于自己的入侵检测实验环境。

相关推荐
不穿铠甲的穿山甲17 分钟前
Android-KeyStore安全的存储系统
android·安全
repetitiononeoneday1 小时前
网络安全-第八阶段渗透测试阶段-第1章渗透系统安装和靶场部署
安全·web安全
bl4ckpe4ch1 小时前
【漏洞复现】Struts2系列
网络安全·漏洞复现
Suckerbin2 小时前
Pikachu靶场-RCE漏洞
学习·安全·网络安全
孟陬3 小时前
如何确认 npm 包的安全版本
安全·npm
焦点链创研究所3 小时前
CoinNexus Chain 推出泰利风暴,开启 Web3.0 智能金融元宇宙科技新时代
安全
阳光普照世界和平3 小时前
从单点突破到链式攻击:XSS 的渗透全路径解析
前端·web安全·xss
计算机鬼才~4 小时前
网络安全·第五天·TCP协议安全分析
tcp/ip·安全·web安全
XINO5 小时前
Wireshark抓包入门排雷
网络协议·安全