一、背景



如今,安全概念满天飞,什么安全运营中心(SOC)、威胁情报(TI)、态势感知等等不一而足,这些概念及其背后代表的安全思想都很好,不过很多产品为了迎合国内的工作汇报都做成了很多Dashboard,一来很酷炫,二来确实能看出趋势,方便决策。但是本身不适合工程师去处理问题,不适合一线工作人员处理具体的安全事件。所以简单的参考和设计了一个SOC模型,用来便于一线的安全人员去工作。

二、整体架构



架构图


名词解释


传感器


传感器在这里是各种常见的网络安全设备(例如IDS、WAF、FW、UTM、漏扫设备等等),或者各种应用系统或者蜜罐的日志输出模块,再或者镜像流量保存设备。总之就是和安全相关的各种告警、日志、流量数据都可以传到数据统一接收清洗平台,在这个地方箭头从传感器指向数据统一接收清洗平台,但不一定是传感器外发信息(例如syslog),也可以是开发者自己构造数据拉取引擎,通过原设备开放的API接口获取数据传输到数据统一接收清洗平台。
这里常见的传感器有:

  • IDS(开源的Suricata,Snort,国内厂商启明优势产品);
  • FW(天融信的优势产品,国外平底锅的);
  • WAF(开源的ModSecurity,国内绿盟优势产品,国外的Rapid7的);
  • 漏扫设备(Nessus、Nexpose、国内绿盟的优势产品);
  • 应用系统输出模块就不在赘述;
  • 镜像流量类设备(360企业安全天堤);
  • APT调查类设备(360企业安全天眼、态势感知,神州网云网镜等)
  • 蜜罐(开源的Dionaea、Glastopf、ElasticPot,Cowrie)
  • 终端安全软件(360安全卫士、天擎等)

数据统一接收清洗平台


数据统一接收清洗平台的作用就是接收数据,清洗数据,然后把清洗好的数据打入数据存储平台。为什么要清洗,是因为多来源数据的格式不同、字段名称不统一,只有清洗后才能统一存入数据存储平台,便于后面分析。所以整个流程中一般需要两个Logstash实例,一个消息队列。当然第一个Logstash实例也可以用带有数据清洗范式化功能的collector程序代替。所以这个地方一般的架构如下图。消息队列(Kafka、RabbitMQ)也可以用缓存数据库Redis。Logstash可以轻松的输入数据到消息Kafka和Redis,从二者中消费数据,监控新数据也很简单。

数据存储平台


这里实际上是一个大数据存储平台,为了方便检索和开源,选择Elasticsearch或是Splunk皆可。一般基于ELK整体解决方案,可以选择Elasticsearch。

智能分析平台


这是整个架构最核心的部分,一般是自研的分析引擎,从Elasticsearch中读取数据,按照自定义的规则分类、聚合、分析,然后再输出到一个消息队列中,然后再起一个Logstash实例去消费消息队列中的数据,反存入数据存储平台。这一步其实就是为了解决纷繁复杂的告警无法处理的问题,在这里可以过滤,检查、去重、筛选、聚合,输出最终可以处置运维的告警信息,彻底解放淹没在告警海洋中的安全工程师。

数据展示平台


这里我选择Kibana,因为也是基于ELK整体解决方案。Kibana方便展示,数据分析、适合工程师使用,也可以生成数据Dashboard,方便汇报和领导决策。

供安全工程师实用的SOC模型的更多相关文章

  1. 从3dMax导出供threeJS使用的带动作模型与加载

    评论区发现的建议,最近没空测试,先贴这 还有好多人说找不到插件的 https://pan.baidu.com/s/1Q5g0... 密码:b43e . 应该是他们现在只是维护blender,只有这个的 ...

  2. 可供前端工程师选择的精彩CSS框架

    在这里你有一个很酷的框架,收集创建的CSS布局. 如果你不喜欢框架,宁愿使用自己的手写代码以促进自己的发展,请跳过本篇文章. 我想有一个建设性的意见,那就是有选择的使用其优点避开其缺点. 就个人而言, ...

  3. 《LAMP系统工程师实用教程》读书笔记(一)- linux常用命令

    图书馆看到就借回来啦,这本书虽然其貌不扬,对新手还是挺棒的.来学下shell脚本和php. 把书上不熟悉的命令和选项记录下. mkdir -v创建文件夹并返回信息 mkdir -m创建文件夹并设定权限 ...

  4. 全面理解Java内存模型(JMM)及volatile关键字(转载)

    关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoad ...

  5. 全面理解Java内存模型(JMM)及volatile关键字

    [版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/72772461 出自[zejian ...

  6. 全面理解Java内存模型(JMM)

    理解Java内存区域与Java内存模型Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的数据区 ...

  7. 全面理解Java内存模型(JMM)及volatile关键字(转)

    原文地址:全面理解Java内存模型(JMM)及volatile关键字 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型( ...

  8. Java内存区域与Java内存模型

    Java内存区域  Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有其用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的数据区域,而绿色部分代表的是每个线程的私有 ...

  9. 多核片上系统(SoC)架构的嵌入式DSP软件设计

    多核片上系统(SoC)架构的嵌入式DSP软件设计 Multicore a System-on-a-Chip (SoC) Architecture SoCs的软件开发涉及到基于最强大的计算模型在各种处理 ...

随机推荐

  1. iPhone 配置使用工具

    “iPhone 配置实用工具”可让您轻松地创建.维护和安装配置描述文件及对配置描述文件进行加密,跟踪和安装预置描述文件与授权的应用程序,以及采集包括控制台日志在内的设备信息. http://suppo ...

  2. CentOS6.5下安装iRedMail中需要解决的问题

    iRedMail是个专门用于Redhat/CentOS下的企业Mail服务集成安装软件包,本来只要有干净的系统就可以轻松安装,无奈国内网络状况和墙头众多,安装中也有很多问题需要解决,下面记录的都是我安 ...

  3. 软件设计模式之适配器模式(JAVA)

    什么是适配器模式? 在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的.适配器能将因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存 ...

  4. 设置wetty不需要账号登录便可进行命令行操作

    前一篇随笔我们将了Linux怎么安装部署Wetty服务,但是我们看到,在浏览器中输入http://127.0.0.1:3000进行访问的时候,还需要我们输入账号密码进行认证(如下图第一行所示). 但在 ...

  5. vue-router 2 跳转失败原因

    axios.post('/internal/user/login_from_mobile ',{ mobile: this.logPrefix+this.formInline1.mobile, pas ...

  6. 【转】Java代码操作Redis的sentinel和Redis的集群Cluster操作

    总共四台机器,crxy99,crxy98分别是主节点和从节点.   crxy97和crxy96是两个监控此主从架构的sentinel节点. 直接看代码: 1 import org.junit.Test ...

  7. Python 多线程相关知识学习

    多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进 ...

  8. JS三种简单排序算法

    冒泡排序:最简单.最慢.长度小于7的时候最优 插入排序:比冒泡要快比快速排序和希尔排序慢,数据量小的时候优势大 快速排序:速度很快  //js利用systemSort进行排序 systemSort: ...

  9. 5 -- Hibernate的基本用法 --4 1 创建Configuration对象

    org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,Configuration对象提供了一个buildSessionFactory()方法,该方法 ...

  10. 嵌入式之UBOOT

    嵌入式Linux系统的结构分为四个区,如图所示: 1.Bootloader区存放的是Bootloader,Coidre972开发板上使用的uboot,它负责嵌入式系统最初的硬件初始化.驱动和内核加载. ...