AlienVault:安全信息管理的未来

作者:Jeramiah Bowling

多年来,安全信息管理(SIM)系统使许多安全管理员的生活更加轻松。SIM 系统组织企业的安全环境,并提供一个通用的界面来管理该环境。今天市面上有许多 SIM 产品在这方面表现良好,但没有哪一款像 AlienVault 的开源安全信息管理(OSSIM)那样雄心勃勃。借助 OSSIM,AlienVault 利用了几个流行的安全软件包的功能,并创建了一种“智能”,可以以大多数 SIM 系统无法做到的独特且可定制的方式转换、分析和组织数据。它使用一种称为关联的过程来动态地做出威胁判断,并实时报告您环境中的风险状态。最终结果是一种设计方法,使风险管理成为一个有组织且可观察的过程,安全管理员和经理都会对此表示赞赏。

在本文中,我将解释如何在一个测试网络中安装一体化的 OSSIM 代理/服务器,添加主机,部署第三方代理,设置自定义安全指令,并快速浏览内置的事件响应系统。除了 OSSIM 服务器,我还将一台基于 CentOS 的 Apache Web 服务器和一台 Windows XP 工作站放置在测试网络中,以观察 OSSIM 与不同系统和其他第三方代理的互操作性。

安装

为了尽可能缩短部署时间,我将 OSSIM 部署在基于 VMware 的虚拟机(VM)上。OSSIM 构建于 Debian 之上,因此您可以将其部署到 Debian 支持的任何硬件上。我使用了 AlienVault 站点提供的可下载安装媒体(ISO 格式,撰写本文时为 2.1 版本),并从该媒体启动了我的虚拟机。

启动时,您将看到一个相当繁忙且略微难以阅读的安装屏幕(图 1)。默认选项是基于文本的安装,但按下向下箭头,您将看到图形安装选项。选择“文本”选项并按 Enter 键。如果您见过 Debian 安装屏幕,那么 OSSIM 安装程序看起来会非常熟悉。设置您的语言偏好并分区您的硬盘驱动器。如果需要,配置您的 Postfix 设置。最后,设置您的 root 密码,并在提示时输入服务器的静态 IP 地址。安装程序将重启机器以完成配置。

AlienVault: the Future of Security Information Management

图 1. 有点难以阅读,但这是所有事情的开始。

从同一网络中的一台机器上打开浏览器,并在 URL 字段中输入 OSSIM 服务器的 IP 地址(图 2)。输入“admin”作为用户名和密码,登录到管理站点。在“配置”→“用户”部分下更改您的密码。登录后,主仪表板视图加载(图 3)。

AlienVault: the Future of Security Information Management

图 2. 主要登录屏幕

AlienVault: the Future of Security Information Management

图 3. 主要仪表板

下一步是添加系统供 OSSIM 服务器监控。首先定义您的本地网络并执行粗略扫描。在“策略”下的“网络”选项卡上,单击“插入新网络”。在提供的字段中输入您的 LAN 信息。如果您没有看到列出的传感器,请使用您的一体化 OSSIM 服务器的主机名和 IP 地址插入一个新的传感器。保持 Nagios 复选框启用,但取消选中 Nessus 复选框(图 4)以减少首次扫描所需的时间。扫描完成后,多个主机应出现在“策略”部分的“主机”选项卡上。OSSIM 在安装过程中安装并自动配置 Nagios 和 ntop,因此您还可以通过访问管理页面的“监控”部分来查看基本的网络信息(图 5)。找到所有主机后,在“策略”下的“主机”部分找到 CentOS Web 服务器,并将其优先级从 1 修改为 5(图 6)。当我在本文后面讨论关联时,您将用到它。

AlienVault: the Future of Security Information Management

图 4. 设置首次网络扫描

AlienVault: the Future of Security Information Management

图 5. Nagios 在后台运行

AlienVault: the Future of Security Information Management

图 6. 更改 Web 服务器的资产值

现在您已经有了一个活跃的 OSSIM 服务器,它使用 snort、Nagios 和 ntop 等被动网络监控器来报告您的测试网络的活动。接下来,让我们添加一些基于客户端的代理,将数据馈送到 OSSIM 服务器。

安装 OSSEC 代理

许多客户端代理可以与 OSSIM 通信,但由于空间限制,我将介绍我认为对安全管理员最有价值的一个:OSSEC。OSSEC 是一个由趋势科技维护的免费主机入侵检测系统(HIDS),它执行多种客户端安全任务,例如日志记录、警报、完整性检查和 rootkit 检测。此外,您的服务器已安装大量用于 OSSEC 的 OSSIM 插件,这些插件几乎可以监控 UNIX/Linux/Windows 系统的任何部分。

首先,让我们在 CentOS Web 服务器上安装 OSSEC。从 OSSEC 网站下载并解压客户端 tar 包。如果您难以找到 OSSEC 代理或任何其他代理,管理页面的“工具/下载”部分提供了指向 OSSIM 支持的第三方代理的链接。接下来,从解压后的 tar 文件夹中运行 install.sh 脚本。验证您的机器信息并选择代理安装选项。接受默认安装目录。输入服务器的 IP 地址(OSSIM 服务器)。运行完整性检查守护进程并启用 rootkit 检测引擎。当被问及是否启用主动响应时,回答“否”。要启动代理,运行

/var/ossec/bin/ossec-control start

现在,从 CentOS Web 服务器,ssh连接到 OSSIM 服务器,并运行以下命令将您的客户端代理添加到 OSSEC 服务器

/var/ossec/bin/manage_agents

选择 A 添加代理,并为其输入一个唯一的名称。添加您的 CentOS Web 服务器的 IP 地址,并为代理指定一个唯一的 ID。默认 ID 通常可以,除非您计划为您的 OSSEC 客户端实施命名约定。输入 Y 确认添加代理。这会将您返回到主菜单。选择 E 提取。输入您要提取的客户端 ID(您分配给 CentOS 服务器的 ID)。从 CentOS Web 服务器上的另一个终端窗口,运行本地 manage_agents 命令。选择 I 导入唯一密钥。将唯一密钥从 SSH 窗口复制并粘贴到 Web 服务器的本地提示符下。输入 Y 确认密钥,然后选择 Q 退出。关闭 SSH 连接,并从本地提示符下,通过运行以下命令重启代理

/var/ossec/bin/ossec-control restart

在您的 XP 客户端上,下载并安装 OSSEC 代理以及 Putty SSH 客户端。完成后,运行 Putty 客户端 SSH 连接到 OSSIM 服务器,并重复相同的 manage_agents 命令以生成并从服务器提取 XP 客户端的唯一密钥。提取后,通过从开始菜单中的 OSSEC 程序组下打开“管理代理”小程序,将其粘贴到 XP 客户端中。

最后,要开始在 OSSIM 中接收 OSSEC 事件,请在 OSSIM 服务器上打开文件 /etc/ossim/ossim_setup.conf,并在 [sensor] 部分添加ossec到以单词 detectors 开头的行的末尾。保存并退出配置文件,并使用以下命令重启您的 OSSIM 服务器shutdown -r now命令。重启后,您应该开始在 OSSIM 中看到 OSSEC 事件。要测试这一点,请重启 XP 机器上的 OSSEC 代理,并查看 OSSIM 管理页面的“事件”→“SIM 事件”部分。您应该看到与 OSSEC 代理相关的消息(图 7)。既然您现在有一个外部数据源进入您的 OSSIM 服务器,让我们看看它是如何消化和分析数据的。

AlienVault: the Future of Security Information Management

图 7. 验证 OSSEC 代理正在与 OSSIM 通信

事件、警报、指令和关联

为了让 OSSIM 解读来自任何来源的数据,它首先必须有一个插件。插件是一个基于 XML 的配置文件,它告诉 OSSIM 如何从特定数据源读取信息以及何时注册安全事件。根据 AlienVault 网站的数据,目前有超过 2,300 个插件可用(有关主要插件的简要列表,请参阅“流行的 OSSIM 插件”侧边栏)。

流行的 OSSIM 插件

一些更流行的 OSSIM 插件包括以下内容

  • Snort

  • Nagios

  • OpenVAS

  • Nessus

  • ntop

  • Nmap

  • OSSEC

  • Passive OS Fingerprinter (p0f)

  • Osiris

  • arpwatch

  • syslog

  • PAM

  • Honeyd

  • Passive Asset Detection System (pads)

  • Cisco—Routers and Pix

  • Multiple firewalls—iptables, sonicwall, monowall and pfsense

  • Web servers—IIS and Apache

  • Windows logs—Snare, OSSEC and ntsyslog

  • OCS-NG—inventory software

事件是插件的本机软件认为足够重要以进行记录或警告的任何发生。OSSIM 中的事件应被视为日志条目。它们不一定表明存在问题,但仍应进行审查。当多个事件以管理员标记为“可疑”的方式发生时,OSSIM 会发出警报。插件也可以将单个事件的设置设置得足够高,以便在单个事件发生时发出警报。用于从多个不同事件触发警报的标准称为指令。在指令中分析多个事件的过程称为关联。关联是 OSSIM 运行的核心。通过关联,管理员可以从大量不同的安全设备中获取数据,并定制指令以减少误报并实时推断威胁数据。

以典型的 IDS(入侵检测系统)设备为例。未经适当调整的 IDS 可能会记录大量误报。但是,使用 OSSIM,您可以创建一个指令,将您的 IDS 事件与 Nessus 中的已知漏洞相关联。通过这样做,您可以减少误报并将有疑问的数据提炼成有价值的安全检查。作为另一个示例,您可以将来自 Nmap 的多次端口扫描与来自 syslog(或稍后我将解释的 OSSEC)的登录失败相关联,以检测入侵。第三个例子是将使用 ntop 的异常网络行为与来自 OSSEC 的 rootkit 检查或来自 Sophos、ClamAV 或 McAfee 的病毒检测相关联,以监控基于客户端的威胁。凭借 OSSIM 可用的插件数量,关联的可能性几乎是无限的。

自定义指令、风险和事件响应

让我们创建一个简单的指令,以便您可以看到关联的实际效果。作为一个示例,让我们使用一个简单的指令来使用两个不同的插件监控对 Web 服务器的可疑访问。为了做到这一点,首先降低您的 OSSEC 插件的值。从 OSSIM 管理页面,转到“配置”下的“插件”部分。滚动表格以找到插件 ID 7010,然后单击“ID”列以编辑插件的值。在结果页面上,将 SID 5503 和 5716 的可靠性值从 5 更改为 1(图 8)。如果您将这些值保留为 5,它们会在规则处理之前发送警报。因为目标是观察关联,所以您需要降低它们。

AlienVault: the Future of Security Information Management

图 8. 调整我们的插件 SID 的可靠性

单击导航窗格“关联”部分下的“指令”链接。从这里,您可以简要了解指令的排序和处理方式。单击页面左上角的“添加指令”行。在结果字段中,输入“未授权访问 Web 服务器”作为名称。在 Id 旁边的空白字段中,输入 101,这会将您的指令放在“通用指令”组中。将优先级设置为 2,然后单击“保存”。在下一页(图 9)上,单击 + 符号以向您的新指令添加规则。在“名称”字段中,键入“来自外部主机的 NMAP 扫描 Web 服务器”。输入 1001 作为插件 ID(snort)。在“插件 Sid”字段中,键入“2000537, 2000545”,然后在“网络”部分的“到”字段中,键入您的 CentOS 服务器的 IP 地址和要列出的端口 22。在“风险”字段中,将“发生次数”设置为 3,“可靠性”设置为 1。将“粘性”字段设置为 True,将“粘性不同”设置为 SRC_IP。单击页面底部的“保存”按钮。

理论上,您有一个指令,当主机对 Web 服务器上的端口 22 运行 Nmap 扫描时,它将发送警报。但是,您还不会收到警报。为了让指令发送警报,指令被触发的风险必须大于 1。

尽管到目前为止我还没有过多谈论风险,但它对于关联的功能至关重要。风险是关联引擎用来确定何时生成警报的主要因素。它是使用代理和管理员分配的一系列主观数值计算的。以数学形式表示,风险公式如下所示

Risk = (priority x reliability x asset) / 25
AlienVault: the Future of Security Information Management

图 9. 测试指令的第一条规则

优先级是 OSSIM 用来确定规则优先级的数字。它在指令级别设置。优先级的值可以是 0–5。0 表示 OSSIM 应忽略警报。值 5 表示 OSSIM 应将其视为严重威胁。可靠性是指规则基于误报的可能性有多可靠。它在单个规则级别设置,如果指令中有多条规则,则可以是累积的。可靠性的可能值为 1–10,它们等同于百分比,因此 6 表示规则在 60% 的时间内是可靠的。资产是表示主机重要性的值。您在本文前面的“策略”部分为您的 CentOS 服务器分配了最高的资产值 (5)。

此时,您的指令下只有一条规则,但没有关联,因此您需要添加另一条规则。单击指令上的 + 符号。将新规则命名为“身份验证失败次数过多”。将插件 ID 设置为 7010 (OSSEC),并将“来自”字段设置为您的 Web 服务器的 IP 地址,因为 OSSEC 代理会将 Web 服务器显示为事件的来源。现在将“发生次数”设置为 4,将“可靠性”设置为 0。单击“保存”。添加第二条规则后,导航到新规则的行,并将鼠标移动到控制指令内规则处理方式的方向箭头上方。向上和向下箭头类似于 AND 语句,这意味着两条规则都必须匹配,而向左和向右箭头将规则彼此嵌套,就像嵌套的 IF 语句一样。将您的第二条规则向右移动。重新打开第二条规则并将可靠性更改为 +2,这将使可靠性比先前处理的规则增加 2(如果满足第一条规则,则为 3)。现在,如果两条规则都满足,则风险将 > 1,并且将生成警报。列表 1 显示了 XML 格式的指令。

列表 1. XML 格式的指令

<directive id="101"
           name="Unauthorized Access to Web Server"
           priority="5">
   <rule type="detector"
         name="NMAP Scan from Foreign host"
         from="ANY"
         to="web.server.ip.address"
         port_from="ANY"
         port_to="22"
         reliability="1"
         occurrence="1"
         plugin_id="1001"
         plugin_sid="2000537,2000545"
         sticky="true"
         sticky_different="SRC_IP">
      <rules>
         <rule type="detector"
               name="Too Many Logins"
               from="web.server.ip.address"
               to="ANY"
               port_from="ANY"
               port_to="ANY"
               reliability="+2"
               occurrence="2"
               time_out="86400"
               plugin_id="7010"
               plugin_sid="5716"/>
      </rules>
   </rule>
</directive>

要生成警报,请登录到 XP 客户端并下载 Nmap。使用 zenmap GUI 和快速扫描选项对 CentOS 服务器运行四次扫描。然后,ssh连接到同一服务器并尝试以 root 用户身份登录,但输入错误的密码五次。您应该在页面顶部的“未解决的警报”链接中看到一个新的警报。访问此链接并找到由您的测试指令触发的警报(图 10)。找到带有您的测试警报的行,然后单击“操作”列中类似于一张纸的图标以打开新的警报事件(图 11)。将弹出一个新窗口,显示有关事件的基本信息,这些信息将用于创建工单。单击“确定”以确认信息,然后将加载完整的工单编辑器。在此页面上添加描述和任何其他相关信息,然后单击“添加工单”按钮。您应该在页面顶部的指示器上看到一个新的“未解决的工单”。要编辑工单,请导航到导航窗格“事件”部分中的“工单”链接。从这里,您可以添加注释、附加文件并更改工单的状态。一旦工单状态设置为“已关闭”,它将不再显示在列表中。尽管相当简单,但此内置工单系统包含满足大多数企业事件响应需求的必要功能。OSSIM 还包含一个知识库,您可以使用它来链接工单和外部文档,这为其事件响应系统增加了另一层深度。

AlienVault: the Future of Security Information Management

图 10. 测试指令生成警报

AlienVault: the Future of Security Information Management

图 11. 由警报生成的新工单

前景无限

这次简短的演练仅仅触及了 OSSIM 的强大功能。它的关联能力和众多插件使其成为传统 SIM 的一个有趣的替代方案。如果考虑到编写自己的插件的能力,您将拥有一个工具,该工具可以为任何环境完全自定义,并且其价值仅受您的创造力限制。OSSIM 的制造商赋予了 SIM 新的智能,希望这将推动该领域的创新,并将安全管理提升到一个新的水平。

Jeramiah Bowling 担任系统管理员和网络工程师已超过十年。他在马里兰州亨特谷的一家区域会计和审计事务所工作,并拥有多项行业认证,包括 CISSP。欢迎您通过 jb50c@yahoo.com 发表评论。

加载 Disqus 评论