(完成本文所述实验内容,需要读者具备日志采集分析、ELK和Docker环境的操作经验)
Security Onion是免费的开源Linux发行版,它主要用于网络威胁发现,企业安全监视和日志管理。它包括TheHive、Playbook和Sigma、Fleet和osquery、CyberChef、Elasticsearch、Logstash、Kibana、Suricata、Zeek(以前的bro-ids)等安全工具。
Security Onion始于2008年(开发年代和OSSIM相近),最初基于Ubuntu Linux发行版,直到Security Onion的最后一个主要版本是基于Ubuntu 16.04的,所有称它为Security Onion 16.04,开源许可协议License GPLv2。
目前讲述的SOS 2.3安全洋葱解决方案是在CentOS Linux下基于容器开发,该平台命名为Security Onion 2,截至目前的最新发行版为v 2.3.10。
以下是Security Onion 2与旧版系统(v 16.04)的差异:
从Ubuntu软件包移至Docker容器;
支持CentOS Linux 7;
将pcap收集工具从netsniff-ng(v16.04之前的版本都采用该组件)更改为Google Stenographer(一种新型抓包方案,可快速将网络包保存到硬盘)
升级到Elastic Stack 7.x并支持Elastic Common Schema(ECS);
将内核模块PF_RING替换为AF_PACKET;
Suricata完全取代Snort;
删除了Sguil,Squit和capME;
增加了存储节点现在称为搜索节点;
整合的新技术包括:TheHive、Strelka、支持Sigma规则、Grafana (主机的健康监控和报警)、Fleet(用于osquery管理)、Playbook(检测Playbook的工具)、Onion Hunt、Security Onion Console ;
为了便于理解,下面将简单介绍SOS一些重要的系统组件运行原理。以前的文章(李晨光:快速安装可视化IDS系统Security Onion(v 12))介绍过NSM(网络安全监控)的概念,NSM的理念贯穿于Secrity Onion各系软件中,它是一种收集日志信息,分析网络威胁以及分析网络流量通过多种手段来进行故障排除和检查的实践。
Elastic Stack是SOS构建SIEM系统的重要组件。
ElasticSearch提供收集、分析、存储数据三大功能。
Logstash主要是用来日志的收集、分析、过滤日志的工具。Logstash使用各种输入插件来收集日志。它也可以接收OSSEC或Suricata的输入数据。
Kibana 可以为Logstash 和ElasticSearch 提供的日志分析友好的Web 界面,SOS系统中没有专门设计UI只能通过Kibana来可以汇总、分析和搜索重要数据日志。
Filebeat 收集文件数据
Suricata:开源IDS,可对网络异常行为进行报警。
Zeek (原bro-ids):检测非标准端口上的协议标语,收集HTTP客户端和服务器标头,收集DNS请求和响应、SSH、SSL证书、LDAP / Active Directory等。在进行数据包分析过程中,Zeek和Suricata都非常消耗硬件资源。
SOS 是一个值得尝试的系统,大家可以一边下载这个大型ISO文件,一边阅读下列相关知识点。
下载2.3.10 ISO image(约6.84GB)的网址
https://download.securityonion.net/file/securityonion/securityonion-2.3.10.iso
MD5: 55E10BAE3D90DF47CA4D5DCCDCB67A96
SHA1: 01361123F35CEACE077803BC8074594D57EE653A
SHA256: 772EA4EFFFF12F026593F5D1CC93DB538CC17B9BA5F60308F1976B6ED7032A8D
Security Onion的最大特点就是虽然集成度很高,但用户安装界面却比较简单,另一个特点就是新,我相信很多开源软件大家都并不熟悉,由于它是基于Centos Linux开发所有安全组件都经过特殊设置,而且跟操作系统完美结合,所以即使是“门外汉”部署这套系统照样能够上手。
Security Onion提供的3个大核心功能:
1)全包捕获:全包捕获通过Stenographer来实现,它会捕获Security Onion传感器的所有网络流量。就像一部网络摄像机一样,捕获网络数据包。
2)网络和端点检测:分析网络流量或主机系统,并为检测到的事件和活动提供日志和警报数据。
3)强大的分析工具:SOS紧密集成了下列工具:
安全洋葱控制台(SOC)可以查看所有的NIDS和HIDS警报,从功能上看这和安全运营中心SOC差的还很远,不过很吸引眼球不是嘛。
The Hive,可以发现很多事件报警和日志。
Kibana:使我们能够通过“单一窗格”快速分析和分析由Security Onion生成的所有不同数据类型。
CyberChef:允许您解码,解压缩和分析数据包。
Playbook:用来创建检测剧本,这些剧本是完全独立的,描述了特定检测策略的不同方面。
SOS不但包含了Elastic Stack( 一套完整的大数据处理系统,从日志输入、转换到存储分析、可视化),而且还添加了下列内容(这3个组件在Security Onion中作为Docker容器运行):
Curator:主要用来帮助管理Elasticsearch索引和快照。
ElastAlert:用于查询ElasticSearch,并提供具有多种输出类型的警报机制。
FreqServer :用于分析那些被频繁访问的字段,并给出访问次数排名。
大家注意:这里我们仅在一个小型实验室中进行安装采用的是EVAL(测试评估版)模式。如果在生产环境中宜采用分布式安装模式。
核心管道:Filebeat [EVAL节点] –> ES提取[EVAL节点]
日志:Zeek、Suricata、Wazuh、Osquery / Fleet
Osquery发送方管道:Osquery [端点] –>舰队[EVAL节点] –>通过核心管道的ES提取
日志:WEL、Osquery、syslog
下面的实验中采用独立安装方式,此方式由运行服务器和传感器组件以及相关进程的单个虚拟机组成,最适合初学者入门。
由于 SO 2.3.1 采用的是 Docker CE v19.0.3容器,Docker CE (Docker Community Edition 社区版,与之对应的是EE,企业版)是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。大家在使用SO 2.3.1时会涉及到很多ELK和Docker的知识点。
SOS 2.3是一个比之前的Security Onion更强大的新平台。新增的软件都很超前,所以这些附加功能导致更高的硬件配置也非常高。经过测试SOS适合VirtualBOX、和Vmware workstation下都可顺利安装(如果你的配置满足要求的话)。
假设监控链路的带宽为1Gbps。
CPU: 4 +Core
SOS系统中的Suricata和Zeek服务运行时会占用大量CPU资源。网段内监控的流量越多,所需的CPU内核数就越多。在全线速1Gbps链路中运行Suricata和Zeek服务,对于Suricata和Zeek而言至少需要CPU 10 Core以上才能满足需要。
Disk:100+GB ,推荐200GB。
由于系统中多个Docker应用的瓶颈会暴露在I/O上,强烈推荐使用SSD,至少也是磁盘整列RAID1+0。
RAM:12+GB
12G是满足安装的最基本条件,要运行顺畅至少16GB内存,推荐64或128GB,大内存用于Logstash,Elasticsearch,Lucene,Suricata,Zeek等的磁盘缓存。内存的大小,将直接影响搜索速度以及系统可靠性(内存如果太小会导致核心服务崩溃)以及处理和捕获流量的能力。
网络适配器:2 NIC
一块专用于管理的有线网络接口,使用静态IP地址。另一块网卡无IP地址,专门用来嗅探。如在生产环节下推荐Intel万兆网卡。
关于存储:
SOS 2.3是计算密集型和磁盘密集型的大数据分析平台,当系统启用了完整数据包捕获之后,由传感器捕获的数据就需要大量磁盘空间来存储。
估算:假设正在监视平均50Mbps的链路,消耗磁盘空间50Mb / s = 6.25 MB / s = 375 MB /分钟= 22,500 MB /小时= 540,000 MB /天。
因此,每天存储Pcap文件需要大约540 GB的空间,而且这些数据最好存储在本地,而不推荐SAN / iSCSI / FibreChannel / NFS之类的远程存储,它们会增加复杂性和故障点,并严重影响性能。当然如果只是做实验尝尝鲜,暂时可以不必考虑这一点。
下面虚拟机采用最新版VirtualBOX,新建虚拟机的参数配置满足上面的必要条件,虚拟机(Oracle VM VirtualBOX)设置:
在本文中采用ISO镜像文件进行安装,如果你希望通过USB启动机器安装,推荐使用Balena Etcher将下载的ISO镜像文件写入到U盘(16+GB),制作成可引导的启动U盘,同时调整BIOS的启动顺序。
下面通过ISO文件在虚拟机中安装,首先选择基于图形模式安装系统。
安装警告:这里输入管理员名称admin(有别于root用户),并输入密码。回车后开始安装基本系统, 十分钟后,一个基本系统安装完成。漫长的过程还在后面。
通过输入“Alt+Tab”组合键,可以在4种模式下转换:
主安装界面
Shell
LOG
Storage-lo
系统安装完成后,自动重启。
大约经过一刻钟,初始化安装阶段完成,此时按下回车重启系统。我们再次登录系统,此时输入admin,以及密码。
根据系统提示输入Yes。下面我们开始配置系统。
在下图中我们选择第一项"EVAL" (测试评估版)。
选择标准模式安装。
下面选择自动更新
输入主机名称
经过分析发现,在系统Updating packages环节,并不是从网络安装系统(网络收、发包几乎为0)。
下面选择一个网口,一般是第一个网口,我们为它分配静态IP地址、网关以及DNS。
关于网络设置的几个截图就不上了。
设置完一块网卡之后,开始设置另一块网卡,第二块网卡就是嗅探网卡,为其设置为嗅探功能,输入监控网段的CIDR号。
看到这里,如果你要问为什么不给服务器设置DHCP,为什么不为第二块嗅探功能的网卡设置IP地址,那么先请复习一下基础知识(OSSIM最佳实践一书的服务器部署的内容)。
下面接着安装,选择组件(可以为空选项)
嗯~ o(* ̄▽ ̄*)o??怎么又是选择组件?不重复了吗?我们接着往下走。该部安装配置时间大约1小时。硬盘分区设置和操作系统组件设置都是自动完成,而且如果你要是终端了该过程,整个安装就会前功尽弃。
输入电子邮箱地址作为登录用户名。
为访问白名单设置:可以是单个IP,也可也是一个网段,但不建议设置主机名或FQDN名称。
以上步骤完成之后,系统安装后期会安装以下组件,到这里还没装完,是不是都等得不耐烦了呢?下面环节如果终止,也会导致系统安装失败。
生成CA中心
从iso中拷贝 containers
应用idstools salt state
应用elasticsearch salt stae
应用pcap salt state
应用zeek Salt state
应用curator salt state
应用soc salt state
应用kibana salt state
应用 utility salt state
验证安装
当大家看到系统提示输入回车重启系统后,表示整个系统到此就安装并配置完成了,可以重启系统。
注:系统安装配置完成后,虚拟机文件夹容量约为22GB。如果你的磁盘空间小于30GB,会导致配置过程意外终止,整个安装前功尽弃!
现在我们就可以在客户机浏览器地址栏输入IP了,接着显示登录界面,输入刚才输入的电子邮件地址和口令来登录系统。
安全洋葱控制台(SOC)使您可以访问我们的新警报界面。该界面为您概述了Security Onion生成的警报。图中,启用Acknowledged切换功能仅会显示先前已被分析师确认的警报。
启用该Escalated切换将仅显示以前由分析人员升级为TheHive的警报状态栏。
看到下面界面,是不是感觉似曾相识以下是Security Onion数据总览,这里也是仪表盘的主页,内容比较长,下图仅截取一部分。
查看日志消息
Hunt event(查看威胁狩猎事件)
系统内置剧本(PlayBooks)
无需安装系统内置的性能监控工具-Grafana,它是一款用Go语言开发的源数据可视化工具,可以做数据监控和数据统计,带有告警功能。
还有很多GUI界面,此处就不逐一展示,到此整个系统安装完成。
下面回顾一下All in One模式下系统安装条件也是最低要求
CPU: 4 +Core
Disk:100+GB
RAM:12+GB
网络适配器:2 NIC
镜像文件安装,容量6.84GB
系统安装时长:90分钟
SOS系统采用优化的CentOS 7 Linux系统,内置Docker CE v19.0.3容器,各组件基于Docker运行。这套强大的网络威胁发现和企业日志管理的解决方案,可以为大家在日常安全管理中发挥重要作用,作为入门者而言其安装部署难度比OSSIM略高。
下期预告:将会为大家分析SOS中的Docker容器的用途,敬请期待!
注意:如果是虚拟机安装不推荐在系统中安装VMware Tools,那样会影响Docker 桥接口的运行。