《Ossim应用指南》入门篇
Ossim应用入门
——在《OSSIM在企业网络管理中的应用》http://chenguang.blog.51cto.com/350944/802007 这篇文章发布之后,很多同行对ossim表示了极大关注纷纷来信咨询如何使用和部署,在接下来的时间里我将总结这套系统的安装和使用的方法给大家分享。
1 OSSIM背景介绍
——目前,网络威胁从传统的病毒进化到像蠕虫、拒绝服务等的恶意攻击,当今的网络威胁攻击复杂程度越来越高,已不再局限于传统病毒,盗号木马、僵尸网络、间谍软件、流氓软件、网络诈骗、垃圾邮件、蠕虫、网络钓鱼等严重威胁着网络安全。网络攻击经常是融合了病毒、蠕虫、木马、间谍、扫描技术于一身的混合式攻击。拒绝服务攻击(DOS)已成为黑客及蠕虫的主要攻击方式之一。黑客利用蠕虫制造僵尸网络,整合更多的攻击源,对目标集中展开猛烈的拒绝服务攻击。而且攻击工具也越来越先进,例如扫描工具不仅可以快速扫描网络中存在漏洞的目标系统,还可以快速植入攻击程序。
——因此,网络安全管理的重要性和管理困难的矛盾日益突出。网络安全是动态的系统工程,只有从与网络安全相关的海量数据中实时、准确地获取有用信息并加以分析,及时地调整各安全子系统的相关策略,才能应对目前日益严峻的网络安全威胁。
——此外,IDS安全工具存在的错报、漏报也是促成安全集成思想的原因之一。以IDS为例,总的来说,入侵检测的方案有基于预定义规则的检测和基于异常的检测,判断检测能力的2个指标为灵敏度和可靠性。不可避免的,不论是基于预定义规则的检测还是基于异常的检测,由于防范总是滞后于攻击,其必然会遇到漏报、错报的问题。而安全集成则由于其集成联动分析了多个安全工具,使得检测能力即灵敏度和可靠性都得到大幅提升。综上所述,我们需要将各网络安全子系统,包括防火墙、防病毒系统、入侵检测系统、漏洞扫描系统、安全审计系统等整合起来,在信息共享的基础上,建立起集中的监控、管理平台,使各子系统既各司其职,又密切合作,从而形成统一的、有机的网络防御体系,来共同抵御日益增长的网络安全威胁。
——综上所述,就是将前面介绍过的Nagios、Ntop、Cheops、OpenVas、Snort、Nmap这些工具集成在一起提供综合的安全保护功能,而不必在各个系统中来回切换,且统一了数据存储,人们能得到一站式的服务,这就是OSSIM给我们带来的好处,我们这一节的目标就是将它的主要功能展示出来。
——OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。它的目标是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。OSSIM 明确定位为一个集成解决方案,其目标并不是要开发一个新的功能,而是利用丰富的、强大的各种程序(包括Mrtg、Snort、Nmap、Openvas以及Ntop等开源系统安全软件)。在一个保留它们原有功能和作用的开放式架构体系环境下,将它们集成起来。到目前为止,OSSIM支持多达2395种插件(http://www.alienvault.com/community/plugins)。而OSSIM项目的核心工作在于负责集成和关联各种产品提供的信息,同时进行相关功能的整合,如图1所示。由于开源项目的优点,这些工具已经久经考验,同时也经过全方位测试,更加可靠。
图1 OSSIM提供功能的层次结构图
2.OSSIM流程分析
OSSIM系统的工作流程为:
(1)作为整个系统的安全插件的探测器(Sensor)执行各自的任务,当发现问题时给予报警。
(2)各探测器的报警信息将被集中采集。
(3)将各个报警记录解析并存入事件数据库(EDB)。
(4)根据设置的策略(Policy)给每个事件赋予一个优先级(Priority)。
(5)对事件进行风险评估,给每个警报计算出一个风险系数。
(6)将设置了优先级的各事件发送至关联引擎,关联引擎将对事件进行关联。注意:关联引擎就是指在各入侵检测传感器(入侵检测系统、防火墙等)上报的告警事件基础上,经过关联分析形成入侵行为判定,并将关联分析结果报送控制台。
(7)对一个或多个事件进行关联分析后,关联引擎生成新的报警记录,将其也赋予优先级,并进行风险评估,存入数据库。
(8)用户监控监视器将根据每个事件产生实时的风险图。
(9)在控制面板中给出最近的关联报警记录,在底层控制台中提供全部的事件记录。
Ossim工作流程图
OSSIM安全信息集成管理系统(如图2所示)设计成由安全插件(Plug-ins)、代理进程(Agent)、传感器(Sensor)、关联引擎(Server)、数据仓库(Database)、Web框架(Framework)5个部分构成。
图2 信息安全集成管理系统逻辑结构图
(1)安全插件
——安全插件即各类安全产品和设施。如防火墙、IDS等。这里引入Linux下的开源安全工具:Arpwatch、P0f、Snort、Nessus、Spade、Tcptrack、Ntop、Nagios、Osiris等这些Plugins分别针对网络安全的某一方面,总的来说,可以将它们划分为探测器(Detector)和监视器(Monitor)两大阵营,将它们集成关联起来是出于安全集成的目的,如图3所示。
图3 安全插件
(2)代理进程
——代理进程将运行在多个或单个主机上,负责从各安全设备、安全工具采集相关信息(如报警日志等),并将采集到的各类信息统一格式,再将这些数据传至Server。
——Agent的主要功能是接收或主动抓取Plugin发送过来或者生成的文件型日志,经过预处理后有序地传送到OSSIM的Server。它的功能很复杂,因为它的设计要考虑到如果Agent和Server之间的网络中断、拥堵、丢包以及Server端可能接收不过来甚至死机等情况,确保日志不丢失也不漏发。基于这个考虑,OSSIM的日志处理在大部分情况下不能做到实时,通常会在Agent端缓存一段时间才会发送到Server端。Agent会主动连接两个端口与外界通信或传输数据,一个是连接Server的40001端口,另一个是连接数据库的3306端口。
(3)传感器
——传感器通常会被我们理解为一段程序,但它不是一个确定的程序,而是一个逻辑单元的概念。在OSSIM中,把Agent和插件构成的一个具有网络行为监控功能的组合称为一个传感器(Sensor),Sensor的功能范围主要有:
l入侵检测(Snort)
l漏洞扫描(OpenVas)
l异常检测(Spade,P0f,Pads,Arpwatch,RRD ab behaviour)
l网络流量监控与剖析(Ntop)
——采集本地路由器、防火墙、IDS等硬件设备,作为防火墙使用。在具体的部署中,以上功能通常可以部署在一台服务器上,也可以分多台服务器部署。
(4)关联引擎
——关联引擎是OSSIM安全集成管理系统的核心部分,支持分布式运行,负责将Agent传送来的事件进行关联,并对网络资产进行风险评估。
(5)数据仓库
——数据仓库由Server将关联结果写入Database,此外,系统用户(如安全管理员)也可通过Framework(Web控制台)对Database进行读写。数据仓库是整个系统事件分析和策略调整的信息来源,从总体上将其划分为事件数据库(EDB)、知识数据库(KDB)、用户数据库(UDB)、OSSIM系统默认使用的MySQL监听端口是3306,在系统中数据库的负担最重,因为它除了存储数据外,还要对其进行分析整理,所以实时性不强,这也是OSSIM架构最大的缺陷。
(6)Web框架
——Web框架控制台,提供用户(安全管理员)的Web页面,从而控制系统的运行(例如设置策略),是整个系统的前端,用来实现用户和系统的B/S模式交互。Framework可以分为2个部分:Frontend是系统的一个Web页面,提供系统的用户终端;Frameworkd是一个守护进程,它绑定OSSIM的知识库和事件库,侦听端口是40003,负责将Frontend收到的用户指令和系统的其他组件相关联,并绘制Web图表供前端显示。
Q/A:
1.那些浏览器可以访问Ossim WEB GUI?
客户端采用Windows/Linux都没问题,进期发布的Firefox、IE、360浏览器均可,参考视频:http://www.tudou.com/programs/view/XXcuObDCbT0/
接下来讲解部署Ossim 系统: http://chenguang.blog.51cto.com/350944/1333522
本文出自 “李晨光原创技术博客” 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/1332329
《Ossim应用指南》入门篇的更多相关文章
- 《Thinkphp5使用Socket服务》 入门篇
上车啦!!! 今天来说一下thinkphp5.0下使用wokerman的socket服务. 安装: composer的安装方法,Windows下直接下个composer的应用程序,双击安装,环境变量同 ...
- socket.io 入门篇(一)
本文原文地址:https://www.limitcode.com/detail/591b114bb1d4fe074099d9c9.html 前言 本篇介绍使用node.js模块组件socket.io实 ...
- socket.io 入门篇(三)
本文原文地址:https://www.limitcode.com/detail/5926e3a056fba70278bf2044.html 前言 上篇我们介绍了 socket.io 中room的概念和 ...
- socket.io 入门篇(二)
本文原文地址:https://www.limitcode.com/detail/5922f1ccb1d4fe074099d9cd.html 前言 上篇我们介绍了 socket.io 基本使用方法,本篇 ...
- dubbo注册服务和消费服务---入门篇
本文介绍如何用dubbo+zk来实现一个注册服务 + 消费服务的入门小demo 需要环境:zk服务器 两个maven项目,一个负责提供服务,一个负责消费服务. dubbo-service 服务端 po ...
- 服务端技术进阶(八)GitHub入门篇
服务端技术进阶(八)GitHub入门篇 前言 在投递简历的过程中,发现有的公司会要求填写自己的GitHub地址,而自己却还没有GitHub帐号,准确点说是自己还不太会使用GitHub.(貌似开源社区中 ...
- Spring boot学习1 构建微服务:Spring boot 入门篇
Spring boot学习1 构建微服务:Spring boot 入门篇 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇
Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Internet与中国 Internet最早来源于美 ...
- netty深入学习之一: 入门篇
netty深入学习之一: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NI ...
- 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)
1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...
随机推荐
- C# 通过委托控制进度条以及多线程更新控件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- [CSS]置换和非置换元素
转自:http://blog.doyoe.com 先进一个题外话 在面试一个 重构(各大公司的叫法可能不太一样)时,我喜欢从一个点开始问,然后一直延展下去成为一条线,甚至是一个面,直到问到不会的地方, ...
- DBA_Oracle DBA常用SQL汇总(概念)
2014-06-20 Created By BaoXinjian
- studio--如何将Eclipse中的项目迁移到Android Studio 中
如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件.因为Android Studi ...
- 获取mysql数据表中的列名
select COLUMN_NAME from information_schema.columns where table_name='table_name' DESCRIBE table_name ...
- java反射1
一.Class部分 加载类的几种方式 // 1. Class clazz = Class.forName("com.wzh.test.reflect.Person"); // 2. ...
- mongodb 数据导入导出
mongoexport 命令异常方便简单强大! 连接数据库: jkmiao@jkmiao-ipin:~$ mongo 192.168.1.xx:xxx/jd_58tc_raw 1. 导出10条数据到 ...
- Bridge桥接模式
当我们的功能要在多个维度进行扩展时,各个维度之间可以交叉组合,就可以考虑使用桥接模式. 将抽象部分与实现部分分离,使它们都可以独立的变化. ...
- vs报算术运算溢出的错误
是因为查询的数据量太大,把数据量减少点就不会报这个错了. 或者查询速度快点比如加索引也可能解决,待确定.
- DISTINCT后按照DISTINCT之前的某列进行排序
SELECT 行业名称 FROM 评分标准 GROUP BY 行业名称 ORDER BY MAX(行业ID) DESC