bro研究学习

来源:互联网 发布:浙师大网络继续教育 编辑:程序博客网 时间:2024/06/06 01:52

脚本学习

bro的默认脚本/usr/local/bro/share/bro每次更新版本都会被重新覆盖,除了/usr/local/bro/share/bro/site这个文件可以自定义修改,不会被覆盖
其中核心为base和policy
/usr/local/bro/share/bro/base处理收集网络活动基本的有用的状态或提供框架程序扩展功能脚本,程序会自动加载他,带来的代价不高
policy 代价较高,要因地适宜,是否使用要自己判断
PREFIX/share/bro/site/local.bro这个路径是我们写脚本的入口,从这里下手。

bro脚本定义

用&redef 定义变量和常量限定符:const ignored_types: set[Notice::Type] = {} &redef;
但其初始值可以修改通过redef在编译时修改
例如:
module Notice;
export {
    ...
    ## Ignored notice types.
    const ignored_types: set[Notice::Type] = {} &redef;
}

redef Notice::ignored_types += { SSL::Invalid_Server_Cert };

 
bro日志
dpd.log         协议在非标准端口上遇到的摘要
dns.log         所有DNS活动
ftp.log         一个日志的FTP会话级别的活动
files.log       摘要通过网络传输的文件。这些信息是聚合不同的协议,包括HTTP、FTP、SMTP
http.log        总结所有的HTTP请求的回复
known_certs.log  使用SSL证书
smtp.log        SMTP活动的一个总结
ssl.log         SSL会话的记录,包括所使用的证书
weird.log       一个意想不到的协议级活动的日志。只要bro协议分析遇到不符合期望的(如:一个RFC违规)日志会记录在这个文件中。注意,在实践中,现实世界的网络往往表现出大量的“杂质”,通常是不值得跟进。
 
bro命令行方式
bro -i en0 脚本.bro
从抓取的包 mypackets.trace进行分析
tcpdump -i en0 -s 0 -w mypackets.trace
bro -r mypackets.trace
bro -r mypackets.trace  脚本.bro
 
broctl方式
PREFIX/share/bro/site/local.bro这个路径是我们写脚本的入口
1、/usr/local/bro/share/bro/policy路径中新建自己的策略脚本路径:/usr/local/bro/share/bro/policy/mypolicy
2、将自己的脚本cp到该路径
3、在local.bro中添加脚本加载:@load mypolicy/file_extraction
4、在/usr/local/bro/logs/current路径查看脚本执行结果

bro就是一款IDS产品,用于旁路监听还是不错的,我们想做IPS还需要继续探索!
0 0
原创粉丝点击