首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业安全建设之搭建开源SIEM平台(下)

企业安全建设之搭建开源SIEM平台(下)

作者头像
FB客服
发布2018-02-23 16:36:00
1.8K0
发布2018-02-23 16:36:00
举报
文章被收录于专栏:FreeBufFreeBuf

前言

SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍如何使用开源软件离线分析数据,使用算法挖掘未知攻击行为。

回顾系统架构

以WEB服务器日志为例,通过logstash搜集WEB服务器的查询日志,近实时备份到hdfs集群上,通过hadoop脚本离线分析攻击行为。

自定义日志格式

开启httpd自定义日志格式,记录User-Agen以及Referer

<IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access_log" combined

日志举例

180.76.152.166 - - [26/Feb/2017:13:12:37 +0800] "GET /wordpress/ HTTP/1.1" 200 17443 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21" 180.76.152.166 - - [26/Feb/2017:13:12:37 +0800] "GET /wordpress/wp-json/ HTTP/1.1" 200 51789 "-" "print `env`" 180.76.152.166 - - [26/Feb/2017:13:12:38 +0800] "GET /wordpress/wp-admin/load-styles.php?c=0&dir=ltr&load[]=dashicons,buttons,forms,l10n,login&ver=Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZAAucG5n HTTP/1.1" 200 35841 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21" 180.76.152.166 - - [26/Feb/2017:13:12:38 +0800] "GET /wordpress/ HTTP/1.1" 200 17442 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21"

测试环境

在wordpress目录下添加测试代码1.php,内容为phpinfo

针对1.php的访问日志

hadoop离线处理

hadoop是基于map,reduce模型

map脚本

reducer脚本

生成结果示例为:

- -> http://180.76.190.79/wordpress/wp-admin/1.php- -> http://180.76.190.79/wordpress/wp-admin/admin-ajax.php- -> http://180.76.190.79/wordpress/wp-admin/customize.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-admin/edit-comments.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-admin/profile.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-login.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/xmlrpc.php

图算法

讲生成数据导入图数据库neo4j,满足webshell特征的为:

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

neo4j

neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,因其嵌入式、高性能、轻量级等优势,越来越受到关注。

neo4j安装

https://neo4j.com/ 上下载安装包安装,默认配置即可

ne04j启动

以我的mac为例子,通过gui启动即可,默认密码为ne04j/ne04j,第一次登录会要求更改密码

GUI管理界面

python api库安装

sudo pip install neo4j-driver

下载JPype

https://pypi.python.org/pypi/JPype1

安装JPype

tar -zxvf JPype1-0.6.2.tar.gz cd JPype1-0.6.2sudo python setup.py install

将数据导入图数据库代码点击阅读原文查看。

生成有向图如下

查询入度为1出度均为0的结点或者查询入度出度均为1且指向自己的结点,由于把ref为空的情况也识别为”-”结点,所以入度为1出度均为0。

优化点

生产环境实际使用中,我们遇到误报分为以下几种:

主页,各种index页面(第一个误报就是这种) phpmyadmin、zabbix等运维管理后台 hadoop、elk等开源软件的控制台 API接口

这些通过短期加白可以有效解决,比较麻烦的是扫描器对结果的影响(第二个误报就是这种),这部分需要通过扫描器指纹或者使用高大上的人机算法来去掉干扰。

后记

使用算法来挖掘未知攻击行为是目前非常流行的一个研究方向,本文只是介绍了其中比较好理解和实现的一种算法,该算法并非我首创,不少安全公司也都或多或少有过实践。

篇幅有限,我将陆续在企业安全建设专题其他文章中由浅入深介绍其他算法。

算法或者说机器学习本质是科学规律在大数据集集合上趋势体现,所以很难做到精准报警,目前阶段还是需要通过各种规则和模型来辅助,不过对于挖掘未知攻击行为确实是一支奇兵。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 回顾系统架构
    • 自定义日志格式
      • 日志举例
      • 测试环境
      • hadoop离线处理
        • map脚本
          • reducer脚本
          • neo4j
            • neo4j安装
              • ne04j启动
              • 优化点
              • 后记
              相关产品与服务
              图数据库 KonisGraph
              图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档