一、现状
现在网络威胁从传统的病毒进化到像蠕虫和拒绝服务等等的恶意攻击,当今的网络威胁攻击复杂程度越来越高,己不再局限于传统病毒,盗号木马、僵尸网络、间谍软件、流氓软件、网络诈骗、垃圾邮件、蠕虫、网络钓鱼等等严重威胁着网络安全。网络攻击经常是融合了病毒、蠕虫、木马、间谍、扫描技术于一身的混合式攻击。黑客利用蠕虫制造僵尸网络,整合更多的攻击源,集中对目标展开猛烈的拒绝服务攻击。这样单一的防病毒软件或是防火墙等安全设备很难阻挡住黑客的攻击,所以需要一种更先进的联动系统来防止各种攻击行为,这时就诞生了OSSIM这种安全信息管理平台。
二、OSSIM简介
OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。它的目的是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。OSSIM 明确定位为一个集成解决方案,其目标并不是要开发一个新的功能,而是利用丰富的、强大的各种程序(包括Mrtg、Snort、Nmap、Openvas以及Ntop等开源系统安全软件)。在一个保留他们原有功能和作用的开放式架构体系环境下,将他们集成起来,到目前为止OSSIM支持多达2395种插件(http://www.alienvault.com/community/plugins)。而OSSIM项目的核心工作在于负责集成和关联各种产品提供的信息, 同时进行相关功能的整合。由于开源项目的优点,这些工具已经是久经考验,同时也经过全方位测试、可靠的工具。
OSSIM功能结构图
1.OSSIM流程分析
下面我们简单分析一下OSSIM的系统工作流程:
1).作为整个系统的安全插件的探测器(Sensor)执行各自的任务,当发现问题时给予报警。
2).各探测器的报警信息将被采集集中。
3).将各个报警记录解析并存入事件数据库(EDB)。
4).根据设置的策略(policy)给每个事件赋予一个优先级(priority)。
5).对事件进行风险评估,给每个警报计算出一个风险系数。
6).将设置了优先级的各事件发送至关联引擎,关联引擎将对事件进行关联。
注意:关联引擎就是指在各入侵检测传感器(入侵检测系统、防火墙等)上报的告警事件基础上,经过关联分析形成入侵行为判定,并将关联分析结果报送控制台。
7).对一个或多个事件进行了关联分析后,关联引擎生成新的报警记录,将其也赋予优先级,并进行风险评估,存入数据库。
8).用户监控监视器将根据每个事件产生实时的风险图。
9).在控制面板中给出最近的关联报警记录,在底层控制台中提供全部的事件记录。
2.OSSIM的模块组成
OSSIM信息安全集成管理系统设计成由安全插件、代理进程(Agent)、关联引擎(Server)、数据仓库(Database)、Web框架(Framework)5个部分构成。
1).安全插件(Plug-ins)即各类安全产品和设施.如防火墙、IDS等。这里引入如下Linux下的开源安全工具:Arpwatch、P0f、Snort、Nesus、Spade、Tcptrack、Ntop、Nagios、Osiris这些plugins分别针对网络安全的某一方面,总的来说,可以将它们划分为探测器(detector)和监视器(monitor)两大阵营。将它们集成关联起来是安全集成的目的。
2).代理进程
代理进程(Agent)将运行在多个或单个主机上,负责从各安全设备、安全工具采集相关信息(比如报警日志等),并将采集到的各类信息统一格式,再将这些数据传至server。
Agent的主要功能是接收或主动抓取plugin发送过来或者生成的文件型日志,经过预处理然后有序地传送到OSSIM的Server,他的功能很复杂,因为它的设计要考虑到如果Agent和Server之间的网络中断、拥堵、丢包、以及Server端可能接收不过来甚至死掉等情况下,确保日志不丢失也不漏发,基于这个考虑,OSSIM的日志处理大部分情况下不能做到实时,通常会在Agent端缓存一段时间才会发送到Server端去。Agent会主动连两个端口与外界通信或传输数据,一个是连Server的40001端口,另一个是连数据库的3306端口。
3).传感器(Sensor)
传感器(Sensor)通常我们会理解为一段程序,但它不是一个确定的程序,而是一个逻辑单元的概念,在OSSIM中,把Agent和插件构成的一个具有网络行为监控功能的组合称为一个传感器(Sensor), Sensor的功能范围主要有:
入侵检测(snort)
漏洞扫描(nessus)
异常检测(Spade, p0f, pads, arpwatch, RRD ab behaviour)
网络流量监控与剖析(ntop)
采集本地路由器、防火墙、IDS等硬件设备日志作为防火墙使用在具体的部署中,以上功能通常可以部署在一台服务器上,也可以分多台服务器部署。
4).关联引擎
关联引擎(Server)是OSSIM安全集成管理系统的核心部分,支持分布式运行,负责将agents传送来的事件进行关联,并对网络资产进行风险评估。
5).数据仓库
数据仓库(Database)由Server将关联结果写入Database,此外,系统用户(如安全管理员)也可通过Framework(web控制台)对Database进行读写。数据仓库是整个系统事件分析和策略调整的信息来源,从总体上将其划分为事件数据库(EDB);知识数据库(KDB):用户数据库(UDB)。OSSIM系统默认使用的Mysql 监听端口是3306,在系统中数据库的负担最重因为他除了存储数据还要对其进行分析整理,所以实时性不强,这也是OSSIM架构最大的缺陷。
6).Web框架
Web框架(Framework)控制台,提供用户(安全管理员)Web页面从而控制系统的运行(例如设置策略),是整个系统的前端,用来实现用户和系统的B/S模式交互(实际上是C/S+B/S的混合模式)。Framework可以分为2个部分:Frontend即是系统的一个Web页面,提供系统的用户终端;Frameworkd是一个守护进程,它绑定OSSIM的知识库和事件库,侦听端口是40003,它负责将Fromend收到的用户指令和系统的其他组件相关联,并绘制Web图表供前端显示。
三、 部署OSSIM
对于共享网络,只需将连接到共享网络中的流量采集点的网络接口置为混杂工作模式,就可实现采集网络流量数据的功能。与交换网络相比,网络发生拥塞时,集线器网络的可靠性很低,SNMP问询命令和回应数据包可能发生延迟或丢失,这时候NTOP也就检测数据就不准确,对于交换网络的情况,需要交换设备的支持(如具有SPAN端口的交换机)。
Ossim流量采集主机一般连接到服务器Vlan所在交换设备的一个端口,通过交换机的SPAN至(Switched PortAnalyzer)端口把要分析的所有流量镜像到该采集点上。SPAN在使用中非常灵活,可以监视交换机的单个端口,也可以监视多个源端口,但目的端口只能有一个。在一些流量比较大网络应用中,我们一般选用用两个网卡(建议用万兆网卡),做双网卡绑定从而使网卡吞吐性能倍增。
Ossim的部署如图所示,注意如果要分析上互联网流量,采集端口就要放在防火前之后,交换机之上的位置。
安装Ossim和普通Linux发行版没有什么区别,在企业环境部署的时候参照前面一节讲解的Ntop原则,硬件选择方面我们部署最新版的Ossim需要独立的一台高性能服务器(服务器内存至少16G以上且配备了多路处理器,硬盘空间不低于1TB),安装选择自定义安装,到分区选项中我们选择Guided-use entire disk and set up LVM;分区定义时不要选择"All files in one partition"而需要选择第三项将 /home,/usr/,/var,/tmp分为独立分开。
安装完毕重启机器,然后再客户机输入你机器的IP地址,这里是 http://192.168.X.Y/
首次登陆系统输入用户admin,密码:admin(对于ossim v2.3.1而言),这时系统提示修改密码。由于OSSIM是用精简的Debian Linux通过优化裁剪而成,所以没有X-window。
安装后的流程
在配置好网络之后首次登陆建议进行系统升级alienvault(同时也升级漏洞库),升级方法非常简单输入:
#apt-get update ;apt-get dist-upgrade
首次升级数据量比较大,通常在400MB 左右,这时需要你的网络环境比较好。这里需要注意一下整个系统的配置文件在/etc/ossim/ossim_setup.conf里配置,包含了登陆Ip信息、主机名、监听网卡名称、mysql名、Snmp、启动的Sensors类别、监听的网段等重要信息。
4系统配置
1).要启动IT资产管理,首先要启动OCS服务
要启动Ocs服务需要运行下面两个脚本后,就可以看到系统组件分布情况
#cd /usr/share/ossim-installer/ocs/
#./install_ocs.sh
#./OCS_Linux_server_1.01.OSSIM/setup.sh
OCS用于帮助网络或系统管理员来跟踪网络中计算机配置与软件安装情况的应用程序。收集到硬件和系统信息,OCS Inventory 也可以用来发现在您网络中所有的活动设备,例如,交换机、路由器、网络打印机。
OSSIM主界面
当通过验证进入系统后,立刻展现在我们眼前的是事件,日志和评估风险的图像,如果没有显示完整很可能你的浏览器不支持Flash插件。
2).监控服务器区域的网段进行扫描获取主机基本信息
点击Tools→Net Discovery,选择手动扫描,输入CIDR地址,这里是192.168.XY/24 ,表示这个网段的IP地址从192.168XX开始到192.168.YY结束,扫描模式一般选择"FastScan",如果机器数量大于5台建议不要选择"Full Scan",如果扫描时间以机器数量为准。扫描完成后忘记确认“Update database values”更新数据库。这一步刚刚完成收集主机的基本信息的任务,下面进行更详细的主机分析-主机的安全信息和事件分析管理。
3).对指定主机进行漏洞扫描
选择Analysis→Vulnerabilities→Scan Jobs→新建扫描任务,我们填写网段的基本信息,如上图所示
填写完毕后为确保没有错误,点击"Configuration Check"对配置文件进行检查确认。整个扫描的内容之详细是你所无法想象的,一会儿我们看看结果。
上图中列出了扫描完成后自动生成的饼图,显示出当前主机的安全等级和开放的服务。深红色的区域(High 27)表示高危主机有严重的漏洞,需要处理。
详情在Reports选项卡中,在这里红色区域的主机就需要工程师们仔细排查处理了,如果您觉得这还不过瘾,稍后我们会详细讲一个解漏洞扫描案例。
如果您的领导需要查看扫描报告,这时只需在下图位置
Scan Jobs里选择相应输出类型即可,默认系统支持excel、pdf、html等格式输出。 下图就是生成的长达143页的报告。
我们还可以对报告进行定制,在右边的Reports→Reports
在这里监控主机状态的工作变得十分容易,我们选择Assets→Assets→New添加
在这里添加主机和服务变得更加直观,而且我们可以更加方便的查看网络拓扑,还可以显示每一台主机的信息。
3.DDOS攻击告警提示
当网络中出现DDOS攻击是,通过OSSIM系监控图像可以明显看出在某一时间段内的流量激增,如果这时通过EtherApe可以很容易发现被攻击的服务器连接数量相当高,下图中绿色的大圆点就是受攻击的那台服务器,绿色小圆点就是虚构出来的IP地址,统统被EtherApe实时记录下来。
EtherApe软件中显示TCP半连接状态分布图
然后,还可以通过命令“netstat -an|grep SYN_RECV|wc –l”,如果数值很高例如达到上千数值,那么肯定是受到了攻击。
下图中OSSIM系统中的Snort记录的被DDOS过成功的告警信息的图像
4.漏洞扫描应用
企业中查找漏洞要付出很大的努力,不能简单的在服务器上安装一个漏洞扫描软件那么简单,那样起不了多大作用。这并不是因为企业中拥有大量服务器和主机设备,这些服务器和设备又通不同速率的网络互联,只是我们在期望的时间内无法获得所需的覆盖范围。
目前许多欧美的国际安全组织都按照自己分类准则建立了各自的数据库其中主流是CVE和,XForce。他的好处是,当网络出现安全事故,入侵检测系统(IDS)产生警报时,像CVE这类标准的系统脆弱性数据库网络安全工作就显得极为重要!,目前在中国国家计算机网络应急处理协调中心(CNCERT/CC)领导下,国内也组建了自己的CVE 组织——CNCVE,CNCVE 的组建目的就是建设一个具有中国特色的,能为国内广大用户服务的CVE 组织。但是并不是说拥有了CVE就囊括了所有漏洞问题,除了这些开放的脆弱性数据库外,还应该存在大量的没有对公众开放的脆弱性数据库。有的可能大家根本就不知道这些脆弱性数据库的存在。
1.CVE
CVE (Common Vulnerabilities and Exposures)是由美国国土安全部门(US DepartmentOf Homeland Security,简称DHS)成立,由非盈利组织MITRE 公司管理和维护至今。Vulnerability(漏洞,脆弱性)这个词汇可以有狭义和广义多种解释。比如说:finger服务,可能为入侵者提供很多有用的资料,但是该服务本身有时是业务必须的,而且不能说该服务本身有安全问题。
CVE标准命名
为方便独立的脆弱性数据库和不同安全工具彼此之间能够更好地共享数据,如下图脆弱性数据库所示。CVE 的标准命名方式是由“CVE”、时间和编号共同组成。例如,命名为“CVE-2008-6021”的条目表示2008 年第6021 号脆弱性。
CVE 的内容是CVE 编辑委员会的合作努力的成果。这个委员会的成员来自于许多安全相关的组织,如软件开发商、大学研究机构、政府组织和一些优秀的安全专家等,而且CVE 可以免费阅读和下载。
2.OSVDB
OSVDB (Open Source Vulnerability Database) 是由一个社团组织创立并维护的独立开源的数据库。它最早是在2002 年的Black Hat 和Defcon 安全会议上提出的一项服务,它提供了一个独立于开发商的脆弱性数据库实现方案。和CVE一样OSVDB 数据库也是开源并且免费的。它由安全事业爱好者来维护,向个人和商业团体免费开放。两者的差异在于CVE提供标准名称,可以通俗理解为数据字典,而OSVDB 为每一条脆弱性提供了详尽的信息,OSVDB需要参考CVE的名称。
3.BugTraq
BugTraq 是由Security Focus 管理的Internet 邮件列表,现在已被赛门铁克公司收购。在电脑安全世界,BugTraq 相当于最权威的专业杂志。大多数安全技术人员订阅Bugtraq,因为这里可以抢先获得关于软件、系统漏洞和缺陷的信息,还可以学到修补漏洞和防御反击的招数。
选择“Status Map”,在Layout Method选项中选择Balanced tree,结果如下图,若主机过多,图像现实会非常密集,可以调整Scaling factor的数值,直到满意效果。
可以展示所有主机开放应用的情况,也可以反映出某一主机的应用在每个时间段的工作情况,绿色表示正常,红色表示有故障发生,需要处理。
OSSIM不但能够将网络主机的各种信息和数据进行存储加工,自己的健康状况也一点也不含糊的显示出来,从Disk 、Network、 Postfix、 Processes、 Sensors、 System 各个方面几十张图标记录着各种运行状态,以供管理员及时处理。
四.OSSIM的后台管理及配置
OSSIM不但功能强大,它还提供了友好的管理界面,我们选择左边导航栏的Configuration→Main→Advanced现象就可以看到主要各子系统的基本配置情况。下图显示了修改snort的基本配置,和OSSIM的备份目录。
如果你对他们有所了解,还可以对snort和nessus做十分复杂的交叉管理配置,点击"Intelligence→Cross Correlation"在rules选项卡中展示了7363种规则,若需要改则用鼠标选中某一种点击"Modify",不过这些修改要慎重,否则会影响OSSIM整体效率。
通常我们只要里面选取我们所需要的就行了。这里需要说明一下IDS实质上归结为对安全审计数据的处理。这种处理可以针对网络数据,也可以针对主机的日志文件。一般就是采用类似病毒检测的办法,对各种已知的攻击方式进行特征提取,建立攻击模式库,通过实际的检测数据与模式库的比较来检测入侵行为。
五.Ossim系统优化
1.加装双网卡提高OSSIM性能
在长期的部署应用中发现传统的服务器集成的网卡来收集、分析数据包数据包应用范围比较狭窄,例如在出口带宽为100M的路由器的接口,如果监控企业内网高速网络则会出现大量丢包失去了监控的意义。笔者建议除了选用高性能服务器意外,还应在服务器另外加装双千兆高性能网卡
2.与其他流量监控软件集成(此处与Cacti的集成)
有的人喜欢Cacti的流量监控,或以前企业中已经部署有Cacti流量监控系统,那么可以继承起来,集成到OSSIM中,这时我们需要修改一下php代码,首先需要安装cacti并配置好,然后我们需要编辑/usr/share/ossim/www/menu_options.php文件(大约在1044行的位置加入如下代码) 。
$menu["Monitors"][] = array(
"name" => gettext("Cacti"),
"id" => "Cacti",
"url" => "http://192.168.XY/cacti",
);
$menu["Monitors"][] = array(
"name" => gettext("Zabbix"),
"id" => "Zabbix",
"url" => "http://192.168.X.Y/zabbix",
);
Ossim和Cacti集成界面
同样方法额可以和Zabbix和Mrtg流量监控系统集成。
六、实战准备
OSSIM可以图形化安装配置系统,像安装视微软视窗系统那样简单,不必在命令行下输入繁琐的命令,也不必顾及那些繁琐开源软件共享库,编译依赖关系等技术细节,就连配置OSSIM过程也是基于Web的图形化向导方式呈现给用户。首次接触OSSIM用户建议从低版本系统开始研究,不但安装、启动快速而且能为你节约很多资源。
OSSIM v2.3.1 下载地址
不积小流,无以成江海,v2.3.1是初学者首次认知OSSIM比较理想的版本,平台的学习切勿贪大求新!
实验最低配置要求:
CPU: 1 core
RAM : 1 + GB
DISK: 10+ GB
Vmware和VirtualBOX各版本均支持。