ossim原理初步总结.doc_第1页
ossim原理初步总结.doc_第2页
ossim原理初步总结.doc_第3页
ossim原理初步总结.doc_第4页
ossim原理初步总结.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OSSIM总结 一、概要当今的网络威胁攻击复杂程度越来越高,已不再局限于传统病毒,盗号木马、僵尸网络、间谍软件、流氓软件、网络诈骗、垃圾邮件、蠕虫、网络钓鱼等严重威胁。网络攻击经常是融合了病毒、蠕虫、木马、间谍、扫描技术于一身的混合式攻击。拒绝服务攻击(DOS)已成为黑客及蠕虫的主要攻击方式之一。黑客利用蠕虫制造僵尸网络,整合更多的攻击源,对目标集中展开猛烈的拒绝服务攻击。并且攻击工具也越来越先进,例如扫描工具不仅可以快速扫描网络中存在漏洞的目标系统,还可以快速植入攻击程序。因此,网络安全管理的重要性和管理困难的矛盾日益突出。只有从与网络安全相关的海量数据中实时、准确地获取有用信息并加以分析,及时地调整各安全子系统的相关策略,才能应对目前日益严峻的网络安全威胁。此外,IDS安全工具存在的错报、漏报也是促成安全集成思想的原因之一。以IDS为例,总的来说,入侵检测的方案有基于预定义规则的检测和基于异常的检测,判断检测能力的2个指标为灵敏度和可靠性。但不论是基于预定义规则的检测还是基于异常的检测,由于防范总是滞后于攻击,其必然会遇到漏报、错报的问题。而安全集成则由于其集成联动分析了多个安全工具,使得检测能力即灵敏度和可靠性都得到大幅提升。综上所述,我们需要将各网络安全子系统,包括防火墙(Mod-Security)、防病毒系统、入侵检测系统(Snort)、漏洞扫描系统(OpenVas)等整合起来,在信息共享的基础上,建立起集中的监管平台,使各子系统既各司其职,又密切合作,从而形成统一的、有机的网络防御体系,来共同抵御日益增长的网络安全威胁。然而令人愉悦的是OSSIM(open source SIM)监控平台就能给实现这一点,OSSIM是各种安装软件集成在Dedian系统下的监控平台,本文就是将它的主要功能展示出来。OSSIM把Nagios、Ntop、OpenVas、Snort、Nmap、Ossec等这些工具集成在一起提供综合的安全保护措施,而不必在各个系统中来回切换,且统一了数据存储,使得监控得到一站式的统一服务。OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。它的目标是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。OSSIM明确定位为一个集成解决方案,其目标并不是要开发一个新的功能,而是利用丰富的、强大的各种程序。在一个保留它们原有功能和作用的开放式架构体系环境下将它们集成起来。OSSIM平台的核心工作在于负责集成和关联各种产品提供的信息,同时进行相关功能的整合,如图1所示。由于开源项目的优点,这些工具已经久经考验,同时也经过全方位测试,更加可靠。图1 OSSIM提供功能的层次结构图二、OSSIM系统工作流程OSSIM主体采用B/S结构。Web服务器使用Apache,数据库采用Mysql,开发语言为Php、perl、c等,其工作流程如下:(1)作为整个系统的安全插件的探测器(Sensor)执行各自的任务,当发现问题时给予报警。(2)各探测器的报警信息将被集中采集。(3)将各个报警记录解析并存入事件数据库(EDB)。(4)根据设置的策略(Policy)给每个事件赋予一个优先级(Priority)。(5)对事件进行风险评估,给每个警报计算出一个风险系数。(6)将设置了优先级的各事件发送至关联引擎,关联引擎将对事件进行关联。注意:关联引擎就是指在各入侵检测传感器(入侵检测系统、防火墙等)上报的告警事件基础上,经过关联分析形成入侵行为判定,并将关联分析结果报送控制台。(7)对一个或多个事件进行关联分析后,关联引擎生成新的报警记录,将其也赋予优先级,并进行风险评估,存入数据库。(8)用户监控监视器将根据每个事件产生实时的风险图。(9)在控制面板中给出最近的关联报警记录,在底层控制台中提供全部的事件记录。图2 OSSIM工作流程图OSSIM安全信息集成管理系统(如图2所示)的设计可由以下几部分构成:安全插件(Plugins)、代理进程(Agent)、传感器(Sensor)、关联引擎(Server)、数据仓库(Database)、Web框架(Framework),其逻辑结构图如下:图3信息安全集成管理系统逻辑结构图2.1安全插件(plugin)安全插件即各类安全产品和设施。如防火墙、IDS等。OSSIM系统引入的都是Linux下的开源安全工具:Arpwatch、P0f、Snort、Nessus、Spade、Tcptrack、Ntop、Nagios等这些Plugins分别针对网络安全的某一方面,总体来说可以将它们划分为探测器(Detector)和监视器(Monitor)两大块的集成与关联,如图4所示。图4 安全插件展示2.2代理进程(Agent)代理进程将运行在多个或单个主机上,负责从各安全设备、安全工具采集相关信息(如报警日志等)的插件进行统一管理,并将采集到的各类信息统一格式,再将这些数据传至Server。Agent的主要功能是接收或主动抓取Plugin发送过来或者生成的文件型日志,经过预处理后有序地传送到OSSIM的Server。它的功能很复杂,因为它的设计要考虑到如果Agent和Server之间的网络中断、拥堵、丢包以及Server端可能接收不过来甚至死机等情况,确保日志不丢失也不漏发。基于这个考虑,OSSIM的日志处理在大部分情况下不能做到实时,通常会在Agent端缓存一段时间才会发送到Server端。Agent会主动连接两个端口与外界通信或传输数据,一个是连接Server的40001端口,另一个是连接数据库的3306端口。2.3传感器(Sensor)传感器通常会被我们理解为一段程序,但它不是一个确定的程序,而是一个逻辑单元的概念。在OSSIM中,把Agent和插件构成的一个具有网络行为监控功能的组合称为一个传感器(Sensor),Sensor的功能范围主要有: 入侵检测(Snort、Ossec) 漏洞扫描(OpenVas) 异常检测(Spade,P0f,Pads) 网络流量监控与剖析(Ntop)采集本地路由器、防火墙、IDS等硬件设备作为防火墙使用。在具体的部署中,以上功能通常可以部署在一台服务器上,也可以分多台服务器部署。2.4关联引擎(Server)关联引擎是OSSIM安全集成管理系统的核心部分,支持分布式运行,负责将Agent传送来的事件进行关联,并对网络资产进行风险评估。2.5数据仓库(database)数据仓库由Server将关联结果写入Database,此外,系统用户(如安全管理员)也可通过Framework(Web控制台)对Database进行读写。数据仓库是整个系统事件分析和策略调整的信息来源,从总体上将其划分为事件数据库(EDB)、知识数据库(KDB)、用户数据库(UDB),OSSIM系统默认使用的MySQL监听端口是3306,在系统中数据库的负担最重,因为它除了存储数据外,还要对其进行分析整理,所以实时性不强。 EDB(事件数据库):在三个数据库中,EDB无疑是最大的,它存储的是所有底层的探测器和监视器所捕捉到的所有的事件。 KDB(知识数据库):在知识数据库中,将系统的状态进行了参数化的定义,这些参数将为系统的安全管理提供详细的数据说明和定义。 UDB(用户数据库):在用户数据库中,存储的是用户的行为和其他与用户相关的事件。2.6 Web框架(Framework)Web框架控制台,提供用户(安全管理员)的Web页面,从而控制系统的运行(例如设置策略),是整个系统的前端,用来实现用户和系统的B/S模式交互。Framework可以分为两个部分:Frontend是系统的一个Web页面,提供系统的用户终端;Frameworkd是一个守护进程,它绑定OSSIM的知识库和事件库,侦听端口是40003,负责将Frontend收到的用户指令和系统的其他组件相关联。三、OSSIM日志处理流程3.1 日志处理原理设备把日志信息以syslog的形式发给agent,日志存储在agent上面的/var/log/xxx.log下面,agent调用/etc/OSSIM/agent/plugins下面对应的插件来/var/log/xxx.log下面取对应的日志,然后根据插件里面写的正则表达式来提取日志的关键字段发给server,server再将日志分析之后在OSSIM上面呈现出来。/etc/OSSIM/agent/plugins下面的插件可以是系统自带的插件,还可以自己来编写插件(plugin_id=900010000),核心是掌握正则表达式的写法,能够根据不同的日志来提取自己感兴趣的内容。并且要让agent调用某个插件还需要在这个/etc/OSSIM/agent/config.cfg文件里面写上插件的路径,以下展示config.cfg部分插件的调用。pluginsapache=/etc/OSSIM/agent/plugins/apache.cfgapache-syslog=/etc/OSSIM/agent/plugins/apache-syslog.cfgfreewaf=/etc/OSSIM/agent/plugins/freewaf.cfgiis=/etc/OSSIM/agent/plugins/iis.cfg。iptables=/etc/OSSIM/agent/plugins/iptables.cfgmonit=/etc/OSSIM/agent/plugins/monit.cfgnagios=/etc/OSSIM/agent/plugins/nagios.cfgntop-monitor=/etc/OSSIM/agent/plugins/ntop-monitor.cfgossec=/etc/OSSIM/agent/plugins/ossec.cfgOSSIM-agent=/etc/OSSIM/agent/plugins/OSSIM-agent.cfgOSSIM-monitor=/etc/OSSIM/agent/plugins/OSSIM-monitor.cfgp0f_eth0=/etc/OSSIM/agent/plugins/p0f_eth0.cfgssh=/etc/OSSIM/agent/plugins/ssh.cfgsudo=/etc/OSSIM/agent/plugins/sudo.cfgsyslog=/etc/OSSIM/agent/plugins/syslog.cfgwebsense=/etc/OSSIM/agent/plugins/websense.cfg这些日志事件,在前端WEB界面显示,并记录事件的时间、来源和目的IP,以及事件内容等,如下图所示,在后面还会详细介绍到WEB端显示以及事件内容。图5 OSSIM-Agent事件日志记录3.2 可视化日志分析工具除了OSSIM的WEB端可以显示记录系统产生的日志和插件行为生成的日志,本系统还可以集成可视化日志分析工具gltail,它采用Ruby技术构建,并利用OpenGL图形技术进行渲染,呈现可视化的日志分析数据,以气泡数量来反映网站的访问情况。其主要功能如下: 实时显示日志; 支持多服务器及多日志; 提供多种日志分析器(ApacheCombined IIS Postfix Nginx Squid PostgreSQL PureFTPD MySQL TShark等各种格式的日志) 支持SSH连接,也就是说你可以直接在本地通过SSH获取远程数据并进行分析。 可视化方面:可动态显示http传输流量,响应时间,Email传输流量,FTP下载信息等。安装好后,配置XXX/gltail/bin下gl_tail.yaml文件,以显示access.log日志文件为例,其配置如下: device: host: 00 #本地主机 source: local files: /var/log/apache2/access.log #acceess日志路径 parser: apache #使用的感测器 color: 0.2, 0.2, 1.0, 1.0运行./gl_tail文件,可以获得动态化日志显示。图6 access.log日志读取图中反映事件是源IP:30对OSSIM服务器的访问,以气泡数量来反映量的大小,由此图提供的访问量可以初步估计30不正常,可能有攻击性,CONTENT内容为page表示web应用数据的访问。图7 官网提供的gltail工作画面由上图可以很形象直观的看出日志记录的时间行为(ACTION)、源IP(SRCHOST)和目的IP(DSTHOST)、源端口号(SRCPORT)、目的端口号(DSTPORT)、事件在传输层的协议(TCP/UDP)以及源与目的之间的访问速度。四、OSSIM功能层次结构4.1 工具集4.1.1 入侵检测入侵检测就是一个监视计算机系统或者网络上发生的事件,然后对其进行安全分析的过程。大多数的入侵检测系统都可以被归入到基于网络、基于主机以及分布式三类。基于网络的入侵检测系统能够监视网络数据发现入侵或者攻击的蛛丝马迹;基于主机的入侵检测系统能够监视针对主机的活动(用户的命令、登录/退出过程,使用的数据等等),以此来判断入侵企图;分布式IDS通过分布于各个节点的传感器或者代理对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。各种入侵检测系统使用的检测方法可以分为两类:基于特征码的检测方法和异常检测。使用基于特征码检测方法的系统从网络获得数据,然后从中发现以知的攻击特征。例如:在某些URL中包含一些奇怪的Unicode编码字符就是针对IIS-Unicode缺陷的攻击特征。此外各种模式匹配技术的应用,提高了这种检测方法的精确性。使用异常检测的系统能够把获得的数据与一个基准进行比较,检测这些数据是否异常,典型的入侵检测模型如下图。图8 典型的入侵检测系统模型 SnortSnort是一个功能强大、跨平台、轻量级的网络入侵检测系统,从入侵检测分类上来看,Snort应该是个基于网络和误用的入侵检测软件。它可以运行在Linux、OpenBSD、FreeBSD、Solaris、以及其它Unix 系统、Windows等操作系统之上。Snort是一个用C语言编写的开放源代码软件,符合GPL(GNU通用公共许可证 GNU General Public License)的要求,由于其是开源且免费的,许多研究和使用入侵检测系统都是从Snort开始,因而Snort在入侵检测系统方面占有重要地位。Snort对系统的影响小,管理员可以很轻易地将Snort安装到系统中去,并且能够在很短的时间内完成配置,方便地集成到网络安全的整体方案中,使其成为网络安全体系的有机组成部分。虽然Snort是一个轻量级的入侵检测系统,但是它的功能却非常强大,其特点如下: 跨平台性可以支持Linux、Solaris、UNIX、Windows系列等平台,而大多数商用入侵检测软件只能支持一、两种操作系统,甚至需要特定的操作系统。 功能完备具有实时流量分析的能力,能够快速地监测网络攻击,并能及时地发出警报。使用协议分析和内容匹配的方式,提供了对TCP、UDP、ICMP等协议的支持,对缓冲区溢出、隐蔽端口扫描、CGI扫描、SMB探测、操作系统指纹特征扫描等攻击都可以检测。 使用插件的形式方便管理员根据需要调用各种插件模块。包括输入插件和输出插件,输入插件主要负责对各种数据包的处理,具备传输层连接恢复、应用层数据提取、基于统计的数据包异常检测的功能,从而拥有很强的系统防护功能,如使用TCP流插件,可以对TCP包进行重组:输出插件则主要用来将检测到的报警以多种方式输出,通过输出插件可以输出Mysql、SQL等数据库中,还可以以XML格式输出,也可以把网络数据保存到TCPDump格式的文件中;按照其输出插件规范,用户甚至可以自己编写插件,自己来处理报警的方式并进而作出响应,从而使Snort具有非常好的可扩展性和灵活性。 Snort规则描述简单Snort基于规则的检测机制十分简单和灵活,使得可以迅速对新的入侵行为做出反应,发现网络中潜在的安全漏洞。Snort基于libpcap的嗅探器并没有什么特别的,unix/linux平台下大部分嗅探器都是基于此。当网卡工作在混杂模式下可以截获当前网段下所有数据包。 需要说明的是,只有处于HUB集线器环境下的机器snort是可以嗅探到所有流经该网段的数据,此时snort可以并行连接于该网段任一机器;但是现今的网络HUB集线器多被交换机取代,而此时需要将snort串行于需要服务的网络,snort才可以接受并处理该网段数据。当然在企业内部建设一个稳定的NIDS不可能使用hub以及arp欺骗,更可靠的方案是使用流量镜像的方式将流量从核心交换机将流量“镜像”到IDS服务器上,然后启动snort处理流量。Snort的主要系统组成和基本的数据处理流程:图9 Snort工作架构图1、数据包捕获库基于网络的入侵检测系统需要捕获并分析所有传输到监控网卡的网络数据,这就需要包捕获技术,Snort通过两种机制来实现,其一是将网卡设置为混杂模式,另一方式则是利用Libpcap/Winpcap函数库从网卡捕获网络数据包。数据包捕获函数库是一个独立的软件工具,能直接从网卡获取数据包。Libpcap支持所有基于可移植操作系统接口(Portable Operating System Interface of Unix,POSIX)的操作系统,如Linux、Unix等,后来为支持跨平台特性,又开发了Windows版本(http:/ www.winpca ),Windows下和Linux的函数调用几乎完全相同,Snort就是通过调用该库函数从网络设备上捕获数据包。2、数据包解码器数据包解码器主要是对各种协议栈上的数据包进行解析、预处理,以便提交给检测引擎进行规则匹配。解码器运行在各种协议栈之上,从数据链路层到传输层,最后到应用层,因为当前网络中的数据流速度很快,如何保障较高的速度是解码器子系统中的一个重点。目前,Snort解码器所支持的协议包括Ethernet、SLIP和PPP等。3、预处理器预处理模块的作用是对当前截获的数据包进行预先处理,以便后续处理模块对数据包的处理操作。由于最大数据传输单元(MTU)限制及网络延迟等问题,路由器会对数据包进行分片处理。但是恶意攻击者也会故意发送经过软件加工过的数据包,以便把一个带有攻击性数据包分散到各个小的数据包中,并有可能打乱数据包传输次序,分多次传输到目标主机。因此,对异常数据包的处理也是入侵检测系统的重要内容。预处理器主要包括以下功能:1)模拟TCP/IP堆栈功能的插件,如IP碎片重组、TCP流重组插件;2)各种解码插件:HTTP解码插件、Unicode解码插件、RPC解码插件、Telnet解码插件等;3)规则匹配无法进行攻击检测时所用的插件:端口扫描插件、Spade异常入侵检测插件、Bo检测插件、ARP欺骗检测插件等。根据各预处理插件文件名可对此插件功能做出推断。4、检测引擎检测引擎是入侵检测系统的核心内容,Snort用一个二维链表存储它的检测规则,其中一维称为规则头,另一维为规则选项。规则头中放置的是一些公共属性特征,而规则选项中放置的是一些入侵特征。Snort从配置文件读取规则文件的位置,并从规则文件读取规则,存储到二维链表中。Snort的检测就是二维规则链表和网络数据匹配的过程,一旦匹配成功则把检测结果输出到输出插件。为了提高检测速度,通常把最常用的源/目的IP地址和端口信息放在规则头链表中,而把一些独特的检测标志放在规则选项链表中。规则匹配查找采用递归的方法进行,检测机制只针对当前己经建立的链表选项进行检测,当数据包满足一个规则时,就会触发相应的操作。Snort的检测机制非常灵活,用户可以根据自己的需要很方便地在规则链表中添加所需要的规则模块。数据包匹配算法采用经典匹配算法多模式匹配算法(AC-BM),采用二维链表和经典匹配算法都是为了提高与网络数据包的匹配速度,从而提高入侵检测速度。5、 日志和报警子系统输出方式采用输出插件方式,输出插件使得Snort在向用户提供格式化输出时更加灵活。输出插件在Snort的报警和记录子系统被调用时运行。日志和报警子系统可以在运行Snort的时候以命令行交互的方式进行选择,如果在运行时指定了命令行的输出开关,在Snort规则文件中指定的输出插件会被替代。现在可供选择的日志形式有三种,报警形式有六种。Snort可以把数据包以解码后的文本形式或者TCPDump的二进制形式进行记录。解码后的格式便于系统对数据进行分析,而TCPDump格式可以保证很快地完成磁盘记录功能,而第三种日志机制就是关闭日志服务,什么也不做。使用数据库输出插件,Snort可以把日志记入数据库,当前支持的数据库包括:Postgresql、MySQL、Oracle以及任何Unix ODBC数据库。 suricataSuricata是一个IDS/IPS工具,由开放信息安全基金会以及它所支持的提供商开发。该引擎是多线程的,内置 IPv6 的支持,可加载预设规则,支持Barnyard 和 Barnyard2工具。在所有目前可用的IDS/IPS系统中,Suricata最能够与Snort相抗衡。该系统有一个类似Snort的架构,依赖于像Snort等的签名,甚至可以使用VRT Snort规则和Snort本身使用的相同的Emerging Threat规则集。Suricata的主要特性有多线程、自动检测协议、gzip解压缩 、独立HTP库 、标准的输入法 、统一的两输出 、流动变量 、快速的IP匹配、HTTP日志模块、PostgreSQL日志模块、显卡加速、Windows可执行文件、Lua脚本、前向输出、文件匹配,记录,提取,MD5校验和计算、IP reputation、DNS记录器。图10 suricata工作流程 IDS/IPSSuricata是利用外部开发规则,当可疑事件发生suricata以此规则为基础来监控IDS/IPS引擎网络流量,并提供警报给系统管理员。该设计与现有的网络安全组件相兼容,Suricata拥有统一的输出功能,并且可插入库选项,以接受来自其他应用程序调用。根据通用公共许可证第二版,Suricata消除了启动IDS/IPS的成本问题,同时提供了一个可扩展选项,以达成最复杂的网络安全架构。 多线程 作为一个多线程的引擎,在网络流量分析方面Suricata提供更快的速度和效率。除了硬件加速(用硬件和网络卡的限制)时,该引擎是建立能够利用由最近的多核CPU的芯片组可以提供更强的处理能力。线程有一个输入队列处理程序和输出队列的处理程序。这些程序从其他线程来获取数据包。一个线程可以被设置为CPU/Core模式。这种模块存储在ThreadVars结构中。一段代码可完成线程1、2、3。这样所创建的线程被称为“Detect1”,并从队列“流队列1”中获得,detect1也成为slot函数,也就是一个预先设置的检测引擎上下文的指针。 thread模块描述。一个线程模块被定义为数据包处理单元。该模块可以执行从分组获取任何东西来进行解码,以检测到告警。其中的一个或多个模块可以在一个线程中运行。一个模块可以产生用于输出的一个以上的数据包队列(queue)描述。如果多个线程用于串行处理的数据包,队列就用于将数据分组传送。线程有一个队列处理函数来确定数据包是如何获得和抛弃的。一个简单的形式就是FIFO队列。第一队列总是packetpool,预先分配的分组的池。最后一个队列也是packetpool,所以报文返回到它。 队列处理程序说明。队列处理的是从线程获得被调函数,最简单的处理程序就是一个FIFO处理程序。更复杂的例子比如一个分离的IPv4和IPv6分组,并将其发送到不同的路径的过程。 自动检测协议 suricata不仅能检测IP、TCP、UDP和ICMP等协议,也能检测HTTP、TLS、FTP和SMB等协议,用户现在可以编写一个规则,例如局域HTTP数据流的端口检测匹配。这将彻底改变恶意软件的检测和控制。 独立的HTP库 该HTP解析器许多其他应用程序如proxies, filters等都很有用处的,HTP作为一个库并在GPLv2许可下,易于集成到其他的工具。 流变量 它可以从信息流捕捉,并保存在其中就可以再进行匹配的变量。 HTTP的日志模块所有的HTTP请求可以自动输出到Apache风格的日志格式文件。此功能对于完全独立的规则集和配套的监控和记录的活动非常有用。如果您需要的话,你可以利用suricata作为一个HTTP嗅探器的日志记录。 OSSECOSSEC属于基于主机和应用的入侵检测系统,通过监视企业重要服务器和各种应用以避免企业资源被攻击、滥用和误用。把基于主机和基于应用的入侵检测系统分成了两大类,不过在实际环境中,往往会将二者结合在一起使用。黑客对主机进行侵入时,往往会同时攻击操作系统和应用服务上的漏洞。OSSEC是一个非常典型的主机型入侵检 测系统,我们可以通过了解它的体系结构与工作原理来了解这一类型的入侵检测技术。OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中。包括了日志分析,全面检测,rook-kit检测。作为一款HIDS,OSSEC应该被安装在一台实施监控的系统中。另外有时候不需要安装完全版本得OSSEC,如果有多台电脑都安装了OSSEC,那么就可以采用客户端/服务器模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。在一台电脑上对多个系统进行监控对于企业或者家庭用户来说都是相当经济实用的。主要功能有日志分析、完整性检查、rootkit检测、基于时间的警报和主动响应。除了具有入侵检测系统功能外,它还一般被用在SEM/SIM(安全事件管理(SEM: Security Event Management)/安全信息管理(SIM:SecurityInformation Management)解决方案中。因其强大的日志分析引擎,ISP(Internet service provider)(网络服务提供商)、大学和数据中心用其监控和分析他们的防火墙、入侵检测系统、网页服务和验证等产生的日志。OSSEC的逻辑结构如下图。图11 OSSEC的逻辑结构图工作原理:Administrator。是一个Unix和linux平台下的命令行的用户接口(GUI),主 要起管理维护作用,对OSSEC的大部分管理、配置工作都在这里进行。它的主要作用为建立和断开和Manager的连接、组织和配置代理(Agent)、 创建和管理各种类型策略、管理OSSEC 用户和用户优先级、在需要的时候更新Manager的许可证优先级等等。Event Viewer。这是一个单独的Unix、linux平台下的图形化用户界面,用于查看从 Agent中获取的各种事件数据,也就是报警的窗口。这是OSSEC比较独特的一点。一般来说入侵检测系统的管理配置与事件查看功能会结合在一起,用户在看到事件查看模块中的报警后,可以利用管理配置模块来进行策略的调配或者采取其他行动。OSSEC这种分开的做法是出于对管理员职责划分的考虑,在某些企业里可能会把安全管理员分为不同的级别,级别高的管理员可以做所有的事情,而级别低的管理员只允许进行日常的状态与安全情况的监护,但不能实际采取操作去处理问题,他必须向上汇报情况,由上级管理员来处理。这时一个只能显示报警而不能进行实际策略的更改的Event Viewer就比较合适了。Manager。是一个运行在后台的应用软件,Manager没有图形化界面,其主要功能是维护与所有注册代理(Agent)的安全通讯维护域的主列表和把相应的策略分发到每一个代理(Agent);把有关域和策略的变化通知给相应的代理 (Agent);接收和存储来自于代理的事件数据;作为OSSEC Administrator、OSSEC Event Viewer和Agent之间通讯的桥梁,维护策略列表和所属域。Manager是整个运行体系信息流的枢纽,它的应用使OSSEC可以适应大型网络的需要。Agent收集到的攻击与可疑信息会通过 Manager向Event Viewer报告,Administrator和Viewer发出的命令与配置指令也会通过Manager下传到Agent上面。在配置 时,Administrator、Evnet Viewer与Agent都需要首先到某一个Manager上注册,加入这个Manager所管理的域,才可以参与这个域的安全活动。简单说,就是 Administrator注册到Manager A上后,才可以去管理Manager A上已经注册的Agent;Event Viewer注册到Manager A之后才能接受并显示它负责的Agent上报的信息;新的Agent注册到Manager A之后,才可以接受相关的Administrator的策略配置,并把安全报警在相应的Event Viewer上显示。Agent(代理)。主要起如下作用:监视时间收集器;在发现攻击时,执行相应的动作如通知用户、发 送E-mail、通知管理员、终止会话、关闭机器等。从Manager中接受安全升级(Security Update)。建立与Manager的安全连接,同时加密数据以便数据可以在网络中安全传送。OSSEC代理被安装在服务器或工作站中,这些代理可以监视该系统中的所有行为,包括和操作系统的交互通信以及特定的应用,从而可以主动保护企业资源和业务免受非法使用和破坏。 其工作原理可以很形象地用如下流程描述:图12 OSSEC工作流程4.1.2 扫描/渗透 OpenVasOpenVas(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题,其架构如图所示:图13 OpenVas漏洞检测其中Openvas Server 是核心部分,负责为Openvas Client提供登陆,查询等功能,包括一整套随时更新的扫描插件(Plugins)。同时Openvas Server负责根据Openvas client发起的请求,对指定的Target Systems(一系列主机)进行扫描,这些主机可以包括Linux、Windows,或是其他操作系统。openvas主要通过已有的免费的NVT漏洞库对选定的主机进行扫描,并将扫描到的漏洞进行分级。用户需要一种自动测试的方法,并确保正在运行一种最恰当的最新测试。OpenVAS包括一个中央服务器和一个图形化的前端。这个服务器准许用户运行几种不同的网络漏洞测试(以Nessus攻击脚本语言编写),而且OpenVAS可以经常对其进行更新。OpenVAS所有的代码都符合GPL规范。 NessusNessus是一款系统漏洞扫描与分析软件,采用B/S架构的Nessus方式安装,以网页的形式向用户展现。用户登录之后可以指定对本机或者其他可访问的服务器进行漏洞扫描。Nessus的扫描程序与漏洞库相互独立,因而可以方 便的更新其漏洞库,同时提供多种插件的扩展和一种语言NASL(Nessus Attack Scripting Language)用来编写测试选项,极大的方便了漏洞数据的维护、更新。在进行扫描完成后,Nessus还可以生成详尽的用户报告,包括脆弱性、漏洞修 补方法以及危害级别等,可以方便的进行后续加固工作。在这里主要结合openVAS一起使用。 P0f p0f是一款被动式的指纹识别工具,它通过分析网络通信识别远端的操作系统和应用软件,检测NAT、连接共享等。能够正确地识别目标系统的类型,对于网络攻击是非常重要的。p0f是利用SYN数据包实现操作系统被动检测技术的。和nmap不同,它不向目标系统发送任何的数据,只是被动地接受来自目标系统的数据进行分析。因此几乎无法被检测到。而且p0f是专门系统识别工具,其指纹数据库非常详尽,更新也比较快。p0f特别适合于安装在网关中。其功能如下:(1) 高扩展性以及快速识别vanilla tcp连接的两个端点的操作系统和软件。与NMAP相比,在易引起警报的情况下,p0f能够更好地识别远端的操作系统和应用软件。(2) 检测系统的正常运行时间和网络广播,距离(包括NAT或数据包过滤器下的拓扑结构),用户的语言偏好,等等。(3) 自动检测连接共享/ NAT,负载均衡和应用层代理设置。(4) 检测客户端和服务器建立的声明语句,如xmailer,用户代理等。 NmapNmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统保安。系统管理员利用Nmap来探测工作环境中未经批准使用的服务器。Nmap不仅仅局限于收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws、linux、Mac等操作系统。其基本功能有三个,一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中,供进一步分析操作。Nmap 实现网络发现的基本原理可以归结为:Nmap使用TCP/IP协议栈指纹来准确地判断出目标主机的操作类型。首先,Nmap通过对目标主机进行端口扫描,找出正在目标主机上监听的端口;然后,Nmap对目标主机进行一系列的测试,利用响应结果建立相应目标主机的Nmap指纹;最后,将此指纹与指纹库中的指纹进行查找匹配,从而得出目标主机类型、操作系统类型、版本以及运行服务等相关信息。由 Nmap 精心构造并发送到主机的探测包是实现网络发现的关键,其执行脚本Nmap Scripting Engine(NSE) 是Nmap非常重要的特性,它允许用户使用Lua语言编写简单的脚本程序来实现各种网络管理任务的自动化运行。如下图:图14 NSE执行流程4.1.3 监控 NagiosNagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。Nagios是一个运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。它可提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。Nagios的主要功能如下:(1) 监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);(2) 监控主机资源(处理器负荷、磁盘利用率等);(3) 简单地插件设计使得用户可以方便地扩展自己服务的检测方法;(4) 并行服务检查机制;(5) 具备定义网络分层结构的能力,用parent主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;(6) 当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);(7) 具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;(8) 可以支持并实现对主机的冗余监控;(9) 可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等; Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。启动 Nagios后,它会周期性的自动调用插件去检测服务器状态,同时 Nagios 会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。Nagios 提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios 主目录下的/libexec 里放有 nagios 自带的可以使用的所有插件,如,check_disk 是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx h 来查看其使用方法和功能。Nagios可以识别 4 种状态返回信息,即 0(OK)表示状态正常、1(WARNING)表示出现一定的异常、2(CRITICAL)表示出现非常严重的错误、3(UNKNOWN)表示被监控的对象已经停止了。Nagios 根据插件返回来的值,来判断监控对象的状态,并通过 web 显示出来,以供管理员及时发现故障。其中实现网络上服务器的监控是通过NRPE插件完成的,Nagios通过周期性的运行它来获取远端服务器的各种状态信息。他们之间的关系如下图:图15 Nagios工作流程 TcpTrackTcptrack是一个能够显示特定端口上有关TCP连接的嗅探器,它会监视正在发生的所有的连接,并且以一种友好的界面显示相关信息。虽然它采用字符用户界面,却易于理解和查看。Tcptrack为管理员跟踪服务器上的每一个连接提供了一些有用的信息。用Tcptrack跟踪代理服务器以确信每一个用户得到适当的带宽,保证无人占用全部的带宽。它为我们提供了一个监视网络通信的方法,可以提供的信息有如下几个方面: 源地址和端口 目标地址和端口 连接状态 空闲时间 带宽利用 NtopNtop是一种监控网络流量工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。他是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具;尤其当ntop与nprobe配合使用,其功能更加显著。它同时提供命令行输入和web页面,可应用于嵌入式web服务。Ntop可以通过分析网络流量来确定网络上存在的各种问题;也可以用来判断是否有黑客正在攻击网络系统;还可以很方便地显示出特定的网络协议、占用大量带宽的主机、各次通信的目标主机、数据包的发送时间、传递数据包的延时等详细信息。通过了解这些信息网管员可以对故障做出及时的响应,对网络进行相应的优化调整,以保证网络运行的效率和安全。 Ntop的功能可以概括为以下几个方面: 自动从网络中识别有用的信息; 将截获的数据包转换成易于识别的格式; 对网络环境中通信失败的情况进行分析; 探测网络环境中的通信瓶颈; 记录网络通信的时间和过程。图16 Ntop工作流程4.2 控制台图17 控制台面板1.系统配置OSSIM网络配置位于SetupSystem preferencesConfigure Network在这层可以完成以下配置:安装管理网络接口IP 子网掩码 网关配置DNS配置Alienvault 防火墙配置防火墙配置代理配置域名配置VPN配置2. 配置主机名称配置主机名功能位于SetupSystem preferencesConfigure hostname3. 邮件系统配置邮件系统配置位于:SetupSystem preferencesConfigure Mail Relay4. 本地配置本地配置路径:SetupSystem preferencesChange Location。本地配置完成两点,分别为键盘配置,另一个为日期时间配置(包括时区、日期、时间服务器的配置)5. 密码修改密码修改路径:SetupSystem preferencesChange password6. 系统补丁更新系统补丁更新包括基础系统,各项服务、数据库及各项规则策略的更新,下载更新工作完成之后会重启各项服务,操作位置在SetupSystem preferences Update alienvault system7. 配置Sensor在配置Sensor中可以完成六项操作:选择监听的网络接口(Select Listenting interfaces (promiscuous mode))配置服务器IP地址配置FrameworkIP地址配置被监控网段(可以填写CIDR)选择数据源(也就是从哪些插件中获取数据)打开或关闭Netflows位置:Setupconfigure Sensor8. OSSIM维护配置路径为:SetupMaintenance&troubleshootingMaintain disk and logs在这里对OSSIM的日志以及缓存进行处理。9. OSSIM数据库处理配置路径为:SetupMaintenance&troubleshootingRepair Database数据库修复,对当前Mysql三个数据库中的若干表进行修复等操作。10.OSSIM故障排除工具配置路径为:SetupMaintenance&troubleshootingTroubleshooting tools,这里能够查看系统日志,alienvault组件日志,htop,网关,以及网速等数据。11.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论