在我们做 SOC 建设时,想要先快速搞出一个 Demo 体验 SOC 运营视角时候;或者不一定有太多预算时,我们就需要用有限的资源(人和钱)实现安全建设的最大价值。
本文给出的 SOC 建设思路不需要花任何钱买买买,毕竟甲方的钱也不是大风刮来的对不...我会使用纯开源和免费工具来构建这套零成本的 SOC,给大家提供一份免费且好用的安全运营中心建设思路!
数据收集模块
Wazuh Agent:终端和主机上的入侵检测系统(也可以当 EDR、XDR来用)。
*
https://wazuh.com/
Beats:在终端上收集系统和应用数据。 *
https://www.elastic.co/beats
Windows 系统监视器(Sysmon):在Windows系统上监控和记录系统活动的工具。 *
https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon
Snort or Suricata:旁路部署网络威胁检测引擎,用于实时网络监控和入侵检测,还有 Zeek 也可以做网络监控和协议分析。 * * *
https://suricata.io/https://snort.org/https://github.com/zeek/zeek
传输模块
前面收集到的数据用 VPN 隧道传到我们的安全运营中心(本文建议用ELK Stack 或者 Wazuh Manager做)即可。
数据分析和处理
TheHive:安全事件管理(SIEM)。 *
https://github.com/TheHive-Project/TheHive
Cortex:我们可以用这个来分析、处理告警。 *
https://github.com/TheHive-Project/Cortex
MISP:开源情报,在处理分析安全事件时候可以用到。 *
https://github.com/MISP/MISP
存储和索引
这个没啥说的,ELK stack呗。
告警、监视等
ElastAlert:基于Elasticsearch的告警框架,主要用在实时查询异常和告警推送。 *
https://github.com/jertel/elastalert2
Praeco:和 ELastAlert 类似。 *
https://github.com/johnsusek/praeco
Wazuh manager:这里可以集中管理所有 Wazuh Agent 和发出的事件告警。
Kibana 和 Grafana:做数据可视化看板。
自动化处理和编排 SOAR
Shuffle: *
https://github.com/Shuffle/Shuffle
Stackstorm: *
https://stackstorm.com/
漏洞扫描
OpenVAS:
*
https://github.com/greenbone/openvas-scanner
Arachni: *
https://github.com/Arachni/arachni
ZAP: *
https://github.com/zaproxy/zaproxy
大致运营流程
如果按照上面的套路来搭建一个 SOC,当它跑起来时,安全运营就可以相对流畅地对事件 or 事故做分析和响应了。一般是 Kibana、Grafana、ElastAlert、Wazuh dashboard 等识别发现某些异常活动,一旦识别到了,结合 Wazuh、Beats、Windows Sysmon、Snort等等工具自动收集到的日志和数据,就可以做分析。分析时用 TheHive 进行事件管理,Cortex 处理数据分析,同时与 MISP 集成获取威胁情报。
上面的分析完事之后,根据问题的级别做出相应的相应,例如隔离、封禁、通知之类。上面提到的自动化工具 Shuffle 或 Stackstorm 用来优化整个事件响应流程,等事件处理完后,再做详细报告,评估事件的处理效果。
总结
以上就是一套 SOC(安全运营中心)建设思路,涵盖了从数据收集到告警的各个环节,并且完全基于开源和免费工具。还有备份和恢复啊、IAM 管理啊、日志完整性验证啊等等细节也需要注意。
事实上我们完全可以只使用开源工具来部署和管理整个 SOC。无论是数据收集、传输、还是事件管理、威胁情报、分析、存储之类,全能搞定,但免费开源的工具用起来是比较麻烦,需要我们自己做修改、写脚本、做好配合才能顺畅的跑起来。