前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么反作弊软件利用内核驱动程序

为什么反作弊软件利用内核驱动程序

原创
作者头像
franket
发布2020-11-03 00:19:46
18.4K0
发布2020-11-03 00:19:46
举报
文章被收录于专栏:技术杂记

最近,在Reddit上有很多话题涉及Valorant被称为“ Vanguard”的反恐热的发布。主要的怀疑是事实,它是潜在地侵犯隐私的,这是一个完全有效的理论。我并没有破坏在您的个人计算机上运行第三方应用程序后的隐私复杂性,但是有关在用户模式和内核模式下进行监视的可能性的许多信息都是有缺陷的。很少有张贴者反对“内核=坏”蜂巢,但是大多数游戏玩家从安全性方面都不知道这意味着什么。

与大多数人讨论在反作弊中使用内核模式不同,我在游戏黑客方面(双方)都有多年的经验。我的雇主与电子游戏完全无关,因此我可以对大多数这些陈述采取公正的态度。听匿名的“互联网专家”总是一个坏主意,但是任何有编程经验的人都非常乐意将我以前在此网站或GitHub上发表的研究论文拆散

在下面的段落中,我挑选了一些Reddit上的用户正在广播的语句,我将尽我所能讨论它们:

第一点(什么是内核?)

Vanguard在“ Ring 0”(按需解释“ rings”)上运行,这是计算机的基本系统级(“内核模式驱动程序”),这意味着在没有严重知识的情况下,您甚至无法停止它从运行(卸载除外)开始,因为它比您的管理员用户具有更多的计算机权限。您必须将SYSTEM权限分配给您的用户,这只是出于安全原因而不必执行的操作。而且,如果最大程度地控制计算机对您不利,那么为什么要为RIOT分配此权限?

让我们从头开始:保护环。实现此安全抽象层是为了隔离计算机上的系统关键数据。本质上,这是用于将“不受信任的”应用程序(第三方应用程序)与计算机的核心部分(内核)隔离开来。实际上这是什么意思?假设您执行自己喜欢的浏览器:boongabrowser.exe。作为用户模式(第3环)进程执行时,此应用程序可以访问什么?好吧,如果我们不将UAC视为一种安全措施(例如Microsoft),那么boongabrowser.exe仍然可以访问您计算机上的几乎所有内容。它能够操纵文件系统的几乎所有部分,能够读取和操纵正在运行的任何其他“正常”进程的内存,因此在内核上下文中运行代码的目的到底是什么(环0)?

不同特权级别之间的主要区别是内存和指令的可访问性。用户模式(环3)应用程序与内核模式(环0)应用程序是隔离的,因为内核模式决定了用户模式的行为方式,因此用户模式模式应用程序无法访问内核内存。在计算机世界中,您离硬件越近,拥有的控制权就越大。因此,较低的特权意味着更大的控制权。这当然被大大简化了,但是对于本文而言,这已经足够了。

为什么这在游戏黑客中构成问题?嗯..众所周知,游戏黑客竭尽全力实现他们的共同目标:获胜。这是游戏攻破游戏的猫腻现实,因为作弊者不会遵守任何规则或道德。

在实践中这意味着什么?游戏黑客并不关心运行内核组件甚至虚拟机管理程序,这就是冲突的开始。如果仅将反作弊模式设置为用户模式,则无法保证内核的完整性。游戏黑客可能已经加载了易受攻击的驱动程序,获得了内核级别的访问权,并且甚至在加载了游戏应用程序之前就将自己嵌入了内核!有会从字面上没有办法为用户模式程序来检测这样的作弊软件,而我们游戏的黑客已经被滥用了这一事实了多年

既然您已经知道访问的分隔,那么让我们回到引号,并在考虑到您新近学习的知识的基础上进行讨论:

Vanguard在“ Ring 0”(按需解释“ rings”)上运行,这是计算机的基本系统级(“内核模式驱动程序”),这意味着在没有严重知识的情况下,您甚至都无法停止它从运行(卸载除外)开始,因为它具有比管理员用户更多的计算机电源。

大多数内核模式驱动程序都可以卸载,Vanguard尤其难以卸载的原因将在“第2点”中进行说明。

您必须将SYSTEM权限分配给您的用户,这只是出于安全原因而不必执行的操作。

错了 Windows上的SYSTEM用户也处于用户模式,并且只是一个不同的会话,几乎没有什么限制可用于更轻松地安排服务。这不是一种安全措施,并且指出您需要用户(??)上的SYSTEM权限才能卸载内核模式驱动程序是错误的。卸载内核驱动程序就像为它们停止注册服务一样容易,您可以使用command来完成sc stop <driver>。当然,这依赖于驱动程序已unload在内核中设置其例程的事实。

如果最大程度地控制计算机对您不利,为什么要为RIOT分配此权限?

内核反作弊需要在多种情况下具有这种许可:

  • 确保Windows内核的完整性
  • 通过阻止句柄创建来防止互操作性,例如对某些进程的内存访问
  • 注册事件以跟踪系统资源的使用情况(监视进程的创建,图像加载等)

这与现有的每个防病毒应用程序都使用内核组件的原因完全相同。几乎所有的商业反作弊解决方案,包括BattlEye和Easy Anti Cheat,都使用内核组件来确保用户体验的完整性,但不会受到Vanguard的强烈反对。

第2点(为什么要在启动时加载?)

它一直在运行。它在您启动计算机时启动,并且永不停止。它以与防病毒程序相同的权限级别启动,这是我为计算机授予无限制功能的极少数应用程序之一。

有一个很好的理由来启动需要在引导时确保系统完整性的应用程序。

假设您收到邮件中的包裹,您怎么知道在运输过程中没有人篡改过包裹?你不知道 从理论上讲,您将如何防止这种情况?一旦包装生产到目的地,您将立即对其进行监视。

可悲的现实是完整性检查比大多数人想象的要难。大部分的时间有问题的应用程序没有什么包的内容,就是要什么想法,所以他们必须做出对他们绝对应该是什么的猜测没有,但是这次将始终能够被绕过。我已经发布了许多有关此主题的文章,包括一些最普遍的商业反作弊的文章,我可以肯定地说这是正确确保完整性检查的可靠方法。

我知道这违背了目前的观点,即在启动时加载驱动程序是不好的,但是如果您想防止广泛的黑客入侵,这就是您的做法。

第3点(扫描外部硬件)

Valorant会扫描您的外部设备,因为拖缆已被踢出以插入手机。

这很可能是Vanguard中的一个错误,该错误会扫描串行端口的使用情况,因此不值得进一步讨论。Vanguard并未尝试访问您的机密照片,但很可能会监视可疑DMA设备的硬件端口(直接内存访问)。使用诸如PCIe Screamer之类的项目直接从外部硬件访问游戏的内存。

第4点(如果Vanguard被黑了怎么办?)

但是,即使有RIOT,也有最崇高的意图:没有系统是不可破解的。到今年年底为止,轻松安装了100万个漏洞,对RIOTs Vanguard-Control Server进行黑客攻击基本上可以使黑客完全访问100万个客户端大型僵尸网络。甚至没有谈论他们收集的所有数据。切记:最大访问权限。这意味着它可以进入您的Google Chrome浏览器,并询问您所有已保存的密码。或者只是安静地坐在那里,一边打字一边朗读它们。包括您的网上银行等。当然,任何反病毒公司都可能发生这种情况。但是,每个许可级别的程序都会带来风险。而且这种加薪是不必要的。

所有第三方软件都对这种供应链攻击构成威胁。让我们一次回顾一下这个声明:

切记:最大访问权限。这意味着它可以进入您的Google Chrome浏览器,并询问您所有已保存的密码。或者只是安静地坐在那里,一边打字一边朗读它们。包括您的网上银行等

您不需要引导加载内核驱动程序即可转储Google Chrome密码,获取银行详细信息或记录您的击键,因此可以说这是关于计算机上安装的任何用户模式应用程序的信息。几乎所有间谍软件都仅在用户模式下运行是有充分理由的:对于任何这种监视,都不必成为内核。

当然,任何反病毒公司都可能发生这种情况。但是,每个许可级别的程序都会带来风险。而且这种加薪是不必要的。

没错,也有可能有人入侵Microsoft,或者实际上是在您的计算机上运行代码的任何其他公司。这是非常奇怪的批评,并且仅因其为假说而难以反驳。不过,最后一句话使我感到困扰。正如我在本文中所展示的,这种加薪绝对不是没有必要的。

结论

我希望这可以消除有关内核反作弊技术方面的一些困惑。当然,这不会破坏您在计算机上安装的任何第三方应用程序的隐私问题,但是我希望它可以为当前反作弊设计背后的原因提供一些启示。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一点(什么是内核?)
  • 第2点(为什么要在启动时加载?)
  • 第3点(扫描外部硬件)
  • 第4点(如果Vanguard被黑了怎么办?)
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档