Bro 监控 HTTP流量
@(教程)[Bro]
Bro 可以从网络上记录所有的HTTP流量到http.log文件,这个文件可以用于分析或审计
首先我们介绍http.log文件的结构
然后介绍如何通过bro分析和监视http流量
HTTP log 的结构
http.log 概括了所有bro监视到的http请求和回应,这是http.log的头几列
ts | uid | orig_h | orig_p | resp_h | resp_p |
---|---|---|---|---|---|
13116234.8 | HSH4uV8KVJq | 192.168.1.100 | 52303 | 192.150.187.43 | 80 |
每一个单行都是以时间戳开始 ,UID, 连接信息4元组(源地址和端口,目的地址和端口)
剩下的信息详细描述了发生的活动
method | host | uri | referrer | user_agent |
---|---|---|---|---|
GET | bro.org | - | <…>Chrome/12.0.742.122<…> |
网络管理员和安全工程师可以通过这个日志文件观察网络活动,分析异常情况
要想详细了解bro是如何分析Http流量的,可以参考scripts/base/protocols/http/main.bro
侦测代理服务器
代理服务器往往为没有访问权限的设备提供访问服务器的功能,,一些未认证的代理服务器应此被认为是存在威胁的,
代理服务器的流量应该是什么样的
通常情况下,客户端和代理服务器的通信应该是这样的:
Request : GET http://bro.org/ HTTP/1.1
Reply: HTTP/1.0 200 OK
这和客户端服务器直接通讯的不同点在于,直接通讯的请求不应该有”http”字串,所以可以通过这个判断这是个代理服务器
我们可以编写一个脚本处理http_reply 检测 GET http:// 请求
event http_reply(c:connection,version:string,code: count, reson:string)
{
if(/^[hH][tT][pP]:/ in c$heep$uri && c$http$status_cod