JSON SNS 配置
有关如何启用将事件转发到 Amazon SNS 主题的说明,请参阅使用 Amazon SNS 访问事件。如果选择直接编辑 JSON SNS 配置,此页提供了详细的做法。
用来定义将哪些事件发送到哪些主题的配置语言根据 Amazon SNS 策略语言建模,该语言的说明可见 Amazon 文档。
相关配置是一个特殊的 JSON 编码文档,其中规定了事件必须满足怎样的条件才能发布到主题。基本配置类似于如下内容:
{ "Version":"2014-09-24", "Statement":[statement1, statement2, ...] }
版本
Version 元素指定了配置语言的版本。当前唯一有效值是字符串 "2014-09-24"
"Version": "2014-09-24",
Statement
Statement 元素是一个由各个声明组成的数组。每个声明都是一个不同的 JSON 对象,用来规定事件在满足特定条件时要发送到的 SNS 主题。
"Statement": [{...}, {...}, ...]
各个声明的格式为
{ "Topic":"destination topic", "Condition":{conditions event must meet to be published to the destination topic} }
Topic
Topic 元素必须是要发布到的 SNS 主题的 Amazon 资源名称。
"Topic":"arn:aws:sns:us-east-1:012345678901:myTopic"
条件
Condition 元素是配置中最复杂的部分。它含有一个或多个条件,事件只有满足这些条件才能发布到主题。每个条件本身也可能包含多个键-值对,而且在某些条件中,每个键还支持多个值。条件中的键都是事件的属性名称。
"Condition":{ "ConditionName":{ "key1":[value1, value2], "key2":value3 }, "ConditionName2":{ "key3":[value4] }, ... }
可用的条件名称及其语法如下所述。
Bool
Bool 条件会执行布尔匹配。要实现匹配,事件属性必须具有所需的布尔值。如果事件属性存在,但属性本身并非布尔值,则会按以下方式测试该属性:
- 数字 0 会评估为 false。非零数字会评估为 true。
- 空字符串以及特殊字符串 "false" 和 "0" 会评估为 false。其他字符串会评估为 true。
- 事件中的任何其他属性值无法转换为布尔值,因此都不会匹配。
是否允许多个值?否
以下示例显示的配置会发布含有 "DetectOnly" 属性且属性值为 false 的事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "Bool":{ "DetectOnly":false } } } ] }
Exists
Exists 条件会测试事件中的属性是存在还是不存在,而且不考虑该属性的值。
是否允许多个值?否
以下示例显示的配置会在事件含有 "Severity" 属性但不含 "Title" 属性时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "Exists":{ "Severity":true, "Title":false } } } ] }
IpAddress
IpAddress 条件会测试事件属性值是具有 CIDR 格式的范围内的 IP 地址还是精确等于一个 IP 地址。
是否允许多个值?是
以下示例显示的配置会在事件具有 "DestinationIP" 属性且属性值为 64.23.0.0/16 范围内的 IP 地址或等于 216.104.20.189 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "IpAddress":{ "DestinationIP": ["64.23.0.0/16", "216.104.20.189"] } } } ] }
NotIpAddress
NotIpAddress 条件会测试事件属性值不是任何指定 IP 地址范围内的 IP 地址。
是否允许多个值?是
以下示例显示的配置会在事件具有 "DestinationIP" 属性且属性值为不在 10.0.0.0/8 范围内的 IP 地址时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NotIpAddress":{ "DestinationIP": "10.0.0.0/8" } } } ] }
NumericEquals
NumericEquals 条件会测试事件属性数值是否等于一个或多个所需值。如果事件属性存在,但属性本身并非数值,则会按以下方式测试该属性:
- 字符串会转换为数字。无法转换为数字的字符串不会匹配。
- 事件中的任何其他属性值无法转换为数字,因此都不会匹配。
是否允许多个值?是
以下示例显示的配置会在事件含有 "Protocol" 属性且属性值为 6 或 17 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericEquals":{ "Protocol": [6, 17] } } } ] }
NumericNotEquals
NumericNotEquals 条件会测试事件属性的数值是否不等于不希望的值集中的任何一个值。
是否允许多个值?是
以下示例显示的配置会在事件含有 "Protocol" 属性且属性值不等于 6 以及含有 "Risk" 属性且属性值不等于 2 或 3 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericNotEquals":{ "Protocol":6, "Risk" : [2, 3] } } } ] }
NumericGreaterThan
NumericGreaterThan 条件会测试事件属性数值是否绝对大于一个所需值。如果事件属性存在,但属性本身并非数值,则会像 NumericEquals 那样将其转换为数字。
是否允许多个值?否
以下示例显示的配置会在事件含有 "Protocol" 属性且属性值大于 6 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericGreaterThan":{ "Protocol": 6 } } } ] }
NumericGreaterThanEquals
NumericGreaterThanEquals 条件会测试事件属性数值是否大于或等于一个所需值。如果事件属性存在,但属性本身并非数值,则会像 NumericEquals 那样将其转换为数字。
是否允许多个值?否
以下示例显示的配置会在事件含有 "Number" 属性且属性值大于或等于 600 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericGreaterThanEquals":{ "Number": 600 } } } ] }
NumericLessThan
NumericLessThan 条件会测试事件属性数值是否绝对小于一个所需值。如果事件属性存在,但属性本身并非数值,则会像 NumericEquals 那样将其转换为数字。
是否允许多个值?否
以下示例显示的配置会在事件含有 "Number" 属性且属性值大于 1000 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericLessThan":{ "Number": 1000 } } } ] }
NumericLessThanEquals
NumericLessThanEquals 条件会测试事件属性数值是否小于或等于一个所需值。如果事件属性存在,但属性本身并非数值,则会像 NumericEquals 那样将其转换为数字。
是否允许多个值?否
以下示例显示的配置会在事件含有 "Number" 属性且属性值小于或等于 500 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericLessThanEquals":{ "Number": 500 } } } ] }
StringEquals
StringEquals 条件会测试事件属性字符串值是否绝对等于或大于所需值。
是否允许多个值?是
以下示例显示的配置会在事件含有 "EventType" 属性且属性值等于 "SystemEvent" 以及含有 "TargetType" 属性且属性值等于 "User" 或 "Role" 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringEquals":{ "EventType":["SystemEvent"], "TargetType" :["User", "Role"] } } } ] }
StringNotEquals
StringNotEquals 条件会测试事件属性的字符串值是否不等于不希望的值集中的任何一个值。
是否允许多个值?是
以下示例显示的配置会在事件含有 "EventType" 属性且属性值不等于 "PacketLog" 或 "IntegrityEvent" 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringNotEquals":{ "EventType":["PacketLog", "IntegrityEvent"] } } } ] }
StringEqualsIgnoreCase
StringEqualsIgnoreCase 条件与 StringEquals 条件相同,区别在于它在匹配字符串时会不区分大小写。
StringNotEqualsIgnoreCase
StringNotEqualsIgnoreCase 条件与 StringNotEquals 条件相同,区别在于它在匹配字符串时会不区分大小写。
StringLike
StringLike 条件会测试事件属性的字符串值是否等于或大于所需值,其中所需值可能包括用来匹配任意数量字符的 '*' 通配符或匹配单个字符的 '?' 通配符。字符串比较区分大小写。
是否允许多个值?是
以下示例显示的配置会在事件含有 "Title" 属性且属性值含有字符串 "User" 或 "Role" 时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringLike":{ "Title":["*User*", "*Role*"] } } } ] }
StringNotLike
StringNotLike 条件会测试事件属性的字符串值是否不等于不希望的值集中的任何一个值,其中的值可能包括用于匹配任意数量字符的 '*' 通配符或用于匹配单个字符的 '?' 通配符。字符串比较区分大小写。
是否允许多个值?是
以下示例显示的配置会发布除“已保存系统设置”事件以外的所有事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringNotLike":{ "Title":"System Settings Saved" } } } ] }
下一个示例显示的配置会在事件含有 "Title" 属性且属性值不以 "User" 开头也不以 "Created" 结尾时发布事件:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringNotLike":{ "Title":["User*", "*Created"] } } } ] }
事件描述
发布到 Amazon SNS 时,事件会以字符串编码的简单 JSON 对象发送。对象中的属性都是事件的元素,而属性值通常都是字符串或数字。本部分介绍事件的可用属性以及这些属性的可用值。
事件数据类型
事件属性将为下表中所述的数据类型之一:
数据类型 | 描述 |
---|---|
布尔值 |
值将为 JSON true 或 false 值。
|
整数 |
值将为 JSON int 值。趋势科技服务器深度安全防护系统不会输出事件中的浮点数字。请注意,事件中的整数类型并不一定符合 32 位整数要求。
|
整数 (enum) |
值将为 JSON int 值,且存在额外限制,即它只能是一个有限的枚举值集中的一个值。
|
字符串 |
值将为 JSON string 值。
|
字符串 (日期) |
值将为按 JSON string 值编码的日期和时间。日期使用 ISO 8601 格式 YYYY-MM-DDThh:mm:ss.sssZ 编码,而且始终使用 'Z' 作为时区指示符并包括三位数次秒值。有关此编码的更多详细信息,请参阅有关日期和时间格式的 W3C 说明。
|
字符串 (IP) |
值将为按 JSON string 值编码的 IPv4 或 IPv6 地址。
|
字符串 (MAC) |
值将为 JSON string 值,且存在额外限制,即它将包含一个网络 MAC 地址。
|
字符串 (URL) |
值将为 JSON string 值,且存在额外限制,即它将包含一个 URL。
|
字符串 (enum) |
值将为 JSON string 值,且存在额外限制,即它只能是一个有限的枚举值集中的一个值。
|
事件属性
本部分介绍事件中可能会出现的所有属性。请注意,事件并不一定会包含相应事件类型下列出的所有属性;在某些情况下,属性不会应用,也不会出现在 JSON 对象中。
属性名 | 数据类型 | 描述 | 应用于事件类型 |
---|---|---|---|
操作 | 整数 (enum) | 为入侵防御事件采取的处理措施。0=未知,1=拒绝,2=重置,3=插入,4=删除,5=替换,6=仅记录,0x81=仅检测:拒绝,0x82=仅检测:重置,0x83=仅检测:插入,0x84=仅检测:删除,0x85=仅检测:替换。 | 入侵防御事件 |
操作 | 整数 (enum) | 为防火墙事件采取的处理措施。“仅检测”值会显示在启用该规则时要采取的措施。0=未知,1=拒绝,6=仅记录,0x81=仅检测:拒绝。 | 防火墙事件 |
ActionBy | 字符串 | 执行事件的趋势科技服务器深度安全防护系统管理中心用户的名称,或者如果该事件不是由用户生成的,则为“系统”。 | 系统事件 |
ActionString | 字符串 | 将操作转换为可读字符串。 | 防火墙事件和入侵防御事件 |
AdministratorID | 整数 | 采取处理措施的趋势科技服务器深度安全防护系统用户的唯一标识符。由系统而不是由用户生成的事件将不具有标识符。 | 系统事件 |
ApplicationType | 字符串 | 与入侵防御规则关联的应用程序类型的名称 (如果可用)。 | 入侵防御事件 |
更改 | 整数 (enum) | 对文件、进程、注册表项等做出何种类型的更改后触发了完整性监控事件。1=已创建,2=已更新,3=已删除,4=已更名。 | 完整性事件 |
描述 | 字符串 | 描述对实体做出的更改 (已创建、已删除、已更新) 以及有关已更改属性的详细信息。 | 完整性事件 |
描述 | 字符串 | 有关事件期间发生的情况的简要描述。 | 系统事件 |
DestinationIP | 字符串 (IP) | 数据包目标的 IP 地址。 | 防火墙事件和入侵防御事件 |
DestinationMAC | 字符串 (MAC) | 数据包目标的 MAC 地址。 | 防火墙事件和入侵防御事件 |
DestinationPort | 整数 | 数据包发送到的网络端口号。 | 防火墙事件和入侵防御事件 |
DetectionCategory | 整数 (enum) | Web 信誉事件的检测类别。12=用户定义,13=定制,91=全局。 | Web 信誉事件 |
DetectOnly | 布尔值 | 返回的事件是否启用了“仅检测”标志。如果为 true,则表明 URL 没有被阻止,但检测到访问。 | Web 信誉事件 |
方向 | 整数 (enum) | 网络数据包方向。0=传入,1=传出。 | 防火墙事件和入侵防御事件 |
DirectionString | 字符串 | 将方向转换为可读字符串。 | 防火墙事件和入侵防御事件 |
DriverTime | 整数 | 驱动程序记录到的日志生成时间。 | 防火墙事件和入侵防御事件 |
EndLogDate | 字符串 (日期) | 为重复事件记录的上次日志日期。非重复事件不会出现此项。 | 防火墙事件和入侵防御事件 |
EngineType | 整数 | 防恶意软件引擎类型。 | 防恶意软件事件 |
EngineVersion | 字符串 | 防恶意软件引擎版本。 | 防恶意软件事件 |
EntityType | 字符串 (enum) | 将完整性监控事件应用到的实体类型。以下状态之一:目录、文件、组、已安装的软件、端口、进程、注册表项、注册表值、服务、用户、Wql | 完整性事件 |
ErrorCode | 整数 | 恶意软件扫描事件的错误代码。如果非零,则扫描不成功,并且扫描处理措施和扫描结果文本框包含更多详细信息。 | 防恶意软件事件 |
EventID | 整数 | 事件的标识符。每个事件类型的标识符是唯一的,但是不同类型的事件可能共享同一个标识符。例如,EventType 为防火墙和 IPS 的事件的 EventID 可能都等于 1。EventID、EventType 和 TenantID 需要组合起来才能充分标识趋势科技服务器深度安全防护系统中的事件。 | 所有事件类型 |
EventType | 字符串 (enum) | 事件类型。以下状态之一:“SystemEvent”、“PacketLog”、“PayloadLog”、“AntiMalwareEvent”、“WebReputationEvent”、“IntegrityEvent”、“LogInspectionEvent”。 | 所有事件类型 |
标志 | 字符串 | 从网络数据包记录的标志,这是一个由空格分隔的字符串列表。 | 防火墙事件和入侵防御事件 |
流 | 整数 (enum) | 网络连接流。可能的值:-1=不适用,0=连接流,1=反向流 | 防火墙事件和入侵防御事件 |
FlowString | 字符串 | 将流转换为可读字符串。 | 防火墙事件和入侵防御事件 |
Frame | 整数 (enum) | 帧类型。-1=未知,2048=IP,2054=ARP,32821=REVARP,33169=NETBEUI,0x86DD=IPv6 | 防火墙事件和入侵防御事件 |
FrameString | 字符串 | 将帧转换为可读字符串。 | 防火墙事件和入侵防御事件 |
HostAgentVersion | 字符串 | 保护在其中检测到事件的计算机的客户端版本。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostAssetValue | 整数 | 生成事件时向计算机分配的资产值。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostGroupID | 整数 | 在其中检测到事件的计算机所属的计算机组的唯一标识符。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostGroupName | 字符串 | 在其中检测到事件的计算机所属的计算机组的名称。请注意,计算机组名称可能不是唯一的。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostID | 整数 | 事件应用到的计算机的唯一标识符。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostInstanceID | 字符串 | 在其中检测到事件的计算机的云实例 ID。此属性将只为与云连接器同步的计算机设置。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
主机名 | 字符串 | 生成事件时所在计算机的名称。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostOS | 字符串 | 在其中检测到事件的计算机上运行的操作系统。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostSecurityPolicyID | 整数 | 在其中检测到事件的计算机适用的安全策略的唯一标识符。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostSecurityPolicyName | 字符串 | 在其中检测到事件的计算机适用的安全策略的名称。请注意,安全策略名称可能不是唯一的。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
HostVCUUID | 字符串 | 事件应用到的计算机的 vCenter UUID (如果已知)。 | 防恶意软件事件、Web 信誉事件、完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
InfectedFilePath | 字符串 | 检测到恶意软件时受感染文件的路径。 | 防恶意软件事件 |
InfectionSource | 字符串 | 恶意软件感染源的计算机名称 (如果已知)。 | 防恶意软件事件 |
接口 | 字符串 (MAC) | 发送或接收数据包的网络接口 MAC 地址。 | 防火墙事件和入侵防御事件 |
IPDatagramLength | 整数 | IP 数据报长度。 | 入侵防御事件 |
IsHash | 字符串 | 文件修改后的 SHA-1 内容哈希 (十六进制编码)。 | 完整性事件 |
密钥 | 字符串 | 完整性事件引用的文件或注册表项。 | 完整性事件 |
LogDate | 字符串 (日期) | 记录事件的日期和时间。对于客户端生成的事件 (防火墙、IPS 等),该日期是客户端记录事件的日期,而不是事件发送给趋势科技服务器深度安全防护系统管理中心的时间。 | 所有事件类型 |
MajorVirusType | 整数 (enum) | 检测到的恶意软件的分类。0=恶作剧,1=特洛伊木马,2=病毒,3=测试,4=间谍软件,5=加壳软件,6=常规,7=其他 | 防恶意软件事件 |
MajorVirusTypeString | 字符串 | 将 MajorVirusType 转换为可读字符串。 | 防恶意软件事件 |
MalwareName | 字符串 | 检测到的恶意软件名称。 | 防恶意软件事件 |
MalwareType | 整数 (enum) | 检测到的恶意软件类型。1=常规恶意软件,2=间谍软件。常规恶意软件事件有一个受感染文件的路径,而间谍软件事件没有。 | 防恶意软件事件 |
ManagerNodeID | 整数 | 在其中生成事件的趋势科技服务器深度安全防护系统管理中心节点的唯一标识符。 | 系统事件 |
ManagerNodeName | 字符串 | 在其中生成事件的趋势科技服务器深度安全防护系统管理中心节点的名称。 | 系统事件 |
编号 | 整数 | 事件数量。 | 系统事件 |
起源 | 整数 (enum) | 事件起源。-1=未知,0=客户端,1=客户虚拟机内的客户端,2=设备,3=趋势科技服务器深度安全防护系统管理中心 | 所有事件类型 |
OriginString | 字符串 | 将来源转换为可读字符串。 | 所有事件类型 |
OSSEC_Action | 字符串 | OSSEC 操作 | 日志审查事件 |
OSSEC_Command | 字符串 | OSSEC 命令 | 日志审查事件 |
OSSEC_Data | 字符串 | OSSEC 数据 | 日志审查事件 |
OSSEC_Description | 字符串 | OSSEC 描述 | 日志审查事件 |
OSSEC_DestinationIP | 字符串 | OSSEC dstip | 日志审查事件 |
OSSEC_DestinationPort | 字符串 | OSSEC dstport | 日志审查事件 |
OSSEC_DestinationUser | 字符串 | OSSEC dstuser | 日志审查事件 |
OSSEC_FullLog | 字符串 | OSSEC 完整日志 | 日志审查事件 |
OSSEC_Groups | 字符串 | OSSEC 组结果 (例如 syslog,authentication_failure) | 日志审查事件 |
OSSEC_Hostname | 字符串 | OSSEC 主机名称。这是从日志条目读取的主机名称,它不一定与生成事件的主机名称相同。 | 日志审查事件 |
OSSEC_ID | 字符串 | OSSEC id | 日志审查事件 |
OSSEC_Level | 整数 (enum) | OSSEC 级别。0 到 15 范围内的整数 (包括 0 和 15)。0-3=严重性: 低,4-7=严重性: 中,8-11=严重性: 高,12-15=严重性: 严重。 | 日志审查事件 |
OSSEC_Location | 字符串 | OSSEC 位置 | 日志审查事件 |
OSSEC_Log | 字符串 | OSSEC 日志 | 日志审查事件 |
OSSEC_ProgramName | 字符串 | OSSEC program_name | 日志审查事件 |
OSSEC_Protocol | 字符串 | OSSEC 协议 | 日志审查事件 |
OSSEC_RuleID | 整数 | OSSEC 规则 id | 日志审查事件 |
OSSEC_SourceIP | 整数 | OSSEC srcip | 日志审查事件 |
OSSEC_SourcePort | 整数 | OSSEC srcport | 日志审查事件 |
OSSEC_SourceUser | 整数 | OSSEC srcuser | 日志审查事件 |
OSSEC_Status | 整数 | OSSEC 状态 | 日志审查事件 |
OSSEC_SystemName | 整数 | OSSEC 系统名称 | 日志审查事件 |
OSSEC_URL | 整数 | OSSEC url | 日志审查事件 |
PacketData | 整数 | 将规则配置为捕获数据包数据时,这是捕获的数据包数据的十六进制编码。 | 入侵防御事件 |
PacketSize | 整数 | 网络数据包的大小。 | 防火墙事件 |
PatternVersion | 整数 (enum) | 恶意软件检测特征码版本。 | 防恶意软件事件 |
PayloadFlags | 整数 | 入侵防御过滤器标志。这是一个位掩码值,可包括以下标志值:1 - 数据被截短 - 无法记录数据。2 - 日志溢出 - 在此日志后发生日志溢出。4 - 已抑制 - 在此日志后日志阈值被抑制。8 - 含有数据 - 含有数据包数据。16 - 引用数据 - 引用了之前记录的数据。 | 入侵防御事件 |
PosInBuffer | 整数 | 触发事件的数据的数据包内部位置。 | 入侵防御事件 |
PosInStream | 整数 | 触发事件的数据的流内部位置。 | 入侵防御事件 |
Process | 字符串 | 生成事件的进程的名称 (如果可用)。 | 完整性事件 |
协议 | 整数 (enum) | 网络协议数字标识符。-1=未知,1=ICMP,2=IGMP,3=GGP,6=TCP,12=PUP,17=UDP,22=IDP,58=ICMPv6,77=ND,255=RAW | 防火墙事件和入侵防御事件 |
ProtocolString | 字符串 | 将协议转换为可读字符串。 | 防火墙事件和入侵防御事件 |
排序 | 整数 | 事件的数值排序,即计算机的已分配资产值与此严重性级别事件的严重性值设置的乘积。 | 完整性事件、日志审查事件、防火墙事件和入侵防御事件 |
原因 | 字符串 | 导致事件的防火墙规则的名称,或者是状态与字符串的映射 (如果事件不是由规则导致的)。 | 防火墙事件 |
原因 | 字符串 | 引发此事件的完整性规则的名称 (如果已知)。 | 完整性事件 |
原因 | 字符串 | 引发事件的防恶意软件配置的名称 (如果已知)。 | 防恶意软件事件 |
原因 | 字符串 | 导致事件的入侵防御规则的名称,或者是状态与字符串的映射 (如果事件不是由规则导致的)。 | 入侵防御事件 |
RepeatCount | 整数 | 连续重复此事件的次数。重复计数 1 表示仅观测到事件,事件并没有重复。 | 防火墙事件和入侵防御事件 |
风险 | 整数 (enum) | 访问的 URL 的转换风险级别。2=可疑,3=高度可疑,4=危险,5=未测试,6=管理员阻止 | Web 信誉事件 |
RiskLevel | 整数 | URL 的原始风险级别,值为 0 到 100 之间的数字。如果 URL 由于被列入黑名单而遭到阻止,则不会显示此级别。 | Web 信誉事件 |
RiskString | 字符串 | 将风险转换为可读字符串。 | Web 信誉事件 |
ScanAction1 | 整数 | 扫描处理措施 1。扫描处理措施 1 和 2、扫描结果处理措施 1 和 2 以及错误代码会组合成单个 "summaryScanResult"。 | 防恶意软件事件 |
ScanAction2 | 整数 | 扫描处理措施 2。 | 防恶意软件事件 |
ScanResultAction1 | 整数 | 扫描结果处理措施 1。 | 防恶意软件事件 |
ScanResultAction2 | 整数 | 扫描结果处理措施 2。 | 防恶意软件事件 |
ScanResultString | 字符串 | 以字符串表示的恶意软件扫描结果。由 ScanAction 1 和 2、ScanActionResult 1 和 2 以及 ErrorCode 组合而成。 | 防恶意软件事件 |
ScanType | 整数 (enum) | 生成事件的恶意软件扫描类型。0=实时,1=手动,2=预设,3=快速扫描 | 防恶意软件事件 |
ScanTypeString | 字符串 | 将 ScanType 转换为可读字符串。 | 防恶意软件事件 |
严重性 | 整数 | 1=信息,2=警告,3=错误 | 系统事件 |
严重性 | 整数 (enum) | 1=低,2=中,3=高,4=严重 | 完整性事件和入侵防御事件 |
SeverityString | 字符串 | 将严重性转换为可读字符串。 | 系统事件、完整性事件和入侵防御事件 |
SeverityString | 字符串 | 将 OSSEC_Level 转换为可读字符串。 | 日志审查事件 |
SourceIP | 字符串 (IP) | 数据包源的 IP 地址。 | 防火墙事件和入侵防御事件 |
SourceMAC | 字符串 (MAC) | 数据包源的 MAC 地址。 | 防火墙事件和入侵防御事件 |
SourcePort | 整数 | 从中发送数据包的网络端口号。 | 防火墙事件和入侵防御事件 |
状态 | 整数 | 如果此事件并非由特定防火墙规则生成,那么此状态是大约 50 个硬编码规则中的一个,例如 123=不允许的策略 | 防火墙事件 |
状态 | 整数 | 如果此事件并非由特定 IPS 规则生成,那么此状态是大约 50 个硬编码原因中的一个,例如 -504=UTF8 编码无效 | 入侵防御事件 |
标记 | 字符串 | 已经应用到事件的逗号分隔的标记列表。此列表只包括生成事件时自动应用的标记。 | 所有事件类型 |
TargetID | 整数 | 事件目标的唯一标识符。此标识符对于租户内相同类型的目标是唯一的。目标 ID 可以在不同类型的目标中重复使用,例如,计算机和策略可能都具有目标 ID 10。 | 系统事件 |
TargetIP | 字符串 (IP) | 生成 Web 信誉事件时正在连接的 IP 地址。 | Web 信誉事件 |
TargetName | 字符串 | 事件目标的名称。系统事件的目标可能是很多对象,包括计算机、策略、用户、角色和任务。 | 系统事件 |
TargetType | 字符串 | 事件目标的类型。 | 系统事件 |
TenantID | 整数 | 生成事件的租户的唯一标识符。 | 所有事件类型 |
TenantName | 字符串 | 生成事件的租户的名称。 | 所有事件类型 |
标题 | 字符串 | 事件标题。 | 系统事件 |
URL | 字符串 (URL) | 生成事件时正在访问的 URL。 | Web 信誉事件 |
用户 | 字符串 | 作为完整性监控事件的目标的用户帐户 (如果已知)。 | 完整性事件 |
JSON 格式的示例事件
以下是系统事件的示例:
{ "ActionBy":"System", "Description":"A request has been made to synchronize computers with Cloud Account:Amazon", "EventID":4947, "EventType":"SystemEvent", "LogDate":"2014-10-29T13:13:38.500Z", "ManagerNodeID":41, "ManagerNodeName":"192.168.0.1", "Number":1906, "Origin":3, "OriginString":"Manager", "Severity":1, "SeverityString":"Info", "Tags":"", "TargetID":1, "TargetName":"Amazon - US East (Virginia)", "TargetType":"Cloud", "TenantID":1984, "TenantName":"Planet Express", "Title":"Cloud Provider Synchronization Requested" }
以下是完整性监控事件的示例:
{ "Change":4, "ChangeString":"Renamed", "Description":"No description is available.", "EventID":2187499, "EventType":"IntegrityEvent", "HostAgentVersion":"9.0.0.883", "HostAssetValue":1, "HostGroupID":2, "HostGroupName":"Intranet", "HostID":2, "Hostname":"hr_data2", "HostOS":"Microsoft Windows Server 2008 R2", "HostSecurityPolicyID":9, "HostSecurityPolicyName":"Windows Server 2008", "Key":"C:\\Windows\\system32\\explorer.exe -\u003e C:\\Windows\\system32\\explorer2.exe", "LogDate":"2014-10-29T13:18:08.380Z", "Origin":0, "OriginString":"Agent", "Process":"", "Rank":50, "Reason":"1002777 - Microsoft Windows - System configuration file modified", "Severity":3, "SeverityString":"High", "Tags":"", "TenantID":0, "TenantName":"Primary", "Type":"File" }
配置示例
本部分提供了几个适用于不同场景的 SNS 配置示例。
将所有关键入侵防御事件发送到 SNS 主题
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "NumericEquals":{ "Severity":4 }, "StringEquals" :{ "EventType":"PayloadLog" } } } ] }
将不同事件发送到不同的 SNS 主题
以下示例显示了将所有系统事件发送到一个主题并将所有完整性监控事件发送到另一个主题。
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:systemEventsTopic", "Condition":{ "StringEquals":{ "EventType":"SystemEvent" } } }, { "Topic":"arn:aws:sns:us-east-1:012345678901:integrityTopic", "Condition":{ "StringEquals":{ "EventType":"IntegrityEvent" } } } ] }
多个语句与多个条件
如果为同一个 SNS 主题创建多个语句,则在评估这些语句时会将其视为由 "or" 联接。如果语句包含多个条件,则在评估这些条件时会将其视为由 "and" 联接。
多个语句
以下是不正确做法的示例。第一个语句指示转发除“已保存系统设置”以外的所有事件。第二个语句指示转发所有“已保存系统设置”事件。结果是转发所有事件,因为任何事件都与第一个或第二个语句中的条件匹配:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringNotLike" :{ "Title" :"System Settings Saved" } } }, { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringLike":{ "Title":"System Settings Saved" } } } ] }
多个条件
以下是不正确做法的另一个示例。第一个条件指示转发除“已保存系统设置”以外的所有事件。第二个条件指示转发所有“已保存系统设置”事件。结果是不转发任何事件,因为没有任何事件与第一个和第二个语句中的条件匹配:
{ "Version":"2014-09-24", "Statement":[ { "Topic":"arn:aws:sns:us-east-1:012345678901:myTopic", "Condition":{ "StringNotLike" :{ "Title" :"System Settings Saved" }, "StringLike" :{ "Title":"System Settings Saved" } } } ] }