关于Snort的XML插件的一些体会
Author:gnicky URL : http://blog.csdn.net/loconfuse
由于对XML的兴趣,加之在snort的网站看到它对xml的良好支持,比如采用xml文件之后,可以直接通过xml插件把文件写入到某个制定主机的目录下,这种操作是通过http协议以及设定的端口来工作的,而不同于一般的文件权限开放概念。再一个是因为在对xml格式的snort日志的分析方面,有一个ACID_snort_XML的工具,是开源的,如果可以建立这样的一套体系,那么就采用xml文件作为数据记录载体,对应的一套完整的基于snort的NIDS也可以建立起来,同时在开源的xml分析工具上,结合.net的xml支持继续努力改近这个工具。
啰嗦了一堆,于是就上网搜索资料,比较少的文章介绍采用xml的整套方案,基本上所有的只是附带提出可以使用xml,基本上有两种思路,一种就是安装libidmef之类的xml的DTD之类的库,总之也按部就班地做下去了,需要下载的库文件也下载安装了,在执行.configure的时候,左右思量,看着一堆在snort-2.2.0的configure文件中没有的option item,也不知道有没有效果,理论上说不可能有效果,因为configure根本不关心这些关键字,但是在执行过程包括编译、安装中也会报出头文件无法搜索到等问题,自己对这个比较纳闷。总之半天的功夫用在这个方案上,写出长长的./configure--with --- enable---等等。等到无错误之后,发现结果不如设想,依旧对关键字XML的operation不认识,郁闷中……
打开install再研究下,with -openssl (used by the xml output plugin) 发现全文中xml就那么可怜的几个,而且在install中有--with-libidmeg之类,在.configure中却没有,到底非商业化的软件。
对于http://www.cert.org/kb/snortxml/中讲述的方法,却发现其中的安装过程非常简单,对xml插件的使用方式介绍比较详细,关于snort1.6.3之后出现的xml Plugin,实际上在2.0.0之后的release中已经不再支持,关于1.X与2.X只见的差异还是相对大的,尤其在文件布局,详细说明等方面,早期的plugin源文件与声明文件是放在直接目录下的,如今插件的文件放在src的plugin中,有一个中央程序统一编译生成linux下的.out文件(c编译出的可执行文件),在其中可以发现早期的spo_xml.c spo_xml.h文件已经不再包含了。
至于如何把spo_xml文件用到version2。0之后,有兴趣可以继续研究,欢迎交流:)