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

本文原创作者:兜哥,本文属FreeBuf原创奖励计划,未经许可禁止转载 

前言

SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍下如何使用开源软件搭建企业的SIEM系统,数据深度分析在下篇。

SIEM的发展

对比Gartner2009年和2016年的全球SIEM厂商排名,可以清楚看出,基于大数据架构的厂商Splunk迅速崛起,传统四强依托完整的安全产品线和成熟市场渠道,依然占据领导者象限,其他较小的厂商逐渐离开领导者象限。最重要的存储架构也由盘柜(可选)+商业数据库逐渐转变为可横向扩展的大数据架构,支持云环境也成为趋势。

1.png

2.jpg

开源SIEM领域,比较典型的就是ossim和Opensoc,ossim存储架构是mysql,支持多种日志格式,包括鼎鼎大名的Snort、Nmap、 Nessus以及Ntop等,对于数据规模不大的情况是个不错的选择,新版界面很酷炫。

3.png

完整的SIEM至少会包括以下功能:

  • 漏洞管理
  • 资产发现
  • 入侵检测
  • 行为分析
  • 日志存储、检索
  • 报警管理
  • 酷炫报表

其中最核心的我认为是入侵检测、行为分析和日志存储检索,本文重点集中讨论支撑上面三个功能的技术架构。

Opensoc简介

Opensoc是思科2014年在BroCon大会上公布的开源项目,但是没有真正开源其源代码,只是发布了其技术框架。我们参考了Opensoc发布的架构,结合公司实际落地了一套方案。Opensoc完全基于开源的大数据框架kafka、storm、spark和es等,天生具有强大的横向扩展能力,本文重点讲解的也是基于Opensoc的siem搭建。

4.png

上图是Opensoc给出的框架,初次看非常费解,我们以数据存储与数据处理两个纬度来细化,以常见的linux服务器ssh登录日志搜集为例。

数据搜集纬度

数据搜集纬度需求是搜集原始数据,存储,提供用户交互式检索的UI接口,典型场景就是出现安全事件后,通过检索日志回溯攻击行为,定损。

11.png

logtash其实可以直接把数据写es,但是考虑到storm也要数据处理,所以把数据切分放到logstash,切分后的数据发送kafka,提供给storm处理和logstash写入es。数据检索可以直接使用kibana,非常方便。数据切分也可以在storm里面完成。这个就是大名鼎鼎的ELK架构。es比较适合存储较短时间的热数据的实时检索查询,对于需要长期存储,并且希望使用hadoop或者spark进行大时间跨度的离线分析时,还需要存储到hdfs上,所以比较常见的数据流程图为:

6.png

数据处理纬度

这里以数据实时流式处理为例,storm从kafka中订阅切分过的ssh登录日志,匹配检测规则,检测结果的写入mysql或者es。

12.png

在这个例子中,孤立看一条登录日志难以识别安全问题,最多识别非跳板机登录,真正运行还需要参考知识库中的常见登录IP、时间、IP情报等以及临时存储处理状态的状态库中最近该IP的登录成功与失败情况。比较接近实际运行情况的流程如下:

14.png

具体判断逻辑举例如下,实际中使用大量代理IP同时暴力破解,打一枪换一个地方那种无法覆盖,这里只是个举例:

9.png

扩展数据源

生产环境中,处理安全事件,分析入侵行为,只有ssh登录日志肯定是不够,我们需要尽可能多的搜集数据源,以下作为参考:

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

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

10.png

storm拓扑

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

假设SQL日志的格式

"Feb 16 06:32:50 "	"127.0.0.1" "[email protected]" "select  from user where id=1"

一般storm的拓扑结构

截图.png

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

核心bolt代码doSQLCheckBolt伪码

import storm

class doSQLCheckBolt(storm.BasicBolt):
    def process(self, tup):
        words = tup.values[0].split(" ")
         sql = word[3]
        if re.match(规则,sql):
            storm.emit(["sqli",tup.values[0]])

doSQLCheckBolt().run()
TopologyBuilder builder = new TopologyBuilder();        
builder.setSpout("sqlLog", new kafkaSpout(), 10);        
builder.setBolt("sqliAlert", new doSQLCheckBolt(), 3)
        .shuffleGrouping("sqlLog");

拓扑提交示例

Config conf = new Config();
conf.setDebug(true);
conf.setNumWorkers(2);

LocalCluster cluster = new LocalCluster();
cluster.submitTopology("doSQL", conf, builder.createTopology());
Utils.sleep(10000);
cluster.killTopology("doSQL");
cluster.shutdown();

logstash

在本文环节中,logstash的配置量甚至超过了storm的拓扑脚本开发量,下面讲下比较重点的几个点,切割日志与检索需求有关系,非常个性化,这里就不展开了。

从文件读取

input
    file {
        path => ["/var/log/.log", "/var/log/message"]
        type => "system"
        start_position => "beginning"
    }
}

从kafka中订阅

input {
    kafka {
        zk_connect => "localhost:2181"
        group_id => "logstash"
        topic_id => "test"
        reset_beginning => false # boolean (optional), default: false
        consumer_threads => 5  # number (optional), default: 1
        decorate_events => true # boolean (optional), default: false
        }
    }

写kafka

output {
    kafka {
        broker_list => "localhost:9092"
        topic_id => "test"
        compression_codec => "snappy" # string (optional), one of ["none", "gzip", "snappy"], default: "none"
    }
}

写hdfs

output {
    hadoop_webhdfs {
        workers => 2
        server => "localhost:14000"
        user => "flume"
        path => "/user/flume/logstash/dt=%{+Y}-%{+M}-%{+d}/logstash-%{+H}.log"
        flush_size => 500
        compress => "snappy"
        idle_flush_time => 10
        retry_interval => 0.5
    }
}

写es

output {
    elasticsearch {
        host => "localhost"
        protocol => "http"
        index => "logstash-%{type}-%{+YYYY.MM.dd}"
        index_type => "%{type}"
        workers => 5
        template_overwrite => true
    }
}

后记

如何在离线数据中,通过行为分析和攻击建模识别出深入的入侵行为呢?请看下篇。

本文原创作者:兜哥,本文属FreeBuf原创奖励计划,未经许可禁止转载 

信息安全意识教育案例之商业黑客参与搜索引擎专利大战

猜您喜欢

浙江海利得新材料股份有限公司2016年度业绩快报
珠江啤酒#8211;分析 内附大盘分析 http://www.isvoc.com/201702231450.html
信息安全意识教育案例之商业黑客参与搜索引擎专利大战
企业安全歌,唱红中国,唱响全球
PEPALO USEDCARSPHOENIXARIZONA
后PC时代的安全管理软件前景分析
北京市食品药品监督管理局关于2017年食品安全监督抽检信息的公…

超声波追踪技术可以暴露Tor用户的真实信息(去匿名化,含视频)

Clipboard Image.png

很多广告商会在自己的网页广告中使用一种名叫uXDT的技术,这项技术可以帮助他们追踪用户的访问习惯,这样就可以更有针对性地向用户投放广告了。此时,攻击者就可以在一个Web页面中嵌入能够发出超声波的广告或JavaScript代码,当Tor用户使用Tor浏览器访问这个页面时,他就可以利用附近的手机或电脑来劫持目标设备向广告商发送识别信标来获取到包含用户敏感信息的数据了。

这种攻击模型是一个由六名研究人员组成的团队研发出来的,并在2016年底发布了出来。据了解,他们还在2016年的Black Hat黑客大会第33届混沌通信大会上演示了这种攻击技术。

基于超声波跨设备追踪技术(uXDT)的攻击模型

他们的研究主要集中在超声波跨设备追踪技术(uXDT)之上,而现代广告平台在2014年左右就已经开始使用这项新技术了。

uXDT技术实现的基础是广告商隐藏于广告中的超声波信号。当广告在电视或广播中播放时,或者是广告代码在移动设备或计算机中运行时,它会发射出超声波信号,而这些信号可以被附近配备了麦克风的笔记本电脑、台式电脑、平板电脑或手机所捕获。这些设备在监听到超声波信号之后,可以解析出其中包含的隐藏指令,然后再根据广告商服务器所返回的数据来提取出目标设备的相关信息。

广告商之所以要使用uXDT技术,主要是为了将不同的设备与同一用户联系起来,了解用户的习惯,并向用户投放更加合适的广告。

的确可以用超声波来对Tor用户进行去匿名化

该团队的其中一位研究人员名叫Vasilios Mavroudis,他在前段时间举行的第33届混沌通信大会上对这种针对Tor用户的去匿名化攻击进行了详细的描述,其中涉及到了Tor用户的真实IP以及其他的一些敏感数据。

这项攻击技术需要欺骗Tor用户去点击访问一个特制的页面,这个页面中包含有能够发射超声波信号的广告或JavaScript代码,而这些广告和JS代码可以命令浏览器通过HTML5的音频API来发射出超声波。

如果Tor用户的手机在旁边,并且手机中安装有特定App的话,那么他的手机将会与一个或多个广告商服务器进行通信,并向服务器发送设备的详细信息。此时,广告商就可以专门为用户量身定制广告,并将用户的电脑和手机联系起来。

根据Mavroudis的描述,移动设备中必须安装一款嵌入了广告SDK的app,且SDK必须支持uXDT。

这也就意味着,情报机构只需要一纸禁令,就可以从广告商那里得到用户的真实身份和其他的详细信息。

Clipboard Image.png

在Mavroudis所进行的测试过程中,研究人员在对他们所截获的超声波信号进行了解析之后,从中获取到了大量的用户信息,其中包括用户的真实IP地址、地理位置坐标、电话号码、AndroidID、设备IMEI码、以及设备的MAC地址等等。

发动这种攻击的方法不止一种

根据Mavroudis的描述,除了利用社会工程学技术来欺骗Tor用户访问特定的URL之外,我们还有很多种方法可以发动这种攻击。

研究人员表示,攻击者可以利用XSS漏洞来向包含XSS漏洞的网站中注入恶意JavaScript代码。同样的,攻击者也可以搭建一个恶意的Tor结点来进行中间人攻击,然后通过注入恶意代码来强制触发所有流经这个Tor伪节点的Tor流量中的uDXT信标。

还有一种更加简单的方法,就是将负责发射超声波的恶意代码注入至一些Tor用户可能会打开的视频或音频文件中,人耳是无法听见超声波的,所以用户根本就不会觉察到任何的异常。

美国联邦调查局肯定会对这种攻击方法非常感兴趣,因为他们可以用这项技术来追踪那些使用Tor网络来观看儿童色情视频的人,就像当初他们在调查Playpen案件时一样,只不过当时他们利用的是一个AdobeFlash漏洞。

针对uXDT攻击的缓解方案

目前相关部门还没有针对uXDT出台任何的监管条例。目前,FTC公司的安全研究人员正在对uXDT广告的影响进行评估。与此同时,该团队也给我们提供了一系列能够限制这种攻击的缓解方案。

首先,该团队开发出了一款名叫SilverDog的Chrome浏览器插件,该插件可以对浏览器所要播放的HTML5音频文件进行过滤,并去除其中可能存在的超声波。

遗憾的是,如果用户使用的是FlashPlayer,并且回放音频文件的话,这款插件就失效了,而且它也无法保证Tor浏览器的用户,因为Tor浏览器是基于Firefox的。

Clipboard Image.png

除此之外,研究人员也提出了一种新型的Android权限检测机制,用户也许可以通过对AndroidApp进行权限检查来发现那些可能会发射超声波的App。

Clipboard Image.png

从长远的角度来看,该研究团队认为有关部门应该针对这种超声波广告信标专门制定出一种行业化标准,并且开发出一款可以检测和管理超声波信标的系统层API。除此之外,研究团队在几个月前就已经将相关信息告知了Tor项目组,希望Tor开发者们可以尽快解决这个问题。

下面就是Mavroudis在第33届混沌通信大会上的演讲视频:

参考来源:bleepingcomputer, FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

射洪县国税局举办网络信息安全专题培训

猜您喜欢

高合规要求行业切勿匆匆上马虚拟化大数据和云计算
我国网络犯罪已占犯罪总数的1/3 http://news.chinacybersecurity.org/201702171736.html
《信息基础设施三年行动方案》发布,安全防护如何并行?
信息安全爱好者特别是无线网络渗透测试人员、白帽黑客、安卓和苹果应用开发者,如何通过移动设备来控制他人呢?
TOTEMKER VICNAPIER
小白电商用户战胜窃贼的高招
ISMS实施过程中常见的困惑与应对

全球首艘黑客邮轮起锚在即,你够实力上船吗?

从特斯拉到无人机,从物联网到人工智能,全球首个关注智能生活的安全极客大赛GeekPwn(极棒)现场总是上演着令人应接不暇的智慧碰撞。

 518833987389487468.jpg

2017年GeekPwn年中赛将于5月12日-14日在香港“云顶梦号”邮轮举行,此次背负“全球首艘黑客邮轮”名号的来自首个亚洲本土豪华邮轮品牌星梦邮轮旗下,乘载挑战、突破、创新的极客精神,开启史上最酷炫的黑客狂欢。

破译智能生活的DNA:选手报名启动

“无所不PWN”的GeekPwn从不限制参赛极客的脑洞,与PWN2OWN等黑客比赛,GeekPwn接受一切被发现的智能领域漏洞。

如果你能在合理条件下针对市场在售的任何智能设备、物联网(IoT)产品或其中的安全模块实施越权控制、越权访问或者突破其原有的安全机制;

如果你可以对已发布的人工智能(AI)服务或产品进行误导、欺骗,让它们产生错误或者违反规则的判断,就可以报名参加!

报名地址https://wj.qq.com/s/945354/079f(中文)

此次极棒年中赛初始奖金高达500万人民币,单项最高奖金则有80万元。选手报名截止时间为4月12日,据悉,成功入围极棒香港站的选手都能免费得到价值千元的邮轮船票。

回顾过去三年的GeekPwn,来自中国、美国、俄罗斯、塞内加尔、新加坡等国际顶级黑客曾登上极棒的舞台,GeekPwn负责任披露了近百高危安全漏洞。想了解更多,可以登录极棒官方名人堂页面查看历史选手(hof.geekpwn.org)

唯极客无止境:推荐报名,赢取船票

目前,极棒官网仅开放了选手报名通道,观众购票入口会在后续开通,我们会持续关注

FreeBuf还了解,除了报名和购票之外,大家还可以通过推荐选手赢取免费船票。规则如下:

4月12日选手报名截止前,填写“选手推荐表格https://wj.qq.com/s/1092033/6f3b

只要被推荐的项目入围,你就有机会获得免费的邮轮船票;

只要被推荐的项目入围,你就有机会获得免费的邮轮船票。

黑客邮轮,极客起航

由碁震(KEEN)公司创办的GeekPwn(极棒)大赛为中国黑客架起了一座与国际顶尖人才对话的桥梁,为奇思妙想的极客提供更广阔的舞台和发展机会,使尖端技术得以分享,始终引领着技术革新的潮流。

824222926263197347.jpg

公司内部信息安全管理需要实干精神

猜您喜欢

兰州消防联合省监狱管理局开展消防安全培训 https://119.china.com.cn/xfxc/txt/2016-08/24/content_8985493.htm
『中银传媒旷实团队』传媒互联网行业日报(2.16):浙报传媒拟向控股股东出售旗下新闻类资产,网易2016年营收382亿元 http://www.isvoc.com/2017021739.html
海尔快捷通打造安全防护铜墙铁壁
EHS专员想都不敢想的EHS动画教程
TOTALTRAINING FASTCOSTARICAFINANCE
信息安全主管如何带领下属实施短信认证
传感器:未来信息安全又一主战场 不容忽视