近日,韩国研究人员针对某些固态驱动器 ( SSD ) 模拟了一系列攻击,这些攻击可能允许将恶意软件植入用户和安全解决方案都无法触及的位置。攻击模型针对具有灵活容量功能的驱动器,并针对设备上称为过度配置的隐藏区域——如今 SSD 制造商广泛使用该区域来优化基于 NAND 闪存的存储系统性能。硬件级攻击提供终极持久性和隐蔽性。过去,高级攻击者一直在努力尝试针对机械硬盘的此类攻击方法,将恶意代码隐藏在无法访问的磁盘扇区中。
SSD 工作原理
弹性容量是 SSD 中的一项功能,它使存储设备能够自动调整原始空间和用户分配空间的大小,通过吸收写入工作负载量来实现更好的性能。它是一个动态系统,可以创建和调整称为过度配置的空间缓冲区,通常占用总磁盘容量的 7% 到 25% 。当用户启动不同的应用程序时, SSD 管理器会根据工作负载自动调整此空间,具体取决于它们的写入或读取密集程度。操作系统和在其上运行的任何应用程序(包括安全解决方案和防病毒工具)都无法看到超额配置区域。
SSD 攻击模型
首尔高丽大学研究人员模拟攻击针对的是一个无效数据区域,该区域具有位于可用 SSD 空间和预留空间 ( OP ) 区域之间的未擦除信息,其大小取决于两者。其研究论文解释说,黑客可以通过使用固件管理器来更改 OP 区域的大小,从而产生可利用的无效数据空间。这里的问题是,很多 SSD 厂商为了节省资源,选择不擦除无效数据区。在假设断开映射表链接足以防止未经授权访问的情况下,该空间会在很长一段时间内保持充满数据。因此,利用此弱点的威胁行为者可以访问潜在敏感信息。
研究人员指出 ,对 NAND 闪存进行数字取证可以发现过去六个月未被删除的(无效数据区)数据。在另一种攻击模型中,威胁参与者将 OP 区域用作用户无法监控或擦除的秘密位置,并在其中隐藏恶意软件。
其研究论文将这种攻击描述为:假设两个存储设备 SSD1 和 SSD2 连接到一个通道。每个存储设备都有 50% 的 OP 区域。黑客将恶意代码存储到 SSD2 后,立即将 SSD1 的 OP 面积缩小到 25% ,将 SSD2 的 OP 面积扩大到 75% 。此时,恶意软件代码包含在 SSD2 的隐藏区域中。获得 SSD 访问权限的黑客可以随时通过调整 OP 区域大小来激活嵌入的恶意软件代码。由于普通用户在频道上保持 100% 的用户区域,因此黑客的这种恶意行为并不容易被发现。
这种攻击的明显优势在于它是隐蔽的。在 OP 区域检测恶意代码不仅耗时,而且需要高度专业化的取证技术。
防御对策
作为对第一种攻击的防御,研究人员建议 SSD 制造商使用不会影响实时性能的伪擦除算法擦除 OP 区域。对于第二种攻击,防止在 OP 区域注入恶意软件的潜在有效安全措施是实施有效-无效数据速率监控系统,实时观察 SSD 内部的比率。当无效数据比例突然显著增加时,用户可以得到警告并在 OP 空间选择可验证的数据擦除功能。
最后, SSD 管理应用程序应该具有强大的防御能力,对未经授权的访问采取防御措施。研究人员进一步解释说:“即使不是恶意黑客,被误导的员工也可以随时通过使用 OP 区域变量固件/软件轻松释放隐藏信息并泄漏它”。虽然研究表明 SSD 上的 OP 区域可用于存储恶意软件,但目前不太可能在野外发生此类攻击。
相关论文:https://arxiv.org/ftp/arxiv/papers/2112/2112.13923.pdf
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】