OSSIM插件开发实战


由于现有安全设备产生日志格式不统一,故无法直接进行关联分析,在Ossim系统中采取了基于插件过滤的方式对异构安防设备的日志进行采集,OSSIM插件开发,是开发人员的必备技能,下面就对它进行详细讲解。

一、插件配置步骤

经过以上描述,大家了解收集日志的流程,接下来就要建立脚本,步骤如下:

1)新建插件文件,通常复制一个现有的脚本文件,并修改其内容,以符合新的应用程序需求。

2)定义一个通用规则,这是最后的规则来评价,它捕获所有的事件,不能根据特定规则进行分组。

3)去除噪声,OSSIM可以排除某些无关事件子类型的事件被视为噪声,说的简单点就是在IDS/IPS等安全设备上产生的海量重复报警就是噪声

4)通过OSSIM代理注册插件,为了将事件发送到的OSSIM服务器,就要将插件激活,插件的路径必须在代理配置文件中指定。

5)通过OSSIM Server注册插件,以让服务器知道事件的优先级和可靠性价值的事件,就必须在Server端也注册插件。

6)在Server端激活插件,重启OSSIM Server进程

#/etc/init.d/ossim-server restart

7)在Agent代理端激活插件,重启OSSIM Agent进程

#/etc/init.d/ossim-agent restart

二、插件导入

假设有一段导出的SQL文件,其中包含有可执行SQL语句。例如将MySQL数据库备份到test.sql文件里,就可以用下面方法进行还原:

#mysql < test.sql

可以在MySQL的提示符下用SOURCE命令来加载 SQL文件。但如果压缩了SQL文件怎么做还原呢?是不是要先解压缩在加载呢?例如:

#gunzip –c test.sql.gz |mysql

OSSIM 在安装后期通过一些SQL语句集中导入插件,导入完毕放置在/usr/share/doc/ossim-mysql/contrib./plugins/目录下,扩展名为sql.gz,如果发现某些插件需重新导入数据库可以先用gunzip命令解压sql.gz文件,再使用“ossim-db<file.sql”方式导入。如果是新插件怎么办?就复制一个功能类似插件,然后修改SQL代码,在导入数据库。或许会思考,如果只还原单独的表(例如表asset)又会怎样?看看如下操作:

#grep ‘INSERT INTO `asset`’ test.sql |mysql test

或者文件是压缩的:

#gunzip –c test.sql.gz |grep ‘INSERT INTO`asset`’|mysql test

注意test 代表实例数据库名称。一旦MySQL加载完数据,gunzip就会自动退出。

根据《开源安全运维平台-OSSIM最佳实践》第七章插件注册讲解的内容,我们修改/etc/ossim/agent/config.cfg[plugins]中加入插件,如图所示。

myexample=/etc/ossim/agent/plugins/myexample.cfg

后打开ossim-setup配置程序选择:ConfigureSensorSelect DataSources,找到myexample插件选中后,保存退出。

wKiom1clSW-SLUAgAAEfmjbZDWw299.jpg

wKioL1clSnuw4JrsAACLyyjrD9Y274.jpg

当看到上面这些信息是说明插件已成功添加,下面要重启服务即可生效。

#/etc/init.d/ossim-server restart   \\重启ossim server

#/etc/init.d/ossim-agent restart    \\重启agent

最后可以到SIEM控制台下查看该插件采集到的日志,为了使大家有更直观的体验特在最新版OSSIM中制作了一刻钟的视频讲解

视频地址:http://edu.51cto.com/index.php?do=lesson&id=99668