如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课(3)
neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,因其嵌入式、高性能、轻量级等优势,越来越受到关注。 导入数据可生成有向图如下: 查询入度为1出度均为0的结点或者查询入度出度均为1且指向自己的结点,由于把ref为空的情况也识别为"-"结点,所以入度为1出度均为0。 优化点:生产环境实际使用中,我们遇到误报分为以下几种:
这些通过短期加白可以有效解决,比较麻烦的是扫描器对结果的影响,这部分需要通过扫描器指纹或者使用高大上的人机算法来去掉干扰。 兜哥后记 使用算法来挖掘未知攻击行为是目前非常流行的一个研究方向,本文只是介绍了其中比较好理解和实现的一种算法,该算法并非我首创,不少安全公司也都或多或少有过实践。篇幅有限,这里不再一一讲解。算法或者说机器学习本质是科学规律在大数据集集合上趋势体现,所以很难做到精准报警,目前阶段还是需要通过各种规则和模型来辅助,不过对于挖掘未知攻击行为确实是一支奇兵。 小编()注:由于本次公开课偏向实操,涉及到许多的实际操作和代码示例,限于篇幅就不一一展示,本文主要以展示搭建思路为主,细节代码可以在兜哥的个人公众号:“兜哥带你学安全”, 可以和兜哥本人进行技术交流。 公开课视频 课后答疑整理以下内容为公开课后宅客频道读者提问答疑记录: 1.宅客:自己用开源项目搭建SIEM系统时,容易遇到哪些坑?哪些环节需要额外注意? 兜哥:容易遇到的是性能问题,还有对开源软件不太熟悉,因为确实我们刚接触时都是比较新的东西,帮助文档比较少,容易造成理解上的问题。 其次是攻击建模,这个很靠经验,传统SIEM就是误报特别多。我们的做法是:先离线训练规则,误报可控后直接在storm实时处理,基本最后能做到分钟级发现。 另外,在流量搜集上挑战很大,传统的 libpcap 性能差,基本只能处理几十兆带宽,需要使用 pf-ring ,基本可以单机处理 2-6G 带宽(全量处理) 2.宅客:公司自己人搭建一个SIEM和买商业SIEM产品如何选择,适用于哪类规模的公司?(考虑实际人力、时间成本和效益) 兜哥:中型(1000人左右的)公司,可以有3个人以上投入时,可以自己搭建 opensoc 这种。如果公司规模小些,只能投入一个人建议用ossim , 每天数据量几十G的,ossim 可以搞定。 整个搭建成本,时间一般三个月可以搞定,但是规则的积累是个长期过程。我们差不多搞安全这么多年,一直都在丰富模型和规则,出现漏洞还要及时跟进。 3.在检索威胁情报这一块,有什么特殊的信息收集手段吗? 兜哥:Openioc 可以订阅开源的情报,量已经非常大了。国内的威胁情报厂商比较多,比如微步在线。呃……黑产库的积累其实比较靠人缘,合法性其实一直是个灰色地带,你懂得。 4.宅客:威胁情报这块,百度的人工智能有什么应用吗? 兜哥:应用比较多,比如从云端的海量数据中,针对一直威胁的样本 dns 使用聚类等算法,识别潜在的有关联的,未知的样本 dns。 通过安全运营中心的人工识别,挖掘未知攻击行为,然后以可机读的方式推送给我们的 WAF、ADS、IDS , AI 一大应用就是从已知样本以及海量数据中挖掘未知,这个算法应用很多。 4.宅客:neo4j 将结构化数据存储在网络上,数据量打了会不会搞不定? 兜哥:会的,这里(公开课直播)只是演示,可以用 sparkx,而且 neo4j 也有集群方案,不过问题其实还好,因为我们是动态请求去重,抽象后才入库,量其实不大,1T数据量入库可能不到100M。 5.宅客:能不能提供一些SIEM具体应用场景,数据分析模型,或者推荐一下在那里获得? 分析webshell 用有向图效果不错,其他web攻击,尤其是攻击载荷在请求参数里面的用隐式马尔可夫可以。 6.宅客:网络设备的设备接入的数据价值大吗?有必要接吗? 兜哥:网络设备系统日志可以监控对网络设备的暴力破解、违规操作等,netflow可以辅助判断蠕虫、ddos等。 8.宅客:网络入侵检测( network instusion detection ) ,你们有啥好算法? 兜哥:关联算法 apriori 图算法、异常分析算法比如hmm 隐式马尔可夫。 本堂公开课PPT资料下载在公众号“宅客频道”(ID:letshome),回复:“兜哥”,即可获得此次公开课PPT。 ,。 (编辑:ASP站长网) |