中文 英语

基于内存的网络攻击变得更加复杂,难以检测

技术在不断变化,使内存保护成为一个越来越大的挑战。

受欢迎程度

存储器正在成为网络攻击的切入点,引发了人们对系统级安全的担忧,因为存储器在电子产品中几乎无处不在,而漏洞很难被发现。

黑客瞄准了几乎每一个消费者、工业和商业部门,以及越来越多连接到互联网和相互连接的设备,这种情况还没有结束的迹象。根据…进行的一项调查Splunk在美国,54%的企业每月至少经历一次网络攻击导致的系统/网络中断。据报道,大约70%的漏洞微软产品的内存安全问题。

内存攻击、漏洞
攻击有各种形式——物理攻击、局部攻击和远程攻击。物理攻击发生在黑客拥有计算机或设备时,就像盗窃一样。即使没有这些设备,如果黑客靠近目标设备,他们也可以通过侧通道攻击获得访问权限。但最常见的网络攻击类型是远程攻击。在远程攻击期间,恶意软件进入网络或系统,包括内存。一般来说,黑客会寻找设计错误和系统/内存漏洞。

恶意攻击者可能试图攻击几乎任何系统中的内存。马克·格林伯格说:“这可能是一些相对良性的事情,比如在攻击者拥有的设备上安装一个新的操作系统,也可能会对处理金融、基础设施、军事或运输功能的计算机产生重大影响。”抑扬顿挫的负责DDR、HBM、闪存/存储和MIPI IP产品营销的集团总监。“所有类型的内存都是攻击者的潜在目标。”

内存攻击有两大类。第一种是针对存储设备的攻击,这些存储设备用于引导或加载计算机的操作系统或软件。Greenberg说,通常情况下(但并非总是如此),这些攻击需要对机器进行物理访问,以便对存储进行有效攻击,尽管已经受到攻击的机器可能会进一步破坏存储,从而使机器一直处于威胁状态,直到完全擦除并重新启动。加密可以帮助保护这些存储设备。

第二种涉及存储临时数据的RAM设备。这些设备更有可能通过机器本身受到攻击,包括通过互联网连接的攻击。对RAM的物理攻击也是可能的。

大多数系统的安全性来自物理安全性、内置内存保护和通过系统提供的运行时安全性的结合。格林伯格说:“但是随着时间的推移,人们发现了利用网络安全弱点的新方法,更高级的内存类型往往包含针对这些方法的缓解功能。”“例如,DDR5包含刷新管理功能,可能有助于防御一些rowhammer类型的攻击。”

发现内存攻击
检测这些攻击是困难的,主要是因为存储在内存中的信息要么是数据,要么是通过可执行代码的程序。安全防御机制主要关注网络和连接性,包括安全密钥、授权和身份验证。它们并不总是检查BIOS或操作系统运行的指令。这些可执行指令没有典型的文件结构。因此,这些无文件脚本几乎不可能被检测到。如果这些指令已经被恶意软件感染,一旦指令被执行,攻击就会被执行。

老练的黑客利用基于内存的无文件方法进行传统的基于主机的防御(如Web应用程序防火墙(WAF)或端点检测和响应(EDR))无法检测到的攻击。这些无文件攻击甚至可以来自合法来源,如嵌入宏的word文档或运行Flash的网站。除非这些来源有良好的网络防御,受感染的软件可能会在用户不知情的情况下传播出去。

黑客攻击存储设备的方法有很多种。

冷启动攻击
一旦黑客掌握了设备,就可以使用冷启动攻击从设备中提取信息。当设备被硬关闭时,例如按住电源按钮几秒钟,黑客可以在几秒到一分钟内从dram和ram中转储内存。在此期间,内存内容仍然可用。除非内容经过加密,否则黑客可以利用它访问其他网络或服务器。

“许多专家都非常关注网络安全,”at的安全IP高级产品营销经理Dana Neustadter说Synopsys对此.“但确保系统或设备的物理安全同样重要。一旦黑客掌握了设备,他们就可以对ram和其他内存执行冷启动攻击,以窃取包括加密密钥在内的信息。经常刷新密钥并加密敏感的内存内容以确保数据机密性是至关重要的。在这种情况下,即使黑客能够进行内存转储,他们也无法解密加密内容。”

边信道攻击
没有设备的物理所有权,黑客仍然可以攻击目标设备,如果目标设备在附近。这通常被称为a边信道攻击

黑客使用传感设备来检测设备发出的各种能量级别,这被称为功率签名。这使得黑客能够解码并窃取安全密钥,并从那里执行系统级或内存攻击。

直接内存攻击也有不同的形式,包括引导加载程序、rowhammer和RAMBleed (rowhammer的变体)。

引导加载程序攻击
当计算机或嵌入式设备上电或重新启动时,基本输入输出系统(BIOS) -设备附带的ROM或EPROM中的一块固件-将运行。然后,BIOS查找引导加载程序或引导管理器代码所在的可引导设备。依赖于操作系统的引导加载程序的功能是加载操作系统。之后,操作系统将接管。较新的系统,如Windows 11,配备了统一可扩展固件接口(UEFI) BIOS。UEFI规范决定了固件如何访问硬件。UEFI最终可能取代BIOS。

如果BIOS(或UEFI)被感染,整个系统/网络将受到威胁。引导加载程序是黑客的高价值目标。

大统一引导加载程序(GRUB)是一种流行的基于unix的操作系统引导加载程序,其中的漏洞造成了严重的后果。在2020年,BleepingComputer报告了一个被称为BootHole GRUB引导加载程序错误的主要漏洞,该漏洞会中断操作系统引导过程。这影响了所有基于unix的操作系统和一些Windows操作系统。更令人担忧的是,安全启动验证机制并不能阻止攻击。这种类型的恶意软件可以在启动过程中被激活,并且能够休眠一段时间。

Rowhammer攻击
此漏洞发生在DRAM电路级别(包括DDR)。通过反复读取(敲打)DRAM行(晶体管),产生电荷。这种电荷会翻转相邻或附近行的位,使黑客能够改变或破坏内存数据。

随着内存芯片密度的增加,Rowhammer攻击变得越来越明显。这种恶意软件还可以从相邻行获取信息,以获得更高的权限。

为了应对这些攻击,实现了一个名为目标行刷新(TRR)的修复程序。通过检测频繁访问的内存行,相邻行的刷新率将在数据泄漏之前提高cve - 2021 - 42114).到目前为止,这已经有效地阻止了排锤攻击,即使最近的攻击试图绕过TRR。

罗瓦默改变了攻击方式
就像Covid-19的变种一样,排锤变种RAMBleed (cve - 2019 - 0174)已经进化并变得更加强大。除了修改DRAM位信息外,RAMBleed还可以窃取它。其他变体,包括GLitch, RAMpage, Throwhammer, Nethammer和动态随机存取记忆体会造成更大的危害,比如利用DRAM作为后门控制手机和网络。

Stephan Rosner,系统工程副总裁英飞凌科技他说,在需要保护的资产的背景下考虑安全问题是有帮助的。其中一种资产是用户存储的数据或代码形式的信息。其他资产是由供应商存储的密钥,代表信任根和设备本身。这个设备可能是昂贵的高可靠性汽车部件,不应该被一个更便宜、质量更低的设备代替。资产可能面临各种威胁,例如被知道(机密性)、被修改(完整性),等等。安全系统可以减轻这些威胁。安全内存是安全系统的一部分。它们的目的是为了应对威胁,而使用非安全内存可能需要其他更昂贵的缓解措施,或者根本不可能。”

例如,考虑一个有效的事务,其中的读取可以在稍后重播。这种情况可能是信息已经更新,但重放攻击返回旧的但有效的信息。重放保护要求内存能够区分同一事务的迭代并确定它们的顺序。这可以用来检测重放的事务,但是它需要一个安全的内存,比如RPMC设备。

保护内存具有挑战性
网络攻击技术在不断变化。因此,不断升级防御机制非常重要。及时安装漏洞补丁是最低要求。定期审计内存漏洞也很重要。

尽管几乎不可能100%保证内存安全,但听从专家的建议会大有帮助。

Marc Witteman,首席执行官Riscure,说好的内存设计需要保护数据的机密性和完整性。“闪存遭受磨损,现在包括完整性机制,包括虚拟到物理映射,以停用有缺陷的细胞。另外,在DRAM中,串击也是一种需要防范的风险。先进的存储芯片将包括用于内部数据存储和潜在传输的加密。”

在硬件设计中,无论是使用asic、soc还是内存,确保有一个“设计安全”的开发和验证过程是很重要的。“该过程的基本步骤应包括确定与威胁模型相关的安全需求和CWEs,建立机密性、完整性和可用性目标以及设计的安全边界,”该公司工程副总裁Mitch Mlinar说Cycuity.“然后你需要在开发过程的每一步都全面验证安全性。”

内存篡改抵抗需要伴随密码学
作为内存安全解决方案的密码学的一个尚未解决的问题是防篡改的概念。仅靠密码学可能会给对手提供一个牢不可破的前门,但如果获取密钥就像查看欢迎垫下面一样容易,或者在牢不可破的前门旁边有一扇敞开的窗户,那么它就根本无法提供安全性。

公司防伪产品技术总监斯科特·贝斯特说Rambus解释说,如果有加密密钥被用于保护数据隐私,一个有动机的对手有一个攻击技术菜单-侧通道,侵入性,半侵入性-可以用来揭示密钥。或者,如果不是整个密钥,他们至少会显示足够的密钥位,以便剩余的密钥空间可以被暴力恢复。如果使用身份验证检查来确保数据的真实性,则通常会将计算结果与预期结果进行比较——在这种情况下,这种比较就会成为恶意修改的目标。”

阻止这种情况需要一整套安全措施。

Cadence的Greenberg指出:“最好的方法是使用多层安全措施来防御已知的攻击,以及潜在的未知攻击。”“以RAM为例,我们可能会采取多种方法,这取决于系统所需的整体安全性。应实现物理安全性,以防止物理内存设备的替代、插入者或其他可用于提取或注入数据的方法。安全操作系统应确保不受信任的代码不会以特权方式运行。可以实现错误纠正,以防止某些错误在系统中造成广泛的破坏。确保有针对rowhmer的防御,以及类似的攻击,即不受信任的代码可以在没有操作系统明确许可的情况下升级其特权,这是至关重要的。此外,可以使用内存加密,这样即使不受信任的代码能够升级权限,它仍然不能读取其他进程或虚拟机写入的数据。内存标记可以用来防止不同进程或虚拟机读取彼此的代码或数据。”

英飞凌的Rosner表示,加强内存安全性的其他方法包括加密算法,如对称、非对称、密钥生成和推导、认证、签名。这可以与防止篡改的保护相结合,例如入侵感知、电源故障保护和侧通道保护,如常数时间操作和电源签名混淆。除此之外,还有大量关于常见攻击的文献,以及可以防止已知攻击的认证,如FIPS 140、common Criteria、SESIP等。

不过,这些都不完美,专家建议做好恢复和应对的准备。

Riscure的Witteman说:“每个开发者都试图设计出最安全的电路。“但他们可能仍有弱点。因此,测试电路以发现潜在的问题是很重要的。这些测试方法包括物理探测,防止故障注入,以及通过功耗或电磁辐射进行泄漏评估。在故障注入的情况下,威胁行为者可以利用此漏洞实现数据泄漏、特权升级或密钥提取,后果可能很严重。为了缓解这种情况,重要的是要考虑提高故障抵抗能力,在攻击发生时进行恢复和响应。”

结论
设计内存安全性是一种平衡行为。具有复杂算法和多层保护的高度安全内存需要高性能的soc,这可能会消耗更多的功率和成本。

Rambus的Best指出:“这是一个性能权衡问题。“每个人都希望他们的笔记本电脑或智能手机在功能上不受恶意软件的影响,但每个人也都希望设备在按下电源按钮后几秒钟内启动。确保数据隐私的算法可以是硬件加速的,这样加密延迟只会影响CPU内对性能最敏感的硬件。但确保数据真实性的算法往往是你等待笔记本电脑加载操作系统半分钟的原因。

此外,在对内存内容应用加密时,Synopsys的Neustadter建议使用NIST AES-XTS等标准加密算法,尽可能使用最大的密钥大小,以实现最高的安全级别。“此外,性能必须与内存带宽保持一致,对延迟和面积的影响最小。大多数最佳内存加密解决方案,如安全DDR/LPDDR控制器,都是在加密引擎内联并与控制器集成时实现的。”

与保护边缘计算和网络相比,内存安全更加困难和微妙。在某些情况下,网络攻击更难被发现。由于这些原因,内存是黑客的主要目标,攻击有各种形式,包括冷引导、侧通道、引导加载程序、rowhammer和变体的攻击。这些攻击将变得越来越多和复杂,因此遵循专家的建议和使用已知的最佳实践是必不可少的。



留下回复


(注:此名称将公开显示)

Baidu