Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

如何检测并防止会话劫持

如何检测并防止会话劫持

Nov 19, 2024

想象一下:你把车钥匙留在公共场所,甚至在下车时又把钥匙掉了出去。有人捡起钥匙并把车开走。他们在学校附近超速行驶,并被摄像头拍到。随后,这辆车被用于抢劫。现在,你不仅丢了车,还被错误地牵连进了犯罪活动。

网络安全中的会话劫持在本质上类似:攻击者不会偷走你的车,而是接管你的浏览会话。尽管这听起来可能没那么“戏剧化”,但后果却是真实存在的。攻击者可能会盗用你的银行账户资金、访问你的个人数据,甚至以你的身份执行恶意行为。在一个网页浏览器已成为几乎每天用于访问云端的主要应用的时代,会话劫持确实是一个真实且严重的问题。就像车主必须对汽车被盗保持警惕一样,互联网用户也需要认真对待网络安全。

本文将全面介绍会话劫持(session hijacking)以及为何如此多人容易遭受这类攻击。我们将涵盖会话劫持的定义,探讨用于窃取 Web 会话的各种方法,分析一个会话劫持示例,最重要的是,讨论防范策略。

什么是会话劫持(Session Hijacking)?

在网络安全中,什么是会话劫持(session hijacking)?当攻击者接管用户与 Web 应用之间经过身份验证的会话时,就会发生会话劫持。攻击者本质上会窃取用于token or cookie 的会话标识信息,使服务器能够识别该用户,从而冒充合法用户。一旦攻击者获取到这个 token,他们就可能访问用户的敏感数据,或借助受害者身份执行恶意操作。由于多种原因,会话劫持是一项真正令人担忧的问题:

  • 可能导致窃取个人信息、财务数据或其他机密数据。
  • 可能会损害被冒充用户的声誉。
  • 用户往往很难意识到自己的会话(session)已被劫持。
  • 可能导致违反数据保护法规,例如 GDPRHIPAA

会话(session)劫持并非新的安全现象,过去也曾以其他名称被人所熟知,例如“cookie hijacking(Cookie 劫持)”或 TCP 会话劫持(Session Hijacking)。这是一个较早的术语,强调对 TCP 会话的劫持。在某些情况下,会话劫持也可以被视为一种凭据窃取(credential theft)的形式。

会话劫持的另一种形式称为“session side jacking”。虽然每种攻击的目标相同,但它们在技术和方法上有所不同:

  1. 会话劫持 通常涉及攻击者通过窃取或猜测会话(session)令牌(tokens)来控制用户的活跃会话。攻击者可以利用这些令牌接管会话,往往在用户毫不知情的情况下进行。这种方法并不总是需要访问受害者的 网络,而是聚焦于捕获或操纵会话令牌。
  2. Session Side-Jacking 特别是指通过不安全的网络拦截会话 cookie 或令牌,这通常是通过在公共 Wi-Fi 或其他未加密的通道上进行数据包嗅探实现的。在这里,攻击者会在传输过程中(尤其是 HTTP cookie)捕获数据,以便在该会话中冒充用户。Side-jacking 利用的是不安全的连接;而劫持(hijacking)则可能仅通过令牌操纵就能发生。

会话劫持(Session Hijacking)是如何运作的?

一旦用户登录,就会生成一个会话密钥。该密钥作为用户会话的唯一标识符。这样服务器就能识别并维持用户的已认证状态。会话密钥充当安全令牌,在会话期间只要客户端被请求,就会发送该令牌。破坏会话通常是攻击者的首要目标。虽然攻击方式可能有所不同,但典型的劫持会话遵循如下基本流程:

  1. 攻击者首先选择目标受害者,并寻找其会话管理中的薄弱点,例如可预测的会话 ID,或会话令牌的不安全传输。
  2. 监控过程开始,其中可能包括数据包嗅探工具,用于拦截网络流量和请求。
  3. 攻击者会通过某种技术手段(例如 Cross-site Scripting (XSS) 攻击)来拦截会话,从而窃取 cookies。
  4. 一旦攻击者获取了会话 ID,并且合法用户已经向服务完成身份验证,攻击者就可以通过将窃取到的会话 ID 应用到自己的浏览器中来冒充该用户。
  5. 接下来,真正的目标开始了:攻击者访问受害者的账户,以查看个人信息、执行交易、窃取凭据,甚至更改账户设置。攻击者还可能使用浏览器扩展或脚本来保持会话处于激活状态,从而避免自动注销或超时。

现在我们来查看威胁行为者在您浏览网页时常用的一些技术,以尝试劫持会话。

  • 会话嗅探(Session Sniffing): 攻击者会拦截网络流量以捕获会话令牌。攻击者使用数据包嗅探器来监控在网络上传输的数据,尤其是在不安全的 Wi-Fi 网络中。他们会在拦截到的流量里寻找会话 cookies 或令牌,然后利用这些信息冒充合法用户。此技术是会话令牌劫持的一种常见方式,因为它使攻击者能够通过利用被拦截的会话令牌获得未授权访问。
  • Cross-site Scripting (XSS): Open Web Application Security Project (OWASP) 将 Cross-Site Scripting (XSS) 列为最主要的 Web 应用安全漏洞之一。在这种攻击中,攻击者会将恶意脚本注入到其他用户正在查看的网页中。页面会在加载时携带被注入的恶意代码,并且由于该代码看起来来自受信任的服务器,因此在用户看来是合法的。一旦该代码被执行,攻击者就能够捕获用户的会话 ID。
  • Man-in-the-Browser Attack: 与使用某种恶意(伪造)设备来拦截网络流量的中间人(man-in-the-middle)攻击不同,这种恶意软件会直接在浏览器内运行。在这种情况下,攻击会将 malware 感染到用户的计算机上。安装完成后,攻击者就可以在用户下一次登录该计算机时充当中间人(man in the middle)。当用户访问诸如银行或电子商务网站这类敏感网站时,恶意软件可以在用户不知情的情况下篡改交易、窃取登录凭据,或将资金重定向。
  • Predictable Session Token IDs: 当 Web 应用以攻击者容易猜测的方式生成会话 ID 时,就可能发生这类攻击。可能会使用按顺序编号的系统或时间戳。如果攻击者能够预测下一个会话 ID,则可能劫持该会话,并利用它来获取对用户数据或权限的未授权访问。

会话劫持攻击的类型

实施会话劫持攻击有多种方式。以下是当今攻击者常用的一些典型方法。

  • 主动劫持 vs. 被动劫持:会话劫持可以分为两种主要类型:主动劫持和被动劫持。主动劫持指攻击者拦截连接并接管会话,通常会强行断开合法用户。相对而言,被动劫持是一种更隐蔽的方法:攻击者在不干扰会话的情况下窃听会话内容,主要用于收集信息。主动劫持可实现即时控制,而被动劫持则允许进行更长时间、且不易被发现的监视。
  • 会话嗅探: 攻击者拦截网络流量以获取会话令牌。在许多情况下,他们会使用与网络支持技术人员分析网络数据包时相同的工具,例如 Wireshark。该方法可能会在一定程度上危及用户账户以及 数据安全,尤其是在缺乏安全保障的网络中。
  • 跨站脚本攻击(XSS):XSS 是通过向会被毫不知情的用户访问的网页中注入恶意脚本来实施的。随后,这些脚本会被用来窃取会话 Cookie 并将其发送给攻击者。
  • 会话固定:在此攻击场景中,攻击者会在用户登录之前为其建立一个已知的会话 ID,通常是通过欺骗用户点击包含预设会话标识符的链接来实现的。用户一旦完成身份验证,就会在不知情的情况下启用该被篡改的会话,从而使未经授权的攻击者能够访问其账户。
  • 中间人攻击(Man-in-the-Middle,MITM)vs. 浏览器中间人攻击(Man-in-the-Browser,MITB): 尽管这两种攻击在概念上相似,但它们是不同的攻击技术。MITM 攻击会拦截双方之间的通信,而 MITB 攻击则使用安装在用户设备上的恶意软件来操纵浏览器会话。

让我们花一点时间区分会话劫持(session hijacking)和会话欺骗(session spoofing)。顾名思义,会话劫持是指攻击者通过拦截或窃取会话令牌(session token)来接管一个正在进行的、已认证的会话。这样一来,他们就可以直接访问用户的账户或数据。会话欺骗则是指创建一个假会话,使其对服务器看起来是合法的。本质上,攻击者试图欺骗系统,让系统将他们的会话误认为是有效的已认证用户。

会话劫持的真实案例

以下是一些较为知名的会话劫持事件。

  • Zoom-bombing:该攻击在 Covid-19 大流行初期十分常见,当时各组织为了分散的员工快速部署了 Zoom 会议。攻击者会通过加入那些在未采取足够安全措施的情况下公开分享的未受保护会议,来劫持或干扰正在进行的 Zoom 会话。攻击者往往会展示冒犯性或破坏性的内容,导致会议中断和尴尬局面。最坏情况下,可能发生 data breach
  • Mozilla Firefox “Firesheep” 扩展程序: Firesheep 是一款于 2010 年发布的 Firefox 扩展程序,用于演示在缺乏安全保障的 Wi‑Fi 网络上劫持会话是多么容易。该扩展程序会扫描开放的 Wi‑Fi 网络,查找未加密的 HTTP 会话,并捕获会话 Cookie。一旦捕获成功,攻击者就可以冒充毫不知情的受害者登录到网站。这也是业界推动采用强制加密的 HTTPS,以获得更好安全性的原因之一。
  • GitLab 和 Slack 漏洞: GitLab 遭遇了一项会话管理漏洞,导致用户会话令牌暴露,从而使攻击者能够冒充用户并访问敏感仓库。Slack 的漏洞则允许攻击者通过钓鱼和社会工程策略进行会话劫持。此举使攻击者获得对消息、文件以及敏感组织数据的未授权访问权限。这些案例凸显了协作平台中健全的会话管理至关重要。

会话劫持的风险与后果

就像开头用“汽车劫持”作比喻时提到的那样,其中包含切实可见的风险一样,数字领域中的会话劫持也会给用户带来严重后果。包括:

  • 身份盗用的可能性:攻击者可以冒充用户,并可能获取对个人账户和信息的访问权限。
  • 金融盗窃是常见目标,因为攻击者会尝试使用已捕获的会话发起未授权交易或访问敏感的金融数据。
  • 数据泄露 是组织非常关注的问题,因为攻击者可能会获取敏感的客户数据或专有数据。
  • 拒绝服务(DoS) 攻击同样可能发生,因为可以使用多个已捕获的会话来发起会淹没系统并造成服务中断的攻击。

其他后果还可能包括客户信任度的削弱、声誉受损以及业务运营中断。尽管其中一些现象不太容易被察觉,但它们会随着时间累积并对公司产生负面影响,从而影响市场份额和利润。事故还可能通过间接方式对业务运营造成重大干扰,因为资源会被转用于应对泄露事件并实施更强的安全措施。

如何检测会话劫持

就像攻击者可以采用多种攻击方法来劫持浏览器会话一样,你也可以使用多种工具来保护组织免受此类攻击。

  • 一个良好的起点是入侵检测系统(Intrusion Detection System,IDS)。IDS 的设计目的是监控网络和系统活动,以发现恶意行为或策略违规。它们可以检测并识别模式,以及与已知会话劫持战术相关的特征(signature)。基于主机的 IDS 能够检测系统行为中的异常,这些异常可能表明会话已被攻破,例如出现意外的权限提升或不寻常的文件访问模式。
  • 异常检测工具(Anomaly Detection Tools)采用机器学习和统计分析来建立网络流量的正常模式。只要某个会话偏离这些常态,IT 和安全人员就可以收到告警。这些工具超越了典型的 IDS,能够识别更微妙、基于行为的指示器,可能会绕过传统方法。在涉及会话劫持攻击时,你需要监控与登录模式相关的任何异常账户活动。例如,如果一个账户在几分钟内被从多个位置访问,可能表明发生了会话接管。在这种情况下,位置是通过 IP 地址来标识的。

如何防止会话劫持

让组织免受攻击并保持安全的关键是采用多层次的安全策略。你还不应仅仅依赖工具本身,而应融合多种措施,以阻止会话劫持和会话侧攻击(session side attacks)。

  • 在整个在线环境中到处使用 HTTPS。强调在所有网站和 Web 应用程序上使用 SSL/TLS 加密的重要性。
  • 为防止会话固定(session fixation),请确保在每次登录后重新生成所有会话 ID。这样可以使任何可能已被攻击者泄露或预先设置的现有会话 ID 失效。
  • 多因素认证 在当今是绝对必需的。使用 MFA 后,即使攻击者设法获取了有效的会话 ID,他们仍需要额外的身份验证因素才能获得访问权限。MFA 也用于对抗暴力破解攻击。
  • 消息灵通的用户能够形成针对这类威胁的强有力的第一道防线。为用户持续开展网络安全培训,可以让你的团队学会如何识别网络钓鱼诈骗,并在其被常用于实施会话劫持攻击的情况下加以避免。它们充当 Web 应用程序与互联网之间的屏障,通过分析和过滤 HTTP/HTTPS 流量来检测并阻止恶意活动。
  • 限制会话时长听起来可能很简单,但在缩小攻击者的可趁之机窗口方面却可能非常有效。思路很直接:一旦在一段时间内没有活动,就自动终止会话,从而显著缩短攻击者利用被劫持会话的时间范围。

会话劫持攻击后的响应与恢复

认为贵组织永远不会遭受攻击是不现实的。以下是针对会话劫持攻击应采取的推荐行动方案。

  1. 终止所有处于活动状态的会话。立即终止系统中所有活动会话,确保任何可能已被破坏的会话都会立刻失效。随着攻击者被劫持的会话被终止,他们将无法继续运作。
  2. 重置会话令牌。实施全系统范围的会话令牌重置,要求所有用户重新进行身份验证。该流程会创建新的、安全的会话标识符,从而保护未来的会话。
  3. 提示用户更改密码。实施密码更改,确保任何已被泄露的密码信息都不能被攻击者用于获取未来的未授权访问。
  4. 开展彻底的调查。任何 cyberattack 都应被视为一次学习机会。首要的两个目标是查明会话劫持事件的根本原因以及其全部影响范围。让内部或外部安全团队分析所有相关日志、网络流量和系统配置,以了解攻击是如何发生的。随后,可将调查结果用于加强您的安全工作,从而阻止未来类似攻击。
  5. 更新安全协议并修补漏洞。通过复盘调查结果,您的团队将知道下一步该采取哪些措施。这些措施很可能包括更新安全协议,以解决攻击者所利用的任何薄弱环节。也可能包括实施更强的加密、加强网络分段,以及对发现的漏洞进行修补。

精心挑选的相关内容:

保障会话安全的长期策略

虽然您必须做好应对正在进行的网络攻击的准备,但仅依赖被动的“打地鼠(whack-a-mole)”式做法,在长期来看是不可持续的。建立长期战略对于确保企业安全至关重要。任何完善的网络安全策略都应包含以下实践。

  • 定期安全审计: 进行频繁的安全评估,以识别系统中的漏洞。这些审计应结合渗透测试和对内部及第三方组件的风险评估,确保已落实健全的安全措施。
  • 持续监控: 黑客不会遵循固定的时间安排。你永远无法预知他们何时会选择发动攻击,因此对 IT 环境进行 24/7 的持续监控至关重要。监控包括跟踪用户行为、分析流量模式,以及采用先进的威胁检测系统以尽早识别潜在的入侵事件。
  • 培训与安全意识提升计划: 由于你的用户站在一线,因此请确保他们具备识别其运行环境中可疑行为与活动所需的知识。用户往往是任何组织中最薄弱的一环,这也是攻击者为何会通过网络钓鱼活动和会话劫持攻击对他们进行重点打击。定期开展安全意识培训,从长远来看将带来可观的回报。
  • 与网络安全专家合作: 除非你是一家网络安全公司,否则你的组织不可能被期待对每一种网络攻击都具备专家水平。务必引入外部网络安全专业人员进行合作,以获得关于最佳实践和新兴威胁的见解。

Netwrix 能为你提供什么帮助

Netwrix 提供一套解决方案,旨在增强网络安全防御能力,应对诸如会话劫持这类复杂威胁。

  1. Netwrix Access Analyzer 通过识别环境中的高风险条件来最大限度地降低漏洞。它会主动检测并修复安全缺口,减少攻击面,从而让敏感数据免受未授权访问和劫持尝试的侵害。
  2. Netwrix Endpoint Protector 可防止通过 USB 设备、电子邮件、浏览器及其他渠道进行的数据外传尝试。这种分层保护有助于阻止在会话劫持成功后可能发生的未授权数据传输。
  3. Netwrix Threat Prevention 可对可疑活动提供实时告警,例如未授权认证以及可能表明正在进行的攻击的系统变更。这样安全团队就能在恶意行为升级之前迅速调查并予以阻止。
  4. Netwrix Password Secure 强制执行严格的 password policies ,以保障用户账户安全——这是阻止劫持尝试的关键步骤。
  5. Netwrix Ransomware Protection 该解决方案可在早期检测并中断勒索软件活动,阻止其破坏或锁定您的数据——对于防范可能在会话劫持之后发生的攻击至关重要。

这些工具合起来,支持主动式、统一化的防御,以抵御诸如会话劫持之类的威胁。

结论

会话劫持至今仍是一个重要的威胁。与任何网络威胁一样,它都涉及对漏洞的利用。要有效应对会话劫持,组织必须采取多层面的策略:不仅要包含有效的响应与补救措施,还要制定长期规划,以便在不断演变的威胁环境中抢先一步。实施安全协议、采用会话管理实践并使用强加密,是很好的起点。不过,这些措施还需要进一步通过其他手段来支撑,其中包括启用 MFA、持续监控、定期安全审计、用户安全意识培训,以及对漏洞进行及时修补。归根结底,主动式的安全策略是您抵御会话劫持及其他类型攻击的最佳防线。

常见问题

我如何判断自己的会话是否已被劫持?

尽管可能没有明显的线索,主动的会话劫持攻击也并不总是容易察觉,但仍有一些值得留意的迹象。攻击的可能指标包括意外的登出或会话过期、异常的账户活动或你从未发起过的账户变更。你还可能会收到账户服务商关于可疑活动的警报,或收到来自陌生地点或 IP 地址的登录通知。即使只是会话浏览设备上的性能下降,也可能是有效的指示信号。

现实生活中的会话劫持是什么样的例子?

想象一下:当你在咖啡店连接到公共 Wi‑Fi 网络时,正在登录你的网上银行账户。如果该网络不安全,附近的攻击者可能会拦截你设备与银行服务器之间交换的数据包。该攻击者可能会获取 session token ——这是银行在你登录期间为你分配的唯一标识符——并利用它冒充你。

会话劫持和网络钓鱼是同一回事吗?

尽管两者并不相同,钓鱼攻击经常与会话劫持攻击一起使用。钓鱼是一种社会工程学攻击,攻击者试图诱骗用户泄露诸如登录凭据或信用卡信息等敏感信息。它通常通过发送伪造的电子邮件或看起来合法的假网站来欺骗用户。会话劫持是指接管用户与服务器之间正在进行的、已完成认证的会话。攻击者会拦截通信并使用合法用户的会话令牌,从而获得对用户账户或数据的未授权访问。

用于检测会话劫持的最佳工具有哪些?

仅靠工具无法保证完全的安全性,但选择得当、经验证的安全解决方案组合可以显著增强你们组织检测并阻止会话劫持尝试的能力。你的工具集应从基础开始,例如入侵检测系统(Intrusion Detection System,IDS)或入侵防护系统(Intrusion Protection System,IPS)、Web 应用防火墙以及数据包嗅探器。网络监控工具 以及基于情报的日志分析工具,可以帮助识别异常模式、异常情况或可疑行为,从而表明可能正在发生攻击。访问渗透测试工具也可能让你深入了解攻击者可能如何对你的用户群发起会话劫持攻击。

抵御会话劫持的最佳防御措施是什么?

实施principle of least privilege 是抵御会话劫持以及其他网络威胁的最佳防御措施之一,因为它会限制攻击者的操作能力——即使账户或系统已被攻破也同样如此。将定期的安全审计、持续的漏洞扫描以及增强的 24/7 监控纳入其中的主动策略,可以及时提醒你的团队可能正在发生的攻击,从而实现立即干预。及时修补(打补丁)也是任何数字化组织都应严格执行的另一项措施。

分享到

了解更多

关于作者

Dirk schrader

Dirk Schrader

安全研究高级副总裁(VP)

Dirk Schrader 是 Netwrix 的常驻 CISO(EMEA)以及安全研究高级副总裁(VP)。他拥有 CISSP(ISC²)和 CISM(ISACA)等资质,是一位在 IT 安全领域拥有 25 年经验的老兵。Dirk 致力于以现代化的方式应对网络威胁,从而推动网络韧性的发展。Dirk 曾参与全球范围内的网络安全项目:职业初期从技术与支持岗位做起,随后在大型跨国公司和小型初创企业中分别担任销售、市场与产品管理等职务。他已发表大量文章,强调为实现网络韧性,需要重视变更管理与漏洞管理。