攻击树分析:从攻击者目标反向展开路径的建树规则_第1页
攻击树分析:从攻击者目标反向展开路径的建树规则_第2页
攻击树分析:从攻击者目标反向展开路径的建树规则_第3页
攻击树分析:从攻击者目标反向展开路径的建树规则_第4页
攻击树分析:从攻击者目标反向展开路径的建树规则_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

攻击树分析:从攻击者目标反向展开路径的建树规则本文档提供:根节点书写对照表1张;叶子节点准入判定表1张;AND/OR连接判定表1张;概率来源分层表1张;OR合成与AND合成两个公式及变量定义表1张;攻击树-防御树交叉登记表1张;加固优先级排序表1张;决策规则6条;完整示例1个(含四次试错);三套场景操作序列表1张;来源说明表1张。2026-11-03这一节的标题读完你能拿到什么这一节在全文中的功能一、根节点写什么:从攻击者目标写起的第一行根节点书写对照表(表1),含正例与三类反例确定整棵树的起点,防止根节点写成漏洞名或威胁类别二、分解到哪一层停:叶子节点必须同时满足三个条件叶子节点准入判定表(表2)给出停止分解的判定标准,防止树无限展开或过早收口三、同一父节点下的子路径怎么连接:AND门和OR门的判定AND/OR连接判定表(表3)解决子节点之间是全部完成还是任一完成的连接问题四、概率赋值:三个来源层级分开放,不混在同一棵子树概率来源分层表(表4)与叶子赋值登记行给出叶子概率的数据来源、赋值规则和标签写法五、OR合成与AND合成:从叶子概率算到根节点式(1)、式(2)及变量定义表(表5)把叶子概率逐层合成到根节点,输出可对照的数值六、攻击树与防御树对接:共享节点编号的登记规则攻击树-防御树交叉登记表(表6)解决两张树建完后如何对齐、防御措施挂在哪一层七、哪条路径先加固:排序规则与六条决策规则加固优先级排序表(表7)与决策规则6条把合成结果转化为可执行的加固顺序和退路八、一次完整的建树:从零散威胁清单到加固优先级完整示例,含起点、分步操作、四次试错、终点展示建树、赋值、对接、排序在真实操作顺序中的落地九、三套场景操作序列:全量、精简、极简三套序列的检查项与公式增减对照表(表8)按交付对象选择执行深度按第一列在正文找对应那节,按第二列判断这节有没有你要的东西,按第三列判断这节是否对应你当前卡住的位置。威胁建模会议开完,桌上是一份按STRIDE分类的威胁清单,共27条,每条独立成行;数据流图和信任边界图已经画好,但清单里的威胁互相之间是什么关系、哪几条是同一条攻击路径上的前后步骤,清单本身看不出来。一、根节点写什么:从攻击者目标写起的第一行一张只有根节点和第一层子节点的初始树,文件名可以定为“攻击树-<系统名>-v0.1”。根节点写攻击者最终要达成的一件事,格式为“动词+对象+成功判定”。成功判定要写出“做到什么程度算达成”,写不出成功判定的根节点不进入分解。表1根节点书写对照根节点写法属于哪类问题在哪改成什么获取生产数据库管理员账户的读写权限;成功判定:能以管理员身份执行至少一条INSERT或UPDATE语句且不触发告警合格无保留SQL注入漏洞漏洞名漏洞是路径上的一个动作,不是最终目标获取生产数据库管理员账户的读写权限数据泄露威胁类别没有写攻击者要动哪个对象、做到什么程度导出客户表中不少于1万条含手机号的记录攻击者很厉害评价句没有可观测的成功信号删除,不进入树表1第三行的改法展示了一个操作:威胁清单里的“数据泄露”不能直接当根节点,要落到具体的数据对象和数量门槛。第四行不是改写问题,是整句删除,因为评价句不携带任何可分解的子目标。根节点定下之后,写第一层子目标之前先做一件事:把根节点的成功判定抄到树文件第一行,后续每个叶子节点的“成功信号”列必须能向上追溯到这条判定。追溯不上的叶子,要么删,要么改成功信号,直到能追溯。二、分解到哪一层停:叶子节点必须同时满足三个条件分解深度不按层数定,按叶子节点的准入条件定。一个节点同时满足表2三行,才停止分解;任一行不满足,继续往下拆。表2叶子节点准入判定检查项什么算合格不合格时怎么改示例行(填好的)单一攻击动作能被一个具体工具、一条命令或一个社会工程话术执行;句子里只有一个动词句子里有两个以上动词的,拆成两个节点,用AND门连接向运维人员发送伪装成监控告警的邮件,附件为可执行文件挂有当前防御措施“当前防御措施”列写出具体措施名称,不写“有防护”“已加固”写不出措施名称的,先去查该资产的控制清单,查不到填“未见措施”并标红邮件网关附件类型白名单;终端EDR对可执行文件落地告警有可观测成功信号写出日志名、告警名或状态变化,例如“邮件网关日志出现放行记录”“终端进程树出现子进程”只写“攻击成功”的,改写成具体记录位置邮件网关放行日志中该邮件状态为“delivered”,且终端EDR记录到子进程创建表2第一行的示例:“向运维人员发送伪装成监控告警的邮件,附件为可执行文件”只有一个动作“发送”,合格。如果写成“发送钓鱼邮件并诱导点击运行”,就含两个动作,应拆为“发送钓鱼邮件”和“诱导收件人运行附件”两个节点,用AND连接。第二行的“未见措施”标红不是装饰。标红后,该叶子在第五节的概率赋值里默认取该来源层级的最高值,并在第七节排序时优先进入加固清单。这条规则的作用是让“没有防御措施”的叶子在数值上体现出来,而不是靠评审人回忆。第三行的成功信号写不出时,常见原因是该动作发生在无日志覆盖的资产上。这时不删叶子,在“成功信号”列写“无日志覆盖—需补采集”,并把补日志采集作为一条加固动作进入第七节清单。三、同一父节点下的子路径怎么连接:AND门和OR门的判定连接方式判断发生在父节点和它的直接子节点之间。判断依据是:子节点要全部完成,父目标才达成,用AND;任一子节点完成,父目标即达成,用OR。拿不准时,问一句“攻击者少做哪一个子节点,父目标还成立吗”,成立用OR,不成立用AND。表3AND/OR连接判定父目标子节点连接判定依据填错会出什么事获取数据库管理员读写权限拿到管理员口令;建立到数据库的网络通路AND缺网络通路时,有口令也连不上误用OR会把概率抬高,高估攻击成功率获取数据库管理员读写权限通过应用层注入提权;通过运维终端窃取凭据;通过备份文件还原口令OR三条路径任一条走通即可误用AND会把概率压到接近零,漏掉真实高风险路径在目标终端执行任意代码投递可执行文件;绕过终端EDR拦截AND只投递不绕过,代码不执行误用OR会低估绕过EDR的难度导出客户表数据查询到目标表;将结果外传至可控位置AND查到但传不出,数据未泄露误用OR会漏掉外传环节的防御措施表3第二行的OR门展示了攻击树与威胁清单的核心差异:清单里“注入提权”“凭据窃取”“备份还原”是三条独立威胁,在树里它们是同一父目标下的三条并行路径,合成时按OR处理。第三行的AND门说明一个常被漏掉的环节:投递和绕过是前后步骤,不是替代关系。AND门下的子节点顺序不影响概率合成,但影响第七节的加固排序:AND链上最薄弱的一环(概率最高或防御最弱)决定整条链的可加固空间,排序时先看这一环。四、概率赋值:三个来源层级分开放,不混在同一棵子树叶子节点的概率不从单一数字拍脑袋给,按数据来源分三层,每层用不同标签和赋值方法。同一棵子树内混用两个以上层级时,合成结果的误差无法追溯,这是攻击树赋值最常见的失效点。表4概率来源分层来源层级数据从哪拿赋值方法标签写法适用叶子历史事件数据内部事件库、行业公开事件统计中同类动作的发生次数与尝试次数之比发生次数÷尝试次数,得到区间;样本不足20次时降级为专家判断层[历年公开信息归纳,以目标数据为准]有同类历史记录的常规攻击动作专家判断安全团队三人以上独立给区间,取交集;交集为空时取并集后取中位数每人给“低/中/高”对应区间,如低0.05—0.15、中0.15—0.40、高0.40—0.70[经验建议,因人参考]无历史数据、但团队有实操经验的动作渗透测试结果最近一次授权测试的实测结果:尝试次数与成功次数成功次数÷尝试次数;单次测试结果只作参照,不作唯一依据[示例案例,细节为合理设定]测试覆盖到的资产和动作表4的示例行:某叶子“向运维人员发送伪装邮件”在内部事件库中有过去24个月的记录,尝试次数48次,其中收件人打开附件11次,赋值11÷48≈0.23,标签用[历年公开信息归纳,以目标数据为准]。同一棵树上另一个叶子“绕过终端EDR”没有历史记录,由三名分析师独立给区间,分别给0.10—0.20、0.15—0.30、0.20—0.35,取交集0.20—0.30,中位数0.25,标签用[经验建议,因人参考]。这两个叶子如果同属一条AND链,合成时标签保留在变量表里,不因为相乘而丢失来源信息。同一棵子树混层时的处理规则:如果一个AND或OR节点的直接子节点来自不同层级,先按层级分别合成,得到各层级的子树概率,再在父节点处合成。这条规则写在表5的变量定义“合成顺序”列,避免把不同可信度的数字直接相乘。五、OR合成与AND合成:从叶子概率算到根节点合成从叶子往根节点逐层做,每个节点只用自己的直接子节点算一次。OR节点用式(1),AND节点用式(2)。式(1)OR节点合成P式(2)AND节点合成P表5变量定义与合成规则变量含义取值来源合成顺序备注P_OR父目标在OR门下的达成概率由直接子节点的P_i代入式(1)先按来源层级分组算,再跨层合成子节点数n≥2P_AND父目标在AND门下的达成概率由直接子节点的P_i代入式(2)同上任一P_i为0时结果为0,需检查该叶子是否“未见措施”误填P_i第i个直接子节点的概率叶子取表4赋值;中间节点取上一层合成结果自底向上每个P_i保留来源标签n直接子节点个数数树上的直接连线不适用OR门下n=1时该门无意义,合并节点式(1)的两个常见错误。第一,把多个P_i直接相加。三条路径各0.3时,相加得0.9,超过单条路径的实际合成值,且路径多于三条时会超过1。第二,OR门下混入AND链的子节点却按单项处理,把一个需要多步完成的路径当成一步可达。式(2)的两个常见错误。第一,把AND理解为取最小值。两个步骤各0.5时,取最小值得0.5,乘积得0.25,前者高估了一倍。第二,AND链上某一步“未见措施”时按0.5默认值代入,实际应按该来源层级的最高值代入,并在变量表备注列标出该叶子的节点编号。校验方法。手里有各叶子的P_i和来源标签,从表4的赋值登记行拿到;算出的根节点P_OR与上一版本树的根节点值对照,变化超过0.15时逐层检查是哪一层合成导致;同时与第七节排序表的前三名对照,根节点概率上升但排序未变时,检查是否新增了“未见措施”叶子。合成做完后,把每个中间节点的P值和节点编号写回树文件,不停在根节点一个数上。第七节排序要用中间节点的值定位到具体子树,只有根节点值无法定位。六、攻击树与防御树对接:共享节点编号的登记规则防御树按防御措施的组织方式建,节点是“检测”“阻断”“恢复”这类防御动作;攻击树节点是攻击动作。两张树不合并,用共享编号登记表对齐。对齐键是攻击树的叶子节点编号,防御树的每个防御措施节点标注它作用于哪个攻击树叶子。表6攻击树-防御树交叉登记攻击树叶子编号叶子攻击动作防御树节点编号防御措施作用位置覆盖判定登记日期AT-L-014向运维人员发送伪装邮件DT-D-003邮件网关附件类型白名单投递环节阻断部分覆盖:白名单外附件放行日志有记录,白名单内可执行文件未拦2026-10-20AT-L-015诱导收件人运行附件DT-D-004终端EDR对子进程创建告警执行环节检测未覆盖:告警只记录不阻断,且运维终端未装EDR2026-10-20AT-L-022绕过终端EDR拦截DT-D-004终端EDR对子进程创建告警执行环节检测未覆盖:该终端未部署2026-10-20AT-L-031从备份文件还原口令DT-D-011备份文件加密存储与访问审批获取环节阻断全覆盖:访问审批记录可查,加密密钥分离保管2026-10-20表6的“覆盖判定”列写三档:全覆盖、部分覆盖、未覆盖。全覆盖的叶子在第七节排序时降一档;部分覆盖和未覆盖的叶子按原排序进入加固清单。判定依据写进“覆盖判定”列的文字里,不另设一列“理由”,避免列数超过6列。登记表按攻击树叶子逐行建,一个叶子对应多个防御措施时拆成多行,防御树节点编号重复出现。两张树任何一张更新时,登记表对应行的“登记日期”同步刷新;连续两个评审周期未刷新的行,在第七节排序时视为“覆盖状态过期”,按未覆盖处理。防御树对接的额外切口:防御措施挂在哪一层,决定它能否被算进概率。挂在叶子上的防御措施只影响该叶子的P_i;挂在中间AND节点上的防御措施(例如“网络分段”作用于整条AND链)不能只改一个叶子的值,要在该AND节点的合成结果上乘一个整链折减系数,系数来源写进表6的“作用位置”列,不写进叶子。七、哪条路径先加固:排序规则与六条决策规则排序用两个值:叶子所在子树到根节点的合成概率、该叶子的覆盖判定。先按覆盖判定分组,未覆盖组排前,部分覆盖组次之,全覆盖组排后;组内按合成概率从高到低排。表7加固优先级排序排序叶子编号叶子攻击动作所在子树合成概率覆盖判定加固动作负责岗位1AT-L-022绕过终端EDR拦截0.31未覆盖运维终端补装EDR并开启阻断模式终端安全岗2AT-L-015诱导收件人运行附件0.23未覆盖EDR告警改为阻断,白名单外可执行文件隔离终端安全岗3AT-L-014向运维人员发送伪装邮件0.23部分覆盖邮件网关增加可执行文件压缩包内层扫描邮件安全岗4AT-L-031从备份文件还原口令0.09全覆盖维持现有审批,季度抽查审批记录备份管理岗表7第一行排序1的依据写全:AT-L-022在AND链“投递+绕过”上,整链合成概率0.31,覆盖判定未覆盖,两个条件都指向最前。第四行排序4的全覆盖叶子不删,保留在表里做季度抽查对象,加固动作写成“维持+抽查”,不写“无动作”。决策规则6条。规则1(未见措施优先)。如果某叶子的“当前防御措施”列为“未见措施”,则该叶子在排序中直接进入未覆盖组首位,不参与组内概率比较。退路:补查控制清单后仍无措施,按此规则执行;查到措施则改填措施名称并重新判定覆盖。规则2(AND链短板优先)。如果一条AND链的合成概率高于同层级OR门下的其他子树,则先加固该AND链上P_i最高的叶子。退路:该叶子已是全覆盖时,改看链上P_i次高的叶子,不跳过整条链。规则3(覆盖状态过期)。如果表6某行“登记日期”距今超过两个评审周期,该行覆盖判定按未覆盖处理,直到刷新。退路:刷新后覆盖判定恢复原档,排序随之调整。规则4(概率来源混层时降权)。如果某子树的叶子全部来自[经验建议,因人参考]层,该子树合成概率在排序时乘0.8的降权系数,并在表7备注列标出。退路:补到至少一个[历年公开信息归纳,以目标数据为准]层的叶子后,取消降权。规则5(OR门单路径异常)。如果OR门下某条路径的合成概率超过0.5,而其余路径均低于0.1,先核查该高概率路径的叶子赋值来源,确认不是单条[示例案例,细节为合理设定]标签撑起整条路径。退路:确认来源可靠则维持,来源单薄则补第二来源后重算。规则6(防御树对接失败)。如果某叶子在表6中找不到任何防御树节点,该叶子按未覆盖处理并进入排序,同时把“防御树补建”作为一条独立加固动作挂在排序表末行。退路:补建完成后回到表6登记,排序表对应行删除。矛盾与权衡。攻击树要求尽量展开路径以覆盖更多攻击方式,展开越多叶子越多、赋值工作量越大;防御树要求每个叶子有对应防御措施,否则登记表出现空行。两条要求的张力出现在“展开粒度”与“对接完整性”之间。权衡规则:展开粒度以叶子准入三条件为准,满足即停,不为凑防御树节点而多拆一层;对接完整性以“未覆盖叶子必须进入排序表”兜底,允许防御树暂时缺节点,不允许缺节点后叶子从排序表消失。退路:当展开导致叶子数超过50且防御树对接率低于60%时,暂停新增叶子,先补齐现有叶子的对接行,再继续展开。八、一次完整的建树:从零散威胁清单到加固优先级以下示例为合理设定,细节用于展示建树规则在操作顺序中的落地。起点。某内部业务系统的威胁建模会后,手里有27条按STRIDE分类的威胁、数据流图和信任边界图,没有攻击树。团队要先回答“哪三条路径最先加固”。分步操作与不顺利环节。第一轮。看到信号:27条威胁里,“注入提权”“凭据窃取”“备份还原”三条被分在不同STRIDE类别下,评审时各评各的。当时以为问题在威胁分类不够细,准备把STRIDE拆成更细的子类。试了之后发现:拆细后威胁变成41条,三条路径之间的关系仍然看不出来,且新拆出的条目互相重复。推翻的假设:分类粒度不是问题所在,问题是没有一个共同的父目标把这几条串起来。换路:先写根节点“获取生产数据库管理员读写权限”,成功判定写成“能以管理员身份执行至少一条INSERT或UPDATE语句且不触发告警”,再把三条威胁挂到根节点下,判定为OR连接。第二轮。看到信号:挂上OR门后,“凭据窃取”这条下面又分出“钓鱼邮件”“运维终端窃取”“配置文件明文口令”三条,每条都满足叶子准入的动作条件,但“当前防御措施”列三条都只写了“有安全防护”。当时以为防御措施列可以留到后面补。试了之后发现:三条叶子的概率无法赋值,因为不知道防护到什么程度;强行按专家判断给0.3、0.2、0.1,合成结果0.496,与上一版本拍脑袋给的“凭据窃取风险中等”对不上。推翻的假设:防御措施列不是补充信息,是概率赋值的前置条件。换路:回到资产控制清单逐条查措施名称,三条分别查到“邮件网关白名单”“终端EDR”“配置文件权限收紧”,其中“终端EDR”查到运维终端未部署,填“未见措施”并标红。第三轮。看到信号:补齐措施名称后重算,“钓鱼邮件”叶子在事件库有48次尝试、11次打开,赋值0.23;“运维终端窃取”无历史数据,三名分析师给区间取中位数0.15;“配置文件明文口令”查到权限已收紧,但过去12个月有2次权限配置回退记录,赋值0.08。三条OR合成得0.398。当时以为合成完就可以排序了。试了之后发现:表6对接时“钓鱼邮件”叶子对应的邮件网关白名单只拦了部分附件类型,覆盖判定是“部分覆盖”,而“运维终端窃取”是“未覆盖”,两者的合成概率接近(0.23对0.15),但覆盖状态不同,排序会翻转。推翻的假设:概率高低单独决定排序,覆盖判定要先分组。换路:按覆盖判定分组,未覆盖组排前,“运维终端窃取”排到“钓鱼邮件”之前。第四轮。看到信号:按分组排完后,“运维终端窃取”排第一,加固动作写“补装EDR”。复核时发现该叶子所在的AND链还有另一个子节点“在终端上执行提权脚本”,P_i为0.35,但它的防御措施列写的是“终端登录审计”,覆盖判定为“部分覆盖”,整条AND链合成概率0.15×0.35=0.0525,低于OR门下其他路径。当时以为AND链概率低就可以往后排。试了之后发现:该AND链的“终端登录审计”只记录不告警,且审计日志保留期只有7天,覆盖判定虽然是部分覆盖,实际可追溯性接近零;如果按概率排在后面,这条链的加固会被拖到下一季度。推翻的假设:AND链合成概率低不等于加固优先级低,覆盖判定的“部分覆盖”内部还要看证据是否可追溯。换路:在表6的“覆盖判定”列对“部分覆盖”加一句证据可追溯性说明,可追溯性为零的部分覆盖按未覆盖处理,该AND链整体前移。终点。排序表前三行:排序1“运维终端窃取”(未覆盖,子树合成概率0.15,但AND链整链按未覆盖处理)、排序2“钓鱼邮件”(部分覆盖且证据可查)、排序3“配置文件明文口令”(全覆盖但12个月内有2次回退,按部分覆盖处理)。表6登记了14行叶子-防御节点对应关系,其中3行“未见措施”、4行“部分覆盖且证据不可追溯”、7行“全覆盖或部分覆盖且证据可查”。根节点P_OR从0.398修正为0.441,变化原因写进树文件的版本说明。变量表(示例案例中的关键变量与处置变化)变量案例中的情形如果变量不同处置变化事件库同类动作尝试次数48次少于20次按表4规则降级为专家判断层,标签改为[经验建议,因人参考]运维终端EDR部署状态未部署已部署且开启阻断该叶子覆盖判定改“全覆盖”,排序降档,加固动作改为“季度抽查告警记录”审计日志保留期7天不少于90天该AND链覆盖判定从“部分覆盖且证据不可追溯”改为“部分覆盖且证据可查”,排序后移权限配置回退次数(近12个月)2次0次“配置文件明文口令”叶子从部分覆盖改全覆盖,排序降档叶子总数27条威胁展开后31个叶子超过50个按第七节矛盾权衡规则,暂停新增叶子,先补对接行防御树对接率14/31≈45%低于60%且叶子数超50触发权衡退路,先补对接再展开变量表中权重较高的变量是“审计日志保留期”:它决定“部分覆盖”内部是否按未覆盖处理,直接影响排序前三位;其余变量影响单条叶子的档位,不改变分组规则。九、三套场景操作序列:全量、精简、极简选择依据:对外交付或监管报送走完整版;内部评审且时间受限走精简版;岗位交接或新成员上手走极简版。三套版本的差异是检查项和公式的实际增减。表8三套场景的检查项与公式增减版本执行哪些步骤保留的公式去掉的检查项不能妥协的底线完整版根节点→全量叶子准入→全量AND/OR判定→三层概率赋值→式(1)式(2)逐层合成→表6全量对接→排序与6条决策规则式(1)、式(2)全量使用不删每个叶子有成功信号和防御措施名称;每个中间节点有P值;排序表每行有负责岗位精简版根节点→本次决策相关子树的叶子准入→相关子树的AND/OR判定→只用已有历史数据和渗透测试结果赋值→相关子树合成→对接本次涉及的叶子→排序只算相关子树的式(1)式(2)跳过非本次决策子树的叶子展开和专家判断赋值被跳过的子树在树文件标“本期未展开”,不能默认其为低风险;排序表不能只有概率没有覆盖判定极简版根节点→只展开“未见措施”和“部分覆盖且证据不可追溯”的叶子→单层OR合成只算根节点下第一层OR的式(1)去掉AND链展开、去掉专家判断层、去掉中间节点回写极简版只用于交接时快速定位当前最薄弱的几条路径,不产出可对外交付的完整攻击树记录极简版的一条具体排查规则:某叶子在表6中找不到防御节点,或覆盖

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论