攻击树(Attack trees)是表示资产或是目标在哪些情形下会受到攻击的概念图。攻击树可以用在许多不同的应用中。在信息技术的领域中,会用攻击树来描述电脑系统中的威胁(英语:Threat (computer)),以及可能达成该威胁的攻击方式。不过攻击树的用途不限于传统信息系统的分析。在国防及太空科技上,也会使用攻击树来分析防篡改电子系统可能会受到的威胁(例如军用飞机上的航空电子设备)。攻击树越来越常应用在电脑控制系统的分析上(尤其是有关电子输电系统上)。也会用攻击树来展示对于实体系统可能有的威胁。
有关攻击树早期的叙述,有些是出自布鲁斯·施奈尔发表的论文及文章中,他当时是Counterpane Internet Security(英语:Counterpane Internet Security)的首席技术官。施奈尔显然有参与攻击树概念的形成,也有宣传推广此一概念。不过,根据攻击树最早期的已发表论文,在初期发展时,美国国家安全局可能也有参与。
攻击树很类似威胁树(threat trees),但不完全相同。Edward Amoroso在1994年曾讨论过威胁树。
攻击树是多层的树状图,包括一个根,很多叶子,以及子节点。从根往上层看,在子节点成立时,父节点才会成立。若根节点也成立时,表示已攻击成功。每一个节点的成立只和其直接子节点有关。
一个节点也可能是其他节点的子节点,此时,就代表要发动攻击,在逻辑上需要有多重的步骤。例如,考虑教室一台锁在讲台上的电脑,若要偷窃该台电脑,可能要将锁剪断,或是锁打开的情形下偷窃。锁打开的情形可能是因为用其他锁匙开锁,或是获取锁匙,获取锁匙的方式可能是威胁锁匙持有人、贿赂钥匙持有人,或是直接从存放处(例如在鼠标垫下)偷拿。因此可以画出四层的攻击树,其中一个路径是(贿赂钥匙持有人、获取锁匙、开锁、偷窃电脑)。
攻击树和已发展的故障树形式有关。故障树的方法论,在父节点因为子节点而符合条件时,会用布尔逻辑式来处理各个闸的成立条件。若计算各节点的先验几率(英语:A priori probability),可以用贝叶斯定理计算几率较高节点的几率。不过在实务上,准确的几率估计可能无法获取,也有可能要搜集资料的成本太高。有关有攻击者的电脑安全而言,事件的几率分析可能不是独立的,也不是均匀分布的,因此不适用贝叶斯分析。
由于故障树分析中使用的贝叶斯分析不一定适用应用在攻击树上,分析者会用其他的技术来分析特定攻击者会用的攻击方式。其中可能包括比较攻击者的能力(时间、金属、技巧、设备)以及特定攻击需要的资源需求。若某个攻击方式接近(甚至超过)攻击者的能力,比较不会被攻击者采用,比较容易采用的是便宜又容易的攻击。攻击到什么程度才满足攻击目的,也会影响攻击者的选择。若某一个攻击方式在攻击者的能力范围内,又可以满足目的,就比较容易被采用。
若是在处理特定的攻击时,攻击树可能会变的大而复杂。完整的攻击树会包括上百个到上千个不同路径,这些路径都可以完成攻击。这样的攻击树在确认有哪些威胁,以及如何处理上相当有用。
攻击树可以用来定义信息保障策略。不过重要的是要考虑到实施信息保障策略后,攻击树是否也要对应的调整。例如防护电脑病毒的一种方式是拒绝系统管理者层次的访问(这类访问可以改变已安装程序及现有系统目录),而不是使用软件包管理系统。后者会在攻击树中增加因软件包管理系统的设计问题或是漏洞利用而遭攻击的风险。
最有效可以减轻攻击树中的威胁的方式,是在最接近“树根”的位置减轻。此作法在理论上合理,但在实务上,减轻单一威胁往往需要以影响系统部机能正常运作为其代价。例如病毒感染Microsoft Windows系统的威胁可以用一般用户账号(非管理者账号)以及NTFS来代替FAT文件系统,让一般用户无法修改操作系统,即可有相当改善。使用此方式就让用户无法用病毒传染操作系统,但是,若用户需要用到管理相关的功能,此作业需要用户进行切换,因此在运作上又产生不必要的程序,并且在攻击树上增加了其他的威胁。而且,用户没有管理者权限时,病毒仍然可以感染用户的文件以及文件。