SPTool:SAND攻击树等价性检查工具
1. 引言与动机
攻击树是一种图形化模型,旨在表示和评估系统或组织的安全漏洞。它是一种标记的与或树,根节点代表攻击者的最终目标,其余节点将该目标分解为子目标,使用析取(OR)和合取(AND)细化。攻击树的叶子节点代表基本攻击步骤,即攻击者为实现目标需要执行的操作。由于攻击树不仅支持安全问题的表示,还能帮助进行定量分析,因此该形式在行业中常被用作促进风险评估过程的手段。
然而,简单的与或结构不足以捕捉所有现实生活中的特征。经典攻击树的一个主要缺点是,它们无法区分需要按顺序执行的操作和可以并行执行的操作。为了克服这一限制,SAND攻击树应运而生,它通过在形式主义中引入顺序合取运算符(SAND)扩展了经典攻击树,从而允许区分需要按顺序执行的操作和可以并行执行的操作。
例如,在一个ATM攻击场景中,攻击者要偷钱,首先需要获取相关凭证,然后从受害者的银行账户中取款。这就需要使用SAND运算符来表示这种顺序关系。而获取凭证时,偷卡和获取PIN码的顺序无关紧要,可使用AND运算符。获取PIN码有两种选择,社交工程或找到写有PIN码的便签,这两种选择是析取关系,使用OR运算符。
多个结构不同的(SAND)攻击树可能是等价的,即代表相同的攻击场景。为了确定哪些(SAND)攻击树是等价的,人们引入了许多形式语义,如基于布尔函数、多集、串并联图等。选择合适的语义与要执行的定量分析类型密切相关。例如,如果要评估攻击的概率,可以使用攻击树的布尔解释;如果要评估攻击时间或成本,则需要使用基于多集的语义。因此,能够快速验证两棵树是否等价非常重要。
此外,实际使用中的攻击树增长迅速,可能达到数千个节点,手动处理变得不可行,需要自
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



