Bro是一个被动的开源网络流量分析器。它主要是一个安全监视器,可深入检查链路上的所有流量,以发现可疑活动的迹象。它甚至支持安全域外的各种流量分析任务,包括性能测量和帮助排除故障。
站点从部署Bro获得的最直接的好处是可以高级别记录网络活动的大量日志文件。这些日志不仅包括在线上看到的每个连接的全面记录,还包括应用层转录本,例如所有HTTP会话及其所请求的URI,密钥标头,MIME类型和服务器响应; 有回复的DNS请求; SSL证书; SMTP会话的关键内容; 以及更多。默认情况下,Bro将所有这些信息写入适合用外部软件进行后期处理的结构良好的制表符分隔的日志文件中。然而,用户也可以从一组替代的输出格式和后端直接与例如外部数据库接口。
除了日志以外,Bro还具有用于一系列分析和检测任务的内置功能,包括从HTTP会话中提取文件,通过连接到外部注册表检测恶意软件,报告网络中看到的软件的易受攻击版本,识别流行的Web应用程序,检测SSH暴力破解,验证SSL证书链等等。
然而,理解Bro的关键在于意识到即使系统具备开箱即用的强大功能,从根本上说,它代表了一个完全可定制和可扩展的流量分析平台:Bro为用户提供了一个特定领域的Turing-用于表达任意分析任务的完整脚本语言。从概念上讲,您可以将Bro视为“特定于领域的Python”(或Perl):就像Python一样,系统带有大量预建功能(“标准库”),但您并不局限于系统提供了什么,但可以通过编写自己的代码,使Bro以新颖的方式使用。事实上,Bro的所有默认分析,包括所有的日志记录,都是这些脚本的结果; 没有对系统核心进行硬编码的具体分析。
Bro运行在商用硬件上,因此可以为昂贵的专有解决方案提供低成本替代方案。然而,尽管价格很高,Bro实际上远远超出了其他网络监控工具的功能,而这些监控工具通常仅限于一小组硬编码分析任务。我们特别强调Bro不是一个经典的基于签名的入侵检测系统(IDS)。虽然Bro的脚本语言也支持这样的标准功能,但确实可以促成更广泛的非常不同的方法来发现恶意活动,包括语义误用检测,异常检测和行为分析。
各种各样的网站部署Bro以保护其网络基础设施,其中包括许多大学,研究实验室,超级计算中心,开放科学社区和主要公司。Bro特别针对高速大容量网络监控,越来越多的站点正在使用该系统监控他们的10GE网络,其中一些已经转向100GE链路。Bro通过支持可扩展的负载均衡来适应这种高性能设置:大型站点通常运行“Bro Brousters”,其中高速前端负载均衡器将流量分配到适当数量的后端PC上,所有运行专用Bro实例在他们的个人交通切片上。中央管理者系统协调过程,在后端同步状态并为操作员提供集中管理界面,用于配置和访问聚合日志。Bro的集成管理框架BroControl支持这种即开即用的集群设置。
要求:
Libpcap库
OpenSSL库
BIND8库
LIBZ
Bash(用于BroControl)
Python 2.6或更高版本
要从源代码构建Bro,需要以下附加依赖项:
制作2.8或更高
使
支持C 11的C / C 编译器(GCC 4.8 或Clang 3.3 )
痛饮
野牛(GNU Parser Generator)
Flex(快速词法分析器)
Libpcap标题
OpenSSL头文件
zlib标题
蟒蛇
如果在构建时发现它们,Bro可以使用一些可选的库和工具:
C Actor Framework(CAF)版本0.14
LibGeoIP(用于地理定位IP地址)
sendmail(使Bro和BroControl能够发送邮件)
curl(由实现活动HTTP的Bro脚本使用)
gperftools(tcmalloc用于改善内存和CPU使用率)
jemalloc
PF_RING(仅Linux,请参阅群集配置)
ipsumdump
特征:Bro支持通过其脚本语言进行广泛的分析。但即使没有进一步的定制,它也具有一套强大的功能。
部署
在标准UNIX风格的系统上运行商品硬件(包括Linux,FreeBSD和MacOS)。
从网络分路器或监控端口进行完全被动流量分析。
标准的libpcap接口,用于捕获数据包。
实时和离线分析。
集群支持大规模部署。
统一管理框架,用于独立运行和集群设置。
根据BSD许可开放源代码。
分析
全面记录离线分析和取证活动。
应用层协议的独立于端口的分析。
支持许多应用层协议(包括DNS,FTP,HTTP,IRC,SMTP,SSH,SSL)。
分析通过应用层协议交换的文件内容,包括指纹识别的MD5 / SHA1计算。
全面的IPv6支持。
隧道检测和分析(包括Ayiya,Teredo,GTPv1)。Bro解封隧道,然后继续分析他们的内容,就好像没有隧道一样。
在协议分析期间进行广泛的健全性检查。
支持IDS风格的模式匹配。
脚本语言
用于表达任意分析任务的图灵完备语言。
基于事件的编程模型。
特定于域的数据类型,例如IP地址(透明地处理IPv4和IPv6),端口号和定时器。
广泛支持随着时间的推移跟踪和管理网络状态。
界面
默认输出到结构良好的ASCII日志。
ElasticSearch和DataSeries的替代后端。准备进一步的数据库接口。
将外部输入实时整合到分析中。准备好实时数据库输入。
用于与外部程序交换Bro事件的外部C库。附带Perl,Python和Ruby绑定。
能够从脚本语言中触发任意外部进程。
下载地址:https://www.bro.org/download/index.html
仅供于学习研究使用,不得非法使用,如非法操作,责任自行承担
文章出处:http://www.effecthacking.com,由华盟网翻译排版,转载请注明华盟网
推荐文章++++