最近公司要求部署OSSIM,在对OSSIM使用的过程中,详细通读了李晨光老师的《OSSIM最佳实践》一书,书中对于OSSIM部署操作以及Sensor操作都有详细介绍。有在甲方做安全运维并需要用到OSSIM的的小伙伴建议可以买一本。
在对OSSIM部署的过程中,遇到很多问题,在百度中寻找答案时,发现关于OSSIM的文章很少,所查到的资料也大多千篇一律的都是基础类而很少有实际操作类。
以下是本人在读《OSSIM最佳实践》一书时,并在OSSIM操作过程中所总结的OSSIM原理、OSSIM的部署等,仅供参考,也欢迎有人提出问题一起学习。
OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。它的目标是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。OSSIM 明确定位为一个集成解决方案,其目标并不是要开发一个新的功能,而是利用丰富的、强大的各种程序(包括Mrtg、Snort、Nmap、Openvas以及Ntop等开源系统安全软件)。在一个保留它们原有功能和作用的开放式架构体系环境下,将它们集成起来。到目前为止,OSSIM支持多达两千多种插件,由于开源项目的优点,这些工具已经久经考验,同时也经过全方位测试,更加可靠。(图片来源于网络)
OSSIM系统结构包括三个层次:数据采集层、核心处理层和数据展现层。
第一层,属于数据采集层,使用各种采集技术采集流量信息、日志、各种资产信息,经过归一化处理后传入核心层。该层体现安全事件来源,入侵检测、防火墙、重要主机发出的日志都是安全事件来源,对于OSSIM而言,数据越多越好,如果没有手机足够的数据,OSSIM就无法进行全面分析。它们按发出机制分为两类:模式侦查器和异常监控(两者都采集警告信息,功能互补),由它们采集的安全事件,再被Agent转换为统一的格式发到OSSIM服务器,这一层就是Sensor要完成的内容。
第二层,属于核心处理层,主要实现对各种数据的深入加工处理,包括运行监控、安全分析、策略管理、风险评估、关联分析、安全对象管理、脆弱性管理、时间管理、报表管理等。该层中OSSIM Server是主角,OSSIM服务器主要功能是安全事件的几种,并对几种后的时间进行关联分析,风险评估及严重性标准等。所谓的集中就是以一种统一格式组织所有系统产生的安全事件告警信息,并将所有的网络安全事件告警存储到数据库,这样就完成了对网络中所产生事件的一个庞大试图。系统通过事件序列关联和启发式算法关联来更好的识别误报和侦查攻击的能力。
OSSIM本质上通过对各种探测器和监控产生的告警进行格式化处理,再进行关联分析,通过后期处理 ,能提高检测性能,即减少告警数量,减少关联引擎的压力,从整体上提高告警质量。
第三层,数据数据表现层,主要负责完成与用户之间的交互,达到安全预警和时间监控、安全运行监控、综合分析的统一展示,形式上以图形化方式展示给用户。Web框架控制台界面即OSSIM的Web UI,其实就是OSSIM系统对外的门户站点,它主要由仪表盘、SIEM控制台、Alarm控制台、资产漏洞扫描管理、可靠性监控、报表及系统策略等部分组成。
从使用的开发工具上,OSSIM系统主要采用了PHP、PYTHON、Perl、Erlang、Ruby、Ajax和C这几种编程语言,从软件层面上看OSSIM框架系统包括五大模块:Agent模块、Server模块、Database数据库模块、Frameworkd模块以及Framework模块。
(1)Agent至Server:来自各个传感器的安全事件被对应Agent格式化后,以加密字符串传给Server。
(2)Server至Agent:发送有关请求命令,以字符串方式向Agent传送,主要是要求Agent完成插件的启动停止及获取信息等。
(3)Server至Frameworkd:发送请求命令,要求Frameworkd针对Alarm采取相应操作,例如执行外部程序或发出Email来通知管理员。
(4)Framework至Server:发送请求命令至Server。要求Server通知Agent对插件进行启动、停止等操作。
(5)Framework至Frameworkd:发送请求命令,要求Frameworkd启动OpebVAS扫描进行。
(6)Frameworkd至Framework:传送OpebVAS扫描结果在前端页面中显示。
(7)Database至Agent和Server:向Agent和Server提供数据。
(8)Server至Database:Server需要将Events、Alarms等数据存入数据库并索引或更新操作。
(9)Database至Frameworkd:在Frameworkd中的Openvas扫描和动作需要调用数据库里的数据。
(10)Frameworkd至Database:在Frameworkd执行过程中将Openvas扫描结果存入数据库。
(11)Database至Framework:PHP页面显示需要调用数据库的告警事件。
(12)Framework至Database:用户参数设置信息需要存入数据库。
OSSIM系统中插件很多,可将它们分为采集插件和监视插件。每个插件又细分为ID和SID。采集插件主要通过SNMP、Syslog、WMI等协议进行采集,在Sensor中常见采集插件有ossec-single-line、ssh、syslog、wmi-system-logger等,其中SNMP与WMI协议需要Agent采集数据时主动进行所采集数据的抓取,Syslog协议则被动接受采集数据。
监控插件包括malwaredomainlist、nussus、nmap、ntop、ocs、ossim等
OSSIM系统的Sensor端包含了采集和监控,这两类插件统称为安全插件,它们都安装在Sensor上。虽然它们都称为插件可工作原理却不同,检测插件是检测器信息产生后,由代理自动向服务器发送,包括Snort、Apache等,而检测器插件需要主动采集安全设备接口上的信息,这类插件可分为Snort、P0f、Prads、Arpwatch、Apache、Ssh、Sudo等。
监控插件,必须由服务器主动发起查询请求。监控插件中定义了需要主动采集的安全设备接口,该模块接收控制中心发出的命令和查询,在OSSIM系统中典型Monitor插件有Nmap、Nessus等。读者可在Alienvault控制台的Sensor配置中查看。
OSSIM主要插件分布情况
分类 |
功能 |
插件名称 |
1 |
访问控制 |
csico-acs、cisco-acs-idm、cisco-asa、f5-firepass |
2 |
防病毒 |
Avast、gfi security、mcafee、clamav、sophos、panda、netkeeper |
3 |
防火墙 |
Csico-pix、ipfw、m0n0wall、netscreen-igs、motorola-firewall、 Iptables、fortigate、stonegate、isa-server、sonicwall、m0n0wall、pf、cyberguard、lucent-brick、paloalto、juniper-srx、sidewinder |
4 |
HIDS |
Ossec、ossec-single-line |
5 |
IDS |
Dragon、juniper-idp、tippingpoint、kismet、osiris |
6 |
蜜罐系统 |
Glastopng、honeyd |
7 |
负载均衡 |
Allot、cisco-ace、citrix-netscaler、f5、heartbeat |
8 |
交换机 |
Cisco、cisco-nexus-nx-os、netgear、nortel、extreme、raslogd、raslogd、alteonos |
9 |
网络监控 |
Ntop-monitor、p0f、prads、session-monitor、tcptrack-monitor |
10 |
虚拟化 |
Vmware-esxi、vmware-vcenter、vmware-vcenter-sql |
11 |
漏洞扫描 |
Nussus、nussus-detector、nussue-monitor |
12 |
网络服务 |
Apache、ftp、dhcp、samba、squid、ssh |
13 |
无线接入 |
Aruba-6、extreme-wireless、cisco-wlc、proxim-orinoco |
对OSSIM插件位置的说明:在安装时系统将支持的插件,全部复制到目录/etc/ossim/agent/plugins/中,如Nagios插件的扩展名为“.cfg”的文本文件,可以用任何编辑器修改,在每个插件配置文件中最难理解的当属正则表达式。
初学者常混淆代理和插件的概念,Sensor指软件和硬件的传感器被安装在网络中收集和发送数据,而代理是运行在传感器上,用来收集和发送数据到服务器的一段脚本,一个插件需要了解特定系统的日志格式,并通过插件来采集数据。
系统中如果启用插件越多,那么采集到网络中的各种数据就越全面。在Sensor中加载过多的插件,将会占用OSSIM Server的数据库空间,下面的这条经验值需要读者了解,系统中每条事件,约占用1KB存储空间,而1millios的时间量,大约占1.5GB空间。
传感器俗称探针,用来收集监控网段内各类资产的信息,它工作在网卡的嗅探模式。OSSIM系统中,把Agent和插件构成的一个具有网络行为监控功能的组合成为一个传感器,Sensor的功能范围主要有:
入侵检测:(最新版已换成支持多线程的Suricate)。
漏洞扫描:(OpenVAS、Nmap)。
异常检测:(P0f、Prads、ARPWatch等)
ARPWatch主要监视网络中新出现的MAC地址,它包含1个监视库,名为arp.dat,在OSSIM中位于/var/lib/arpwatch/arp/dat,所以它同样是AIDE监控的对象。
关联引擎是OSSIM安全集成管理系统的核心部分,它支持分布式运行,负责将Agent传送来的归一化安全事件进行关联分析,并对网络资产进行风险评估,其工作流程如图(图片来源于网络):
OSSIM服务器的核心组件功能包含:事件关联、风险评估和确认优先次序和身份管理、报警和调度、策略管理、IP信誉管理等,其配置文件在/etc/ossim/server目录中,文件分别为:
Alienvaylt-attacks.xml
Alienvaylt-bruteforce.xml
Alienvaylt-dos.xml
Alienvaylt-malware.xml
Alienvaylt-network.xml
Alienvaylt-scan.xml
Alienvaylt-policy.xml
以上这些文件由开源OSSIM免费提供,策略为84条,在USM中则具有2000多条。它们采用XML编写易于理解,维护简单。如图:关联引擎的结构(图片来源于网络)
(1)40001/tcp:Server首先监听40001/tcp端口,接收Agent连接和Framework请求。该端口大小由OSSIM系统在配置文件/etc/ossim/ossim_setup.conf中定义。
我们在OSSIM系统中通过命令可以清晰的看到其工作端口。
1sof -Pn1 +M -i4 | grep ossim-ser
(2)Connect:当连接到端口为40002指定的Agent时,连接到端口为40001的其他Server对采集事件进行分配和传递。该端口在etc/ossim/agent/config.cfg文件的[output-idm]项配置,不建议更改。
(3)Listener:接收各个Agent的连接数据,并细分为Forwarding Server连接、Framework连接。
(4)DB Connect:主要是OSSIM DB连接、Snort DB连接和OSSEC DB连接。
(5)Agent Connect:启动Agent连接,Forwarding Server连接。
(6)Engine:事件的授权、关联、分类。
关联引擎启动
OSSIM系统会启动关联引擎,有时系统调试也需要用到手工启动方式,命令如下:
ossim-server -d -c /etc/ossim/server/config.xml
查看OSSIM Server版本
ossim-server -v
OSSIM关联引擎(简称OSSIM Server)将事件关联结果写入数据库。系统用户可通过Framework(Web前端控制台)对Database进行访问。数据库中alienvault.event表是整个系统事件分析和策略调整的信息源。OSSIM从总体上将其划分为事件数据库(EDB)、知识数据库(KDB)、用户数据库(UDB)。OSSIM数据库用来记录与安全事件关联及配置等相关的信息,对应于设计阶段的KDB和EDB的关联事件部分。在Framework中使用ACID/BASE来作为Snort数据库的前端控制台,对应于设计阶段的EDB。此外ACL数据库相关表格可包含在OSSIM数据库中,用来记录用户行为,对应于设计阶段的UDB库。
OSSIM数据库可分为关系型数据库和非关系型数据库。OSSIM系统默认使用MySql监听端口是3306,为增强其处理性能,在Alienvault USM中采用Mongo DB作为非关系型数据库。在2013年将OSSIM 4.2发行版中庸Percona_server5.5替换了原来的MySql5.1,由于使用了XtraDB存储引擎,而且对MySql进行了优化和改进,使其在功能和性能上明显提升。在2015年最新版本USM5.0中将Percona_server升级为功能强大的5.6.23。OSSIM主要版本数据库变迁如下:
版本 |
数据库 |
OSSIM 2.3 |
MySQL-server 5.1 |
OSSIM 3.1 |
MySQL-server 5.1 |
OSSIM 4.1 |
Percona-serve-5.5.23 |
OSSIM 4.2 |
Percona-serve-5.5.25 |
OSSIM 4.3 |
Percona-serve-5.5.29 |
OSSIM 4.4 |
Percona-serve-5.5.33 |
OSSIM 4.5 |
Percona-serve-5.5.33 |
OSSIM 4.6~4.9 |
Percona-serve-5.5.33-31 |
OSSIM 4.10~4.15 |
Percona-serve-5.5.33-31.1 |
OSSIM USM 5.0 |
Percona-serve-5.5.33-72.1 |
OSSIM USM 5.1 |
Percona-serve-5.5.33-72.1 |
在前面介绍过OSSIM系统涉及LAMP环境,由Perl/Python/PHP开发工具融合在一起(在/usr/share/ossim/scripts/等路径下有着大量*.py、*.sh和*.php、*.pl等脚本文件),它们发挥各自的优势,其中Web框架(Framework)控制台,提供用户Web页面从而控制系统的运行(例如设置策略),是整个系统的前端,用来实现用户和系统之间的交互
Framework可以细分为2个部分:Frontend(可视化管理前端)主要采用PHP语言编写,它是系统的一组Web页面;Framework是一个守护进程,采用Python编写,主要脚本在/usr/share/ossim-framework/ossimframework/目录下,它绑定OSSIM的知识库和事件库,监听端口40003(在/etc/ossim/ossim_setup.conf配置文件以及/etc/ossim/server/config.xml中)可以查看到相关端口定义的信息,同样通过命令查看:
Lsof -Pnl +M -i4|grep ossim-fra
通过以上命令可以清楚查看到服务器端口信息,了解这些信息对于我们理解他的工作原理有好处,它负责将Frontend收到的用户质量和系统的其他组件相关联,并绘制Web图表供前端显示。在OSSIM系统中,Framework安装了Apache+PHP+Adodb来搭建支持PHP的Web Server,安装phpgacl处理用户权限,安装Mrtg、RRdtool绘制监控图,安装ACID/BASE作为事件的前端控制台。
当OSSIM Server停止运行后,它将不再监听40001端口,此时传感器发送回来的数据也就无法收集到,首先查看端口情况:
netstat -lnt | grep 4000
如图是正常时40001、40002、40003、40004端口处于监听状态,一旦出现状况后只有40003端口在监听。
RabbitMQ是实现AMQP(高级消息列队协议)消息中间件的一种,它是消息中间件的开发标准,与平台无关,现用于OSSIM分布式系统中存储转发消息,其工作原理如图:
为什么要使用RabbitMQ?在高并发情况下,RabbitMQ在处理发送和接收请求时响应非常快速,而且对其性能调优后,系统响应速度还会有所提高。RabbitMQ使用Erlang编写的AMQP服务器,而AMQP基于客户端/代理模式。
在大数据日志分析应用中,我们常将OSSIM做成集群模式,因为这样可以使用RabbitMQ节点,根据日志种类建立响应的队列,并且根据日志种类的名称建立exchange的key值。RabbitMQ通信端口为5672.
OSSIM中我们通过以下命令查看端口。
netstat -na | grep 5672
RabbitMQ环境变量的配置文件位于/etc/rabbitmq/rabbitmq-env.conf,使用时需要查询RabbitMQ状态命令,方法如下:
rabbitmq-server alienvault \\这里的alienvault代表OSSIM Server的主机名称
此时,能显示RabbitMQ的端口、节点名称和主目录(/var/lib/rabbitmq)。
***提示:永远不要用kill命令直接停止RabbitMQ服务器,而应该采用rabbitmqctl命令,这样可以将数据同步保存到磁盘,然后关闭服务:
Rabbitmqctl stop
早期OSSIM版本中依然采用MySQL+Memcached的架构存储数据,由于存在性能和一致性的问题,在OSSIM4.4后续版本中引入redis服务器,有读者会问为什么选用Key/Value存储?从SIEM收集信息的角度出发,无论日志还是安全事件都属于非结构化数据,在日志关联分析时,非结构化的数据量会大大超过结构化数据,这些数据之间存在关联,如果将这些数据直接存入数据库,那么对数据库访问频率将增加,由于单个表行数的猛增,对表的访问行数成比例增加,在多个表之间的数据调用将会产生大量的计算,足以将任何一个数据分析系统压垮。
在分析OSSIM系统各集成开源工具中发现系统没有进行持久化,如果RabbitMQ服务器重启会导致消息丢失,所以采用redis Server 来解决这些问题,Redis是一个Key/Value是的NoSQL数据库,redis作为缓存服务器,数据存储在内存,所以速度比mysql要快的多,尤其在OSSIM的WEB UI中很多的排行榜应用,取出TOP 10的操作:包括各种仪表盘、计算器应用、SIEM控制台的Uniq操作、获取某段时间所有数据的列表、取最新的TOP N操作,以及在分布式日志收集系统中消息列队的处理,包括爆表输出中产生TOP 10 Attacker Host、Top 10 User Ports、Top 15 Alarms,这些都要用到redis服务。
下面列举了常见的有关Redis的操作实例。
(1)查询Redis端口是否被占用使用如下命令。
Netstat -ntlp | grep 6379
(2)查询Redis服务是否运行
ps xal | grep redis
(3)测试启动。返回PONG表示启动成功
Redis-cli ping
注意启动Redis客户端的命令为Redis-cli.
(4)查看服务器的统计信息(以OSSIM USM为例)。
Redis-cli info
在这些统计信息中,以下内容需要了解。
(截图来源于网络)
(5)查看实时转储收到的请求。
Redis-cli monitor
由镜像文件启动系统(AlienVault_OSSIM_64bits)
经过多次测试,给4G内存大多无法启动服务或者启动起来卡死。建议8G内存运行环境。
此处我选择桥接模式,因为稍后测试中扫描资产会扫描和OSSIM同网段的公司电脑。
大概流程如下:在"Install OSSIM"界面,点击"Install AlientVault OSSIM 5.0 (64 Bit)"(此为混合安装模式,下面那个是sensor,也就是一般所谓的收集信息的代理端);之后"选择你的区域"界面,,"配置键盘","配置网络"界面, "设置用户和密码"。
之后按操作提示来(首先要确认你部署OSSIM所在网关)
然后等待安装。。。
登录后即可访问192.168.3.188
第一次访问,需要在"Administrator Account Creation"界面输入FULL NAME、PASSWORD、EMAIL等项,点击"START USING ALIENVAULT";然后会跳转到登录界面,输入USERNAME和PASSWORD,点击"LOGIN"; 在"Welcome to the AlienVault OSSIM Getting Started Wizard"界面,点击"START",进行配置; 在"Configure Network Interfaces"界面,列出作为服务端的主机的网口信息,没什么要修改的,直接点击"NEXT";在"Scan & Add Assets"界面,系统会自动探测出局域网内的主机(也可以手动探测),筛选出要进行监控的资产,点击"NEXT"; 在"Deploy HIDS to Servers"界面,选择需要部署HIDS agent的主机,输入该主机的Username和Password,先后点击"DEPLOY"和"CONTINUE"即可,部署完成之后,点击"NEXT";在"LOG MANAGEMENT"界面,确认相应的网络资产的Vendor、Model和Version,点击"ENABLE"即可安装数据源插件,也可以点击"SKIP THIS STEP"来略过该步; 在"JOIN OTX"界面,需要注册并输入TOKEN,也可以点击"SKIP THIS STEP"来略过该步,最后点击"FINISH"来结束配置;
配置网卡
发现网络资源
系统开始设置所监控的网络环境中的各种资产(服务器、网络设备到),并逐一添加到系统中,可以通过网络扫描发现,也可以通过导入CSV文件,还可以手动天剑设备。
这里我直接扫描的资产
如果需要监控的网段比较多,可以用CVS文件导入方式
部署HIDS
这一步是为了部署HIDS而设置,主要目的是执行文件完整性监控,Rootkit检测以及收集日志。注意:无论是windows主机还是linux主机部署HIDS,都要先关闭其防火墙,才能自动部署成功。
加入OTX
这里需要输入OTX KEY
注册步骤详见下面4.2加入OTX
这里在加入时会连接不到网络,配置DNS即可,然后重新加入OTX key。
点击立即注册
然后输入用户名、密码、电子邮件。这里电子邮件需要输入真实邮件,后面需要登录邮箱激活
然后登录自己的邮箱进行激活
按步骤激活即可。
最后找到OTX KEY所在位置
在OSSIM中加入OTX
在加入成功后,查看OTX页面
第一步:同步插件
#openvas-nvt-sync
[i] This script synchronizes an NVT collection with the 'OpenVAS NVT Feed'.
[i] The 'OpenVAS NVT Feed' is provided by 'The OpenVAS Project'.
[i] Online information about this feed: 'http://www.openvas.org/openvas-nvt-feed.html'.
[i] NVT dir: /var/lib/openvas/plugins
[i] Will use rsync
[i] Using rsync: /usr/bin/rsync
[i] Configured NVT rsync feed: rsync://feed.openvas.org:/nvt-feed
OpenVAS feed server - http://www.openvas.org/
This service is hosted by Intevation GmbH - http://intevation.de/
All transactions are logged.
Please report synchronization problems to openvas-feed@intevation.de.
If you have any other questions, please use the OpenVAS mailing lists
or the OpenVAS IRC chat. See http://www.openvas.org/ for details.
receiving incremental file list
deleting gb_openssl_38562.nasl.asc
deleting gb_openssl_38562.nasl
./
COPYING
588 100% 574.22kB/s 0:00:00 (xfer#1, to-check=13347/13355)
COPYING.GPLv2
18002 100% 17.17MB/s 0:00:00 (xfer#2, to-check=13346/13355)
COPYING.files
1819904 100% 1.77MB/s 0:00:00 (xfer#3, to-check=13345/13355)
DDI_Directory_Scanner.nasl
32957 100% 32.74kB/s 0:00:00 (xfer#4, to-check=13342/13355)
DDI_Directory_Scanner.nasl.asc
198 100% 0.20kB/s 0:00:00 (xfer#5, to-check=13341/13355)
... ...
同步数万个插件时间比较长,消耗资源不大,可以去喝杯咖啡啦,或者了解一下插件的组成。
表1 Openvas主要脚本分类及分布情况
规则名称 |
数量 |
备注 |
IIS_frontpage_DOS_2.nasl |
1 |
|
phpbb |
8 |
|
RA_ssh_detect RA_www_css RA_www_detect |
3 |
|
RHSA_2009_03** |
279 |
Redhat Security Advisory |
3com_switches |
1 |
|
weblogic* |
3 |
|
cisco_ids cisco_vpn ciscoworks |
16 |
|
awstats |
4 |
|
apache |
23 |
|
DDI |
30 |
|
EZ_hotscripts |
3 |
|
anti_nessus |
1 |
|
basilix |
8 |
|
bluecoat |
1 |
|
bugbear |
3 |
|
bugzilla |
9 |
|
ca_unicenter |
2 |
|
cacti |
5 |
|
calendar |
3 |
|
Spoll_7_5_sql_injection |
2 |
|
avaya_switches |
1 |
|
citrix |
8 |
|
clamav |
2 |
|
CUPS |
12 |
|
cutenews |
12 |
|
checkpoint |
6 |
|
cheopsNG |
4 |
|
cvstrac |
24 |
|
DB2 |
4 |
|
deb_*.nasl |
2595 |
Debian Linux |
DNS |
5 |
|
deluxeBB |
3 |
|
eftp |
3 |
|
ls exchange* |
||
exchange |
2 |
|
fcore |
684 |
|
find_service |
5 |
|
fortigate |
1 |
|
freebsd |
2009 |
|
ftp |
30 |
|
gb_CESA |
1528 |
|
gb_RHSA |
871 |
|
gb_adobe |
167 |
|
gb_apple |
70 |
|
gb_baofeng_storm |
3 |
|
gb_bpsoft |
3 |
|
gb_clamav |
16 |
|
gb_ccproxy |
2 |
|
gb_clamav |
16 |
|
gb_fedora |
4679 |
|
gb_google |
162 |
|
gb_hp_ux |
242 |
HP-UNIX |
gb_ibm_db2 |
27 |
|
gb_ibm_websphere |
8 |
|
gb_ibm_tivoli |
5 |
|
gb_ibm_was |
16 |
|
gb_ibm_lotus |
10 |
|
gb_mandriva |
1684 |
|
gb_java |
2 |
|
gb_kaspersky |
6 |
|
gb_google_chrome |
153 |
|
gb_foxmail |
2 |
|
gb_fsecure |
7 |
|
gb_ms |
155 |
Windows 相关 |
gb_ubuntu |
1261 |
|
gb_samba |
12 |
|
gb_sun_java |
35 |
|
gb_wireshark |
87 |
|
glsa |
1727 |
|
gb_vmware |
41 |
|
IIS |
20 |
|
lotus |
5 |
|
ipswitch |
5 |
|
mysql |
5 |
|
gb_nmap |
187 |
|
nortel |
7 |
|
nagios |
5 |
|
openssh |
4 |
|
oscommerce |
5 |
|
postgresql |
5 |
|
phpgroupware |
12 |
|
phpmyadmin |
7 |
|
phpbb |
8 |
|
smb |
52 |
|
sendmail |
15 |
|
suse |
65 |
|
ssh |
11 |
|
smtp |
9 |
|
Ubuntu |
179 |
|
tomcat |
6 |
|
tftp |
11 |
|
wu_ftpd |
6 |
第二步:更新插件(做这一步操作,建议在轻负载下进行)
#perl /usr/share/ossim/scripts/vulnmeter/updateplugins.pl migrate /* 比较消耗CPU和磁盘I/O */nbx
2015-09-07 07:27:33 Framework profile has been found...
2015-09-07 07:27:33 Deleting all tasks in 192.168.11.150 ...
2015-09-07 07:27:33 updateplugins: configured to not updateplugins
2015-09-07 07:27:33 updateplugins: configured to not repair DB
2015-09-07 07:27:33 BEGIN - DUMP PLUGINS
2015-09-07 07:29:01 FINISH - DUMP PLUGINS [ Process took 88 seconds ]
2015-09-07 07:29:01 BEGIN - IMPORT PLUGINS
2015-09-07 07:30:00 FINISH - IMPORT PLUGINS [ 40473 plugins - Process took 59 seconds ]
2015-09-07 07:30:00 BEGIN - UPDATE CATEGORIES
2015-09-07 07:30:00 FINISH - UPDATE CATEGORIES [ Process took 0 seconds ]
2015-09-07 07:30:00 BEGIN - UPDATE FAMILIES
2015-09-07 07:30:00 FINISH - UPDATE FAMILIES [ Process took 0 seconds ]
2015-09-07 07:30:00 BEGIN - UPDATE OPENVAS_PLUGINS
2015-09-07 07:30:03 FINISH - UPDATE OPENVAS_PLUGINS [ Process took 3 seconds ]
2015-09-07 07:30:03 BEGIN - UPDATE NESSUS_PREFERENCES
2015-09-07 07:30:03 show tables like "vuln_nessus_preferences_defaults"
2015-09-07 07:30:03 updateprefs: Getting plugin preferences
2015-09-07 07:30:05 FINISH - UPDATE NESSUS_PREFERENCES [ Process took 2 seconds ]
2015-09-07 07:30:06 Creating Deep profile...
2015-09-07 07:30:06 Filling categories...............
2015-09-07 07:30:06 Done
2015-09-07 07:30:06 Filling families.............................................................
2015-09-07 07:30:06 Done
2015-09-07 07:30:06 Filling plugins...
2015-09-07 07:30:13 Filling preferences in Alienvault DB...
2015-09-07 07:30:14 Done
2015-09-07 07:30:14 Deep profile inserted
2015-09-07 07:30:15 Creating Default profile...
2015-09-07 07:30:15 Filling categories...............
2015-09-07 07:30:15 Done
2015-09-07 07:30:15 Filling families.............................................................
2015-09-07 07:30:15 Done
2015-09-07 07:30:15 Filling plugins...
2015-09-07 07:30:23 Filling preferences in Alienvault DB...
2015-09-07 07:30:24 Done
2015-09-07 07:30:24 Default profile inserted
2015-09-07 07:30:24 Creating Ultimate profile...
2015-09-07 07:30:24 Filling categories...............
2015-09-07 07:30:24 Done
2015-09-07 07:30:24 Filling families.............................................................
2015-09-07 07:30:24 Done
2015-09-07 07:30:24 Filling plugins...
2015-09-07 07:30:32 Filling preferences in Alienvault DB...
2015-09-07 07:30:33 Done
2015-09-07 07:30:33 Ultimate profile inserted
2015-09-07 07:30:33 BEGIN - UPDATE PORT SCANNER
2015-09-07 07:30:35 FINISH - UPDATE PORT SCANNER [ Process took 2 seconds ]
Updating plugin_sid vulnerabilities scanner ids
plugins fetched
Updating...
Script id:94151, Name:IT-Grundschutz M4.288: Sichere Administration von VoIP-Endger?ten, Priority:0
Script id:703073, Name:Debian Security Advisory DSA 3073-1 (libgcrypt11 - security update), Priority:1
Script id:804624, Name:Adobe Reader Plugin Signature Bypass Vulnerability (Windows), Priority:2
Script id:868149, Name:Fedora Update for kernel FEDORA-2014-9959, Priority:5
Script id:95048, Name:IT-Grundschutz M5.145: Sicherer Einsatz von CUPS, Priority:0
Script id:842216, Name:Ubuntu Update for linux USN-2616-1, Priority:4
Script id:105036, Name:OpenVPN Detection, Priority:0
Script id:868005, Name:Fedora Update for audacious-plugins FEDORA-2014-8183, Priority:1
Script id:869350, Name:Fedora Update for springframework FEDORA-2015-6862, Priority:5
… …
Script id:105084, Name:Multiple ManageEngine Products Arbitrary File Upload Vulnerability, Priority:3
Script id:867751, Name:Fedora Update for python-keystoneclient FEDORA-2014-5555, Priority:3
Script id:882209, Name:CentOS Update for nss CESA-2015:1185 centos6, Priority:2
Script id:842209, Name:Ubuntu Update for libmodule-signature-perl USN-2607-1, Priority:5
经过一刻钟等待终于更新完成。注意,该过程需要一气呵成,中途不能强制退出。
第三步:验证更新
我们看到最后一行显示总数为40473,这个数值和下载的插件数量一直,代表升级完成。---截图未显示全
ossim可以进行资产的统一管理,所以首要的任务是添加资产,分以下几种方式:
位置Environment > Assets & Groups > Add Host
位置Environment > Assets & Groups > Import CSV
如图所示,根据模板制作好CSV文件,直接导入即可
位置Environment > Assets & Groups > Import From SIME
之后等待即可,系统会自动添加在SIME中的资产信息到assets中.
位置Environment > Assets & Groups > Scan For New Assets
这个方法是最常用的,添加扫描之前,先要确定要扫描的网段有哪些,比如我要添加192.168.1.0/24的所有存活的主机
4.4.4.1 添加网段
首先要在Environment > Assets & Groups >NETWORKS > ADD NETWORK中添加网段信息如图所示:
4.4.4.2 扫描任务
打开Environment > Assets & Groups > Scan For New Assets
这里有扫描类型可以选择以下几种方式
扫描类型:
Scan Type:(扫描类型)Ping 向每个资产发送ping
Fast Scan (默认)扫描最常用的100个端口
Normal 扫描最常用的1000个端口
Full Scan 扫描所有端口,速度会很慢
Custom 允许用户定义要扫描的端口
时间模板:
Timing Template:
Paranoid 扫描非常缓慢。它序列化所有扫描(无并行扫描),通常等待至少5分钟
Sneaky 与Paranoid模式类似,但它只在包传输之间等待15秒
Polite 减轻网络负载,降低系统故障的几率
Normal (默认)以达到最快扫描吞吐量的速率扫描,而不会使网络过载或缺少主机和端口
Aggressive 添加5分钟。每个主机超时。探头响应间隔不超过1.25 s
Insane 只适合非常快的网络,除非你不介意丢失一些信息,超时主机在75秒,单个探头的等待时间仅为0.3 s
自动检测服务和dns反向解析:
Autodetect Services and Operating System:
检测服务和操作系统版本。默认情况下启用。
Enable Reverse DNS Resolution:
确定与发现的IP地址关联的域名,通常仅与响应(在线)主机相关,默认情况下启用.
之后点击开始扫描即可,nmap扫描器即刻开始扫描,过一会就可以看扫描页面下有好多被扫描出来的主机信息,保存信息即可。
因为服务器可能随时有新添加或者关闭等情况的存在,时间长了ossim中的信息会不准确,所以可以采用定期自动扫描的方式来进行:
打开Environment > Assets & Groups > Schedule Scan> Schedule new scan
扫描频率,有以下几种,可根据实际情况自由选择
Frequency
小时,天,星期,月
安装前需要准备编译环境
如果是Debian,需要先执行以下命令:
#apt-get install build-essential
下面以在linux主机(centos7)192.168.3.97上安装客户端为例OSSIM_IP == 192.168.3.188
在3.97上下载客户端:
https://github.com/ossec/ossec-hids/releases
# cd /usr/local/src/
#wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz #下载客户端
# tar -zxvf ossec-hids-2.8.1.tar.gz #解压
# cd ossec-hids-2.8.1
# ./install.sh 运行install.sh
以下是几个输入的地方:
(en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]: en #使用英文安装的方式
What kind of installation do you want (server, agent, local, hybrid or help)? agent #安装的类型
Choose where to install the OSSEC HIDS [/var/ossec]: #安装的路径 默认就行 直接回车
What's the IP Address or hostname of the OSSEC HIDS server?: 192.168.31.111 #输入你服务端的地址
Do you want to run the integrity check daemon? (y/n) [y]: #默认回车
Do you want to run the rootkit detection engine? (y/n) [y]: #rootkit 检查 默认回车
Do you want to enable active response? (y/n) [y]: #默认回车
之后等待安装完毕
回到ossim的操作界面([https://192.168.3.188](https://192.168.3.188)) ,添加agent信息:
注意:如果这里是安装win的客户端的话,添加的资产的系统类型一定要修改成win的,否则无法下载客户端
可以看到如下的结果,然后点击图中标示的位置,复制得到的key:
key:
MyBIb3N0LTE5Mi0xNjgtMzEtOTcgMTkyLjE2OC4zMS45NyA5YTBh0OTFlZDQ2ZTUwMmQ1MWQ2MGE3YzA2NDgxZTIzZTIyOGUxZjIzNTJlM2FkM2FkNTkxYjNiY2Fh
在客户端的命令行执行manage_agents,按照提示输入key:
# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: I #输入i
* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.
Paste it here (or '\q' to quit): MyBIb3N0LTE5Mi0xNjgtMzEtOTcgMTkyLjE2OC4zMS45NyA5YTBhODA0OTFlZDQ2ZTUwMmQ1MWQ2MGE3YzA2NDgxZTIzZTIyOGUxZjIzNTJlM2FkM2FkNTk5NYjNiY2Fh #粘贴上key
Agent information:
ID:3
Name:Host-192-168-3-97
IP Address:192.168.3.97
Confirm adding it?(y/n): Y #确认信息
Added.
** Press ENTER to return to the main menu.
****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: Q #输入q 退出
** You must restart OSSEC for your changes to take effect.
manage_agents: Exiting ..
此时,已经完成了客户端的安装,过一段时间之后可以看到客户端的状态是active.
整个安装的过程很简单,但是有些时候总是会出现各种问题:
问题1:怎么查看客户端的日志:
客户端日志的位置位于/var/ossec/logs/ossec.log,可以通过使用命令tail -40f /var/ossec/logs/ossec.log查看日志信息,在排错中会起到相当重要的作用.
问题2:为什么ossim制台一直显示agent是未连接(Disconnected)的状态:
这个时候可以先查看下客户端的日志:tail -40f /var/ossec/logs/ossec.log
然后重启下客户端进程:/var/ossec/bin/ossec-control restart
查看下进程的状态:/var/ossec/bin/ossec-control status
ossec-logcollector is running...
ossec-syscheckd is running...
ossec-agentd is running...
ossec-execd is running...
如果都运行状态,表示已经成功启动服务,在看看上面的日志输出情况,如果可以正常连接服务器,则表示成功.
2017/01/09 12:50:56 ossec-agentd: INFO: Trying to connect to server (192.168.31.111:1514).
2017/01/09 12:50:56 ossec-agentd: INFO: Using IPv4 for: 192.168.31.111 .
2017/01/09 12:50:57 ossec-agentd(4102): INFO: Connected to the server (192.168.31.111:1514). #成功连接
2017/01/09 12:51:00 ossec-syscheckd: INFO: Started (pid: 22595).
2017/01/09 12:51:00 ossec-rootcheck: INFO: Started (pid: 22595).
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/etc'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/usr/bin'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/usr/sbin'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/bin'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/sbin'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Monitoring directory: '/opt/cc.txt'.
2017/01/09 12:51:00 ossec-syscheckd: INFO: Directory set for real time monitoring: '/opt/cc.txt'.
还可以在ossim服务端通过命令行的方式来查看下已经有哪些agent连接上来:
alienvault:~# /var/ossec/bin/agent_control -lc #-lc 表示显示已经成功连接服务端的客户端列表
OSSEC HIDS agent_control. List of available agents:
ID: 000, Name: alienvault (server), IP: 127.0.0.1, Active/Local
ID: 2, Name: Host-192-168-31-98, IP: 192.168.31.98, Active
ID: 3, Name: Host-192-168-31-97, IP: 192.168.31.97, Active
还可以查看服务端的1514端口的流量信息,看看是否有日志传输过来
ngrep -q -d any port 1514
问题3:通过命令/var/ossec/bin/agent_control -lc 已经可以看到添加 agent是Active状态,但是ossim的控制台还是Disconnected,是怎么回事.
这里貌似存在一定的延时,可以过一段时间在看看,另外可以通过以下方法来判断是否客户端真的连接到了服务端:
1 运行tail -40f /var/ossec/logs/ossec.log
2 在ossim的控制台点击:restart agent
可以看到日志变化了,在你点击restart agent,日志中显示,客户端已经重新启动,载入你要监控的文件,就表示已经连接到了服务端,功能已经可以正常启用了.至于控制台的显示,那就是他的问题了 0.0
2017/01/09 13:00:36 ossec-logcollector(1225): INFO: SIGNAL Received. Exit Cleaning...
2017/01/09 13:00:36 ossec-syscheckd(1225): INFO: SIGNAL Received. Exit Cleaning...
2017/01/09 13:00:36 ossec-agentd(1225): INFO: SIGNAL Received. Exit Cleaning...
2017/01/09 13:00:36 ossec-execd(1314): INFO: Shutdown received. Deleting responses.
2017/01/09 13:00:36 ossec-execd(1225): INFO: SIGNAL Received. Exit Cleaning...
2017/01/09 13:00:37 ossec-execd: INFO: Started (pid: 22890).
2017/01/09 13:00:37 ossec-agentd: INFO: Using notify time: 600 and max time to reconnect: 1800
2017/01/09 13:00:37 ossec-agentd(1410): INFO: Reading authentication keys file.
2017/01/09 13:00:37 ossec-agentd: INFO: Assigning counter for agent Host-192-168-31-97: '2:2760'.
2017/01/09 13:00:37 ossec-agentd: INFO: Assigning sender counter: 54:9664
2017/01/09 13:00:37 ossec-agentd: INFO: Started (pid: 22894).
2017/01/09 13:00:37 ossec-agentd: INFO: Server IP Address: 192.168.31.111
2017/01/09 13:00:37 ossec-agentd: INFO: Trying to connect to server (192.168.31.111:1514).
2017/01/09 13:00:37 ossec-agentd: INFO: Using IPv4 for: 192.168.31.111 .
2017/01/09 13:00:38 ossec-agentd(4102): INFO: Connected to the server (192.168.31.111:1514).
在之前安装中,试验过几个虚拟机的部署,前几个在安装后输入密码都无法登录。问题无法确定是否是密码过于简单问题,所以在建立密码时建议长度满足8位以上、大小写和特殊字符混合。
在连接OTX时会出现如下问题
配置下DNS就好了。。
vim /etc/resolv.conf
再次加入OTX
在公司办公网内进行测试
输入账号密码即可登录
执行以下操作可添加网络:
选中-扫描漏洞
扫描结果:
点开漏洞即可详细浏览
以上只是OSSIM的架构简单介绍还有OSSIM的简单部署步骤,之后会详细介绍OSSIM Server和Sensor的结合使用、分布式部署OSSIM服务以及Netflow的等各种插件的使用。
本文作者:Lemon
本文属于安全脉搏原创金币奖励计划
转载请参考:https://www.secpulse.com/archives/61458.html
本文作者:Lemon
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/67350.html
这个有简体中文版了么?我的页面还是英文的,中文繁体不好用。
@test https://item.jd.com/11871562.html 这个貌似是中文简体的
@secpulse 我觉得他说的应该不是中文版的书,而是中文版的OSSIM页面[em_10]
@Lemon 啊哈哈哈哈 原来是这样 看来我理解偏了 谢谢指正
@test 现在还没有中文版的。