黑客可以用Firesheep窃听没有加密的无线网络上的数据,并可以窃取那些登录到流行站点上的其它用户的会话。黑客用这个工具就可以访问用户访问流行网站时所使用的账户,如大名鼎鼎的Facebook账户等。其实,该工具就是利用了一个业内人士都熟知的一个漏洞:会话支持。因为到目前为止,还没有完全解决这个漏洞。
在本文中,笔者将探讨Web认证背后的机制,因为正是这种认证使得会话劫持可以成功。还要讨论Firesheep如何利用这些漏洞,最后文章还要讨论网站管理员、网站开发人员、终端用户可以采取的保护措施。
WEB认证基础知识
1、用户访问需要认证的网站。
2、用户提供一个用户名和口令进行验证。
3、网站验证用户口令,如果通过,则准许用户登录进入,并将一个cookie提供给用户的浏览器。此cookie用于唯一的标识会话。
4、用户继续访问网站。在用户请求一个新网页时,浏览器都会发送cookie和用户请求,提醒Web服务器:该请求是前面的认证连接的一部分。
在多数情况下,Web开发人员和网站管理员都会使用HTTPS加密来保护这个过程的第二步,他们都知道如果其它人员能够访问其他用户的用户名和口令,就可以轻易地获得访问权。在许多情况下,他们会转而使用一个不加密的HTTP连接,以便于实现Web通信的其余部分,其中也包括cookie的交换。
会话劫持攻击和Firesheep
下面谈谈会话劫持攻击。如果窃听者成功地截获了发生在第四步的任何通信,他就可以轻易地访问cookie。一旦知道了cookie的内容,窃听者就可以伪造一个HTTP请求,使用cookie访问用户的账户。
许多大名鼎鼎的网站(包括Facebook等社交网站)都易于受到这种攻击的危害。但网络银行及一些电子商务站点会加密其所有的通信。劫持社交网络站点的会话对一般人而言根本没有什么实际意义。
希望窃取他人会话的家伙首先都需要连接到一个开放的无线网络,再启动Firesheep,然后等着有漏洞的用户出现在屏幕上。如果出现了一个有吸引力的目标,攻击只需单击他的名字,就可以完全访问该用户的会话。
防御Firesheep等会话劫持攻击
防御Firesheep及其它会话劫持攻击的最佳防线在于WEB开发人员和WEB服务器的管理人员。如果你开发的WEB应用程序依赖于cookie来实现会话管理,就要确保以一种安全方式来管理会话。下面介绍几个方法:
1、仅通过SSL来发送cookie。如果你要求浏览器在传输之前加密cookie,在传输中就不易遭受攻击。
2、要限制能够利用cookie的应用程序。你还应当设置cookie,要尽可能地限制其使用。至少,要将cookie设置为仅对可信域中的系统可用。理想情况下,还应仅允许可信域中的特定服务器访问这些cookie,还有设置路径(path)选项,仅准许特定的应用程序可以访问cookie。
3、限制cookies仅能使用HTTPS。你还可以使用httponly标记,要求浏览器仅能通过HTTP/HTTPS直接将cookie提交给服务器。这会防止攻击者通过JavaScript攻击访问cookie。
如果你是一位终端用户,你可能无法控制cookies的配置方法,但你可选择下面的一些措施:
1、限制不提供HTTPS连接的网站的使用。
2、通过VPN建立连接。如果你在一个有风险的地方上网,并且担心窃听者会执行会话劫持攻击,可以试着连接到工作场所的VPN(虚拟私有网络),并使用此连接来加密你的网络通信。
结束语
Firesheep所代表的绝不仅仅是一种软件威胁。它以一种WEB应用程序执行会话管理的方式突显了一种底层漏洞。虽然有一些临时的解决方案可以帮助企业限制这种工具所造成的短期损害,但WEB应用程序社团应当紧密协作,并开发可以解决会话劫持攻击的长期解决方案。否则,在下一个黑客工具出现之后,我们依旧容易遭受攻击。