加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

发布时间:2017-03-12 05:46:05 所属栏目:安全 来源:雷锋网
导读:副标题#e# 近年来态势感知、威胁情报等等新词不断出现,其实万变不离其宗,它们都是利用已知的数据来判断风险,甚至预知未发生的威胁。这如同一个老练的探险者孤身穿行在原始丛林,他能轻巧自然地避开蛇虫鼠蚁,用脚印来预知猛兽的威胁。这一切都依赖于他那

简化后的系统架构如下,报警也存es主要是查看报警也可以通过kibana,人力不足界面都不用开发了:

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

消息队列:kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  • 高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
  • 支持通过Kafka服务器和消费机集群来分区消息。
  • 支持Hadoop并行数据加载。
流式处理:storm

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。

Storm 有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式 RPC、ETL 等。Storm 速度非常快,一个测试在单节点上实现每秒一百万的组处理。

storm拓扑支持python开发,以处理SQL日志为例子:

假设SQL日志的格式是

"Feb 16 06:32:50 ""127.0.0.1" "root@localhost" "select * from user where id=1"

一般storm的拓扑结构:

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

简化后 spout 是通用的从 kafka 读取数据的,就一个 bolt 处理 SQL 日志,匹配规则,命中策略即输出”alert”:”原始SQL日志”。

数据搜集:logstash
  • Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
  • 当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,solr等并不一定是ElasticSearch。

logstash的配置量甚至超过了storm的拓扑脚本开发量,这里就不展开了。

实时检索:ElasticSearch

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

数据源

生产环境中,处理安全事件,分析入侵行为,我们需要尽可能多的搜集数据源,以下作为参考:

  • linux/window系统安全日志/操作日志
  • web服务器访问日志
  • 数据库SQL日志
  • 网络流量日志
数据库日志搜集

常见的数据日志搜集方式有三种:

镜像方式

大多数数据库审计产品都支持这种模式,通过分析数据库流量,解码数据库协议,识别SQL预计,抽取出SQL日志

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

代理方式

比较典型的就是db-proxy方式,目前百度、搜狐、美团、京东等都有相关开源产品,前端通过db-proxy访问后端的真实数据库服务器。SQL日志可以直接在db-proxy上搜集。

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

客户端方式

通过在数据库服务器安装客户端搜集SQL日志,比较典型的方式就是通过logstash来搜集,本文以客户端方式进行讲解,其余方式本质上也是类似的。

logstash配置安装

下载logstash https://www.elastic.co/downloads/logstash 目前最新版本5.2.1版

开启mysql查询日志

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

mysql查询日志

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

配置logstash

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

运行logstash

命令:bin/logstash -f mysql.conf

日志举例

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

常见攻击特征

分析攻击特征,下列列举两个,更多攻击特征请大家自行总结:

特征一:

使用联合查询枚举数据时会产生大量的NULL字段。

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

特征二:

枚举数据库结构时会使用INFORMATION_SCHEMA,另外个别扫描器会使用GROUP BY x)a)

如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课

注意的是:
  • 生产环境中的规则会比这复杂很多,需要你不断补充,这里只是举例
  • 单纯只编写map会有大量的重复报警,需要开发reduce用于聚合
  • 应急响应时需要知道SQL注入的是那个库,使用的是哪个账户,这个需要在logstash切割字段时补充
  • 应急响应时最好可以知道SQL注入对应的链接,这个需要将web的accesslog与SQL日志关联分析,比较成熟的方案是基于机器学习,学习出基于时间的关联矩阵
  • 客户端直接搜集SQL数据要求mysql也开启查询日志,这个对服务器性能有较大影响,我知道的大型公司以db-prxoy方式接入为主,建议可以在db-proxy上搜集。
  • 基于规则识别SQL注入存在瓶颈,虽然相对web日志层面以及流量层面有一定进步,SQL语义成为必然之路。
CASE:后门识别

这里介绍如何用图算法是被webshell。

webshell特征

webshell特征其实很多,从统计学角度讲,有如下特点:

  • 入度出度均为0
  • 入度出度均为1且自己指向自己
neo4j

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读