日志关联

 

 

被关联的状态或者联系;具体地说:现象或者事务之间、数学变量或者统计变量之间存在着某种联系,它们倾向与同时变化、相互联系或者同时发生,而这种同时发生的事情不被认为是偶然的。

 

对于日志分析来说:我们将多个相似或者不相似的事件联系起来,形成对更大事件将要发生的认识,而不是简单的关注单一事件,从而得到所发生的情况的不完整视图。 可以通过某种语言创建规则来实现,这些规则建立了安全和网络管理员和分析人员感兴趣的情况的模型。

状态规则引擎SRE 为管理员和分析人员提供了创建任意顺序或者模式的规则的能力,必须维护一个状态,以便这些测试,

实现方法之一是简单的使用存档数据存储作为持久化层,提供SBR引擎可以简单的挖掘数据库,寻找匹配一条或者多条规则的事件序列。不过要花费大量的SQL查询。

       更好的解决方案是在事件数据进入长期存储之前获取它。 将数据发送到某种消息队列,在那里提供SBR引擎消费处理,不过内存占用比较大,这就是数据自身失效后事件过期的重要性。如果事件一直保存在内存中应为可能会耗尽内存的空间。

       通过设置事件过期的生存时间可以解决。我们可以为规则的每一步设置TTL.。比如在eventType为portscan的事件才启动事件跟踪,开始计算TTL,如果没有看到符合规则下一阶段的事件,则放弃这一规则。

 

       微观关联:关心的是单一事件或者一组事件中关联的字段,有时候称为原子关联。原始数据数据规范化对原子关联高效执行很重要。

  1. 字段关联:提供发现规范化事件数据中感兴趣的一个或者多个字段的机制。

例如:你可能对IDS何时检测到针对web服务器的活动感兴趣,最合乎逻辑的做法是搜索目标端口为80或者443的事件。

事件类型是另一个字段关联的来源。

例如:你关心特定服务器的有害访问企图,可以关联事件类型为Drop,目标IP地址为该服务器的事件。

实际上在实现时候就是通过关键字来搜索日志?

  1. 规则关联:编写一条能够建立某种行为模型的规则。

为了使规则关联变的高效,规则引擎至少应该有如下的功能:

•状态型行为:实施关联的系统有时称为引擎。规则关联引擎有时候称为状态型规则引擎或者状态型业务规则引擎。状态型规则可能由一个或者多个状态组成,可能是层层递进的,到达一个状态后进入下一个状态,有点像树的结构

•计数:一个非常有用的工具。等待一个事件发送一定次数,然后采取行动。

•超时:大部分状态型规则引擎实现使用内存分析等工作,如果一直等待某事件的发生可能导致内存空间不足,比如可以设置5分钟的默认老化期。

•规则重用:一条规则可能包括很多的条件,在你创建的其他规则中重用这类组件。

•优先级:可以描绘一条规则或者一组规则的执行顺序

•语言:所有规则引擎都实现某种用于指定规则的语言或者伪语言。 应该使用一种易于学习使用的。

•行动:必须有一种执行某种操作的机制,仅仅知道某件事往往还不够。

 

宏观关联:关心的是获取信息的来源,以便进一步验证或者得到事件流上的情报。有时称为融合关联。

比如:考虑漏洞扫描,并将其与进入分析系统的事件数据进行内联比较。

原始数据的规范化是很重要的,例如:以用户名做全名映射可能很有用,正如用户角色在特定系统上作用一样,称为上下文数据。Window或者Unix等操作系统将他们生成的日志消息中插入一些上下文信息,如果你需要获得更详细的信息,就需要从LDAP服务器或者活动目录服务器上获取他们。

  1. 规则关联

与微观关联的主要不同是,规则关联往往过度到一个宏观的关联规则中,后者可以用作其他微观规则的输入,或者引发写入文本文件、创建服务台工作单等行动

  1. 漏洞关联

帮助寻找容易遭到已知攻击的主机和其他系统。

••容易被攻击的主机

•容易被攻击的服务或者端口

•补救步骤

  1. 指纹关联

通过标识抓取,操作系统指纹,漏洞扫描和远程端口扫描收集信息都有好处,这种数据可以用于更加深入的了解对你发起攻击的人。作为常规关联的一部分,可以设置一个行动,当特点事件进入系统时发起取证收集任务。

  1. 反端口关联

大部分防火墙根据允许或者拒绝的实际包生成日志,反端口关联通过使用开发端口信息和防火墙数据,一便能够检测“慢速”“低”类别的攻击。

可以帮助检测攻击者何时尝试访问系统端口或者不存在的服务,

跟踪开放端口信息的方法,将来自防火墙和IDS的目标端口与一种的开发端口比较。

保留一个新的主机和端口列表。

      

  1. 观察列表关联

将攻击来源放在一个观察列表中

  1. 地理位置关联

生成警告时,地图上的节点发亮,以表示出现了问题。

 

 

使用环境中的数据

环境数据是数据关联的最佳来源之一,这些数据可以视为上下文。

 

 

9.4.4 简单事件关联器 SEC

       简单事件关联器是一种基于Perl的工具,实现一个简单的关联系统。

     它具备创建规则的健全语法,能够完成从简单到复杂的工作,规则链接起来组成行为模式,可以用于检测1已知的情况,帮助诊断或者发现未知的情况。 SEC核心的上下文的概念,上下文可以看作一个事件或者一系列事件发生的占位符,可以使得SEC可以状态型的风格运作,对于检测多种日志消息是非常关键的,

  1. SEC基础知识

SEC支持的各种规则类型

Single—匹配一个事件并执行一项行动

Singlewithscript—匹配一个事件并从它所运行的一个脚本或者程序中获得返回码

Singlewithsuppress—匹配一个事件,然后忽略后续匹配t秒

Pair—将给定事件范围内的多个事件组合为单一事件

Pairwithwindow—类似与pair,但为下一事件到达等待t秒

Singlewithtreshold—计算一个窗口匹配的事件数量,到达魔鬼阈值 触发某个行动

Singlewith2thresholds---计算时间窗口t1内匹配的事件数量,并达到第一个阈值执行行动 计数被重置并在t2秒内计算匹配的事件数量 如果t2秒低于阈值 执行另一个行动

Suppres—不匹配事件 也不执行行动

Calendar—在指定事件执行行动 类似与unix crontab条目

 

Action类别

Write 将事件文本写入指定文件

Shellcmd 执行一个shell命令或者程序

Spawn 和shellcmd相同 不过可以作用sec的反馈

Event 导致创建sec内部事件,可以作用与sec的反馈

 

  1. 例子

 

  1. 漏洞关联示例

如果你想执行漏洞关联,减少假阳性,意味着,使用nessus之类的工具定期扫描你的网络,寻找有漏洞的系统。扫描器输入放入一个数据库中,我们可以在SEC中编写一条检测端口扫描的规则,运行一个程序查询漏洞数据库,并返回系统是否有漏洞

  1. cisco ios配置变更

许多环境部署某种配置变更控制,例如,所有的硬件1和软件的变更在某几小时之间进行,如果你在正常之外接收到路由器的配置的变更,就需要担心所发生的事情了。

 

  1. 混杂模式检测

当网络接口被置于混杂模式时,所有的数据包都发生到内核处理,包括目标不是该网络接口卡mac地址的数据包, 在使用混杂模式网卡的系统上的用户可以所有嗅探器等工具 查看所有的网络数据包

可以检测主机上和主机进入混杂模式的网卡

  1. 需要寻找关键字

比如panic

Fatal 捕获致命消息

Password 或者 passwd 可能表示破坏密码维护正常渠道的恶意行为

 

  1. 应用程序退出码

应用程序退出时,通常向操作系统返回一个错误码,这个代码一般为0,表示正常程序结束,退出为1通过表示发生了某种异常行为1

 

 

9.2.6构建自己的规则引擎

1.使用jess的基于规则的引擎

Jess的核心是实现Rete算法,为了解决模式匹配问题,用于规则上下文或者规则引擎,传统的模式匹配相当低效,规则引擎实际改变的实际项来测试规则,这可以减少引擎所必须执行的工作量,规则通常有LHS条件 , RHS条件为真时采取的行动。

       将数据组织为树形结构,基于rete的规则引擎很多。

 

演绎归纳:演绎:系统中规则依靠一组数据执行,归纳:系统查询一个数据集获取真实值

工作内存wm:规则引擎中一个区域,保留一条或者多头规则处理数据。

对象断言:数据通过断言的过程放入wm

对象回收:wm中数据删除

议程:是具有将被执行/触发的RHS的规则列表

冲突解决:是选择议程中的行动、并加以触发的过程, 规则引擎必须决定WM中的同一个数据满足两条规则时触发哪一条。可以通过设置优先级解决。

 

实际例子

假定日志聚合和规范化已经完成

编写java代码 主要为了保存数据 定义规则

我们从磁盘文件中加载规则文件,defclass f方法断言一个进入WM的新securityClass对象

最后通过run方法运行引擎。

在生产规则引擎中你应该在循环中断言对象和运行引擎,可能通过某种队列或者数据库中获取事件对象,到达一定数量后运行引擎。

 

另一种替代的方法是在一个线程中断言事件,然后用rete.rununtilhalt在专用线程内持续运行引擎。

 

 

  1. 使用Esper基于流的引擎

 

数据流通过一个CEP引擎可以从多个事件中发现复杂的模式,CEP引擎采用查询语言,允许你定义感兴趣的模式,理解CEP引擎最简单的收到是将其与一个数据库比较,数据库使用查询筛选数据,CEP引擎让数据流过查询,寻找有趣的现象。

 

首先搜索Loginfailures,我们将窗口设置为10秒,然后再这个窗口搜索5个login Failures。10秒的5次失败后接着有一个登陆成功。 然后发出警报。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常见的搜索模式

X次登陆失败有一次登陆成功

可能表示暴力破解成功,

创建非管理员账户后进行权限提升

非管理员一般不会将其权限提升到管理员级别,或者其他高级用户级别

VPN用户再工作时间外登陆 并向网络之外传输大量数据

这可能表示数据外流,实现起来比较困难,因为需要使用netflow等工具

网络上的一条主机开始攻击或者探测网络上其他主机

这可能是源主机受到蠕虫 木马 恶意软件等的感染 你可以用防火墙日志确定

在很接近的时间内X次尝试访问用户没有权限的文件目录

可能表示用户账户入侵 如果发生在下班时间应该立即调查

同一个工作站以多个用户名登陆

某人正在使用多个不同的用户名访问网络上多个不同资源

多个系统上多个防病毒软件失败

可能表示病毒爆发

攻击DMZ系统 随后有出站连接

表示僵尸感染

攻击DMZ系统 随后在同一个系统上更改配置

攻击者获取系统访问权限并修改

在几分钟内有web 404 401 500

表示web服务器或者应用程序无法正常工作

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值