开源安全软件搭建信息安全体系☞入侵检测系统HIDS

在之前的博文中介绍了NIDS, IDS就像是我们在网络的关键节点上假设的一双双水汪汪的大眼睛。IDS能帮我们深度检测流过的数据包,针对数据包中的特征来触发告警,并记录日志。同时我们也可以根据资产的重要程度,来实施的捕捉流量包,在帮助我们分析网络流量的同时, 也可以配合合规部门来检查内部人员的网络行为。在NIDS博文里面, 我重点以Snort为例子来介绍NIDS如何在网络中玩耍。我们可以在对Snort的深度理解之后,使用好这个工具。
当我们在使用NIDS的时候还会面临几个解决不了的问题,在这些NIDS鞭长莫及的角落里面,会隐藏一些随时准备攻击我们的威胁。下面我们先来看看那些情况,会影响NIDS的效率:

  • 目前网络流量基本都运行在https或者ssh下,网络层的安全工具不能处理实时解密实时分析实时加密的过程。即使有部分产品支持这个功能,但是整个处理过程效率低下。
  • 有一些流量只存在于同一个vlan内部, 不穿过三层设备。这导致NIDS会遗漏掉部分流量,变成瞪眼瞎。
  • 网络的边界被一次一次的突破,全拜移动设备的大功。无论公司网络设计的多么合理,安全架构的多么硬壳。用户的移动设备拿回了家,用户是可以随便的蹂躏公司的设备,威胁在一次一次的摩擦中入住公司设备。第二天设备一旦接入公司网络,那些小妖精就都跳出来吓唬人。
    以上是NIDS在日常的网络安全防护中面临的一些问题,这不能怪他, 他的职责是守好了大门和小门。针对终端的安全访问问题, 我们就要请出来HIDS。我们在选择终端安全防护产品的时候,有一个基本的原则就是要尽可能的少在PC端安装客户端。我们关注的是网络安全,但是用户关注的是可用性。如果我们用一层一层的安全软件把PC锁死成一块铁蛋,虽然安全了,用户也会跳起来骂祖宗了。
    开源的HIDS产品有很多, 比如OSSEC,Wazuh,还有国产开源的产品驭龙IDS,这里我着重分析一下OSSEC,这个HIDS的大佬, 当然也有人把它称作DER,因为OSSEC也包含一个模块叫做response action,可以根据定义的规则自动执行一些脚本,比如通过防火墙block流量,禁用账号 等等。

一, 优点和核心的功能 key features & benefits开源安全软件搭建信息安全体系☞入侵检测系统HIDS

上面这个图是从OSSEC网站上掳来的,从这个图中我们能了解这个产品的几个有点:

  • OSSEC agent可以运行在很多系统中,比如window是, solaris, linux , HPux, VMware 等。->Multi platform¶

  • 可以收集其他设备发送过来的日志,比如网络设备不能安装agent, 但是可以把日志发送过来做分析,基于分析制定规则。->Agent and agentless monitoring¶

  • 可以发送邮件告警, 有了日志,又能分析日志,基于分析结果发出邮件告警,提醒管理员威胁来了。->Real-time and Configurable Alerts¶

  • 有了自己收集过来的agent的日志,还有外面设备发送过来的日志,定好了规则,接下来就是进行自动响应active response。这个和EDR的功能是最接近的,也是为什么有人称其为EDR。->Active response¶

  • 同时OSSEC服务端运行在Linux上,理所当然可以把各种日志发出去到ELK 或者SIEM系统中进行关自动化关联分析。->Integration with current infrastructure¶

  • OSSEC 可以和Wzui集成,提供web管理页面。->Centralized management¶

  • Rootkit detection,可以自动发现一些恶意脚本。
    当然还有几项功能在这个图中没有展示出来, 我觉得仍然是很赞的。

  • 文件完整性验证,生成文件MD5哈希值。定义对比之前的哈希值来确定文件是否被改动了。

  • 最最值得尝试一下的是,Ossec可以利用CIS标准进行配置扫描。检查设备配置的合规性。->Compliance Requirements¶

二,安装和运行

我不打算在我的博文中详细介绍安装的具体过程,所有开源软件安装的文档都多如牛毛。我再效仿别的博主赘述一下安装过程,知会给大家带来更多的困惑。关于开源软件的安装和排错,大家只要记住两个网址就ok了, 看源网站的文档,看不懂就去百度搜。基本上你遇到的问题, 前人都遇到过。如果不喜欢看文档,自己又有既定基础的,那就看各种日志,总之Ossec安装过程不难。
1, https://www.ossec.net/
2, www.baidu.com
Ossec 还是比较仁义的, 在安装开始的时候提供了语言选择的选项, 可以选择中文。这点可以给英语不好的小伙伴一些帮助。
ossec的所有设置都在ossec/etc/ossec.conf 里面, 内容很多,如果是新手的话, 基本不用动里面的配置。
a)设置邮件告警,提供邮箱地址和SMTP地址信息。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
b) 配置syscheck进行文件完整性扫描的频率和白名单目录,区分Linux和windows目录,默认的扫描频率是每22小时。如果大家真的把Ossec投入生产环境的话, 需要考虑好了扫描时间,扫描对系统性能会有影响。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
c) 配置rootcheck和system audit路径,这里面是ossec最值得称赞的。rootkit的检查配置文件,和system_audit配置文件。这两部分都在下图对应的路径下, 大家可以添加或者删除路径下的文件。我们后面也会拿出来部分的配置文件进行分析,尝试自己定义一些检查规则。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
d) Ossec 的active response功能配置。command就是ossec里面配置的一些脚本, 这些脚本可以根据日志分析结果进行联动, 比如deny一些流量,停用账户等操作。ossec自带的脚本有限,它能提供给我们这样一个框架,就感动的大鼻涕流好几条街(gai)了。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
大家可以在下面的路径里面找到具体的脚本文件:
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
以及具体的脚本内容:
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
e)主动响应部分的配置, 这块需要用到上面提到的command模块,这个里面的主动响应模块是有时间阈值的哦, 过期自动回复。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
active response 模块里面的level是根据rule里面定义的level来的, 大家可以看看rule里面内容的格式:
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
f)配置rule部分的规则,如果有不适用的规则,可以添加或者修改下面的路径:
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
以上就是ossec.conf里面的配置环节, 如果作为一个新手, 没有必要修改里面的内容。Ossec的数据可以录入mysql数据库, 这块我并没有照章执行, 因为我在搭建信息安全体系的时候需要对各个设备有个职责划分。发挥各个工具的长项,因为有的工具虽然提供了某些诱人的功能, 但是从信息安全整体体系搭建上来看,并不能满足整体安全的要求。我计划在稍后的文章中介绍一些SIEM系统,把IDS生成的log都导入SIEM系统 ,进行综合分析。和呼应了我们国家等保的信息安全集中管理的要求,另外还可以实现威胁可视化,或者通过大数据平台进行信息安全的AI分析。

三,OSSEC功能挖掘

Ossec这个工具我比较感兴趣的是合规性扫描还有active response。 关于log 集中管理这块,我还是倾向于让SIEM系统来做。
a)active response这个功能的实现需要依赖几个模块, 一是rule的定义,二是command脚本的编写,最后才是启用active response模块。
1)rule的定义, 类似于Snort的分析。我们学习的最快捷的方式就是模仿,那么我们就找出来一个rule,仔细分析分析如何根据自己公司的实际情况,自定义规则。
ossec给我们准备了如此多的规则,都是xml格式的,具体路径在ossec/rules 下面。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
我们打开一条规则sshd_rules.xml分析一下,ossec规则的格式和要求。这个里面先定义一条主的规则,比如下面的第一条规则rule_id=5700, 下面的规则会首先判断是否触发了第一条规则<if_sid>,也就是否是一条sshd的日志。然后判断日志里面是否存在(match)一条相匹配的字符串, 这个也可以通过正则来匹配。如果都对应上了这个规则的level就是自己定义好的。这个level value也是会在active response里面要引用的。

开源安全软件搭建信息安全体系☞入侵检测系统HIDS
2)自定义active response执行的脚本(command),路径在ossec/active-response/bin下面。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
我们编辑一个脚本看看具体是如何配置的,每一个动作的脚本都包括对应的两部分, 比如deny<->UNdeny. 大家看到的脚本数量不多, 但是基本上够用了, 我们不能过度的依赖规则, 很多时候规则不够灵活,会把公司网络环境搞掉。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
3)关于启用active response的配置,就是在ossec.conf里面配置,由于前文已经描述过了,故不再赘述。
b)关于文件完整性扫描,系统审计扫描和rootkit扫描,这几块是依赖ossec agent_control 模块来执行。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS
1)我们可以使用参数-r -a 对所有活跃的客户端执行上述检查,也可以使用-r来这对特定的客户端执行扫描。
2)扫描的结果会自动回传到服务器的/ossec/queue/rootcheck 或者/ossec/queue/syscheck目录中。
文件完整性扫描结果就是下面这个样子,会有文件的hash值还有扫描的时间。ossec还会对照每次扫描结果的不同,hash值有变化的话会自动生成告警。这个文件完整性扫描的功能有的时候可以及时发现攻击者修改敏感文件比如history,passwd, shadow等等。当然过如果有病毒修改了文件或者生成新的文件,也会生成告警。开源安全软件搭建信息安全体系☞入侵检测系统HIDS
3)systemaudit扫描结果如下,主要是根据ossec.conf的配置, 对照终端配置和cis推荐的配置。我们可以根据结果进行调整配置。这个功能也可以帮助我们完成操作系统的基线建设。
开源安全软件搭建信息安全体系☞入侵检测系统HIDS

四,图形化管理界面

ossec主要是一些命令行的操作, 当然也可以安装一些插件,提供图形化界面。通常这类插件包括analogi和ossec-wui。通常运行在Linux下面的产品我们不推荐安装图形界面,这样会增加系统负担,减慢效率。但是ossec是一个具有如此多功能的一个主机IDS产品。我还是尝试安装了一个web插件, 可以很方便我们进行一些查询操作。具体安装方法很简单, 大家可以去度娘自行学习。

开源安全软件搭建信息安全体系☞入侵检测系统HIDS