OSSIM平台安全事件关联分析实践
OSSIM平台安全事件关联分析实践
在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件关联需要海量处理能力,主要便于现在需要及时存储从设备采集到的日志,并能关联匹配和输出,进而通过Web UI展示。从实时性上看,关联分析的整个处理过程不能间断,这对系统的实时性要求较高,另外Ossim系统是基于规则的,Ossim内部具有多套高速规则分析引擎,以实现模式匹配和对关联分析结果调用。所以系统的关联引擎是一个典型数据处理系统,必须依靠强大的数据库做支撑,在开源OSSIM系统中就采用了基于MySQL5.6数据库的数据库,在商业版中采用了MonogDB。
普通日志存入数据库较容易,但如果是关联引擎将报警存入数据库的过程要复杂,到底它的压力在哪儿?例如一个关联规则需要在1秒钟内,通过SQL语句获取10条数据,那么关联引擎就需要在1秒钟内进行10次磁盘存取,这个要求就比普通日志存入数据库高,而OSSIM数据库中的表、字段、索引都为了这种事务处理进行特殊设置,具有一次写多次读的特性。对于复杂模式的匹配非常有用,例如,筛选出1分钟内SSH登录服务器,失败次数超过5次的源IP地址,关联分析引擎将定时进行SQL访问,找到某个符合要求的事件记录。
许多安全管理者抱怨,已经设置了防火墙、***检测、防病毒系统、网管软件,为什么网络安全管理仍很麻烦。当前网络安全管理者面临如下挑战:
1) 安全设备和网络应用产生的安全事件数量巨大,IDS误报严重。一台IDS系统,一天产生的安全事件数量成千上万,通常99%的安全事件属于误报,而少量真正存在威胁的安全事件淹没在误报信息中,难以识别。
2) 安全事件之间存在的横向和纵向方面(如不同空间来源、时间序列等)的关系未能得到综合分析,因此漏报严重,不能实现实时预测。一个***活动之后常常接着另一个***活动,前一个***活动为后者提供基本条件;一个***活动在多个安全设备上产生了安全事件;多个不同来源的安全事件其实是一次协作***,这些都缺乏有效的综合分析。
3) 安全管理者缺乏对整个网络安全态势的全局实时感知能力。
充分利用多种安全设备的检测能力,集中处理的致命弱点是待分析处理的数据量巨大,那些庞大冗余,独立分散,安全事件显然不能直接作为响应依据,同时网络安全防护也有实时性要求,上述问题的根本解决途径是网络安全事件关联处理,到底什么是关联分析呢,有几个基本的概念大家需要了解。
1) 安全事件:本书一开始就提到了安全事件,包括服务器安全日志,重要应用的告警以及日志。
2) 数据源(DateSource),数据源是安全事件的来源,这里包括防火墙、***检测系统,重要主机、路由交换设备的日志。
3) 数据关联:将多个数据源的数据进行联合(Association)、相关(Correlation)或组合(Combination)分析,以获得高质量的信息。它将不同空间设备的日志,不同时间序列存在的问题进过特定关联方法结合在一起,最终确定工具的分析方法。当然这些只是广义的安全事件关联方法,后面章节还会专门针对OSSIM讲解具体的规则。
4) 交叉关联:它是最常见的数据关联方式,可以将安全事件与网络拓扑、系统开放的服务、设备存在的漏洞进行关联匹配,以分析***成功的可能性。利用这种关联方法可以在OSSIM系统中关联规则检测到某些威胁,并实现自动响应(比如发出告警等)。
下面举几个异常实例:
完整性方面,文件完整监控工具发现系统中ls、ps、netstat、su等程序大小和所有者被改变,可判断受到***;系统方面,用户账号被修改及一些不能解释的异常登录行为,在不可能的地方出现了新的文件、目录或者丢失了文件、目录大小急速增大、骤然减小、MD5签名不匹配,这些迹象都说明明系统已遭受***。日志方面,系统日志缩减,日志中出现了不明条目、异常的中断消息都说明了系统遭受***。流量方面,若干节点大规模流量增大则可能遭受拒绝服务***。
为了达到安全事件关联分析的目的,就要有好的事件处理机制,比如前面讲的日志收集的归一化处理,还得有好的关联方法,而且不止一种关联方法,将多种实时关联方法结合到一起效果更佳。大量标准化处理的事件被送入关联引擎处理后,它们会经历事件分类处理、聚合、交叉关联、启发式关联等多种关联方法,系统会根据数据库中的安全事件进行统计分类,找出经常导致安全事件的发源地和经常被***的端口,在这些阶段都会产生事件告警,其安全事件关联过程模块,为了更加详细了解安全事件关联分析原理和实践,请参阅《开源安全运维平台-OSSIM最佳实践》。
相关文章:
《Apache Kafka》学习笔记
1.什么是Kafka Kafka是一个高通过率的分布式消息系统 2.消息队列(Message Queue)MQ的模型 消息队列的简单架构图 3个核心概念: Sender Application:消息队列的发送者,也叫生产者producer Message Queue Receiver Application…
4 月 24 日开播!基于神经网络建模的信息传播预测
信息传播在我们的日常生活中无处不在,例如谣言的扩散、产品的推广以及新思想和新技术的普及等等,其建模和预测已经在多个重要领域内得到了广泛的研究。近年来,很多研究者利用以循环神经网络为主的深度学习模型对信息传播过程进行建模…

并行计算圆周率
看到这个题目,俗了,大家都在计算圆周率。不过咱们的目的是看一下并行计算的基本流程。 书上计算PI用的是精确的数值计算方法,我这里再给出一种概率计算方法。 OpenMP和MPI将同时亮相。 计算PI的方法 1.tan(PI/4)1 > PI4arctan1。知…

kafka-manager 的编译和使用(附安装包)
2019独角兽企业重金招聘Python工程师标准>>> kafka-manager是一个非常好用的kafka web管理工具,yahoo开源。 地址:github.com/yahoo/kafka-manager 1、编译过程比较简单,重点是能翻墙,如果网络环境不允许,可…

匿名函数应用-多线程测试代码
多线程测试代码,不用单独再写一个类,比较方面而已。 public class MainThread { static int a0; for (int x 0;x<100;x){ Thread t new Thread(new Runnable() { Override public void run() { while(true){ try { a;System.out.println(a);…
YOLOv4来了,大型调优现场,速度和准确率俱佳
作者 | VincentLee来源 | 晓飞的算法工程笔记简介论文提出YOLOv4,从图1的结果来看,相对于YOLOv3在准确率上提升了近10个点,然而速度并几乎没有下降,论文主要贡献如下:提出速度更快、精度更好的检测模型,仅需…

关于对J2EE几点误解和错误认识的澄清
转自:http://www.jdon.com .Net和J2EE的争论一直没有停止,我也参加过“程序员”杂志主持的“.Net和Java之争”之类的讨论,本来这两种技术都是为用户提供了竞争性的选择,对于用户来说是一件好事,多种选择远胜于单一选择…

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r...
2019独角兽企业重金招聘Python工程师标准>>> Struts Problem Report Struts has detected an unhandled exception: Messages: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or re…
Java的Redis连接池代码性能不错
其实这个是引用自网友http://blog.csdn.net/tuposky/article/details/45340183,有2个版本,差别就是ReentrantLock和synchronized。另外原作者使用了断言,我觉得这个还是不用为好。 ReentrantLock版 import java.util.concurrent.locks.Reent…
降低预测过程计算成本,这些NLP模型压缩方法要知道
编译 | 凯隐出品 | AI科技大本营(ID:rgznai100)近年来,基于谷歌Transformer的语言模型在神经机器翻译,自然语言推理和其他自然语言理解任务上取得了长足进展。通过多种语言模型的平均损失进行自我监督预训练,使得在大范…

政府要尽快对应用商店出台管理办法
前两天联想的开发者大会,我和联想的CTO贺志强先生联合接受了一个视频访谈,贺先生谈到联想的乐园软件商店,组织大量的人力对于软件进行检测,以保证软件是合格产品,不会给用户一路带来侵害,对于联想这种负责态…

antlr-2.7.6.jar的作用
项目中没有添加antlr-2.7.6.jar,hibernate不会执行hql语句 并且会报NoClassDefFoundError: antlr/ANTLRException错误

junit集成Hamcrest测试集合中某个属性是否包含特定值
junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有 <dependency> <groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test<…
腾讯第100个开源项目:微信开源推理加速工具TurboTransformers
出品 | AI科技大本营(ID:rgznai100)4月24日,腾讯正式宣布开源Transformer推理加速工具TurboTransformers。该工具面向自然语言处理领域中Transformers相关模型丰富的线上预测场景,在微信、腾讯云、QQ看点等产品的线上服务中已经广…

程序员:提高编程效率的技巧
本文写给那些认为在项目上所花时间和效率成正比的程序员。我要说的是,事实并非如此。虽然你需要在电脑前敲键盘输入东西,但这只和编程沾上一点边。那么,程序员该如何利用时间呢? 俗话说,磨刀不误砍柴工,拿出…

Qunee for HTML5 V2.5新版本发布
为什么80%的码农都做不了架构师?>>> Qunee for HTMl5 V2.5 beta2版本正式发布,此次版本内核改动较大,采用了新的2D渲染引擎,增加了延迟绘制功能,大幅改善画布的浏览体验,此外重构了鼠标键盘以及触控交互监听处理,增加右键框选功能,改善了多点触控交互,增…
泛型推断类型不符合上限
程序报错推断类型不符合上限 springsecurity需要自定义用户服务 代码 Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(new CustomUserDetailsService());}public class CustomUserDetailsService implemen…
如何通过深度学习,完成计算机视觉中的所有工作?
Mask-RCNN做对象检测和实例分割作者 | George Seif译者 | 天道酬勤,责编 | Carol出品 | AI科技大本营(ID:rgznai100)Mask-RCNN做对象检测和实例分割:https://miro.medium.com/max/1200/1*s9raSe9mLeSSuxE3API-ZA.gif你想做计算机视…

Windows PowerShell 2.0语言之字面类型系统
PowerShell语言允许通过一个字面类型(type Literals)来访问类型,它是用括号抬起的类型名,返回.NET底层的System.Type对象实例,如: PS C:\> [System.Int32]IsPublic IsSerial Name …

建立名称server
一、实验的目的:实现DNSserver功能,提供正向、反向解析二、实验环境装有Linux的Windows系统IP为192.168.6.3的虚拟机三、实验目的建立gr.org域的主名称server。解析:名称 IP 用途ns.gr.org 192.168.…

Java的JSON操作存储List到Redis
使用jackson和json-lib都可以 <dependency> <groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><dependency><groupId>net.sf.json-li…

关注基于云的下一代应用开发
接受经济和信息化的视频专访专访的主页地址为:http://www.enicn.com/article/2010-08-20/0R064b52010.shtml我的其他视频,请参考土豆空间,地址为http://www.tudou.com/home/larryvmw。
确认了!MySQL 狠甩 Oracle 稳居 Top1!
01几乎所有程序员都会用到的 MySQL稳居 Top 1科技长河,顺之者昌,错失者亡。在2019年,CSDN面向具备超强计算力的数字化世界,我们进行了「大数据技术应用现状分析」,并发布了《2019-2020 年中国开发者调查报告》。发现&a…

[AWK]使用AWK进行分割字符串以及截取字符串
如何split当前的字符串,用$0,例如: cat num.2012032911 | awk {print $2} | awk {split($0,b,".");print b[2]} | cut -c 3- 获取第二列,例如第二列是com.sb3456.you那么在split当前的这个字符串获得sb3456,最后截取sb3…
SpringMVC集成Tiles布局引擎框架
Tiles布局框架, http://tiles.apache.org/ Spring已经对Tiles进行了集成。页头页尾公共模板页要靠这个,不然重复代码太多。 <dependency><groupId>org.apache.tiles</groupId><artifactId>tiles-servlet</artifactId><…

VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)
右击项目->属性->字符集:使用多字节字符集。这样可以使用char到CString的转化。char sRead[20] ""; CString strtest sRead; 大气象 //文件查找/*CString strFileTitle;CFileFind finder;BOOL bWorking finder.FindFile(_T("C:\*.sys"…
程序员会懂的冷笑话:各大编程语言的内心独白
作者 | Anupam Chugh译者 | 弯月,责编 | 夕颜出品 | CSDN(ID:CSDNnews)软件工程领域鱼龙混杂。有些人乐不思蜀,而有些人则饱受打击。然而,构建软件的工作让每个人倍感压力,这点毋庸置疑。在本文…

swift集成alamofire的简单封装
import UIKit import Alamofire enum MethodType{ case GET case POST } class NetworkTool: NSObject { class func request(type : MethodType ,urlString : String , paramters: [String :Any]? nil,finishedCallback : escaping (_ result : Any) -> ()) { //判断是什…
Go后台项目架构思考与重构 | 深度长文
作者 | 腾讯云后台工程师黄雷编辑 | 唐小引来源 | CSDN(ID:CSDNnews)引言本文首先介绍了架构的重要性,随后从一个实际项目的重构过程作为主线,逐步引出主流的架构设计思想以及其所解决的实际问题是什么。通过阅读本文&…

前途到底是网络工程还是程序设计
本人89年年底生的,现在快满21了,大二的时候过的国家网络工程师考试,并不是cisco的网络支持工程师,大三也就是现在,在学校花销太大,想自己赚点钱,于是在学校招聘会上应聘了一家通信公司ÿ…