什么是aslr,它如何保证您的计算机安全?

地址空间布局随机化(ASLR)是一种用于操作系统的安全技术,于2001年首次实现。所有主要操作系统(iOS、Android、Windows、macOS和Linux)的当前版本都具有ASLR保护功能。但在过去的一周里,一种绕过ASLR的新方法被发现。那么,你应该担心吗?...

什么是aslr,它如何保证您的计算机安全?

地址空间布局随机化(ASLR)是一种用于操作系统的安全技术,于2001年首次实现。所有主要操作系统(iOS、Android、Windows、macOS和Linux)的当前版本都具有ASLR保护功能。但在过去的一周里,一种绕过ASLR的新方法被发现。那么,你应该担心吗?

对于那些没有低级编程背景的人来说,ASLR可能会令人困惑。要理解它,首先必须理解虚拟内存。

什么是虚拟内存(virtual memory)?

虚拟内存是一种内存管理技术,具有许多好处,但它的主要目的是为了使编程更容易。假设你有GoogleChrome,MicrosoftWord,还有几个其他程序在一台带有4GB RAM的计算机上打开。总体而言,这台计算机上的程序使用的RAM超过4GB。然而,并非所有程序都将始终处于活动状态,或者需要同时访问该RAM。

操作系统将内存块分配给称为页的程序。如果没有足够的RAM一次存储所有页面,则最不可能需要的页面将存储在速度较慢(但空间更大)的硬盘上。当需要存储的页面时,它们将切换RAM中当前不太需要的页面的空间。这个过程称为分页,并将它的名称借给页面文件.sysWindows上的文件。

虚拟内存使程序更容易管理自己的内存,也使它们更安全。程序不需要担心其他程序在哪里存储数据,也不需要担心还有多少RAM。他们可以根据需要向操作系统请求额外的内存(或者返回未使用的内存)。程序看到的只是一个单独的连续内存地址块,称为虚拟地址。程序不允许查看另一个程序的内存。

当程序需要访问内存时,它会给操作系统一个虚拟地址。操作系统连接CPU的内存管理单元(MMU)。MMU在虚拟地址和物理地址之间进行转换,将信息返回给操作系统。程序在任何时候都不直接与RAM交互。

什么是aslr公司(aslr)?

地址空间布局随机化(ASLR)主要用于防止缓冲区溢出攻击。在缓冲区溢出中,攻击者向函数提供尽可能多的垃圾数据,然后是恶意负载。有效负载将覆盖程序打算访问的数据。跳转到代码中另一个点的指令是常见的有效负载。例如,著名的越狱方法ios4使用缓冲区溢出攻击,促使苹果将ASLR添加到ios4.3中。

缓冲区溢出要求攻击者知道程序的每个部分在内存中的位置。弄清楚这一点通常是一个艰难的试错过程。在确定之后,他们必须**一个有效载荷并找到一个合适的地方注入它。如果攻击者不知道目标代码的位置,则很难或不可能对其进行攻击。

ASLR与虚拟内存管理一起工作,将程序的不同部分在内存中的位置随机化。每次运行程序时,组件(包括堆栈、堆和库)都会移动到虚拟内存中的不同地址。攻击者不再能够通过反复试验了解目标的位置,因为地址每次都会不同。一般来说,应用程序需要使用ASLR支持进行编译,但这已成为默认设置,甚至在android5.0及更高版本上也是必需的。

那么aslr还能保护你吗?

上周二,来自纽约州立大学宾厄姆顿分校和加州大学河滨分校的研究人员发表了一篇名为《跳过ASLR:攻击分支预测因子以绕过ASLR》的论文。详细介绍了一种攻击分支目标缓冲区(BTB)的方法。BTB是处理器的一部分,它通过预测结果来加速if语句。使用作者的方法,可以确定运行程序中已知分支指令的位置。这起攻击是在搭载英特尔Haswell处理器(2013年首次发布)的Linux机器上进行的,但很可能适用于任何现代操作系统和处理器。

也就是说,你不必绝望。本文提供了一些硬件和操作系统开发人员可以减轻这种威胁的方法。更新的、细粒度的ASLR技术需要攻击者付出更多的努力,而增加熵(随机性)会使跳转攻击变得不可行。最有可能的是,新的操作系统和处理器将免疫这种攻击。

你还有什么事要做?跳越旁路是新的,还没有发现在野外。当攻击者利用该漏洞时,该漏洞将增加攻击者可能对您的设备造成的潜在伤害。这种访问级别并非史无前例;微软和苹果仅在2007年及更高版本的操作系统中实现了ASLR。即使这种攻击方式变得司空见惯,你也不会比WindowsXP时代更糟糕。

请记住,攻击者仍然必须在您的设备上获取他们的代码才能造成任何伤害。此缺陷不会为他们提供任何其他感染您的方式。一如既往,您应该遵循安全最佳实践。使用防病毒软件,远离粗略的网站和程序,保持软件的最新状态。通过遵循这些步骤并将恶意行为体从您的计算机上隔离,您将一如既往地安全。

图片来源:Steve/Flickr

  • 发表于 2021-04-08 21:52
  • 阅读 ( 246 )
  • 分类:互联网

你可能感兴趣的文章

每个操作系统如何保证您的安全

操作系统是允许程序在计算机上运行的中间人。它们将您的计算机资源分开,在应用程序之间分开,让您可以操作下面的硬件。简而言之,任何能运行程序的机器都需要一台,无论是macOS、Windows还是Linux。 ...

  • 发布于 2021-03-12 11:26
  • 阅读 ( 203 )

黑客威胁医疗物联网设备:以下是如何保证它们的安全

... 永远不要把你的设备**未知的计算机。当您将设备连接到计算机(如通过USB)时,可以在两者之间传输数据。黑客可以利用这个连接**扰你的设备,降低它的安全性。避免将您的设备**图书馆等公共计...

  • 发布于 2021-03-20 04:51
  • 阅读 ( 171 )

使用新电脑前的9件事

...的机器更安全,更快,更好地为未来做好准备。在使用新计算机之前,请完成这些Windows自定义设置。 ...

  • 发布于 2021-03-20 06:53
  • 阅读 ( 189 )

什么是dns缓存中毒?dns欺骗如何劫持你

... DNS服务器就像一个巨大的网站电话簿。当您的计算机向DNS服务器发送URL时,它会在其数据库中查找并找到相应的IP地址。然后它会让你的电脑知道IP地址是什么。 ...

  • 发布于 2021-03-21 18:02
  • 阅读 ( 207 )

你的电脑有病毒吗?下面是如何检查

...病毒的迹象(the signs of a virus)? 性能差、应用程序崩溃和计算机冻结有时可能是病毒或其他类型恶意软件造成严重破坏的迹象。然而,情况并非总是这样:有许多其他原因的问题,可以减慢你的电脑。 同样,仅仅因为你的电脑运...

  • 发布于 2021-04-03 02:35
  • 阅读 ( 320 )

什么是googleplay protect?它如何保证android的安全?

...播放保护信息 如果你想知道Play Protect在你的设备上做了什么,那么很容易做到。去吧,启动游戏商店开始吧。 打开“播放商店”菜单,然后选择“我的应用程序和游戏”设置。“我的应用程序和游戏”页面的顶部选项是“播放...

  • 发布于 2021-04-05 07:44
  • 阅读 ( 239 )

如何根据您的需要选择最佳的vpn服务

...虚拟专用网络)是一种快速简便的解决方案,可以让您的计算机看起来来自不同的位置。他们通过创建一个虚拟网络来实现这一点,该网络通过一个加密的隧道将你的PC或智能**的所有网络流量路由到另一边,让世界觉得你实际...

  • 发布于 2021-04-06 11:30
  • 阅读 ( 282 )

为什么总是要安装64位windows

...人还在使用这些打折的上网本和平板电脑。 带有64位CPU的计算机可以运行32位操作系统,但它们真的没有理由再这样做了。即使在64位操作系统上,也可以很好地运行32位应用程序。 为什么要安装64位版本 32位版本的Windows内存限...

  • 发布于 2021-04-06 11:54
  • 阅读 ( 239 )

windows defender的新漏洞保护如何工作(以及如何配置)

...洞保护工作原理 相关报道:windows10的秋季创作者更新有什么新内容,现在可以使用了 长期以来,我们一直建议使用反攻击软件,如Microsoft的增强缓解体验工具包(EMET)或更为用户友好的Malwarebytes anti-Malware,其中包含强大的反...

  • 发布于 2021-04-07 04:15
  • 阅读 ( 228 )

如何检查电脑上是否启用了安全引导

...值“Unsupported”。 使用powershell cmdlet 相关:如何在远程计算机上运行PowerShell命令 您还可以从PowerShell查询此信息。你为什么要这么做?使用PowerShell远程处理,可以使用PowerShell cmdlet检查远程PC是否启用了安全引导。 这要求您以...

  • 发布于 2021-04-08 14:57
  • 阅读 ( 252 )
tskz4819303
tskz4819303

0 篇文章

相关推荐