跳转到内容

集群手册/OSSEC

来自维基教科书,为开放世界提供开放书籍

保证计算机集群的安全是一个至关重要的议题。这样的集群通常存在容易被利用的漏洞,从而使其关键部分受到损害。因此,需要一个监督软件来监控系统内部和网络中的活动。此外,它应该提醒系统管理员,更重要的是,它应该阻止攻击以保护系统。
OSSEC 就是这样一款软件。它是一个基于主机的入侵检测系统 (HIDS),可以监控计算机系统的所有内部和网络活动。这包括监控关键系统文件(文件完整性检查,第 7.1 节)和分析提供有关系统活动信息的日志文件(日志监控,第 7.3 节)。日志文件包括每个程序、服务和系统本身的协议,因此可以跟踪正在发生的事情。这有助于发现系统上执行的非法操作的影响。此外,OSSEC 可以检测秘密安装在系统上的软件以获取有关系统和用户数据的的信息(Rootkit 检测,第 7.2 节)。OSSEC 的另一个功能是主动响应实用程序(第 7.3 节)。每当 OSSEC 识别出攻击时,它会尝试阻止攻击(例如,通过阻止 IP 地址)并向系统管理员发送警报。
为了分析系统中发生的事件,OSSEC 需要一个中央管理器。这通常是计算机集群的主节点,所有程序和服务都安装在那里。被监控的系统是代理,通常是计算机集群的工人。它们实时收集信息并将其转发给管理器进行分析和关联。
在本章中,将解释 OSSEC 的功能——文件完整性检查、Rootkit 检测、日志分析和主动响应。此入侵检测系统的安装(第 7.6 节)包括两个部分。首先,配置 OSSEC 服务器——即计算系统的主节点——其次是配置代理。可以根据需要安装 Web 用户界面 (WUI)(第 7.7 节);它帮助用户查看 OSSEC 服务器在整个系统运行期间收集的所有统计信息。解释了 WUI 的安装(第 7.7.1 节)和功能(第 7.7.2 节)。最后,总结完成本章。

文件完整性检查

[编辑 | 编辑源代码]

文件具有完整性,表示没有对文件进行过修改、添加或删除的非法更改。检查文件完整性可以维护文件的一致性、对其进行保护以及保护与它们相关的数据。检查通常通过比较修改后的文件的校验和与已知文件的校验和来执行。OSSEC 使用两种算法执行完整性检查:MD5 和 SHA1。这是两种广泛使用的哈希函数,它们可以为任意数据块生成哈希值。
OSSEC 服务器存储在系统运行期间计算的所有校验和值。为了检查文件完整性,OSSEC 每隔几个小时扫描一次系统,并计算每个服务器和代理上的文件的校验和。然后,通过将新计算的校验和与存储在服务器上的校验和进行比较来检查修改情况。如果存在重大更改,则会发送警报。
可以指定将要检查的文件。默认情况下检查的文件位于/etc/usr/bin/usr/sbin/bin/sbin。这些目录很重要,因为它们包含对系统至关重要的文件。如果系统受到攻击,这些目录中的文件很可能会首先被更改。

Rootkit 检测

[编辑 | 编辑源代码]

我们使用所有这些系统调用,因为一些内核级 Rootkit 会将文件隐藏在某些系统调用中。尝试的系统调用越多,检测效果就越好。

Rootkit 是一组恶意软件,称为恶意软件,试图在系统上安装程序以秘密监控其活动和用户的活动。Rootkit 隐藏了这种外来软件及其进程的存在,以获取对系统的特权访问权限,尤其是 root 访问权限。这种入侵很难发现,因为恶意软件可以破坏检测软件。
为了检测 Rootkit,OSSEC 使用一个文件,该文件包含一个 Rootkit 数据库和它们使用的文件。它搜索这些文件并尝试对它们执行系统操作(例如,fopen),以便找到内核级的 Rootkit。
很多 Rootkit 使用/dev 目录隐藏它们的文件。通常,它只包含系统所有设备的设备文件。因此,OSSEC 搜索此目录中的奇怪文件。Rootkit 攻击的另一个迹象是拥有 root 访问权限和对其他文件(不属于 root)的写入权限的文件。OSSEC 的 Rootkit 检测会扫描整个文件系统以查找这些文件。
在这些检测方法中,Rootkit 检测执行了许多其他检查。[1]

日志监控和主动响应

[编辑 | 编辑源代码]

OSSEC 的日志分析使用日志文件作为主要信息来源。它检测针对网络和/或系统应用程序的攻击。这种分析是实时进行的,因此每当发生事件时,OSSEC 都会对其进行分析。通常,OSSEC 会监控指定日志文件——这些日志文件通常使用 syslog 作为标准协议——并提取日志字段中的重要信息,例如用户名、源 IP 地址和已调用的程序名称。第 7.5 节将更详细地介绍日志文件的分析过程。
在分析日志文件后,OSSEC 可以使用提取的信息作为触发器来启动主动响应。这些触发器可以是攻击、策略违反或未经授权的访问。OSSEC 然后可以阻止特定主机和/或服务以停止违规。例如,当未经授权的用户尝试通过 ssh 获取访问权限时,OSSEC 会确定用户的 IP 地址并将其列入黑名单以将其阻止。确定用户 IP 地址是 OSSEC HIDS 分析过程的任务(参见第 7.5 节)。

OSSEC 基础设施

[编辑 | 编辑源代码]

图 7.1 描绘了 OSSEC 的重要目录和相应的文件。这些目录包含二进制文件、配置文件、用于解码事件的解码器(参见第 7.5 节)以及日志文件。它们都位于/var/ossec 或安装期间指定的目录中。
此图中列出了部分基本可执行文件。例如,ossec_control 用于在服务器或代理上启动 OSSEC 系统。syscheckd 是用于执行文件完整性检查(第 7.1 节)的程序。要为代理生成和导入密钥(参见第 7.6 节),请使用manage_agents
OSSEC 的所有主要配置,例如设置电子邮件通知,都在ossec.conf 中完成。OSSEC 的元信息(在安装期间指定,参见第 7.6 节)存储在ossec-init.confinternal_options.conf 中。
ossec.log 文件存储 OSSEC 内部发生的所有事件。例如,如果 OSSEC 服务启动或被取消,这将列在ossec.log 文件中。alert.log 记录所有关键事件。

图 7.1:OSSEC 的基础设施。这只是整个基础设施的一部分。

OSSEC HIDS 分析过程

[编辑 | 编辑源代码]

当系统内部发生更改时,需要对这种更改事件的类型进行分类。图 7.2 显示了这种事件的分析过程。它分两个主要步骤执行,称为预解码解码。这些步骤从事件中提取相关信息并评估其严重程度。通过找到与事件匹配的预定义规则来进行此评估。规则在不同的级别(0 到 15)存储事件的严重程度。如果事件被归类为对系统的攻击,则会向管理员发送警报,并且 OSSEC 会尝试阻止攻击(主动响应)。在接下来的部分中,将更详细地解释预解码和解码步骤。

图 7.2:OSSEC 中的事件分析过程 [BC08]。

预解码

[编辑 | 编辑源代码]

预解码步骤仅提取静态信息,例如时间、日期、主机名、程序名称和日志消息。这些是几个常用协议中众所周知的字段。有许多用于计算机数据记录的标准,例如Apple System Log (ASL)syslog,它们使用不同的格式来处理和存储日志消息。但是,OSSEC能够区分这些类型的协议。例如,以下日志消息显示了一个使用ssh命令(syslog标准)的未知用户登录失败。

       Feb 27 13:11:18 master sshd[13030]: Invalid user evil from 136.172.13.56

OSSEC现在提取这些信息并对该消息的字段进行分类。表 7.1 显示了预解码过程中选取的字段及其描述。

表 7.1:预解码 ssh 事件示例。

如前所述,有几种协议以不同的方式存储日志消息。日志消息必须被规范化,以便相同的规则可以应用于不同格式的日志文件。这是下一节将要描述的解码阶段的任务。

解码和规则匹配

[edit | edit source]

在预解码阶段之后,解码步骤提取事件的非静态信息,例如 IP 地址、用户名和类似数据,这些数据可能会随着事件而改变。为了获取这些数据,使用一个特殊的 XML 文件作为预定义和用户定义解码器的集合。它们使用正则表达式与当前事件匹配。解码器由几个选项指定。这些选项定义在哪些条件下执行解码器。首先,解码器由一个<decoder></decoder>标签分隔,其中指定了解码器的名称。在这个标签中,所有可能的选项都可以应用于完全细化解码器的特性。当使用 syslog 时,必须设置程序名称,以便仅当程序名称出现在日志消息中时才调用解码器。另一个重要的选项是<prematch></prematch>标签。它可以选择与程序名称一起用作附加条件,或作为非 syslog 消息的单一条件。要提取非静态信息,解码器需要一个<regex></regex>标签。该标签描述一个正则表达式,它定义了一个匹配日志消息中包含的信息的模式。由于消息中有几个字段,因此必须指定字段的顺序,以便 OSSEC 知道如何解析消息的字段。这是通过<order></order>标签完成的。
清单 7.1 给出了一个用于 ssh 事件的解码器示例。它提取了一个用户的名字和源 IP 地址,该用户试图通过 ssh 无权访问,这与给出的示例相对应。

清单 7.1 ssh 解码器示例。
<decoder name="ssh-invalid-user">
         <program_name>sshd</program_name>
         <prematch>^Invalid user</prematch>
         <regex>(\S+) from (\S+)$</regex>
         <order>user,srcip</order>
</decoder>

只有当在预解码阶段提取了程序名称sshd时,才会调用此解码器。此外,必须满足 prematch 标签。在此示例中,prematch 选项在日志消息中搜索表达式Invalid user。当此模式匹配日志中的内容时,将调用正则表达式以提取用户和源 IP 地址。因此,只有与查找与无效 ssh 成功关联的规则相关的解码器才会被执行。
还有许多其他选项可以指定解码器。在这里,解释了最重要的几个。有关解码器选项的更多说明,请参阅 OSSEC 的主页[2]
现在,OSSEC 拥有了找到与事件匹配的规则所需的所有信息。规则通常以 XML 文件的形式存储在/var/ossec/rules中。规则由一个唯一的数字和一个严重程度级别标识。根据此级别,OSSEC 决定是否应该将此事件升级为警报。
存在两种类型的规则:原子复合。原子规则基于单个事件,而复合规则与多个事件相关。例如,ssh 事件可以在单个 ssh 身份验证失败后被升级为警报(原子),或者可以被暂停,直到三个身份验证失败(复合)。

设置和配置

[edit | edit source]

在开始在系统上设置 OSSEC 之前,系统上应该可以使用 C 编译器和 makefile 工具,因为 OSSEC 是用 C 编写的,并且为了编译源代码,使用了 Makefile。OSSEC 的源代码可在 OSSEC 的主页上获得,并且可以通过 wget 命令简单下载(清单 7.2)。

清单 7.2 获取 OSSEC 源代码。

wget http://www.ossec.net/files/ossec-hids-2.6.tar.gz 解压缩归档文件后,并切换到解压缩的目录,通过执行安装脚本install.sh(清单 7.3)开始设置。随后,用户将被引导完成设置过程。

清单 7.3 解压缩归档文件并开始安装。

tar -xvf ossec-hids-2.6.tar.gz cd ossec-hids-2.6 ./install.sh OSSEC 是一个基于主机的入侵检测系统,这意味着如果几个计算机是集群的一部分,并且所有计算机都必须被监控,那么 OSSEC 必须安装在所有计算机上。此外,必须声明管理其他计算机所有数据的服务器,即代理。根据计算机的预期使用类型(服务器或代理),OSSEC 将以不同的方式安装和配置。下面将分别介绍服务器和代理的设置。所有安装都在 Ubuntu Server 12.04 上执行。

服务器设置

[edit | edit source]

服务器的设置很简单。只需要按照安装脚本的说明进行操作,其中包括

  1. 设置语言(默认语言为英语)
  2. 选择Server作为安装类型
  3. 选择 OSSEC 将安装到的目录(默认目录为/var/ossec
  4. 配置电子邮件通知(默认情况下没有电子邮件通知,有关如何设置电子邮件通知,请参见第 7.6.1 节)
  5. 启用/禁用完整性检查、rootkit 检测引擎、主动响应和防火墙丢弃响应(默认情况下已启用)
  6. 将 IP 地址添加到白名单(默认情况下,白名单中只有本地主机 IP 地址)
  7. 启用/禁用远程 syslog(允许将 syslog 消息从一个主机重定向到另一个主机)

当设置成功时,安装脚本将提供一些最终信息。如果设置不成功,脚本将在编译输出的末尾显示“Building error. Unable to finish the installation”。可能是缺少先决条件;OSSEC 主页可能会有帮助。
OSSEC 将使用位于 OSSEC 二进制文件目录的 ossec-control 命令启动(清单 7.4)。此命令将启动在设置中指定的 सभी सेवाएँ,例如 rootkit 检测和完整性检查。

清单 7.4 启动 OSSEC。

/var/ossec/bin/ossec-control start 每当启动服务器时,OSSEC 将自动启动。OSSEC 处于活动状态,直到用户使用 ossec_control stop 命令停止它。
建议不要与 OSSEC 并行运行任何其他入侵检测系统。它们可能相互影响。例如,OSSEC 可能会将其他入侵检测及其操作识别为对系统的“攻击”,因为它修改了 OSSEC 监控的文件。

电子邮件通知

一些 SMTP 服务器允许从运行 OSSEC HIDS 的主机中继电子邮件。因此,最好安装一个本地邮件服务器。为此,所有设置都在 OSSEC 服务器上完成。首先需要一个邮件服务器,例如postfix[3] 为了处理电子邮件,必须安装一个电子邮件程序。bsd-mailx 是一个基于命令行的电子邮件程序,它是一个可行的选择(清单 7.5)。

清单 7.5 安装邮件服务器和电子邮件程序。

sudo apt-get install postfix sudo apt-get install bsd-mailx 最后,OSSEC 需要知道将电子邮件发送到哪里。在主配置文件ossec.conf中,必须添加以下条目

清单 7.6 在 OSSEC 中配置电子邮件通知。
<global> 
    <email_notification>yes</email_notification> 
    <email_to>root@master</email_to> 
    <smtp_server>localhost</smtp_server> 
    <email_from>ossec-notification</email_from> 
</global>

这将启用电子邮件通知。所有电子邮件都将发送到用户root,该用户在 localhost(此示例中的 OSSEC 服务器master)上拥有一个帐户,邮件服务器已安装在该帐户上。<email_from></email_from> 标签指定电子邮件通知的发送者。
在基本配置之后,可以个性化电子邮件通知。默认情况下,OSSEC 将为每个警报发送一封电子邮件。这可以通过设置电子邮件警报级别来自定义。事件的严重程度等级从 0 到 15 不等。清单 7.7 显示了如何设置电子邮件警报级别,这意味着事件必须具有的最低级别,以便发送电子邮件。在上面的示例(清单 7.6)中,只有当事件的严重程度级别大于 7 时,才会发送电子邮件。相同的选项可以指定用于写入日志文件。在下面的示例(清单 7.7)中,每个事件都将被记录并保存在日志文件中,因为日志警报级别被设置为可能的最小严重程度级别 0。这两个选项都位于主配置文件ossec.conf中的<alert></alert>标签中。

清单 7.7 设置电子邮件警报级别。
<alerts>
    <log_alert_level>0</log_alert_level>
    <email_alert_level>7</email_alert_level>
</alerts>

代理设置

[edit | edit source]

在安装代理之前,服务器需要知道它要从哪些代理收集数据。代理必须能够向服务器标识自己,并且服务器必须能够验证代理的身份。
服务器和代理之间的通信由密钥管理处理。密钥在服务器上生成,然后导入到每个代理上。OSSEC 提供了一个工具来执行密钥管理:manage_agents(清单 7.8)。首先,必须在服务器上执行此工具以添加代理。

清单 7.8 启动密钥管理。

/var/ossec/bin/manage_agents 启动该工具后,有五个选项可供选择

(A)
用于添加代理
(E)
用于提取代理的密钥
(L)
用于列出已添加的代理
(R)
用于删除代理,以及
(Q)
退出服务

添加代理(选项 (A))时,系统会提示用户输入代理的主机详细信息和标识符。这包括代理的名称、IP 地址和一个三位数的唯一标识符(清单 7.9)。

清单 7.9 添加代理。
- Adding a new agent (use '\q' to return to the main menu).
  Please provide the following:
  * A name for the new agent: worker1
  * The IP address of the new agent: 10.0.0.1
  * An ID for the new agent[001]: 001
Agent information:
  ID: 001
  Name: worker1
  IP Address: 10.0.0.1
Confirm adding it? (y/n): y
Agent added.

然后,需要使用安装脚本分别在每个代理上安装 OSSEC。设置过程与服务器的设置非常相似(参见第 7.6.1 节),唯一的区别是代理需要知道服务器的 IP 地址(清单 7.10)。这里需要的是服务器在子网中的 IP 地址(提示:ifconfig eth1)。

清单 7.10 在代理端设置 OSSEC。唯一的区别是设置服务器的 IP 地址。
3 - Configuring the OSSEC HIDS.
    3.1 - What's the IP Address of the OSSEC HIDS server?: 10.0.0.250
        - Adding Server IP 10.0.0.250

安装完成后,需要为每个代理生成一个密钥。这可以通过在服务器端再次启动 manage_agents 工具,然后选择选项 (E) 提取代理密钥来完成。选择一个代理的三位数字标识符,就会生成一个密钥(清单 7.11)。该密钥可以复制到剪贴板。

清单 7.11 为代理(worker1)生成密钥。
Available agents:
    ID: 001, Name: worker1, IP: 10.0.0.1
Provide the ID of the agent to extract the key: 001
Agent key information for '001' is:
    MDAxIG1hcnMgMTkyLjE2OC42NS40MCBmY2UzMjM4OT
    c1ODgzYTU4ZWM3YTRkYWJiZTJmMjQ2Y2ViODhmMzlm
    YjE3MmI4OGUzMTE0MDczMzVhYjk2OTRh
** Press ENTER to return to the main menu.

要导入密钥,需要在相应的代理上执行 manage_agents 工具。只有两个选项可以选择:(I) 从服务器导入密钥,以及 (Q) 退出服务。选择选项 (I) 后,将密钥值从剪贴板粘贴到提示符 Paste it here 后的终端中。该工具会提供一些关于代理的信息,用于验证代理。

清单 7.12 导入在服务器上生成的代理(worker1)的密钥。
Paste it here:
    MDAxIG1hcnMgMTkyLjE2OC42NS40MCBmY2UzMjM4OT
    c1ODgzYTU4ZWM3YTRkYWJiZTJmMjQ2Y2ViODhmMzlm
    YjE3MmI4OGUzMTE0MDczMzVhYjk2OTRh
Agent information:
    ID:001
    Name:worker1
    IP Address:10.0.0.1
    Confirm adding it?(y/n): y
Added.

然后退出服务,并使用 ossec_control restart 重启 OSSEC。当重启成功并连接到服务器后,您可以在代理的日志文件 ossec.log 中找到类似清单 7.13 中的条目。

清单 7.13 代理设置成功。

2007/10/10 23:25:48 ossec-agentd: Connecting to server (<IP-address-server>:1514). 2007/10/10 23:25:48 ossec-agentd(4102): Connected to the server.

OSSEC Web 用户界面

[edit | edit source]

Web 用户界面 (WUI) 可视化所有在 OSSEC 运行期间收集的统计信息。这包括事件、警报、有关防火墙丢弃和日志文件条目的统计信息,以表格形式显示。OSSEC 的基于 Web 的界面使访问统计信息更加方便。
以下部分介绍了如何在 OSSEC HIDS 服务器上设置 WUI 以及 WUI 的主要功能。

设置

[edit | edit source]

WUI 运行在固定的 OSSEC HIDS 服务器上,该服务器收集和管理代理的数据。WUI 不能安装在代理上,因为所有收集到的警报都会发送回 OSSEC HIDS 服务器以进行进一步处理。在安装 WUI 之前,需要满足一些基本先决条件。OSSEC HIDS 服务器需要设置为 HTTP Web 服务器 - 这里选择 apache2 - 并且需要安装一个包含服务器端脚本语言 PHP 解释器的软件包(清单 7.14)。这样,包含包含 PHP 代码的网页的代码就可以由 Web 服务器解释。

清单 7.14 安装 apache 服务器和 php5。

sudo apt-get install apache2 php5 下载并解压缩包含源代码的压缩包后(清单 7.15),将解压缩后的目录移动到 /var/www,以便 Web 服务器可以访问这些文件。

清单 7.15 获取 WUI 源代码。

wget http://www.ossec.net/files/ossec-wui-0.3.tar.gz tar -xvf http://www.ossec.net/files/ossec-wui-0.3.tar.gz 该目录包含一个安装脚本,引导用户完成设置(清单 7.16)。

清单 7.16 解压缩 wui 文件,将其移动到 /var/www 并启动设置。

mv ossec-wui-0.3 /var/www cd /var/www/ossec-wui-0.3 ./setup.sh 安装程序会提示输入用户名和密码(清单 7.17)。之后,安装程序会启动,安装程序会报告设置是否成功。

清单 7.17 安装 WUI。

Setting up ossec ui... Username: schroeder New password: Re-type new password: Adding password for user schroeder ...#Setup output Setup completed successfully. 要完成设置,需要将 Web 服务器用户添加到 ossec 组(清单 7.18)。该用户通常是 Apachewwwwww-data

清单 7.18 将用户 www-data 添加到 ossec 组。

adduser www-data ossec 重启整个系统后,WUI 将在 http://<ip-address-of-webserver>/ossec-wui-0.3/ 上可用。

功能

[edit | edit source]

WUI 提供强大的功能,帮助用户查看系统中发生的事件。图 [fig:overview] 显示主窗口。它概述了可用的服务器和代理、最新修改的文件以及最新事件。可用的代理由其名称和关联的 IP 地址描述。单击相应的代理会显示此信息。如果代理处于非活动状态或无法连接到服务器,则代理名称旁边会显示 Inactive。在图中,名为 worker1 的代理目前处于非活动状态。只有 OSSEC 服务器可用。

图 7.3:WUI 的主窗口。

此外,主窗口还包含四个选项卡,每个选项卡都提供特定的功能。它们分别是:

  • Main,显示主窗口
  • Search,允许搜索收集到的警报
  • Integrity Checking,允许搜索收集到的 syscheck 警报
  • Stats,显示关于收集到的警报的汇总统计信息。

第五个选项卡 About 不提供特殊服务,只是显示有关 WUI 版本及其贡献者的信息。

搜索窗口(图 7.4)提供了一个查询界面,具有许多可能的选项来指定用户要搜索的警报类型。感兴趣的选项可能是警报的最低严重程度级别、类别(例如身份验证控制)和日志格式(例如 sshd)。可以设置特定的搜索时间段。或者,通过选择实时监控,WUI 会显示所有即将发生的事件。
还有更多选项可以减少搜索结果。可以指定规则 ID,以便只显示分配给该规则编号的警报和事件。Pattern 字段搜索事件中通过正则表达式描述的模式。要只显示来自特定代理(例如 worker1)或来自用户帐户(例如 root)的事件,可以使用 LocationUser 字段。当搜索结果太多时,可以使用 Max Alerts 字段限制要显示的警报的最大数量。
当找到结果时,WUI 会将警报类型分为三类:

严重程度细分
警报按其严重程度级别排序
规则细分
通知有关警报的相应规则 ID
源 IP 细分
通知有关警报的相应源 ID,即触发该警报的用户。
图 7.4:搜索 2013 年 2 月 16 日至 2013 年 3 月 25 日期间的警报。只显示最低严重程度级别为 7 的警报。

WUI 还显示了在服务器和所有代理上修改过的文件。单击特定文件,例如图 7.5 中的 /etc/resolv.conf,会提供有关文件位置的更多信息 - 由服务器或代理的名称和目录路径指定 - 以及它何时被修改。

图 7.5:所有代理和服务器的最新修改过的文件,按日期排序。图

图 7.6 显示了特定代理修改过的文件的详细视图。可以通过选择下拉菜单中的一个代理来选择此视图,下拉菜单提供了构成 OSSEC 系统的所有代理。单击 Dump database 会概述该代理已更改的所有文件。

图 7.6:特定代理(worker1)的修改过的文件。配置文件 ossec.confinternal_options.conf 已更改。

图 7.7 显示了选定日期的统计信息。它显示了所有代理的汇总值,按事件的严重程度级别和规则(由其规则 ID 描述)分别排序。此外,它还计算了事件的总数和平均数量,以及有多少事件被归类为警报。

图 7.7:2013 年 3 月 25 日的统计信息。它显示了针对特定事件找到了哪些规则和多少规则,以及以特定严重程度级别找到了多少规则。

事件的表示方式如图 7.8 所示。这种表示方式在主窗口和显示搜索结果时使用。它包含以下信息:显示 OSSEC 代理识别事件的日期和时间。日期和时间戳显示在每个事件的开头。与事件关联的规则 ID(*Rule Id*)链接到有关规则的信息。点击它将重定向用户到包含规则特定信息的网页。事件的严重程度级别也显示在此表示中(*level*)。*Location* 字段提供有关报告事件的代理以及与事件关联的文件的信息。*Description* 以简短的描述总结事件。

图 7.8:OSSEC WUI 中的事件表示。

本章介绍了 OSSEC。OSSEC 旨在成为监控计算机集群的强大工具。它包括文件完整性检查、日志监控、主动阻止攻击和 rootkit 检测等功能。OSSEC 使用特殊分析来检查日志文件。日志消息分两步处理。首先介绍了预解码(第 7.5.1 节),然后解释了解码步骤(第 7.5.2 节)。在解码步骤中,使用 XML 文件从事件中提取特定信息。
OSSEC 的设置分为两部分解释:服务器安装(第 7.6.1 节)和代理安装(第 7.6.2 节)。对于代理安装,生成密钥以使服务器和代理之间能够通信非常重要。服务器安装包括配置本地电子邮件通知(第 7.6.1 节)。这是必要的,因为许多 SMTP 服务器不接受从 OSSEC 服务器发送的消息。
OSSEC 提供一个可选功能:Web 用户界面。第 [sec:wui] 节解释了它的安装(包括将 OSSEC 服务器配置为 Apache Web 服务器)和功能。
OSSEC 的基本配置及其所有规则和解码器实际上提供了对系统中可能发生的已知事件的有用检测。但是,可以使用自定义规则来改进 OSSEC 的功能。由于这超出了本报告的范围,因此此处没有描述。对于进一步的研究,通过定义自己的规则,调整 OSSEC 的功能以适应当前计算机集群的特性会很有趣。为此,必须分析在实际计算机集群中通常发生的事件。主要目标是创建有用且合适的解码器和规则。

参考文献

[编辑 | 编辑源代码]
  1. http://www.ossec.net/doc/manual/rootcheck/manual-rootcheck.html
  2. http://www.ossec.net/
  3. http://www.postfix.org/
华夏公益教科书