场景

前两者的缺点就是它的优点

缺点:学习有一定的门槛。

支持Snort/ suricata的设备不能与网络上其他支持Snort的设备通信,也不能集中管理它们。

对于小型企业来说,它们可能工作得很好,但对于中型或大型网络,它们可以带来更多的工作,而带来更少的价值。

规则分析

Bro提供了一些关键的高级特性:强大的用于对事件做深入分析的策略脚本、规则与策略脚本的交互,

Snort也对一些应用层协议如HTTP、PORTMAP、TELNET,FTP做了些简单的解码和处理(也即Snort预处理器功能),这些处理先对匹配做了一些优化(相比bro的事件生成引擎机制要简单得多),然后再根据不同的协议特征进行匹配. 相比来说Snort检测方式还是简单粗糙的,但是Snort新的版本2.0后也支持了很多高级特性:如支持正则表达式的数据匹配、规则关联等。

IPS

同时2者都可以提供IPS的功能

Snort用一种Inline模式结合Iptable能提供对所有攻击数据包进行拦截的功能(drop掉数据包),但是这种情况下Snort通过Iptable截获数据包而不是通过libpcap库获取数据包的拷贝,自己特征匹配后再交给Iptable处理,作为防火墙来说,势必严重影响其处理速度,我们这里还是不宜使用。

Bro通过rst应用程序直接给对方发送TCP RST包中断和对方的连接,但是细读帮组说明文档,没有看到其对udp包如何拦截(个人感觉仅仅关闭tcp还谈不上IPS功能)。而仅仅对于tcp的连接关闭,Snort也有更好的支持,用关键字resp可以关闭双方或者单方的连接。

影响力

snort由于知名度比较高,使用广泛,国内几乎成为IDS的代名词,所以相关的辅助工具很多,比如报警日至分析工具(SnortSnarf),数据库浏览分析工具(ACID),还有Snort有一个很好的规则配置以及智能升级工具IDS Policy Manager(Windows2000/xp平台),用来升级配置规则都很简单.

数据库检测

snort支持很多检查数据库(Oracle,my_sql,ms_sql)攻击的规则,如删除Oracle数据库中表的企图等,

Bro对数据攻击支持几乎没有.

规则库

snort由一个专业的商业公司(Sourcefire)支持维护, 其VRT(Vulnerability Research Team) 项目组专们跟踪当前网络攻击,提供了攻击特征库的实时升级(并且负责测试规则),目前(2006-2-5)的特征规则数目达到5600多条,

特征规则库只有随Bro版本升级时候一起升级发布!Bro推出了一个工具Snort2Bro,将Snort的规则转化为Bro的脚本语言,这个工具能转化大部分规则!

日志

Snort还可以直接写到Syslog或者数据库oracle,my sql,ms sql

Bro不行。Bro可以直接通过e-mail报警,Snort必须通过第三方工具Swatch。

检测能力扩展

Snort基本上只能简单的匹配一个个规则,snort利用sfPortScan,stream4预处理插件也可以检测出ip,tcp,udp的portscan,以及ddos攻击等。

Bro可以在事件处理(Event  handle)中对一个个网络行为进行分析,可以分析出一些异常行为!但是对于一般常见的行为如tcp的连接,端口扫描

研发投入

.Bro策略脚本的编写需要不少时间和精力的投入,Bro的作者提供了完整的使用手册,包括各种特定数据类型的说明、引擎本身支持的函数说明、如何使用的示例,用户必须经过一定时间的学习可以完全掌握。实际上bro策略脚本提供了一个基本框架,里面定义了一些事件处理器(event handle)和函数,感觉类似于windows下的消息驱动机制,事件生成引擎用一个类似message queue的event queue,然后会根据应用层协议自动调用这些event handle, 第三方可以补充修改它扩充功能。

Snort 规则脚本简单的多,一条规则仅仅是简单的包括规则头和规则体,头部制定一个动作行为,如alert,log,pass等. 规则体就是一些关键字构成动作的条件.

这样当用户对规则进行配置的时候,一般也就是使用不使用这条规则,这样只要提供一个索引文件,把所有得规则对应的文件名,位置记录下来,用户配置好了后,就根据这个文件找到规则所在文件去注释或者启用一条规则,很方便简单。 Bro由于规则是写在脚本语言程序里,要修改脚本程序(一般也就是注释掉一段代码),相比snort注释一行代码要麻烦点。

规则可读性

Snort每条规则都有一个说明文档,对该规则功能,特征作了详细的说明,

bro的规则必须自己读懂一个个脚本语言程序,自己分析程序代码提供的功能! 不过bro的规则一般也都是Snort的子集,有Snort作为参考,bro的规则好理解多了!Bro缺少的规则我们可以用其工具Snort2Bro,将Snort的规则转化为Bro的。

资料检索

Snort使用普及的多,网上中文资料很多,

bro还在发展状态,网上的中文资料很少,必须自己去看提供的user-mannul,reference-mannul,总共400多页!完全是英文的,对于英文不是很好的读者,看懂理解要花费不少时间.本人就是在读这些英文手册以及研究自带脚本提供的功能上浪费了大量时间(主要是英文看得太累,一句话要看n遍才看的是懂非懂,看着看着人就发懒,看看其他东西调节去了^_^)!不过最痛苦的时候基本已经过去,现在对IDS有了一定理解回头再查看也简单容易理解多了!

Bro

Snort

Wireshark& Tshark

优势

高级的
异常检测

正则表达式,签名

流量分析

关注数据

连接对象,
事件

数据包,
数据流

协议剖析

可编程性

Bro DSL

实时或重放

兼备

兼备

Pcap重放

应用层

应用层 自动化,
数据动态分发

自动化,
OpenAppID

手动,
解析器

bro除了上述实验的功能,还提供了不少关键的高级特性,例如在事件生成引擎中实现应用层协议功能。在计算机取证分析中,可以高效地分析网络流量,从而找出入侵的痕迹,帮助管理者追究责任、减少损失。

bro是一个值得网络入侵检测系统开发者参考和借鉴的好工具,也是具有一定网管经验的用户定制攻击检测功能的选择。

【开源】Bro、Snort/suricata对比相关推荐

  1. Bro与Snort或Suricata对比

    Snort是最初于1998年开发的开源入侵检测系统(IDS)/入侵防护系统(IPS) Snort标志性格式的规则是整个威胁情报业的事实标准,它借用当时几款流行的开源工具(这些工具用于给网络流量指定唯一 ...

  2. 朔源反制:IDS IPS snort suricata

    IDS:Intrusion detection systems 入侵检测系统 IPS:Intrusion prevention systems 入侵防御系统 Snort: 参考:https://www ...

  3. rf框架的缺点_2017热门开源自动化测试框架优缺点对比

    原标题:2017热门开源自动化测试框架优缺点对比 时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源 自动化测试框架的优缺点,以帮助你选择适合自己的 ...

  4. OceanBase开源版与TiDB对比测试报告

    OceanBase开源版与TiDB对比测试报告 北京it爷们儿老贾 儿童节OceanBase宣布开源,开源世界又多了一个小伙伴儿.之前也有听闻OceanBase TPC-H 打榜的消息,很震撼,也很想 ...

  5. 开源的 Snort 入侵检测系统中存在高危漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 开源的思科 Snort 检测和预防系统中存在一个漏洞 (CVE-2022-20685),可触发拒绝服务条件并使其无法抵御恶意流量. 该漏洞的CV ...

  6. Apache Struts 和 Spring 开源漏洞状况的对比

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 全球的开发人员都依赖多种框架如 Apache Struts 和 Spring 来构建有价值且强大的应用程序. 这些庞大的开源项目是组织机构 ...

  7. 开源物业管理系统的对比

    最近因为公司的业务需求,需要基于开源的物业管理系统做二次开发,本人因此对比了目前主流的开源物业管理系统. 1.ejyy(「e家宜业」) 产品介绍: 基于nodejs的开源物业管理系统,功能比较丰富,包 ...

  8. 免费开源JAVA报表工具对比 BIRT报表VS润乾报表之初体验

    前一段时间,被导师安排对报表开发工具做调研,之后就一度泡在各大博客.论坛里,尽可能全面的搜集了几款报表工具的优缺点,攒成了<java报表工具报表软件选型经验总结分享>.不过大多都是直接抄的 ...

  9. 开源分布式存储系统的对比

    我们在选型开源分布式存储系统框架之前需要对不同的框架进行调研. 所有的开源存储系统介绍链接 存储系统对比 目前比较热门的分布式文件系统有如下几种: Ceph,GlusterFS,Sheepdog,Lu ...

最新文章

  1. rhino-java中调用javascript
  2. 蓝牙 socket 建立不了_蓝牙电话之PBAP同步电话簿的安卓实现
  3. Vista下的程序集缓存卸载方法,也就是C:\Windows\assembly之下的卸载方法
  4. Promise的几个扩展API总结
  5. [转]Java输入输出流的使用详细介绍
  6. python400集_今日分享」Python400集全套教程
  7. bzoj2783: [JLOI2012]树
  8. Java基础语法-方法的定义、调用以及static关键字的使用
  9. spring-boot-maven-plugin 爆红,分析原因并解决。
  10. ChIP-Seq,MeRIP-seq峰(peak),eccDNA等染色体分布可视化
  11. DHCP中继配置(思科)
  12. 神农班和我的2020年总结
  13. sha1校验工具android,Android 正式版与测试版签名(MD5,SHA1,SHA256)以及忘记keystore的应用正式版签名获取...
  14. spring boot开发入门
  15. 教你如何写好一篇专利申请?
  16. python实现四种出行路线规划(公交、步行、驾车、骑行)
  17. 配置SNAT实现共享上网: 搭建内外网案例环境 配置SNAT策略实现共享上网访问
  18. day11函数进阶作业
  19. 华为OpenEuler体验系列(16)-显卡驱动安装以及CUDA
  20. 数据集格式转换一:DarkLabelToMOT

热门文章

  1. Centos7镜像的下载、安装(详细教程!!)
  2. OpenResty搭建游戏服务器(一)开始
  3. C语言,判断数字的位数
  4. Harmony OS操作系统使用体验二三事
  5. HTML中如何标记文章作者署名,你真的知道文章里的作者署名是怎么排序的吗?...
  6. 面试杭州安恒的初体验
  7. 基础笔记:图的一些概念
  8. 论VPN 网络传输的安全性影响
  9. gcc命令常用选项参数详解
  10. 洛谷P3355 骑士共存问题