专栏首页FreeBufossec入侵检测日志行为分析

ossec入侵检测日志行为分析

上次说写的ossec连载,不幸因为工作太忙夭折了,最近缓过神来决定补上第2篇,言归正传,ossec的功能主要是为了防御及抓坏人,但因为攻防之间本来就信息不对称所以防守方需要能早知道攻击者的行为,这点有很多案例来证明,我们能不能不安装ossec客户端的情况下来对攻击者攻击的入侵行为捕获呢,这也有利于我们对攻击者的行为有进一步的了解,我比较擅长linux,于是这里还以linux安全为主,对于网络边界来说ssh绝对是保护的重点。

关于ossec的安装,这里就不在赘述,可以看看官方文档,ossec支持2种模式,第一种是安装ossec客户端,这种在大公司未必适用因为种种原因,还有一种是利用syslog来传输安全日志,我这里主要说的是这个,相信很多人对syslog比较熟,ossec本身对日志的传输也是通过syslog来完成。本着知其然然其所以然的态度,我们要做一件事,就需要3个步骤:what?how?do?,要收集日志,当然要知道收集这些能做哪些咯,下边来看日志收集的作用,最重要的是如何根据日志进行入侵行为分析。

日志的作用:

1、从安全方面来考虑主要是为了能够在出现问题时或出现安全问题后可以查询到日志,来追溯攻击者;
2、从运维层面来说,收集系统日志对于sa处理各种故障来说,可以提供很大便利性,另外可以方便运维排除故障及解决问题;
3、起到备份作用,需要对日志安全日志进行保存,避免因为黑客入侵导致的日志丢失;

如何做?

1、配置ossec server:

ossec自身支持syslog功能,在/var/ossec/etc/ossec.conf里可以配置,另外还可以配置允许访问的网段地址,首先配置本机支持syslog,把ossec-remoted开启。

<syslog_output>     
    <server>192.168.1.14</server>
    <port>514</port>
</syslog_output>

然后配置syslog允许连接到的ip地址网段,如下所示:

<remote>
  <connection>syslog</connection>
  <allowed-ips>192.168.1.1/24</allowed-ips>
</remote>

然后重启ossec,这个时候可以tail -f /var/ossec/log/ossec.log查看配置文件有无报错,如报错则无法启动ossec服务,如图已经启动。

2、配置syslog client:

客户端配置不需要很复杂,只需要配置基本的syslog策略即可,syslog本身是udp协议,可能会出现丢日志的现象,但实际使用上暂未发现,配置如下:

auth,authpriv.*    @192.168.1.14

,这句的意思是允许把安全日志传输到远程ossec sever,做安全暂时只关心安全日志。

3、接入syslog:

通过syslog将日志传输到ossec server上,通过/var/ossec/logs/ossec.log,检查到ossec已经允许接受来自192.168.1.*的syslog配置。

2013/12/25 9:11:52 ossec-remoted: Remote syslog allowed from:&#039;192.168.1.1/24&#039;;

4、触发报警:

要报警需要触发到ossec的规则,比如ssh登录异常,登录异常需要3次来触发,首先配置ossec的规则为:

<alerts>    
   <log_alert_level>10</log_alert_level>
   <email_alert_level>7</email_alert_level>
</alerts>

上边xml的意思是level = 10的日志如果触发规则,则报警,已经配置好了syslog的话,那如何来触发报警呢?见5.

5、测试报警:

a.通过登录已经接入ossec 的服务器192.168.1.*的机器;

b.随便输入几次密码;

c.操作完成可以看到已触发报警,这里需要说明下,ossec内配置的smtp需要认证的话,是不能通过认证的,所有我们可以通过把邮件先发送到gmail,然后gmail内设置过滤器来转发到你所在的邮箱;

这里是我之前测试的邮件,所以打码了,如图:

到这里就完成了发送邮件,但是为什么会触发呢?我个人觉得做技术需要对其原理也深挖下,这样才能融会贯通,于是看了下官方文档和google相关内容,通过自己的了解总结了ossec对日志分析的3点:

1、日志预解码:
目的,从日志中提取一般的信息。
例如,从系统日志头中获取主机名,程序名和时间等等。
条件,日志必须格式良好。
2、日志解码:日志解码是利用正则表达式匹配出某些关键字,包括主机名、来源ip、日志信息等;
3、日志分析:日志分析主要是拿这些解码后的日志去匹配ossec decoder.xml中的规则,如果匹配则会触发,如上边是sshd的日志触发,是触发了这些规则:

用一个图来表示就是这样的:

总结:

这里就实现了syslog传输日志的需求,其实难点不在这里传输而是在分析,对于中小企业来说,自己写入侵检测规则过于麻烦,这时候能有ossec rules来帮助我们完成这部分繁杂的工作,何乐而不为?

最后分享一句话某个前辈的话,“安全这个东西就是这样的,你遇到的我没遇到过,我遇到的你可能也没有遇到过,其实只要一说,大家就都明白了。 ” 希望此文对你有帮助,谢谢!

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2013-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据安全分析思想探索

    日志分析在入侵检测中的应用越来越广泛,合适的使用日志,使日志产生巨大的价值,本文旨在探讨如何让日志的价值在安全领域发挥作用。

    FB客服
  • Web攻击日志初探

    前段时间偶然间在一朋友处获得了多个系统的web日志,并被被要求针对这些日志进行分析。一时兴起,随便打开了一个,打开后发现日志数量极大,接着又打开了好几个,发现每...

    FB客服
  • 通过Windows事件日志介绍APT-Hunter

    APT-Hunter是用于Windows事件日志的威胁搜寻工具,该工具能够检测隐藏在Windows事件日志中的APT运动,如果您是弄威胁情报的人,那么我保证您会...

    FB客服
  • 用了几年的C语言后你总结了哪些C语言的精髓,是否可以说下心得体会?

    作为从事嵌入式软件开发十几年的程序员,来尝试着回答这个问题,嵌入式开发最基本的编程语言当属于C语言了,这门编程语言最大的特点是灵活高效,现在大学开设相关的编程课...

    程序员互动联盟
  • 日志使用规范

    【强制】日志系统调用方式如下:         import org.slf4j.Logger;         import org.slf4j.Logg...

    用户1409099
  • 如何编写向前兼容的 Python 代码

    对于网络应用来说,目前最安全的做法是仍然坚持使用 Python 2.x,即使是新的项目。一个简单的原因是现在 Python 3 还不支持足够多的库,而将已有的库...

    岂不美哉Frost
  • 《3》 python语言基础知识

    「3」python语言基础知识 Python是一种计算机编程语言。计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的...

    企鹅号小编
  • Zap日志库并集成Gin

    在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 1 . 能够将事件记录到文件中,而不是应用程序控制台; 2 . 日志切割-能够根据文件大...

    常见_youmen
  • 分布式锁:二、Redis锁

    对于分布式锁的实现,除了redis锁之外,还有很多,像zookeeper,memcache,数据库,chubby等。redis锁因为使用简单,所以被大家广泛使用...

    灰子学技术
  • 原生Ajax总结

    HTTP协议 ? 传统的请求和Ajax请求 ? Ajax定义 Asynchronous JavaScript and XML. Ajax异步的,JavaSc...

    八哥

扫码关注云+社区

领取腾讯云代金券