定义日志审查规则以在策略中使用

OSSEC 日志审查引擎已集成到趋势科技服务器深度安全防护系统客户端中,并为趋势科技服务器深度安全防护系统提供了审查由计算机上运行的操作系统和应用程序生成的日志和事件的功能。趋势科技服务器深度安全防护系统管理中心附带一组您可以向计算机或策略分配的标准的 OSSEC 日志审查规则。如果没有符合您要求的现有规则,那么您还可以创建定制规则。

趋势科技发布的日志审查规则不可编辑(虽然可对其进行复制,然后再编辑副本)。
无法删除已分配给一台或多台计算机或属于策略的日志审查规则。

在本文中:

创建新的日志审查规则

  1. 在趋势科技服务器深度安全防护系统管理中心中,转至策略 > 通用对象 > 规则 > 日志审查规则
  2. 单击新建 > 新建日志审查规则
  3. 常规选项卡中,输入规则的名称和可选描述。
  4. 您可以在内容选项卡中定义规则。定义规则最简单的方法是选择基本规则并使用所提供的选项定义规则。如果需要进一步进行定制,您可以选择定制 (XML) 以切换到所定义的规则的 XML 视图。请注意,如果您切换回“基本规则”视图,您在定制 (XML) 视图中所做的任何更改将会丢失。(有关使用基于 XML 的语言编写自己的日志审查规则的更多帮助,请查阅 OSSEC 文档或联系您的支持提供商。)

    在基本规则模板中可使用这些选项:

    规则 ID:规则 ID 是规则的唯一标识符。OSSEC 将 100000 - 109999 定义为用户定义规则的空间。(趋势科技服务器深度安全防护系统管理中心将使用新的唯一规则 ID 预填充该文本框。)

    级别:向级别分配规则。零 (0) 表示该规则从不记录事件,尽管可能触发监控该规则的其他规则。(请参阅下面的依赖关系部分。)

    组:还可以将该规则分配给一个或多个以逗号分隔的组。这可以在使用依赖关系时变得有用,因为您可以创建在触发某个规则时即触发的规则或者创建属于特定组的规则。

    规则描述:(可选)规则的描述。

    特征码匹配:这是规则将要在日志中查找的特征码。如果匹配,将触发该规则。特征码匹配支持正则表达式或简单的字符串特征码。“字符串特征码”特征码类型比 RegEx 快,但它仅支持三种特定操作:

    • ^(插入符号):指定文本的开头
    • $(美元符号):指定文本的结尾
    • |(管道符):在多个特征码之间创建 "OR"

    有关日志审查模块使用的正则表达式语法的信息,请参阅 http://www.ossec.net/doc/syntax/regex.html

    关联:设置对其他规则的依赖关系将导致在触发本区域中指定的规则时,您的规则仅记录事件。

    频率是指触发规则前在指定的时间帧内必须匹配的次数。

    时间帧是一个时间段(以秒为单位),在该时间段内,规则必须触发一定的次数(上述频率)才能记录事件。

  5. 内容选项卡仅针对您自己创建的日志审查规则显示。而趋势科技发布的日志审查规则具有一个显示日志审查规则的配置选项(如果有)的配置选项卡。
  6. 文件选项卡中键入规则要监控的文件的完整路径并指定文件的类型。
  7. 选项选项卡的“警报”部分,选择此规则是否在趋势科技服务器深度安全防护系统管理中心中触发警报。

    仅在规则中写入了“多个规则”时才使用警报最低严重性设置(如果使用“基本”模板,可能无法执行某些操作)。但是,如果在使用“基本”模板创建规则后,编辑规则的 XML 并向具有不同严重性级别的 XML 中添加其他规则,则可以使用“警报最低严重性级别”设置来设置要触发警报的多个规则的最低严重性。

  8. 已分配给选项卡列出了正在使用此日志审查规则的策略和计算机。由于您正在创建新的规则,因此它还没有进行分配。
  9. 单击确定。规则已准备好分配到策略和计算机。

解码器

日志审查规则由要监控更改的文件列表和触发规则要满足的一组条件组成。当日志审查引擎在受监控日志文件中检测到更改时,将由解码器解析该更改。解码器将原始日志条目解析为以下文本框:

  • log:事件的消息部分
  • full_log:整个事件
  • location:日志的来源
  • hostname:事件源的主机名
  • program_name:程序名称。它取自事件的 syslog 标头
  • srcip:事件内的源 IP 地址
  • dstip:事件内的目标 IP 地址
  • srcport:事件内的源端口号
  • dstport:事件内的目标端口号
  • protocol:事件内的协议
  • action:在事件内采取的操作
  • srcuser:事件内的发起用户
  • dstuser:事件内的目标用户
  • id:解码为来自事件的 ID 的任意 ID
  • status:事件内的已解码状态
  • command:在事件内调用的命令
  • url:事件内的 URL
  • data:从事件中提取的任意其他数据
  • systemname:事件内的系统名称

规则将检查这些已解码数据,查找与规则中定义的条件相匹配的信息。

如果匹配项的严重性级别足够高,则可以执行以下任意操作:

  • 可发出警报。(可在日志审查规则属性窗口的选项选项卡上进行配置。)
  • 可将事件写入 syslog。(可在管理 > 系统设置 > SIEM 选项卡上的系统事件通知区域中进行配置。)
  • 可将事件发送至趋势科技服务器深度安全防护系统管理中心。(可在策略或计算机编辑器 > 设置 > SIEM 选项卡上的日志审查事件转发区域中进行配置。)

子规则

单个日志审查规则可包含多个子规则。这些子规则有两种类型:原子或复合。原子规则评估单个事件,而复合规则检查多个事件并可评估事件间的频率、重复和关联。

必须在 <group></group> 元素内定义每个规则或规则分组。属性名称必须包含希望成为该组一部分的规则。在以下示例中,已表明组包含 syslog 和 sshd 规则:

<group name="syslog,sshd,"> </group>
请注意组名中的尾随逗号。如果要使用 <if_group></if_group> 标记有条件地将其他子规则附加到此规则,则需要使用尾随逗号。
将一组日志审查规则发送到客户端之后,客户端上的日志审查引擎将从每个分配的规则中提取 XML 数据,并将这些数据组合到本质上为单个的长日志审查规则中。某些组定义对于趋势科技编写的所有日志审查规则是通用的。为此,趋势科技提供了名为“缺省规则配置”的规则,该规则定义这些组并始终随其他趋势科技规则一起分配。(如果您选择一个规则进行分配且未选择“缺省规则配置”规则,将出现一条通知,告知您将自动分配此规则。)如果您创建了自己的日志审查规则,并在未分配任何趋势科技编写的规则的情况下将其分配给计算机,则必须将“缺省规则配置”规则的内容复制到新规则中,或者同时选择“缺省规则配置”规则以将其分配给计算机。

规则、ID 和级别

一个组可包含所需的任意数量的规则。规则使用 <rule></rule> 元素定义,且必须至少包含两个属性,即 idlevelid 是该特征的唯一标识符,level 是警报的严重性。在以下示例中,创建了两个规则,每个规则都具有不同的规则 id 和级别:

<group name="syslog,sshd,"> <rule id="100120" level="5"> </rule> <rule id="100121" level="6"> </rule> </group>
定制规则的 ID 值必须大于等于 100,000。

可以使用 <group></group> 标记在父组内定义其他子组。该子组可引用下表列出的任意组:

组类型 组名 描述
侦察 connection_attempt
web_scan
recon
连接尝试
Web 扫描
常规扫描
认证控制 authentication_success
authentication_failed
invalid_login
login_denied
authentication_failures
adduser
account_changed
成功
不成功
无效
拒绝登录
多次不成功
添加用户帐户
更改或移除用户帐户
攻击/滥用 automatic_attack
exploit_attempt
invalid_access
spam
multiple_spam
sql_injection
attack
virus
蠕虫病毒(无目标性攻击)
入侵特征码
无效访问
垃圾邮件
多封垃圾邮件
SQL 注入
常规攻击
检测到病毒
访问控制 access_denied
access_allowed
unknown_resource
firewall_drop
multiple_drops
client_misconfig
client_error
拒绝访问
允许访问
访问不存在的资源
防火墙丢弃
多个防火墙丢弃
客户端配置错误
客户端错误
网络控制 new_host
ip_spoof
检测到新主机
可能的 ARP 欺骗
系统监控 service_start
system_error
system_shutdown
logs_cleared
invalid_request
promisc
policy_changed
config_changed
low_diskspace
time_changed
服务启动
系统错误
关闭
日志已清除
无效的请求
接口已切换至混杂模式
策略已更改
配置已更改
磁盘空间不足
时间已更改
如果启用事件自动标记,将使用组名标记事件。趋势科技提供的日志审查规则使用转换表将组更改为更为用户友好的版本。因此,例如,"login_denied" 将显示为“拒绝登录”。定制规则将按在规则中显示的组名列出。

描述

包含 <description></description> 标记。如果触发了规则,将在事件中显示描述文本。

<group name="syslog,sshd,">
	<rule id="100120" level="5">
		<group>authentication_success</group>
		<description>SSHD testing authentication success</description>
	</rule>
	<rule id="100121" level="6">
		<description>SSHD rule testing 2</description>
	</rule>
</group>

解码为

<decoded_as></decoded_as> 标记指示日志审查引擎仅在已由指定解码器解码日志时应用规则。

<rule id="100123" level="5">
	<decoded_as>sshd</decoded_as>
	<description>Logging every decoded sshd message</description>
</rule>
要查看可用解码器,请转至日志审查规则页面,然后单击解码器。右键单击 1002791-缺省日志解码器,然后选择属性。转至配置选项卡,然后单击查看解码器

匹配

要在日志中查找特定字符串,请使用 <match></match>。下面是一个 Linux sshd 密码不成功日志:

 Jan 1 12:34:56 linux_server sshd[1231]:Failed password for invalid user jsmith from 192.168.1.123 port 1799 ssh2

使用 <match></match> 标记搜索 "password failed" 字符串。

<rule id="100124" level="5"> <decoded_as>sshd</decoded_as> <match>^Failed password</match> <description>Failed SSHD password attempt</description> </rule>
请注意指示字符串开头的正则表达式插入符号 ("^")。虽然 "Failed password" 未显示在日志的开头,但是日志审查解码器会将日志分解为多部分。(请参阅上面的“解码器”部分。)其中一个部分为“日志”,它是日志的消息部分(相对于作为整个日志的 "full_log")。

下表列出了支持的正则表达式语法:

正则表达式语法 描述
\w A-Z、a-z、0-9 之间的单个字母和数字
\d 0-9 之间的单个数字
\s 单个空格
\t 单个制表符
\p ()*+,-.:;<=>?[]
\W 非 \w
\D 非 \d
\S 非 \s
\. 所有内容
+ 匹配以上任意项中的一个或多个(例如,\w+、\d+)
* 匹配以上任意项中的零个或多个(例如,\w*、\d*)
^ 指示字符串的开头 (^somestring)
$ 指定字符串的结尾 (somestring$)
| 指示多个字符串之间的 "OR" 关系

条件语句

规则评估可有条件地基于已被评估为 true 的其他规则。<if_sid></if_sid> 标记指示日志审查引擎仅在标记中标识的规则的求值结果为 true 时对此子规则进行求值。以下示例显示三种规则:100123、100124 和 100125。已使用 <if_sid></if_sid> 标记将规则 100124 和 100125 修改为 100123 规则的子规则:

<group name="syslog,sshd,">
	<rule id="100123" level="2">
		<decoded_as>sshd</decoded_as>
		<description>Logging every decoded sshd message</description>
	</rule>
	<rule id="100124" level="7">
		<if_sid>100123</if_sid>
		<match>^Failed password</match>
		<group>authentication_failure</group>
		<description>Failed SSHD password attempt</description>
	</rule>
 <rule id="100125" level="3"> 
		<if_sid>100123</if_sid>
		<match>^Accepted password</match>
		<group>authentication_success</group>
		<description>Successful SSHD password attempt</description>
	</rule>
</group>

评估的层次结构

<if_sid></if_sid> 标记本质上创建了一组具有层次结构的规则。也就是说,通过在规则中包含 <if_sid></if_sid> 标记,该规则成为 <if_sid></if_sid> 标记所引用的规则的子规则。在对日志应用任何规则之前,日志审查引擎将评估 <if_sid></if_sid> 标记并生成父和子规则的层次结构。

可使用层次结构父/子结构来提高规则的效率。如果父规则未评估为 true,则日志审查引擎将忽略该父规则的子规则。
虽然 <if_sid></if_sid> 标记可用于引用完全不同的日志审查规则中的子规则,但是您应避免这样做,因为这样会使以后查看规则非常困难。

下表显示了可用原子规则条件选项的列表:

标记 描述 注释
match 特征码 匹配事件(日志)的任意字符串。
regex 正则表达式 匹配事件(日志)的任意正则表达式。
decoded_as 字符串 任意预先匹配的字符串
srcip 源 IP 地址 解码为源 IP 地址的任意 IP 地址。使用 "!" 可否定 IP 地址。
dstip 目标 IP 地址 解码为目标 IP 地址的任意 IP 地址。使用 "!" 可否定 IP 地址。
srcport 源端口号 任意源端口(匹配格式)。
dstport 目标端口号 任意目标端口(匹配格式)。
user 用户名 解码为用户名的任意用户名。
program_name 程序名称 从 syslog 进程名称解码的任意程序名称。
hostname 系统主机名 解码为 syslog 主机名的任意主机名。
time 采用
hh:mm - hh:mm 或
hh:mm am - hh:mm pm 格式的时间范围
为触发规则事件必须落入的时间范围。
weekday 周内日期(星期日、星期一、星期二等) 为触发规则事件必须落入的周内日期。
id ID 从事件解码的任意 ID。
url URL 从事件解码的任意 URL。

使用 <if_sid>100125</if_sid> 标记可使此规则基于 100125 规则。将仅针对已匹配成功登录规则的 sshd 消息检查此规则。

<rule id="100127" level="10">
	<if_sid>100125</if_sid>
	<time>6 pm - 8:30 am</time>
	<description>Login outside business hours.</description>
	<group>policy_violation</group>
</rule>

日志条目的大小限制

以下示例采用之前的示例并添加了 maxsize 属性,该属性告知日志审查引擎仅评估字符数少于 maxsize 的规则:

<rule id="100127" level="10" maxsize="2000">
	<if_sid>100125</if_sid>
	<time>6 pm - 8:30 am</time>
	<description>Login outside business hours.</description>
	<group>policy_violation</group>
</rule>

下表列出了可能的原子规则的树状结构选项:

标记 描述 注释
if_sid 规则 ID 将此规则添加为与指定签名 ID 相匹配的规则的子规则。
if_group 组 ID 将此规则添加为与指定组相匹配的规则的子规则。
if_level 规则级别 将此规则添加为与指定严重性级别相匹配的规则的子规则。
description 字符串 规则的描述。
info 字符串 关于规则的附加信息。
cve CVE 编号 要与规则关联的任意常见弱点和漏洞 (CVE) 编号。
选项 alert_by_email
no_email_alert
no_log
指示警报是否应生成电子邮件 (alert_by_email),不生成电子邮件 (no_email_alert),或者不生成任何内容 (no_log) 的附加规则选项。

复合规则

原子规则检查单个日志条目。要关联多个条目,必须使用复合规则。复合规则应将当前日志与已接收的日志相匹配。复合规则需要两个其他选项:frequency 选项指定事件/特征码必须出现多少次后规则才会生成警报,timeframe 选项告知日志审查引擎查看之前日志应追溯到的时间范围(以秒为单位)。所有复合规则都具有以下结构:

<rule id="100130" level="10" frequency="x" timeframe="y">
</rule> 

例如,您可以创建一条符合规则,该规则可在 10 分钟内输入密码 5 次均不成功后生成较高严重性级别的警报。使用 <if_matched_sid></if_matched_sid> 标记,可以指示在所需频率和时间范围内需要出现哪条规则,新规则才会创建警报。在以下示例中,frequency 属性设置为当发现 5 个事件实例时触发,timeframe 属性设置为将时间范围指定为 600 秒。

<if_matched_sid></if_matched_sid> 标记用于定义复合规则将监视的其他规则:

<rule id="100130" level="10" frequency="5" timeframe="600">
	<if_matched_sid>100124</if_matched_sid>
	<description>5 Failed passwords within 10 minutes</description>
</rule>

存在多个可用于创建更详细的复合规则的其他标记。通过这些规则(如下表所示),您可以指定事件的某些部分必须相同。这样您可以优化复合规则并减少误报:

标记 描述
same_source_ip 指定源 IP 地址必须相同。
same_dest_ip 指定目标 IP 地址必须相同。
same_dst_port 指定目标端口必须相同。
same_location 指定位置(主机名或客户端名称)必须相同。
same_user 指定已解码的用户名必须相同。
same_id 指定已解码的 ID 必须相同。

如果想要复合规则在每次认证不成功时都发出警报,您可以将 <if_matched_sid></if_matched_sid> 标记替换为 <if_matched_ group></if_matched_ group> 标记,而不是特定的规则 ID。这使您可以指定一个类别(如 authentication_ failure)来搜索整个基础架构中的认证不成功。

<rule id="100130" level="10" frequency="5" timeframe="600">
	<if_matched_group>authentication_failure</if_matched_group>
	<same_source_ip />
	<description>5 Failed passwords within 10 minutes</description>
</rule>

除了 <if_matched_sid></if_matched_sid><if_matched_group></if_matched_ group> 标记之外,您还可以使用 <if_matched_regex></if_matched_regex> 标记指定正则表达式,以便在接收到日志时搜索日志。

<rule id="100130" level="10" frequency="5" timeframe="600">
	<if_matched_regex>^Failed password</if_matched_regex>
	<same_source_ip />
	<description>5 Failed passwords within 10 minutes</description>
</rule>

实际示例

趋势科技服务器深度安全防护系统包含许多常见和常用应用程序的缺省日志审查规则。通过安全更新,可定期添加新规则。尽管日志审查规则支持的应用程序不断增多,您可能会发现还是需要为不受支持或定制的应用程序创建定制规则。

在本节中,我们将逐步完成 Microsoft Windows Server IIS .Net 平台上托管的定制 CMS(内容管理系统)的创建,并将 Microsoft SQL 数据库作为数据存储库。

第一步是确定以下应用程序日志记录属性:

  1. 应用程序日志记录到什么位置?
  2. 可使用哪个日志审查解码器来解码日志文件?
  3. 日志文件消息的常规格式是怎样的?

对于我们的定制 CMS 示例,答案如下:

  1. Windows 事件查看程序
  2. Windows 事件日志 (eventlog)
  3. 具有以下核心属性的 Windows 事件日志格式:
    • 源:CMS
    • 类别:无
    • 事件:<应用程序事件 ID>

第二步是按应用程序功能确定日志事件的类别,然后将这些类别组织成级联组层次结构以进行审查。并非所有受审查的组都需要生成事件;可将匹配项用作条件语句。对于每个组,确定规则可将其用作匹配条件的日志格式属性。通过审查所有应用程序日志以了解其模式和日志事件的逻辑分组,也可执行此操作。

例如,CMS 应用程序支持将为其创建日志审查规则的以下功能特性:

  • CMS 应用程序日志(源:CMS)
    • 认证(事件:100 到 119)
      • 用户登录成功(事件:100)
      • 用户登录不成功(事件:101)
      • 管理员登录成功(事件:105)
      • 管理员登录不成功(事件:106)
    • 常规错误(类型:错误)
      • 数据库错误(事件:200 到 205)
      • 运行时错误(事件:206-249)
    • 应用程序审计(类型:信息)
      • 内容
        • 已添加新内容(事件:450 到 459)
        • 现有内容已修改(事件:460 到 469)
        • 现有内容已删除(事件:470 到 479)
      • 管理
        • 用户
          • 已创建新用户(事件:445 到 446)
          • 现有用户已删除(事件:447 到 449)

此结构将提供用于创建规则的良好基础。现在,在趋势科技服务器深度安全防护系统管理中心中创建新的日志审查规则。

创建新的 CMS 日志审查规则:

  1. 趋势科技服务器深度安全防护系统管理中心中,转至策略 > 通用对象 > 规则 > 日志审查规则,然后单击新建以显示新建日志审查规则属性窗口。
  2. 为新规则指定名称和描述,然后单击内容选项卡。
  3. 创建新定制规则的最快方法是从基本规则模板开始创建。选择基本规则单选按钮。
  4. 将使用大于等于 100,000 的未使用的 ID 编号(为定制规则保留的 ID)自动填充规则 ID 文本框。
  5. 级别设置为低 (0)
  6. 为规则指定相应的组名。在本例中为 "cms"。
  7. 提供简短的规则描述。

  8. 现在,选择定制 (XML) 选项。您为“基本”规则选择的选项将转换为 XML。

  9. 单击文件选项卡并单击添加文件按钮以添加任意应用程序日志文件和规则将应用到的日志类型。在本例中为 "Application" 和 "eventlog"(作为文件类型)。

    Eventlog趋势科技服务器深度安全防护系统中的独特文件类型,因为不需要指定日志文件的位置和文件名。只需要键入在 Windows 事件查看程序中显示的日志名称。eventlog 文件类型的其他日志名称可能是 "Security"、"System"、"Internet Explorer",或 Windows 事件查看程序中列出的任何其他部分。其他文件类型将需要日志文件的位置和文件名。(C/C++ strftime() 转换说明符可用于匹配文件名。有关一些更有用说明符的列表,请参阅下表。)
  10. 单击确定保存基本规则。
  11. 使用创建的基本规则“定制 (XML)”,可以基于之前确定的日志分组将新规则添加到组中。我们将设置初始规则的基本规则条件。在以下示例中,CMS 基本规则已标识 Source 属性为 "CMS" 的 Windows 事件日志:
    <group name="cms"> 
    	<rule id="100000" level="0">
    		<category>windows</category>
    		<extra_data>^CMS</extra_data>
    		<description>Windows events from source 'CMS' group messages.</description>
    	</rule>
    
  12. 现在可从已标识的日志组生成后续规则。以下示例标识认证和登录成功与不成功,并按事件 ID 进行记录。
    <rule id="100001" level="0">
    	<if_sid>100000</if_sid>
    	<id>^100|^101|^102|^103|^104|^105|^106|^107|^108|^109|^110</id>
    	<group>authentication</group>
    	<description>CMS Authentication event.</description>
    </rule>
    
    <rule id="100002" level="0">
    	<if_group>authentication</if_group>
    	<id>100</id>
    	<description>CMS User Login success event.</description>
    </rule>
    <rule id="100003" level="4">
    	<if_group>authentication</if_group>
    	<id>101</id>
    	<group>authentication_failure</group>
    	<description>CMS User Login failure event.</description>
    </rule>
    <rule id="100004" level="0">
    	<if_group>authentication</if_group>
    	<id>105</id>
    	<description>CMS Administrator Login success event.</description>
    </rule>
    <rule id="100005" level="4">
    	<if_group>authentication</if_group>
    	<id>106</id>
    	<group>authentication_failure</group>
    	<description>CMS Administrator Login failure event.</description>
    </rule>
  13. 现在使用已创建的规则添加任意复合或关联规则。以下示例显示一个高严重性复合规则,该规则适用于 10 秒内发生 5 次重复的登录不成功的情况:
    <rule id="100006" level="10" frequency="5" timeframe="10">
    	<if_matched_group>authentication_failure</if_matched_group>
    	<description>CMS Repeated Authentication Login failure event.</description>
    </rule>
  14. 查看所有规则是否具有相应的严重性级别。例如,错误日志的严重性级别应为 5 或更高。信息性规则的严重性级别较低。
  15. 最后,打开新创建的规则,单击配置选项卡并将定制规则 XML 复制到规则文本框中。单击应用确定保存更改。

将此规则分配给策略或计算机后,日志审查引擎应立即开始审查指定的日志文件。

完整的定制 CMS 日志审查规则:

<group name="cms">
<rule id="100000" level="0"> <category>windows</category> <extra_data>^CMS</extra_data> <description>Windows events from source 'CMS' group messages.</description> </rule>
<rule id="100001" level="0"> <if_sid>100000</if_sid> <id>^100|^101|^102|^103|^104|^105|^106|^107|^108|^109|^110</id> <group>authentication</group> <description>CMS Authentication event.</description> </rule> <rule id="100002" level="0"> <if_group>authentication</if_group> <id>100</id> <description>CMS User Login success event.</description> </rule> <rule id="100003" level="4"> <if_group>authentication</if_group> <id>101</id> <group>authentication_failure</group> <description>CMS User Login failure event.</description> </rule> <rule id="100004" level="0"> <if_group>authentication</if_group> <id>105</id> <description>CMS Administrator Login success event.</description> </rule> <rule id="100005" level="4"> <if_group>authentication</if_group> <id>106</id> <group>authentication_failure</group> <description>CMS Administrator Login failure event.</description> </rule> <rule id="100006" level="10" frequency="5" timeframe="10"> <if_matched_group>authentication_failure</if_matched_group> <description>CMS Repeated Authentication Login failure event.</description> </rule> <rule id="100007" level="5"> <if_sid>100000</if_sid> <status>^ERROR</status> <description>CMS General error event.</description> <group>cms_error</group> </rule> <rule id="100008" level="10"> <if_group>cms_error</if_group> <id>^200|^201|^202|^203|^204|^205</id> <description>CMS Database error event.</description> </rule> <rule id="100009" level="10"> <if_group>cms_error</if_group> <id>^206|^207|^208|^209|^230|^231|^232|^233|^234|^235|^236|^237|^238| ^239^|240|^241|^242|^243|^244|^245|^246|^247|^248|^249</id> <description>CMS Runtime error event.</description> </rule> <rule id="100010" level="0"> <if_sid>100000</if_sid> <status>^INFORMATION</status> <description>CMS General informational event.</description> <group>cms_information</group> </rule> <rule id="100011" level="5"> <if_group>cms_information</if_group> <id>^450|^451|^452|^453|^454|^455|^456|^457|^458|^459</id> <description>CMS New Content added event.</description> </rule> <rule id="100012" level="5"> <if_group>cms_information</if_group> <id>^460|^461|^462|^463|^464|^465|^466|^467|^468|^469</id> <description>CMS Existing Content modified event.</description> </rule> <rule id="100013" level="5"> <if_group>cms_information</if_group> <id>^470|^471|^472|^473|^474|^475|^476|^477|^478|^479</id> <description>CMS Existing Content deleted event.</description> </rule> <rule id="100014" level="5"> <if_group>cms_information</if_group> <id>^445|^446</id> <description>CMS User created event.</description> </rule> <rule id="100015" level="5"> <if_group>cms_information</if_group> <id>^447|449</id> <description>CMS User deleted event.</description> </rule> </group>

日志审查规则严重性级别及其建议使用情况

级别 描述 注释
级别 0 忽略,不执行操作 主要用于避免误报。对这些规则的扫描先于所有其他规则,规则中包含与安全无关的事件。
级别 1 无预定义的使用
级别 2 系统低优先级通知 与安全无关的系统通知或状态消息。
级别 3 成功或授权事件 成功登录尝试、防火墙允许事件等
级别 4 系统低优先级错误 与错误配置或未使用设备或应用程序相关的错误。这些错误与安全无关,通常由缺省安装或软件测试导致。
级别 5 用户生成的错误 丢失密码、拒绝操作等。这些消息通常与安全无关。
级别 6 低关联攻击 表示对系统无威胁的蠕虫病毒或病毒,如攻击 Linux 服务器的 Windows 蠕虫病毒。还包括频繁触发的 IDS 事件和常见错误事件。
级别 7 无预定义的使用
级别 8 无预定义的使用
级别 9 来自无效源的错误 包括以未知用户身份或从无效源登录的尝试。该消息可能与安全有关,尤其是消息重复出现时。还包括有关 adminroot 帐户的错误。
级别 10 多个用户生成的错误 包括多个错误密码、多次登录不成功等。可能表示攻击,也可能只是用户忘记了自己的凭证。
级别 11 无预定义的使用
级别 12 高重要性事件 包括来自系统、内核等的错误或警告消息。可能表示对特定应用程序的攻击。
级别 13 异常错误(高重要性) 常见攻击特征码,如缓存溢出尝试、异常大的 syslog 消息或异常大的 URL 字符串。
级别 14 高重要性安全事件 通常为多个攻击规则关联的结果,表示攻击。
级别 15 攻击成功 误报几率非常小。需要立即引起注意。

strftime() 转换说明符

说明符 描述
%a 缩写的周内日期名称(如 Thu)
%A 完整的周内日期名称(如 Thursday)
%b 缩写的月份名称(如 Aug)
%B 完整的月份名称(如 August)
%c 日期和时间表示(如 Thu Sep 22 12:23:45 2007)
%d 月内某日 (01 - 31)(例如 20)
%H 24 小时制中的小时 (00 - 23)(例如 13)
%I 12 小时制中的小时 (01 - 12)(例如 02)
%j 年内某日 (001 - 366)(例如 235)
%m 以十进制计数的月份 (01 - 12)(例如 02)
%M 分钟 (00 - 59)(例如 12)
%p AM 或 PM 标记(如 AM)
%S 秒 (00 - 61)(例如 55)
%U 周数(第一个星期日为一周的第一天)(00 - 53)(例如 52)
%w 以十进制计数的周内日期(星期日为 0)(0 - 6)(例如 2)
%W 周数(第一个星期一为一周的第一天)(00 - 53)(例如 21)
%x 日期表示(如 02/24/79)
%X 时间表示(如 04:12:51)
%y 年份,后两位数 (00 - 99)(例如 76)
%Y 年份(如 2008)
%Z 时区名称或缩写(如 EST)
%% % 符号(如 %)

可在以下 Web 站点找到更多信息:

www.php.net/strftime
www.cplusplus.com/reference/clibrary/ctime/strftime.html