|
简单举个HTTP代理服务器工作的原理:IE发送一个包含目标URL的HTTP请求,代理服务器接收并析出HTTP报文里的目标URL和相关参数,然后把这个URL作为一次标准的HTTP连接过程与目标网站连接,获取目标网站返回的数据后缓冲到代理服务器的硬盘上,再把这些数据返回给客户端。
请求连接目标URL------> 连接目标服务器------->
客户端-------------------------代理服务器------------------------目标服务器
<-----返回数据----(缓冲) <-------------返回数据
其它协议的代理工作模式也都差不多,代理服务器充当了一个数据转向的工作站,相当于一个专门负责数据转发的“勤劳工人”。
然而,再忠诚的狗也会偷吃的,代理服务器有时候也并非完全透明的……
不知道大家在看我描述代理服务器原理的时候,有没有产生一个“似曾相识”的感觉?没错!代理服务器的工作模式,正是典型的“中间人攻击”模型!代理服务器在其中充当了一个“中间人”的角色,通讯双方计算机的数据都要通过它!因此,“代理服务器进行的‘中间人攻击’”逐步成为现实,相对于其他“中间人攻击”方法,这种利用代理服务器暗渡陈仓的做法简直天衣无缝,攻击者可以自己写一个带有数据记录功能的代理服务程序,放到任意一台稳定的肉鸡甚至直接在自己机器上,然后通过一些社会工程学手段让受害者使用这个做了手脚的“代理服务器”,便可守株待兔了。这种方法最让人不设防,因为它利用的是人们对代理的无条件信任和贪便宜的想法,使得一个又一个“兔子”自动撞了上来,在享受这顿似乎美味的“胡萝卜”的同时却不知道安全正在逐渐远离自己。(图6.真代理与假代理)
如果制作这个代理服务器的攻击者仅限于窥探数据,那么受害者的损失可能还能估量,但是如果攻击者在目标服务器返回的数据里加入一个带有木马程序的数据呢?例如在HTTP代理返回的HTML报文里加入一个MIME攻击漏洞代码,而受害者的计算机恰好没有打相应补丁,那么由此带来的损失就难以估量了,而且计算机技术不高的受害者也难以查出木马究竟是从哪里来的,因为很少有人怀疑代理服务器自身会有问题!
拒绝“中间人”——我们该怎么做
谈了这些MITM攻击,许多用户会觉得恐惧,其实,攻防为一家,有攻就有防,只要措施正确,MITM攻击是可以预防的。
对于DNS欺骗,我们要记得检查本机的HOSTS文件,以免被攻击者加了恶意站点进去;其次要确认自己使用的DNS服务器是ISP提供的,因为目前ISP服务器的安全工作还是做得比较好的,一般水平的攻击者无法成功进入;如果是依靠网关设备自带的DNS解析来连接Internet的,就要拜托管理员定期检查网关设备是否遭受入侵。
至于局域网内各种各样的会话劫持(局域网内的代理除外),因为它们都要结合嗅探以及欺骗技术在内的攻击手段,必须依靠ARP和MAC做基础,所以网管应该使用交换式网络(通过交换机传输)代替共享式网络(通过集线器传输),这可以降低被窃听的机率,当然这样并不能根除会话劫持,我们还必须使用静态ARP、捆绑MAC+IP等方法来限制欺骗,以及采用认证方式的连接等。
但是对于“代理中间人攻击”而言,以上方法就难以见效了,因为代理服务器本来就是一个“中间人”角色,攻击者不需要进行任何欺骗就能让受害者自己连接上来,而且代理也不涉及MAC等因素,所以一般的防范措施都不起作用。笔者认为,除非你是要干坏事,或者IP被屏蔽,或者天生对网络有着恐惧,否则还是不要整天找一堆代理来隐藏自己了,没必要的。常在河边走,即使遇上做了手脚的代理也难察觉。 上一页 [1] [2] [3] |