【开源】Bro、Snort/suricata对比

2023-10-16 04:58
文章标签 开源 对比 suricata snort bro

本文主要是介绍【开源】Bro、Snort/suricata对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景

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

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

支持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对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219197

相关文章

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

exfat和ntfs哪个好? U盘格式化选择NTFS与exFAT的详细区别对比

《exfat和ntfs哪个好?U盘格式化选择NTFS与exFAT的详细区别对比》exFAT和NTFS是两种常见的文件系统,它们各自具有独特的优势和适用场景,以下是关于exFAT和NTFS的详细对比... 无论你是刚入手了内置 SSD 还是便携式移动硬盘或 U 盘,都需要先将它格式化成电脑或设备能够识别的「文

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man