Bro – 一个开源的网络流量分析器
Bro是一种的开源的网络流量分析器。 它主要是一个安全监视器,可以检查链路上的所有流量,以查看可疑活动的迹象。它支持甚至在安全域之外的各种流量分析任务,包括性能测量和帮助进行故障排除。
站点部署Bro获得的最直接好处是一组广泛的日志文件,以高级别的方式记录网络的活动。这些日志不仅包括在线上看到的每个连接的综合记录,还包括应用层转录本,例如,所有HTTP会话及其请求的URI,密钥头,MIME类型和服务器响应; 带回复的DNS请求; SSL证书; SMTP会话的关键内容; 以及更多。默认情况下,Bro将所有这些信息写入结构良好的制表符分隔日志文件,适合使用外部软件进行后期处理。然而,用户还可以从一组备选输出格式和后端中选择直接与例如外部数据库接口。
除了日志之外,Bro还提供了一系列分析和检测任务的内置功能,包括从HTTP会话中提取文件,通过与外部注册表接口检测恶意软件,报告网络上看到的易受攻击的软件版本,识别流行的Web应用程序,检测SSH暴力破解,验证SSL证书链等等。
然而,理解Bro的关键在于意识到尽管系统具有开箱即用的强大功能,但从根本上说它代表了一个完全可定制和可扩展的流量分析平台:Bro为用户提供特定于域的图灵 - 用于表达任意分析任务的完整脚本语言。从概念上讲,您可以将Bro视为“特定于域的Python”(或Perl):就像Python一样,系统附带了大量预构建功能(“标准库”),但您不仅限于此系统附带什么,但可以通过编写自己的代码以新的方式使用Bro。实际上,Bro的所有默认分析,包括所有日志记录,都是这些脚本的结果; 没有具体的分析硬编码到系统的核心。
尽管有价格标签,但Bro实际上远远超出了其他网络监控工具的功能,这些工具通常仅限于编码分析任务。我们特别强调Bro不是经典的入侵检测系统(IDS)。虽然它也支持这样的标准功能,但Bro的脚本语言确实促进了不同的方法来发现恶意攻击,包括语义误用检测,异常检测和行为分析。
各种各样的站点在运营时部署Bro以保护其网络基础设施,包括许多大学,研究实验室,超级计算中心,开放科学社区和大型企业。Bro特别针对高速,大容量的网络监控,越来越多的站点正在使用该系统监控其10GE网络,其中一些网站已经转向100GE链路。Bro通过支持可扩展的负载平衡来适应这种高性能设置:大型站点通常运行“Bro Clusters”,其中高速前端负载均衡器在适当数量的后端PC上分配流量,所有后端PC都运行专用Bro实例在他们各自的交通片上。中央经理系统协调过程,跨后端同步状态,并为操作员提供集中管理界面,以便配置和访问聚合日志。Bro的集成管理框架BroControl支持这种现成的集群设置。
要求:
Libpcap库
OpenSSL库
BIND8库
LIBZ
Bash(用于BroControl)
Python 2.6或更高版本
要从源代码构建Bro,需要以下附加依赖项:
Make 2.8 or greater
Make
C/C compiler with C 11 support (GCC 4.8 or Clang 3.3 )
SWIG
Bison (GNU Parser Generator)
Flex (Fast Lexical Analyzer)
Libpcap headers
OpenSSL headers
zlib headers
Python
如果在构建时找到它们,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的备用后端。进一步的数据库接口准备。
将外部输入实时集成到分析中。实时数据库输入准备中。
外部C库,用于与外部程序交换Bro事件。附带Perl,Python和Ruby绑定。
能够从脚本语言中触发任意外部进程。
下载链接 https://www.bro.org/download/index.html
一叶知秋