SIP 检查器

SIP 检查器概述

类型

检查器(服务)

使用方式

检测

实例类型

多实例

所需其他检查器

stream_udp

已启用

true

会话发起协议 (SIP) 管理包括一个或多个参与者的实时呼叫会话的创建、修改和断开。SIP 可以控制的应用包括:互联网电话、多媒体会议、即时消息、在线游戏和文件传输。SIP 协议是基于文本的请求和响应协议。

每个 SIP 请求中的 方法 字段识别请求的目的, 请求 URI 则指定发送请求的目的地。每个 SIP 响应中的状态代码指明请求操作的结果。SIP 协议使用 TCP(端口 5060)或 UDP(端口 5061)。

在 SIP 创建呼叫会话后,SIP 可以通过实时传输协议 (RTP) 传输音频和视频流。对于数据通道参数协商、会话公告和会话邀请,RTP 在 SIP 消息正文中使用会话描述协议 (SDP)。

SIP 检查器可检测并分析网络流量中的 SIP 消息。 SIP 检查器会提取 SIP 报头和消息正文,并将 SIP 消息正文中的所有数据传递到检测引擎。

SIP 检查器可检测 SIP 流量中的异常和已知漏洞,包括无序和无效的呼叫序列。



  • SIP 检查器不会解码 RTP 消息。 SIP 检查器会根据 SDP 数据中定义的端口识别 RTP 信道。

  • UDP 通常传输 SIP 支持的媒体会话。 SIP 检查器从已解码的 UDP 流中获取会话跟踪信息。

  • SIP 规则选项允许您将检测光标定位到 SIP 数据包信头或消息体,并将检测限制为针对特定 SIP 方法或状态码的数据包。


SIP 检查器参数

SIP 服务配置

绑定程序 检查器定义 SIP 服务配置。有关详细信息,请参阅绑定程序检查器概述

示例:
[
    {
        "when": {
            "role": "any",
            "service": "sip"
        },
        "use": {
            "type": "sip"
        }
    }
]

ignore_call_channel

指定是否检测音频/视频数据通道流量。启用后, SIP 检查器会解码所有非数据 SIP 通道流量,并忽略音频/视频 SIP 数据通道流量。

类型: boolean

有效值: truefalse

默认值: false

max_call_id_len

指定 Call-ID 信头字段中允许的最大字节数。Call-ID 字段唯一地识别请求和响应中的 SIP 会话。当 max_call_id_len 为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:5 以生成事件,并在内联部署中,丢弃违规数据包。当 Call-ID 报头长度大于 max_call_id_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 256

max_contact_len

指定 联系人 信头字段中允许的最大字节数。联系人 字段提供用以指定与后续消息进行联系的位置的 URI。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:15 以生成事件,并在内联部署中,丢弃违规数据包。当 联系人 信头字段长度大于 max_contact_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 256

max_content_len

指定在消息正文的内容中允许的最大字节数。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:16 以生成事件,并在内联部署中,丢弃违规数据包。当内容长度大于 max_content_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 1024

max_dialogs

指定数据流会话中允许的最大对话数量。如果对话框数量超过该数量,则 sip 检查器将丢弃最早的对话框,直至对话框数量不超过指定的最大数量。

您可以启用规则 140:27 以生成事件,并在内联部署中,丢弃违规数据包。

类型: 整数

有效范围: 14,294,967,295(最大 32)

默认值: 4

max_from_len

指定 发件人 信头字段中允许的最大字节数。发件人 字段识别消息发起方。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:9 以生成事件,并在内联部署中丢弃违规数据包。当 发件人 字段长度大于 max_from_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 256

max_request_name_len

指定请求名称中允许的最大字节数。SIP 请求名称是指在 SIP CSeq 事务标识符中指定的方法的名称。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:7 以生成事件,并在内联部署中丢弃违规数据包。当请求名称长度大于 max_request_name_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 20

max_requestName_len

max_requestName_len 参数已弃用。改用 max_request_name_len 参数。

max_to_len

指定 收件人 信头字段中允许的最大字节数。收件人 字段识别消息收件人。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:11 以生成事件,并在内联部署中,丢弃违规数据包。当 收件人 字段长度大于 max_to_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 256

max_uri_len

指定 Request-URI 中允许的最大字节数。 Request-URI 指示所请求资源的目的路径。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:3 以生成事件,并在内联部署中丢弃违规数据包。Request-URI 字段长度大于 max_uri_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 256

max_via_len

指定 通过 信头字段中允许的最大字节数。通过 字段标识要在请求中使用的传输和接收方的位置。值为 0 时, sip 检查器不会生成警报。

您可以启用规则 140:13 来生成事件,并在内联部署中丢弃违规数据包。当 通过 字段长度大于 max_ via_len 的值时, sip检查器会生成事件。

类型: 整数

有效范围: 065535

默认值: 1024

方法

指定 SIP 检测方法列表。方法名称不区分大小写。使用逗号或空格分隔列表中的方法名称。方法名称仅可以包含字母字符、数字和下划线字符。

类型: 字符串

有效值: ackbenotifybyecanceldoinfoinvitejoinmessagenotifyoptionsprackpublishquarhreferregisterservicesracksubscribeunsubscribeupdate

默认值: invite cancel ack bye register options

SIP 检查器规则

启用 sip 检查器规则以 生成事件并在内联部署中丢弃攻击性数据包

表 1. SIP 检查器规则

GID:SID

Rule Message

140:2

URI 请求为空

140:3

URI 过长

140:4

空 Call-Id

140:5

Call-Id 过长

140:6

CSeq 编号过大或为负数

140:7

CSeq 中的请求名称过长

140:8

空“发件人”信头

140:9

“发件人”信头过长

140:10

空“收件人”信头

140:11

“收件人”报头过长

140:12

空“通过”信头

140:13

“通过”信头过长

140:14

联系人为空

140:15

联系人过长

140:16

内容长度太大或为负数

140:17

一个数据包包含多条 SIP 消息

140:18

内容长度不匹配

140:19

请求名称无效

140:20

邀请重放攻击

140:21

非法修改会话信息

140:22

响应状态代码不是三位数字

140:23

空 Content-Type 信头

140:24

SIP 版本无效

140:25

请求的 METHOD 和 CSEQ 信头不匹配

140:26

方法未知

140:27

会话中达到的最大对话数

SIP 检查器入侵规则选项

sip_method

SIP 请求识别请求的目的。使用 sip_method 关键字来匹配 SIP 请求中的方法。方法名称不区分大小写。使用逗号隔开多种方法。

类型: 字符串

语法: sip_method:<methods>中所述:

有效值: ackbenotifybyecanceldoinfoinvitejoinmessagenotifyoptionsprackpublishquarhreferregisterservicesracksubscribeunsubscribeupdate

示例: sip_method: "ack,service,info,bye";

sip_stat_code

SIP 响应包括三位数字状态代码。SIP 状态代码指明请求操作的结果。使用 sip_stat_code 关键字可将 SIP 响应与指定的状态代码进行匹配。

您可以使用任一数字组合指定一个来表示三位数状态代码的第一位数字、一个三位数或一个以逗号分隔的数字列表。如果列表中的任何一个数字与 SIP 响应中的代码相匹配,则列表匹配。

类型: 整数

语法: sip_stat_code:<codes>中所述:

有效范围:

  • 19

  • 100999

示例: sip_stat_code: "1";

表 2. SIP 参数值和状态代码

参数值

检测到的状态代码

说明

189

189

设置特定状态代码

1

100 - 199

设置单个数字。

222, 3

222; 300 - 399

设置以逗号分隔的三位数或单位数字列表。

sip_header

使用 sip_header 关键字将检测光标定位到提取的 SIP 信头缓冲区的开头。限制对信头字段进行检测。

语法: sip_header;

示例: sip_header;

sip_body

使用 sip_body 关键字将检测光标定位到提取的 SIP 消息正文的开头。限制对邮件正文进行检查。

语法: sip_body;

示例: sip_body;



sip 检查器将提取整个消息正文并使其可供规则引擎使用。规则引擎不仅限于搜索会话描述协议 (SDP) 内容。