您是否知道,即使黑客没有盗取您的账户信息,他们也能以您的名义进行银行转账或网上购物?
我们通常会将 cookie 与追踪行为和烦人的在线广告联系起来,但实际上,它们还存储着我们的搜索记录,使得我们无需每次都输入用户名和密码就能便捷地访问网站。
然而,一旦有人拦截了您的 cookie,就会引发一场灾难性的网络攻击,也就是所谓的会话劫持。 这会导致您的敏感数据落入攻击者之手,并在您尚未察觉的情况下造成严重损害。
让我们深入了解会话劫持的本质,并学习如何有效防范它!
什么是会话劫持?
在会话劫持中,攻击者会拦截并接管用户与主机之间已建立的会话,比如 Web 服务器、Telnet 会话或任何基于 TCP 的连接。 当您登录某个网站或应用程序(例如社交媒体平台)时,会话便开始了。
会话会持续到您退出账户,在这期间,您可以查看个人资料,参与话题讨论。那么,Web 服务器是如何区分每个请求是否都来自您的呢?
这就是 cookie 的作用所在。在您登录之后,您会将凭证提交给 Web 服务器,服务器会验证您的身份,并为您分配一个会话 ID,这个会话 ID 将以 cookie 的形式附加在您身上。 这也是为什么您在浏览他人主页时不会被要求重复登录,以及为什么您刷新页面后,在线商店的购物车内容依然存在的原因。
但是,如果攻击者利用特殊的会话管理技术或盗取您的 cookie,他们就可以劫持您的会话。 他们可以冒充您,欺骗 Web 服务器,使其误认为请求来自授权用户。
会话劫持在 2000 年代初期开始流行,但时至今日,它仍然是黑客最常用的攻击手段之一。
最近的案例包括 Lapsus$ 组织,他们因使用 InfoStealer 恶意软件劫持会话而上了美国联邦调查局的通缉名单。 还有一个名为 GenesisStore 的邀请制商店,该商店由一个同名组织运营,他们出售被盗的 cookie 数据,列表包含超过 40 万个机器人账号。
会话捕获类型
根据攻击者的目的,会话劫持可以分为两大类。
主动攻击: 在主动攻击中,攻击者会直接接管您的会话,从而切断合法用户与资源的连接。 根据会话的性质,黑客可以进行在线购物、更改密码甚至恢复账户。 主动攻击的常见例子包括暴力破解、跨站脚本攻击(XSS)和分布式拒绝服务攻击(DDoS)。
资料来源:OSWAP
被动攻击: 在被动攻击中,攻击者不会接管或更改会话,而是悄悄地监视您的设备和服务器之间的数据流量,收集所有敏感信息。 通常,IP 欺骗和恶意软件注入等手段会被用来进行被动攻击。
资料来源:OSWAP
会话劫持是如何运作的?
HTTP 是一种无状态协议,这意味着服务器不会保留关于客户端操作的记忆。 每一个新的 HTTP 请求都会被视为独立事件,也就是说,服务器在为客户端提供页面的同时不会记住客户端之前的请求。
然而,当我们浏览网页时,我们能意识到应用程序是能知道客户端身份的(甚至太清楚了!)。正是由于服务器的这种“记忆”能力,现代网站、在线银行、网络邮箱服务等才得以保留用户数据。
为了实现这一点,一个附件诞生了,它使得像 HTTP 这样无状态的协议变得有状态:这就是 cookie。
有状态会话
当您登录后,使用有状态会话的 Web 应用程序会发送一个会话 cookie。 这意味着他们依赖这个 cookie 来追踪用户。 cookie 中保存着一个独特的代码,用于识别客户端,例如:
会话ID=ACF3D35F216AAEFC
任何拥有以上唯一会话 ID 或代码的人都会被服务器视为已验证的客户端。 如果攻击者能获取到这个标识符(如下图所示),他们就可以通过嗅探合法会话,甚至完全接管会话,从而利用最初为受害者验证的会话。这个标识符通常嵌入在 URL 中,任何表单的隐藏字段中,或者 cookie 中。
OSWAP
无状态会话
随着网络的发展,出现了一些无需使用会话 cookie 就能管理服务器“记忆”的解决方案。 在前后端分离良好且仅通过 API 进行通信的 Web 应用程序中,最好的解决方案可能是 JWT (JSON Web Token),一种允许前端使用后端提供的 API 的签名令牌。
通常,JWT 会被保存在浏览器的 sessionStorage 中,这是一个客户端保持活动状态的内存区域,直到标签页关闭。因此,打开新的标签页会创建一个新的会话(这与使用 cookie 的情况相反)。
窃取客户端的身份令牌等同于窃取用户的会话,从而导致会话劫持攻击。那么,如何窃取这个令牌呢?
目前,黑客最常用的方法包括:
#1。 会话侧录
此方法利用不安全的网络来获取您的会话 ID。 攻击者使用嗅探软件(一种特殊的软件)来监听网络流量,目标通常是公共 Wi-Fi 或没有 SSL 证书的网站,这些网站的安全性较差。
#2。 会话固定
受害者使用由攻击者创建的会话 ID。 这可以通过网络钓鱼攻击(通过恶意链接)来“固定”您的会话 ID。
#3。 暴力破解
这是最耗时且效率较低的方法。 在这种攻击中,黑客不会窃取您的 cookie。相反,他们会尝试所有可能的组合来猜测您的会话 ID。
#4。 跨站脚本攻击 (XSS)
黑客利用网站或应用程序中的漏洞注入恶意代码。 当用户访问该网站时,脚本将被激活,窃取用户的 cookie,并将它们发送给攻击者。
#5。 恶意软件注入
恶意软件可以在您的设备上执行未授权的操作,以窃取个人信息。 它还经常被用来拦截 cookie 并将信息发送给攻击者。
#6。 IP 欺骗
网络犯罪分子会修改其数据包的源 IP 地址,使其看起来像是来自您。 由于 IP 地址是伪造的,网络服务器会误认为您发起的请求,导致会话被劫持。
如何预防会话劫持?
会话劫持的可能性通常取决于您所使用的网站或应用程序的安全性。 不过,您可以采取一些措施来保护自己:
- 尽量避免使用公共 Wi-Fi,因为免费热点是网络犯罪分子的理想场所。 这些热点的安全性通常较低,容易被黑客入侵。 更不必说,这些热点总是有大量的潜在受害者,他们的数据流量持续处于被攻击的风险之中。
- 任何不使用 SSL 证书的网站都会使您容易受到攻击,因为它无法加密流量。 请务必查看 URL 旁边是否有小挂锁图标,以确认该网站是否安全。
- 安装反恶意软件应用程序,以检测并保护您的设备免受可能窃取个人信息的恶意软件和间谍软件的侵害。
- 从官方应用商店或网站下载应用程序,以避免下载恶意软件。
- 如果收到要求您点击不明链接的消息,请不要点击。 这可能是网络钓鱼攻击,可能会感染您的设备并窃取个人信息。
用户在面对会话劫持攻击时往往束手无策。 然而,应用程序可以检测到不同的设备使用了相同的会话标识符。 并且可以以此为基础,设计缓解策略,例如:
- 将每个会话与所连接设备的技术指纹或特征相关联,以检测注册参数的变化。 此信息必须保存在 cookie(对于有状态会话)或 JWT(对于无状态会话)中,并进行加密。
- 如果会话基于 cookie,请删除具有 HTTPOnly 属性的 cookie,以防止其在 XSS 攻击中被访问。
- 配置入侵检测系统 (IDS)、入侵防御系统 (IPS) 或网络监控解决方案。
- 一些服务会对用户的身份进行二次检查。 例如,Web 服务器可以检查每个请求,确保用户的 IP 地址与该会话期间使用的最后一个 IP 地址相匹配。 但是,这并不能阻止来自共享相同 IP 地址的人的攻击,而且可能会给那些在浏览会话期间 IP 地址可能发生变化的用户带来不便。
- 或者,某些服务会为每个请求更改 cookie 值。 这大大缩短了攻击者可以操作的时间窗口,并且更容易识别是否发生了攻击,但可能会导致其他技术问题。
- 为每个用户会话使用不同的多因素身份验证 (MFA) 解决方案。
- 使用最新的补丁和安全更新使所有系统保持最新状态。
常见问题
会话劫持与会话欺骗有何不同?
会话劫持是指伪装成用户,而欺骗是指替换用户。 在过去的几年里,一些安全分析师开始将后者也归类为一种会话劫持。
最后的话
近年来,会话劫持攻击的频率有所增加。 因此,了解此类攻击并采取预防措施变得尤为重要。 然而,随着技术的发展,攻击也变得越来越复杂。 因此,制定针对会话劫持的主动缓解策略是至关重要的。
您可能还想了解您的数据在暗网上的价值。