设备可能面临的不同类型的攻击。
为电子设备开发安全架构首先要建立一个威胁模型,其中我们提出以下问题:
基于威胁评估,安全架构师可以为他们的设备定义正确的安全级别,以及如何实现和维护。在这篇博客中,让我们来回答第二个问题,并考虑我们可能预料到的攻击类型。
首先,让我们考虑远程攻击。这些攻击不需要攻击者和被攻击设备的“物理接近”。通过网络接口针对设备处理器上流氓软件执行的攻击(例如缓冲区溢出攻击)可能使攻击者能够:
远程攻击的执行成本往往很低,而且扩展性非常好,可以对其他相同的设备进行攻击。
通常,为了识别可利用的漏洞,攻击者可能会购买多台设备,并试图以更有力的方式反向工程或提取设备上运行的软件,从而发现远程可利用的漏洞,这可能会破坏或摧毁一些设备。此外,如果用于驱动网络堆栈的软件是众所周知的(例如Linux),那么攻击者可能已经通过其他手段识别出了漏洞。
如果攻击者能够获得对设备的物理访问权,这就为利用开辟了新的途径。这些“本地访问”攻击通常分为三种粗略的类型,攻击的复杂性和成本都在增加:
第三类主要的攻击,我们可以称之为“逻辑攻击”,是那些利用弱安全实现的攻击。大多数应用程序使用加密算法来保护有价值的数据资产。反过来,由加密算法提供的安全性依赖于应用程序保持所需密钥材料安全和攻击者无法预测的能力。不幸的是,由于加密操作或协议以不安全的方式实现,加密保护的应用程序经常受到威胁。这往往是“国产”安全解决方案的一个弱点。
上面的一个例子就是随机性来源的弱实现。密码操作和协议需要一个高质量的随机数生成器来确保真正的随机数据。除此之外,随机数据用于密钥生成,并在签名操作中提供不可预测的组件(nonce)以保护私有密钥。低质量或实现不佳的随机数生成器将导致生成攻击者可预测的数据。其他弱实现的例子包括使用过时的密码算法、密钥强度不足和密钥使用不当。不恰当的密钥使用包括:直接使用不可变密钥,而不是以安全的方式使用从不可变密钥派生的密钥;将密钥存储在不安全的位置,比如以不加密的形式存储在芯片外存储器中;或者将钥匙存储在芯片上的位置,软件可以访问,导致钥匙滥用或泄露。
除了对设备的直接攻击类别之外,还必须考虑对其支持基础设施的攻击。在设备的生命周期中,它可能:
提供这些更新的基础设施的安全性对于生态系统中所有设备的安全性至关重要。
攻击者不是直接攻击设备,而是试图在创建和分发这些更新的基础设施中找到漏洞。
结果是,对可能的威胁进行分析,并将其纳入威胁模型的开发中,这本身就是一项非常艰巨的任务。在下面找到更多的资源。
额外的资源:
留下回复