介绍
:::info
入侵检测系统 (IDS) 是一个检测网络或系统入侵的系统 入侵防御系统 (IPS) 是一种可以检测和防止入侵的系统:::
一个简单的例子就是: 一名保安通过看监控发现谁在实施违法行为,但是不能阻止这是 (IDS) ,如果保安可以发现并制止违法行为这是 (IPS)设备
<font style="color:rgb(33, 37, 41);">Snort</font>
就是一个网络入侵检测系统,我们可以将其设置为 IDS 或者 IPS (如果要实现 IPS 功能,那么我们需要设置某种机制来阻止<font style="color:rgb(33, 37, 41);">[drop]</font>
违规连接). 该功能需要将 Snort 设置为 <font style="color:rgb(33, 37, 41);">inline</font>
并桥接两个或多个网卡.
基于签名的 IDS:
将 Snort 配置为 IPS:
:::info IDS 可以根据其在网络中位置分为:
- 基于主机的 IDS (HIDS)
- 基于网络的入侵检测系统 (NIDS)
HIDS 和其他应用程序一起安装在操作系统上,该设置可以使 HIDS 监控进出主机的流量,此外还可以监控主机运行的进程
NIDS 是一种专门用于监控网络流量的设备或者服务器,我们使用 NIDS 可以监控我们保护 VLAN 中所有网络流量,这可以通过将 NIDS 连接到交换机上的监控端口来实现。NIDS 将处理网络流量以检测恶意流量。
:::
IDS 引擎类型
我们可以将网络流量分为:
- 恶意流量: 我们希望 IDS 检测的恶意流量
- 正常流量: 不希望 IDS 提醒的流量
IDS 的检测引擎主要是:
- 基于签名: 基于签名的IDS需要充分了解恶意(或不需要的)流量。换句话说,我们需要明确地向基于签名的检测引擎提供恶意流量的特征。可以使用显式规则进行匹配来向 IDS 传授有关恶意流量的知识
- 基于异常:这要求IDS了解常规流量的情况。换句话说,我们需要“教” IDS 什么是正常的,这样它才能识别出什么是不正常的。向IDS传授有关正常流量的知识,即可以使用机器学习或手动规则来实现基线流量。
IDS/IPS 规则触发
:::info
每个 IDS/IPS 都有特定的语法来编写其规则,例如 Snort 对其规则使用格式为 Rule Header (Rule Options)
其中 Rule Header 构成:
- Action : 活动包括
alert
log
pass
drop
reject
- Protocol :
TCP
UDP
ICMP
IP
- Source IP /Source Port :
<font style="color:rgb(41, 44, 50);">!10.10.0.0/16 any</font>
指的是不在B类子网10.10.0.0/16的一切 - Direction of flow:
<font style="color:rgb(41, 44, 50);">-></font>
表示从左(源头)到右(目的地),而<font style="color:rgb(41, 44, 50);"><></font>
表示双向交通。 - Destination Ip/Destination Port:
<font style="color:rgb(41, 44, 50);">10.10.0.0/16</font>
任何指的是B类子网<font style="color:rgb(41, 44, 50);">10.10.0.0/16</font>
:::
drop icmp any any -> any any (msg: "ICMP Ping Scan"; dsize:0; sid:1000020; rev: 1;)
知识 Snort IPS 丢弃任何从源地址到任何目标地址上的 ICMP消息,并添加到本地
ICMP Ping Scan
日志中