OpenSOC是思科在BroCON大会上亮相了的一个安全大数据分析架构,它是一个针对网络包和流的大数据分析框架,它是大数据分析与安全分析技术的结合, 能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目Hadoop,实时索引使用开源项目ElasticSearch,在线流分析使用著名的开源项目Storm。
但是其部署上和使用上可能对于大部分中小企业来说,消耗的资源和精力可能有点过于庞大。本文着重介绍如何轻量级实现OpenSOC框架,即使日后升级或者添加了SEIM也可以快速迁入。
我们先来看一下 OpenSOC 框架
OpenSOC框架主要包括六个部分
数据收集组件从数据来源收集日志等数据然后推送到消息通知组件,
通过消息通知组件分发给对应的实时处理组件
由实时处理组件处理完后保存到数据存储组件中
最后由访问接口提供的API或者UI等供给用户查看或者调用
本文将根据以下场景来构建OpenSOC。
有多台Centos的WEB服务器
需要获取所有的WEB服务器的访问日志
推送到后台的规则匹配和机器学习分析部分
用来判断和显示当前的访问情况
注:如果有其他的数据源,配置好数据收集组件进行收集即可
此处只针对大部分的日志文件进行推送和处理,
由于是轻量级的框架,所以在架构上会稍微调整。
数据存储
接口和展示
整个系统结构如图:
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
filebeat.prospectors:
- input_type: log
paths: /var/log/httpd/access_log
output.elasticsearch:
hosts: ["IP:PORT"]
vi /etc/filebeat/filebeat.yml #给filebeat添加数据源
vi /etc/elasticsearch/elasticsearch.yml
访问一下一下刚才部署的网站
访问 elastcisearch/_cat/indices?v 查看是否有 filebeat-** 索引建成
filebeat的paths 可以添加多个
支持的类型具体可以自行查看filebeat的官方文档
这里涉及的基本就是常规的网页编写和操作了。这里不具体展开。
大概说一下我写的思路和用到的组件
基础的OpenSoc框架搭建完成,下一篇会介绍一下