我们需要注销 webapps 吗?

信息安全 Web应用程序 网页浏览器 会话管理
2021-08-13 03:18:49

快速的谷歌搜索并没有显示注销 web 应用程序(网上银行、亚马逊、Facebook 等)是否重要,或者我是否可以安全地关闭标签或浏览器。我确定我在某些电视节目中听说最好退出...

如果我没有正确注销,我会面临哪些可能的威胁?

4个回答

这不是一个简单的、简单的问题。您需要考虑几个不同的方面,以及适用于受多个不同客户端影响的几种不同场景中的几种不同威胁的几种不同机制和对策。让我们一次检查这些。(最后会有一个 TL;DR ......)

  • 如果您使用的是公共计算机:注销。
    您保留帐户的任何服务都不应在可公开访问的计算机上保持登录状态。

  • 如果您使用的是Trivial 不敏感服务:保持登录状态。
    这仅适用于一次性的临时帐户,例如互联网广播,其中放弃访问权限只不过是一种麻烦。

  • 如果您使用公共 Wifi:退出。
    由于网络本质上是不可信的,因此存在一个明显的威胁:会话 cookie 盗窃。您的会话可能被劫持,并且有人(网络上的其他人或热点本身)窃取了您的会话 cookie。当然,如果是这种情况,您不会知道,但是您也可能无法真正注销(如果是恶意网络或 MITM,他们可以控制您的整个连接 - 他们可能会简单地删除您的注销请求)。

    也就是说,仅您的会话 cookie 的第 3 方盗窃是一种有效威胁(例如FireSheep),并且显式注销可防止无限制使用。(基本上损坏可能已经造成,但这会阻止它继续。)

    更好的是去一个受信任的网络,登录,然后明确地退出,以防MITM 阻止你的退出。更好的是在受信任的站点上更改您的密码……但最好永远不要从不受信任的网络访问重要的敏感站点。

  • 如果您使用全天应用程序:保持登录状态。
    对于您整天使用并希望快速/轻松访问的服务,例如 Facebook、电子邮件等 - 如果这是您在受信任网络上的私人(或工作)计算机,那么让您的浏览器保持登录状态是一个明智的权衡长期。

    威胁:恶意旁观者

    每当您离开时锁定您的计算机,即使是为了喝杯咖啡。或者锁上你的办公室,如果你有一扇其他人无法通过的实体门。(或者有一个家庭办公室,哇!)定期注销并重新登录。监控“你”发布的任何帖子。

    威胁:其他网站可以注册您已登录(例如,向您显示来自 Facebook 的重要“赞”图标)。这是适用的权衡的一部分,而更广泛的含义超出了此答案的范围。

  • 如果您正在使用任何使用 HTTP 基本身份验证的应用程序(例如许多路由器):注销并关闭所有浏览器窗口。这就是有趣的地方,这也适用于下一节。

    当您使用 Basic AuthN 登录 Web 应用程序时,浏览器会缓存您的密码,并在每次请求时发送它。浏览器的 BasicAuth 机制没有会话的概念。即使您反复注销,Web 应用程序(无论是服务器端还是客户端)都没有任何方式“终止”会话。清除这些缓存凭据的唯一方法是终止浏览器进程。

    但是您选择的浏览器对于“浏览器进程”的概念很重要。例如:

    • Firefox:无论您打开多少标签和窗口,始终是一个进程。

    • Chrome:每个选项卡都是一个单独的进程。但是,还有另一个“全局”父进程。所有选项卡进程都是该进程的子进程(在 Windows 中也称为“作业进程”),它们都通过父进程共享进程内存如果您打开一个新窗口,这也是如此。因此,虽然 Chrome 大量使用共享父进程的子进程使其选项卡特别活跃和健壮,但缺点是共享进程状态。换句话说,从 Chrome 中删除缓存的 BasicAuth 凭据的唯一方法是关闭所有 Chrome 窗口,每一个都关闭。单独关闭选项卡无济于事。

    • IE:选项卡/进程模型与 Chrome 相同(或相似)......但有一个例外。默认情况下,IE 也会在父进程的子进程中打开所有选项卡。(实际上,这不是 100% 准确的——一些选项卡与其他选项卡共享一个子进程——但这实际上并不重要)。但是,如果-NoFrameMerging在 IE 命令行中添加“”,则会创建一个全新的 IE 父进程。这里的不同之处在于,您可以创建一个新的父窗口来登录您的路由器,然后在完成后关闭窗口。这会清除您的 BasicAuth 缓存,而不会触及任何其他打开的 IE 窗口。(旁注:实际上也可以使用 Chrome 来执行此操作!不过,它涉及的内容要多得多,并且需要您在计算机上创建另一个浏览器配置文件。)

  • 如果您使用敏感应用程序,例如银行应用程序 - 始终明确退出并关闭所有浏览器窗口。这部分稍微复杂一些,但是上面已经介绍了很多依赖项。

    威胁:恶意旁观者如上所述,锁定您的计算机是有道理的,但没有必要从以前进行权衡。只需注销。

    会话超时:此外,大多数敏感(例如银行)应用程序应该实现某种形式的自动空闲超时,因此如果您下午外出,您的会话将在某个时候自动终止。这可能对这种威胁没有帮助,因为如果您走出 4 1/2 分钟以重新装满咖啡,恶意旁观者可能会跳到您的计算机上。

    威胁:会话 cookie 盗窃

    希望敏感的应用程序正在积极防止这种情况,例如 HTTPS、IDS、地理/欺诈检测等。也就是说,关闭“机会之窗”仍然是有意义的,以防万一——深度防御等等。

    会话超时:和以前一样,大多数敏感(例如银行)应用程序应该实现某种形式的自动空闲超时,并且也有助于最大限度地减少这种威胁。但是,即使您确实知道此应用程序确实正确实现了空闲超时,攻击者仍然有机会之窗。也就是说,在一个相对安全的应用程序中,这并不是什么大威胁。

    威胁:跨站请求伪造 (CSRF)

    这是你需要担心的。

    假设您已登录银行。在同一个窗口的不同选项卡中,您正在浏览一些可疑的网站。在浏览本网站时,它可能会偷偷测试各种知名银行网站,看看您是否碰巧登录其中之一。如果是,它会发起 CSRF 攻击(并非所有银行站点都容易受到此攻击,但仍有许多站点如此)。CSRF了!

    好的。现在说你比其他人聪明,不要在你的银行网站打开的同时浏览可疑网站。因此,在您完成银行业务后,请小心关闭标签。只有这样,您才会打开一个新选项卡以浏览到狡猾的网站。好吧,问题是,您仍然处于登录状态,并且会登录一段时间(通常大约 30 分钟,但可能少至 10 分钟或多至一个小时......)。CSRF了!.

    (请注意,这里的会话超时确实有帮助,通过缩短机会窗口,但仍有可能在窗口内发生这种情况)。

    唔。好吧,我知道了,让我们打开一个新的浏览器窗口吧!将其用于银行工作,然后再次关闭选项卡,然后再次为我喜欢玩的恶意软件站点打开一个新选项卡。糟糕,请参阅上面有关基本身份验证的部分 - 您选择的浏览器很重要。

    除非您使用“隐身/隐私浏览”或-NoFrameMergingIE 的“”标志,否则您仍然在同一个进程系列中,并且这个仍然打开的会话将在您的所有窗口之间共享,至少在服务器点击空闲超时。假设它还没有被增选。CSRF了!

    好吧,再来一张,就一张。我在某处读到了这篇过长的帖子,关于我总是需要从我的敏感应用程序中注销——所以我这样做了,然后才进入我的犯罪网站。不幸的是,应用程序“忘记”了正确的注销,它只是将我重定向出应用程序(或删除我的 cookie,或者......)而不是在服务器上使其无效...... CSRF'd!


那么,TL;DR?

  • 如果您关心您在本网站上的帐户:退出。
  • 如果您关心您的帐户,并且它使用基本身份验证:注销并关闭所有浏览器选项卡和窗口。
  • 如果您不关心您的帐户 - 您做什么都没关系,所以不要再问了:-)。

PS 我没有涉及诸如 Flash cookie、非 http 会话和集成 Windows 身份验证之类的内容。适可而止。

登录网络服务时,会在您的浏览器中植入 cookie。此 cookie 具有唯一的 ID 值,可在您使用网络服务时识别您的身份,并且可能在您稍后回来时识别您。如果不知何故*该标识符被盗,拥有它的人可能会像使用您一样使用您的帐户。

注销通常会使您和对手的此标识符无效。你们都不能使用标识符告诉网络服务“嗨,我是 Angelo Hannes ”。这有一个不幸的副作用,即迫使再次输入您的用户名和密码才能登录。

“那么,那我该怎么办?”,你问。这要看情况。一些敏感的 Web 服务(银行、政府网站、保险公司等)的会话时间很短,即在 10-15 分钟不使用服务后,它们会使标识符失效。其他敏感的 Web 服务(电子邮件收件箱,基本上控制了您几乎所有的其他帐户)并不会经常使会话失效,但它们会应用 IP 地址限制(如果您使用来自不同 IP 地址的相同会话,则会话是无效)。

TL;博士

  • 公用电脑,多疑的人,你认为你的会话被破坏了,或者你真的关心这个服务?注销

  • 私人电脑,你以为你的会话是安全的,你真的不在乎这个服务吗?保持登录状态是可以的


* 您的会话可能被服务中的已知问题(例如,不使用 HTTPS)或某些零日漏洞(例如服务中新发现的 XSS 攻击、浏览器中泄露 cookie 信息的新漏洞或某些零日漏洞)窃取。安装在您正在使用的计算机上的恶意软件会窃取会话信息(好吧,在这种情况下,它已经窃取了您的用户名和密码)。

我将尝试以与上面已经发布的相反的方式提供这个问题的答案。

与 Web 应用程序中的空闲会话相关的风险是什么?

  • 通过 XSS 窃取会话 Cookie(如果会话未绑定到 IP)
  • 跨站点请求伪造(在空闲但仍然经过身份验证的会话上)。
  • 中间人攻击(使用 SSLStrip 或由于混合 HTTPS 信息泄露而使用嗅探会话 cookie)
  • 打开终端(您在 < 在此处插入随机网络犯罪分子的姓名 > 旁边打开 PayPal 去午休,然后回来看到您的帐户是空的,因为您没有注销)

超时 如前所述,某些安全关键应用程序(如银行网站)的超时值较低,通常为 5 到 10 分钟。然而,这些应用程序通常也具有与会话相关的随机排序 CSRF 预防令牌和 IP。因此,即使您的 cookie 被泄露,如果安全性得到正确实施,远程攻击者也无能为力。

FaceBook 等其他网站通常不会将会话超时,以便更好地访问或使用。然而,它们确实支持登录通知,IP 绑定到 cookie。Gmail 或 DropBox 等应用程序支持两步 SMS 身份验证,以进一步提高安全性并使会话盗窃在来自新的不受信任的 PC 时无用。

因此,我唯一担心的是让会话保持打开状态:

  • 公共终端(无论如何您都应该使用隐私浏览。在 FF 上按 Ctrl+Shift+P)
  • 安全性差的网站(用户有责任保护其 cookie 的安全性,使其免受外部邪恶 cookie 怪物的侵害)。

不注销的最大威胁之一是使用公共计算机。根据浏览器配置,仅关闭浏览器可能不会结束会话。如果用户忘记注销他的操作系统用户(或者他甚至可能无法),那么其他人可以访问他的 webapp。当然,这种情况不太可能发生。但是网络应用程序通常可供大型用户组访问,并且一些用户可能使用公共计算机(大学、学校、图书馆)。