OSSIM架构与组成综述
一、背景
如果运维工程师手里没有高效的管理工具支持,就很难快速处理故障。市面上有很多运维监控工具,例如商业版的 Solarwinds、ManageEngine以及WhatsUp等,开源的MRTG、Nagios、Cacti、Zabbix、OpenNMS、Ganglia等。
Sensor Status”查看所添加的监控插件的工作状态,如图6所示。图6 查看Sensor监控插件工作状态
注意:监控器相当于“督战队”,谁(关键服务进程)要是“罢工”了就会在设定的时间内重启进程,这样可以保护关键进程。
UNIX/Linux环境下,大部分系统都安装有SNMP与Syslog工具。如果采集数据的目标系统为Windows,那么考虑使用WMI协议,此时只需要在Windows上进行相关配置,以便能够远程访问,无需安装额外的工具软件。
四、 采集与监控插件的区别
在OSSIM系统的Sensor端包含了采集(Collection)和监控(Monitor)这两类插件统称为安全插件,它们都安装在Sensor上。虽然都称为插件可工作原理却不同,检测插件(Detector)是检测器信息产生后,由代理自动向服务器发送,包括Snort、Apache等。而检测器插件需要主动采集安全设备接口上的信息,这类插件可分为Snort、P0f、Prads、Arpwatch、Apache、SSH、Sudo等。
监控(Monitor)插件,必须由服务器主动发起查询请求。监控插件中定义了需要主动采集的安全设备接口,该模块接收控制中心发出的命令和查询,在OSSIM系统中典型Monitor插件有Ntop、Nmap、Nessus等。读者可在Alienvault控制台的Sensor配置中(Configure Monitor Plugins)查看。OSSIM主要安全插件如表1所示。
表1 OSSIM主要插件分布情况
分类 |
功能 |
插件名称 |
---|---|---|
1 |
访问控制 |
csico-acs、cisco-acs-idm、cisco-asa |
2 |
防病毒 |
Avast、gfi security、mcafee、clamav |
3 |
防火墙 |
fw1-alt、cisco-pix、ipfw、m0n0wall、netscreen-igs、Motorola-firewall、iptables、pf(openbsd项目) |
4 |
HIDS |
Ossec、ossec-single-line Osiris |
5 |
负载均衡 |
Allot、cisco-ace、citrix-netscaler、f5、heartbeat |
6 |
网络监控 |
ntop-monitor、p0f、prads、session-monitor、tcptrack-monitor |
7 |
虚拟化 |
vmware-esxi、vmware-vcenter、vmware-vcenter-sql |
8 |
漏洞扫描 |
Nessus、Nessus-detector、Nessus-monitor |
对OSSIM插件位置的说明:在安装时系统将支持的插件,全部复制到目录/etc/ossim/agent/plugins/目录中,如Nagios插件的扩展名为“.cfg”的文本文件,可以用任何编辑器修改,在每个插件配置文件中最难理解的当属理解正则表达式(RegExp)。OSSIM下主要插件如图7所示。
列如OSSIM代理(ossim-agent)直接读取存储在/var/log/suricata/unified2.alert.1428975051日志。
suricata的报警输出文件是/var/log/suricata/unified2.alert,这是由/etc/suricata/suricata.yaml配置文件在111行 # alert output for use with Barnyard2定义,所以ossim-agent直接读取该文件就能显示在SIEM控制台中。
Agent的主要功能是接收或抓取Plugins发送过来或者生成的日志,经过归一化处理,然后有序地传送到OSSIM的Server,它的功能很复杂,因为它的设计要考虑到如果Agent和Server之间的网络中断、拥堵、丢包等情况。
在免费版的OSSIM系统中,其日志处理大部分情况下不能达到实时,但可以达到准实时(Firm Real-Time),通常会在Agent端缓存一段时间才会发送到Server端去。Agent会主动连接两个端口与外界通信,一个是连接Server的40001端口(在/etc/ossim/agent/config.cfg配置文件的选项[output-server]中端口设置能看出通讯端口为40001),而另一个是连接数据库的3306端口。如图11所示。
图11 日志归一化处理、收集与存储
原始日志被分成若干段填充到相应的域中,这些字段如下:
l date、sensor、interface、plugin_id、plugin_sid、priority、protocol、src_ip、src_port、dst_ip、dst_port
l username、password、filename、userdata1、userdata2、userdata3、userdata4、userdata5、userdata6、userdata7、userdata8、userdata9
其实Sensor的输出数据就是Ossim Server的输入“原料”,我们可在WebUI中查看Sensor的output情况。如图12所示。
九、 代理与插件的区别
初学者常混淆代理和插件的概念,Sensor(传感器)指软件和硬件的传感器被安装在网络中收集和发送数据,而代理是运行在传感器上,用来收集和发送数据到服务器的一段脚本,一个插件需要了解特定系统的日志格式(例如防火墙、IDS),并通过插件来采集数据。
系统中如果启用插件越多,那么采集到网络中各种数据就越全面,在Sensor中加载过多的插件,将会占有OSSIM Server的数据库空间,下面的这条经验值需要读者了解,OSSIM系统中每条事件,约占用1KB存储空间,而1millions的事件量,大约占1.5GB空间。
十、 传感器(Sensor)
传感器(Sensor)俗称探针,用来收集监控网段内主机的信息,它工作在网卡的嗅探模式。
传感器工作在一台Debian Linux主机上,通过ISO镜像安装,对于新手来讲非常容易操作,他的目的是收集信息,发送给OSSIM Server。在一个分布式OSSIM系统平台上,可以有十多个传感器协同工作。传感器可以收集来自多个数据源的数据包,包括来自主机的,也包括来自网络的数据包,另外传感器除了收集数据(比如SPAN,Agent)以提供分析之外,还具有过滤功能可以通过Agent里面的plugin实现过滤冗余和无效数据的功能,已达到减少OSSIM Server端数据量,提高数据速度的效果。举个例子在对于来自同一个IP地址的数据,传感器可以通过模式匹配的方法来判断冗余数据,最终聚合成很少量的数据传送给OSSIM Server。
另外要主机,传感器能够和本地代理(比如Ossec agent,Snare),事件收发器通讯,但传感器之间并不直接通讯。
OSSIM系统中,把Agent和插件构成的一个具有网络行为监控功能的组合称为一个传感器,Sensor的功能范围主要有:
- 入侵检测(最新版已换成支持多线程的Suricata)
- 漏洞扫描(OpenVas、Nmap)
- 异常检测(P0f、Prads、ARPWatch等)
Arpwatch主要监视网络中新出现的MAC地址,它包含1个监视库,名为arp.dat,在OSSIM中位于/var/lib/arpwatch/arp.dat,所以它同样是AIDE监控的对象。
OSSIM具有强大的网络威胁监控,流量监测的功能,但无法将威胁阻断,所以不能将其串联在防火墙链路,最佳方法是作为旁路链接使用,这一点就像部署审计设备一样。
在OSSIM系统的传感器的状态可在Configuration→Deployment→Components→Sensors中查看详情,如图18所示。
参考文献:
1. 李晨光.开源安全运维平台OSSIM最佳实践【M】北京:清华大学出版社,2016.1