构建上网行为分析系统
2018-11-09
基本思路
Fiddler是即时抓包分析工具,对于测试WEB程序很有意义。Fiddler的魅力之处是提供了功能强大的基于JScript .NET事件脚本子系统,方便用户二次开发。
1.文本文件记录法
将网络访问信息以文本文件形式及时存储到硬盘。网上有现成的代码记录请求信息:
由于上述方法存储的文本文件,不便于检索操作,更有甚者,如果不对所有访问记录进行过滤,则由于文件的打开和关闭过于频繁而来不及响应而报错。
2.数据库记录法
最简单的数据库是ACCESS,但是“.”、“?”等特殊字符无法存取。可考虑较为通用的SQLServer数据库,可以存取URL所包含的特殊字符。
环境配置
1.网络结构
Fiddler采用代理访问的工作模式,转发网络数据包,如果需采集局域网内的计算机通过出口访问数据,需将主机配置成代理上网服务器。其它配置方式参考《Fiddler调试权威指南+PDF电子书》4.4配置客户端部分。
2.数据库
在主机上配置SQL Server数据库服务器。如:设置SQL验证访问,用 户 名 为“fidd”,密码 为“fiddaccess”。 创建 数 据 库 capture,表recorder, 字 段 ttime,varchar(50)记录时间;字段 uurl,varchar(8000) 记录 Url信 息;字 段hhost,varchar(200)记录被访问主 机 名 ;字 段clientip,varchar(20)记录请求访问主机IP地址信息;字段rrefere,varchar(2000) 记录自何页面连接的主机名。
3.Fiddler
安 装 Fiddler,打开Customize Rules.js就 可写入脚本。如果菜单下没有Rules->Customize Ruless,根据提示下载Fiddler ScriptEditor后,可 打开Customize Rules.js文件。
主要代码
Customize Rules.js中包含OnBeforeRequest(oSession:Session) 和OnBeforeResponse(oSessio n: Session)两大功能函数。本文目标是采集请求访问的网络资源,故只需在OnBeforeRequest(oSession:Session)函数的最后部分写入代码即可,代码如下:
保存脚本文件后,运行Filddler。所有通过代理的访问请求均被捕捉,并且执行上述代码将需要的信息及时保存到recorder表中。
总结
1.数据挖掘
使用数据库Express版,连接字符串写成Server=(local)\SQLExpress,若是服务版直接写计算机名或IP地址。对数据表Recorder中的记录进行汇总分析可得到各Http请求访问的相关信息,可构成简单、实用的网络监控、审计、分析研判系统。
2.功能扩展
借助Customize Rules.js可扩展很多功能。比如只要添加2行代码可实现防火墙功能:
if (oSession.fullUrl.Contains("**.net"))//需阻止访问的网站
oSession.oRequest.pipeClient .EndWithRST()。