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配置程序并选择:ConfigureSensor→Select DataSources,找到myexample插件选中后,保存退出。
当看到上面这些信息是说明插件已成功添加,下面要重启服务即可生效。
#/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