BRO分析工具
bat_min的Python项目详细描述
bro分析工具
bat python包支持使用pandas、scikit learn和spark处理和分析bro数据
为什么是蝙蝠?
Bro已经有了一个灵活、强大的脚本语言,为什么我应该使用BAT?卸载:运行统计、状态机、机器学习等复杂任务。应该 从Bro卸载,以便Bro能够集中精力高效处理大容量网络流量。
data analysis:我们有大量的支持类,帮助从原始bro数据连接到包 像熊猫一样,scikit学习和火花。我们还提供了示例笔记本,演示了如何逐步获取 从这里到那里。
示例:将bro日志作为python字典拉入
frombatimportbro_log_reader...# Run the bro reader on a given log filereader=bro_log_reader.BroLogReader('dhcp.log')forrowinreader.readrows():pprint(row)
output:每一行都是一个很好的python字典,时间戳和类型都被正确转换。
{'assigned_ip': '192.168.84.10', 'id.orig_h': '192.168.84.10', 'id.orig_p': 68, 'id.resp_h': '192.168.84.1', 'id.resp_p': 67, 'lease_time': datetime.timedelta(49710, 23000), 'mac': '00:20:18:eb:ca:54', 'trans_id': 495764278, 'ts': datetime.datetime(2012, 7, 20, 3, 14, 12, 219654), 'uid': 'CJsdG95nCNF1RXuN5'} ...
示例:bro log to pandas dataframe(在一行代码中)
frombat.log_to_dataframeimportLogToDataFrame...# Create a Pandas dataframe from a Bro logbro_df=LogToDataFrame('/path/to/dns.log')# Print out the head of the dataframeprint(bro_df.head())
output:所有bro日志数据都在p and as数据框中,并以适当的类型和时间戳作为索引
query id.orig_h id.orig_p id.resp_h \ ts 2013-09-15 17:44:27.631940 guyspy.com 192.168.33.10 1030 4.2.2.3 2013-09-15 17:44:27.696869 www.guyspy.com 192.168.33.10 1030 4.2.2.3 2013-09-15 17:44:28.060639 devrubn8mli40.cloudfront.net 192.168.33.10 1030 4.2.2.3 2013-09-15 17:44:28.141795 d31qbv1cthcecs.cloudfront.net 192.168.33.10 1030 4.2.2.3 2013-09-15 17:44:28.422704 crl.entrust.net 192.168.33.10 1030 4.2.2.3
更多示例
- 轻松地将任何bro日志摄取到python中(处理动态跟踪和日志旋转)
- bro登录到pandas dataframes和scikit learn
- 动态监视files.log并进行virustotal查询
- 动态监视http.log并显示“不常见”用户代理
- 对提取的文件运行yara签名
- 检查X509证书
- 异常检测
- 有关详细信息,请参见BAT Examples。
分析笔记本
bat支持对来自bro的实时数据进行处理、分析和机器学习。
- 兄弟们到scikit学习:Bro to Scikit
- bro到matplotlib:Bro to Plot
- 兄弟到拼花地板到火花:Bro->Parquet->Spark
- 兄弟到卡夫卡去点燃:Bro->Kafka->Spark
- 聚类:选择k(或不选择):Clustering K Hyperparameter
- 异常探测勘探:Anomaly Detection
- 危险域统计和部署:Risky Domains
安装
$ pip install bat