开源的被动流量分析器
支持在安全域之外进行大范围的流量分析(性能评估和错误定位)
部署bro之后,站点可以获得一个非常详细的记录网络行为的日志文件(所有线路上可见的每个连接,应用层传输如http会话以及请求的url,关键头,mime类型,dns请求和回应,ssl证书,smtp会话的关键内容等)。
Bro还有强大的内建函数来完成分析和检测任务,比如从http会话中抽取文件,检测恶意软件,报告脆弱的软件版本,识别web应用等。
特征:引自https://www.jianshu.com/p/a58d04df8322
在unix-like系统上运行,基于监控端口和网络窃听装置的全被动分析,标准的libpcap的抓包接口,线上以及线下分析,统一管理框架,开源。
离线分析和取证的全面日志记录,应用层协议的独立端口分析,支持多种应用层协议,应用层协议交换的文件内容分析,全ipv6支持,隧道检测与分析,扩展的检查,支持IDS的正则匹配。
脚本语言:图灵完备,基于事件,特定域数据类型,追踪与管理网络状态。
接口:结构化ASCII日志输出,ElasticSearch和DataSeries后端,将输入实时整合到分析工具中,bro将事件用c库与其他程序交换,以脚本语言出发任意处理。
Bro在Ubuntu16.04上安装以及基本功能的使用:
参考网址 https://www.howtoing.com/how-to-install-bro-on-ubuntu-16-04/
亲测有效
源代码编译过程需要大约20分钟,源文件+头文件大约350个,用到了c++,c,python,bro,yacc等。
关于bro的脚本使用,更详细的内容参见bro官网中的文档部分。
Bro日志:
高层次入口(high level entries)的流,和低层次的事件相对应
http请求/应答
用SMTP发送的邮件
SSH上的一次登陆操作
日志(是logs,而不是log)
每一个流都有它自己的类型(with its own set of fields)
不只一个文件?有很多个日志文件
SMTP日志有‘from’和‘subject’域
HTTP日志有‘method’和‘uri’域
‘from’域对于HTTP而言没有意义,同样的,‘method’域对于SMTP而言也没有意义
Bro脚本语言
除了基本的数据类型、函数之类的东西,还有一些比较复杂的内容。。
事件(events)
钩子(hook)
复合类型:
集合(set) 类似c++中的set类型
表(table) 类似python中的数组
向量(vector)类似c++中的vector类型
记录(record) 类似c语言中的结构体
日志:(一些日志操作)
过滤日志(filtering logs)
重命名日志(rename logs)
通知(notice)
总结统计(sumstat):使用了Summary Statistics Framework(比较难用,详细见官网文档)
The Intel Framework(provides an interface to feed your own intelligence data into bro)