一个仍在开发中的监控浏览器扩展,用于检测那些行为不端的页面。
注意:这是项目的代码仓库,如果你想获取打包好的扩展:
Firefox:https://addons.mozilla.org/en-US/firefox/addon/behave/
Chrome:https://chrome.google.com/webstore/detail/mppjbkhgconmemoeagfbgilblohhcica/
Behave! 会监控并警告,如果某个网页执行了以下任何操作:
下面是 Behave! 在日志中指向 at.tack.er 页面的截图:

Behave! 会在浏览器会话期间端口或协议的使用数量超过特定阈值时向用户发出警报。
默认阈值为20,但用户可以通过偏好设置进行更改。
由于 Behave 不会主动发起任何DNS请求,
Behave! 会在某个网页尝试直接访问以下任意地址块中的IP时发出警报:
如果恶意脚本指示浏览器连接到一个FQDN,而该FQDN的权威DNS解析结果指向私有IP,Behave! 会检查解析后的IP是否为私有地址。
但请注意,只有端口开放时才能获取到已解析主机名的IP信息。
由于 Behave! 为了避免TOCTOU问题,不会主动发起外部DNS请求,如果端口关闭,则无法获取IP解析信息,因此不会触发警报。
Behave! 不会直接发起DNS请求,IP信息来源于拦截到的响应。
这意味着它不会暴露于任何TOCTOU攻击,例如DNS重绑定。
Behave! 会跟踪某个主机名是否被解析为多个IP,如果出现公有IP与私有IP混合的情况,则会发出警报。
Behave! 作为打包好的扩展提供,位于:
Firefox扩展:https://addons.mozilla.org/en-US/firefox/addon/behave/
Chrome扩展:https://chrome.google.com/webstore/detail/mppjbkhgconmemoeagfbgilblohhcica/
不过,如果你想对代码进行一些探索,可以:
看看当你访问以下任意链接时会发生什么:
Singularity of Origin DNS重绑定攻击: http://rebind.it:8080/manager.html
JavaScript端口扫描: http://jsscan.sourceforge.net/jsscan2.html
请注意: 目前,如果DNS重绑定攻击针对的是非私有IP(例如:https://www.alf.nu/BrowserCacheAndDnsRebinding),则不会触发警报。
非常欢迎您的帮助! 欢迎创建Issue或fork项目并发起Pull Request。