ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

从攻击者视角看安全:ATTCK框架学习笔记与实战拆解

2026/9/15 22:02:56 拓冰建站 浏览量
从攻击者视角看安全:ATTCK框架学习笔记与实战拆解 1. 写在前面为什么每个搞安全的人都该啃一遍ATTCK我第一次看到MITRE ATTCK矩阵的时候第一反应是这玩意儿不就是个攻击技术的字典吗。但真正花了两周时间把每个Tactic下面的Technique过了一遍再去复盘实际安全事件我才意识到自己之前的想法有多肤浅。ATTCK不是一本字典它是一整套以攻击者视角看问题的思维训练框架是安全运营、威胁检测、事件响应、红队评估之间互相沟通的通用语言。很多刚入行的朋友学ATTCK时容易走两个极端一种是把它当成背诵材料整天盯着矩阵图记编号另一种是觉得它太理论跟实际业务脱节学完就忘。这两种我都经历过。这篇笔记算是我的第1期学习总结着重讲清楚三件事第一ATTCK是怎么来的、为了解决什么痛点而生第二它里面那些绕口的术语到底在说什么用大白话怎么理解第三拿到一个真实告警或攻击事件怎么借助ATTCK把它拆明白。后面再考虑写检测工程、红队映射之类的话题。这篇笔记适合两类人一是刚接触威胁建模、想建立系统化攻防认知的安全新人二是有一定运营经验、想把检测规则和事件响应做得更体系化的蓝队同学。红队朋友也能看不过等以后聊到具体TTP的时候更对口。2. 背景篇ATTCK诞生的逻辑和它解决的核心问题2.1 从漏洞指标到行为指标的认知升级在讲ATTCK之前先聊聊它之前那个时代是怎么做安全的。过去搞检测大家习惯围绕IOC失陷指标来工作比如恶意文件的哈希、恶意域名、恶意IP地址。这种思路的逻辑是我知道坏东西长什么样我拦住它。但问题很明显攻击者换个哈希、换台服务器IOC就失效了。而且高级持续性威胁APT往往不靠单个漏洞打天下他们利用的是合法的系统工具、常规的管理协议每个动作单独拿出来看都不像恶意行为。ATTCK的理念是把关注点从恶意文件长什么样转移到攻击者正在做什么。它把攻击行为抽象成了战术和技术两个维度战术描述攻击者的阶段性目标技术描述达到目标的手段。这种行为视角带来的优势是攻击者可以不使用任何恶意软件但终究逃不掉执行命令、移动、提权这些行为。只要你的检测规则能覆盖行为模式就能抓住那些没有恶意样本的无文件攻击。这个转变用大白话讲就是以前你靠通缉令上的照片抓人现在你靠行为画像抓人。照片可以整容但一个人总要吃饭、总要坐车、总要跟人说话行为模式很难彻底隐藏。2.2 MITRE到底是家什么机构为什么由它来做很多朋友第一次看到MITRE会误以为它是一家商业安全公司。其实不是。MITRE是美国一个非营利性质的联邦资助研发中心长期为政府机构提供系统工程、标准化研究等方面的工作。它在安全领域最有名的两样东西一个是CVE漏洞编号体系另一个就是ATTCK知识库。MITRE做ATTCK有两个天然优势。第一它有大量真实攻防数据的积累尤其是来自红队评估和真实事件报告框架里的技术条目不是拍脑袋想的而是从真实攻击活动中提取出来的规律。第二它足够中立。ATTCK是一个公开的知识库不是某家厂商的私有产品所以SIEM、EDR、威胁情报平台都会用它作为共同的参照标准。打个比方MITRE就像安全界的标准化委员会它不做裁判但它制定了一本所有人都愿意查的手册。2.3 ATTCK的版本演进和矩阵版图我2019年第一次看ATTCK的时候Enterprise矩阵才不到十来个战术、两百多个技术。到现在企业矩阵的战术已经扩展到了十几个方向技术数量也在持续增长。另外还有ATTCK for Mobile移动端和ATTCK for ICS工业控制系统分别覆盖移动平台和工控环境。版本演进背后其实透露出一个信号攻击者的手法在不断变化框架必须跟着现实威胁同步迭代。比如云环境普及之后ATTCK新增了不少针对云账户、容器、Kubernetes的技术条目勒索软件大规模爆发之后数据加密、数据窃取这些条目被细化。这个框架不是一本固定死板的教科书它更像一份持续更新的威胁行为观察报告。我自己的建议是入门阶段先吃透Enterprise矩阵因为绝大多数企业的安全建设都是围绕IT环境展开的学完企业版之后再看其他领域会轻松很多。3. 术语拆解那些绕口的词到底在说什么ATTCK这套体系里最让人头大的地方就是术语太多。Tactic、Technique、Procedure、Group、Software、Mitigation、Detection、Data Source这些概念之间的关系如果不搞清楚后面读报告、写规则都很容易拧巴。这里我用自己的理解逐个拆一遍。3.1 Tactic战术攻击者的阶段性目标战术是一个攻击者在某一阶段想要达成什么目的。它不是具体的动作而是动作背后的意图。目前企业矩阵里的战术包括侦察、资源开发、初始访问、执行、持久化、提权、防御规避、凭证访问、发现、横向移动、收集、命令与控制、数据渗出、影响等。拿凭证访问这个战术来举例攻击者在这个阶段的意图是获取合法账号的凭证。至于他是用键盘记录器去录、还是去翻共享文件里的明文密码、还是去钓鱼骗取账号这些都是具体的技术但战术只有一个——拿到凭证。理解战术的关键在于战术是为什么技术是怎么做的。在写检测规则的时候我们应该先问攻击者在某个阶段企图达成什么目标再去想有哪些具体手法可以实现这个目标这个思考顺序非常重要。3.2 Technique技术达成目标的具体手法技术就是为了达成某个战术目标而采取的特定手法。继续拿凭证访问举例它下面的技术有输入捕获暴力破解凭据转储来自密码存储的凭据等每个技术都是一种具体的手段。技术还有一个重要属性就是它可能被多个战术使用。同一个动作在不同阶段可能有不同的意图。比如PowerShell执行在执行战术里它是执行恶意代码的手段在防御规避战术里它可能是攻击者用它来绕过应用程序白名单。一个技术挂到哪个战术下面取决于它在当时那个攻击场景里服务于什么目的。这也是初学者比较容易搞混的地方——你看到一条命令执行记录首先要判断它服务于哪个战术意图而不是简单地对号入座。3.3 Procedure过程技术在实际攻击中的具体实例如果说技术是怎么做事情的方法过程就是某个具体攻击者是怎么用这个方法做事情的。过程通常对应一组操作步骤或命令序列是技术下面的具体实现例子。举个例子技术通过PowerShell执行描述的是攻击者可能使用PowerShell来执行任意代码这种手法那过程就可能写上某个攻击组织在某某攻击活动中运行了这样一条命令命令内容是什么。过程通常来源于真实的事件报告是技术条目中活生生的案例。理解了这三层关系之后有一个常见的误区需要避开很多人在做威胁建模时直接把Procedure当成了检测对象结果写出的规则非常挑剔只能识别某一个特定命令序列。一旦攻击者换一种写法规则就失效了。正确的检测设计应该盯住Technique层面的行为共性而不是某个具体的命令片段。3.4 Group、Software、Mitigation、Detection、Data Source再补充几个常打交道的高级概念。Group威胁组织也叫APT组织或攻击团伙。ATTCK把某个组织的行为特征汇总分组标注这个组使用过哪些技术、用到过哪些工具。它帮我们回答的问题是如果是这个团伙在打我们我该重点防什么Software攻击者使用过的软件包括恶意软件和合法工具。特别要注意那个概念——攻击者还经常使用合法的系统管理工具比如PowerShell、PsExec、WMI这些ATTCK把它们归为合法工具Legitimate Tools。这也是为什么纯粹的恶意软件查杀永远不够行为检测才是关键。Mitigation缓解措施也就是怎么做可以降低这个技术被利用的风险。比如针对暴力破解的缓解措施包括设置账户锁定策略、启用多因素认证、限制管理账号的远程登录等。Detection检测建议这是ATTCK条目里给蓝队的提示。每条技术下面都会列一些如果攻击者使用该技术安全团队应该关注什么数据源、要查哪些字段。写到这里不得不感叹一句MITRE做这件事实在太良心了相当于免费给每个检测场景做了标注。Data Source数据源也就是哪些日志和遥测数据能反映这个技术的行为。进程命令行参数Windows事件日志网络流量元数据这些都属于数据源。现在的ATTCK版本里数据源比之前定义得更细了不再简单写进程监控而是具体到进程创建“进程命令行”这种粒度。3.5 一张表看明白易混术语Tactic 战术攻击者的阶段性目标 例子凭证访问Technique 技术达成目标的手法例子凭据转储Procedure 过程某团伙的具体实现例子用Mimikatz执行某某命令Group 组织威胁团伙 例子某某APT组织Software 软件攻击者用的工具/恶意软件 例子某远控木马Mitigation 缓解措施降低风险的办法 例子启用多因素认证Detection 检测建议蓝队该怎么发现 例子监控lsass.exe进程访问Data Source 数据源反映行为的数据 例子进程访问日志、命令行日志4. 案例拆解一个攻击事件怎么映射到ATTCK光讲术语太抽象我拿一个典型的攻击场景从攻击者的视角走一遍然后再切到蓝队视角看看每一步映射到ATTCK的哪个战术、哪个技术。这个过程也是我平时复盘安全事件时最常用的方法。为了避免敏感信息这里不指名道姓说具体团伙只描述行为模式。4.1 一个典型的攻击链长什么样假设一个攻击活动的流程大致是这样攻击者先扫描公网资产发现某台对外开放的Web服务器存在一个远程代码执行漏洞于是利用这个漏洞拿到第一次立足点随后攻击者在服务器上执行PowerShell命令从远端下载一个后门程序建立了持久化再然后攻击者枚举本地用户和网络共享发现了域管理员的凭据接着利用该凭据通过管理协议横向移动到域控服务器最终在域控上打包敏感数据并传回外部。这个流程在真实事件中非常常见攻击者没有使用任何全新0day全程利用已知漏洞和合法工具。这就是为什么传统杀毒软件可能全程不报毒因为行为太像运维了。4.2 逐步拆解每一步在ATTCK里怎么看第一步公网资产扫描。这个阶段的战术是侦察Reconnaissance技术可以对应扫描IP块或扫描漏洞。很多刚入门的朋友容易忽略侦察阶段因为他们觉得扫描行为在网络里太常见了。但从ATTCK视角看侦察是攻击者生命周期的起点把侦察阶段的行为纳入检测范围可以做到更早的发现。第二步利用漏洞拿初始立足点。战术是初始访问Initial Access对应技术利用面向公网的应用程序漏洞。这一步产生的关键证据是Web服务器日志里的异常请求特征以及进程行为上的异常。第三步执行PowerShell命令下载后门。这里涉及两个战术一个是执行Execution对应技术通过PowerShell执行另一个是命令与控制Command and Control因为后门起来之后要和外部通信。在这一步我们要关注Windows事件日志里的进程创建事件比如PowerShell启动参数中带有下载远程脚本的特征。第四步建立持久化。战术是持久化Persistence后门通常会注册成计划任务或服务。检测点在于系统里新增了计划任务、服务配置发生变化、启动目录出现新文件。第五步枚举和提权。这里分别对应发现Discovery和凭证访问Credential Access。攻击者枚举用户、枚举域信息、尝试读取内存中的凭据。典型的检测信号包括一条不常见的进程链上出现了查询域管理组的命令或者lsass.exe进程被异常访问。第六步横向移动。战术是横向移动Lateral Movement技术是通过管理协议远程服务。攻击者拿到合法账号之后用管理协议登录其他机器在日志里看起来只是一次正常的远程登录但结合登录时间、来源、账号等上下文就能判断出异常。第七步数据外传。战术是数据渗出Exfiltration攻击者把敏感文件打包后通过HTTP或DNS隧道传出。检测点包括内网主机向外部地址传输大流量、DNS请求出现异常编码、压缩文件在敏感目录生成。4.3 从映射到检测复盘时怎么使用ATTCK上面这个拆解过程做完之后整个攻击事件就被映射成了若干个Tactic-Technique对。接下来我们可以在每个技术对应的检测建议里找方向结合自己的数据源现状去验证我的日志够不够、我的告警规则有没有覆盖、我的人工研判流程能不能快速确认。我当时做复盘的时候有个很深刻的体会如果不做ATTCK映射很容易陷入针对这个样本写签名、针对那个IP封禁的被动应对循环。做完映射之后你会发现这次事件覆盖了七八个战术你真正需要关注的不是那一个样本本身而是这整条链路。检测能力能不能覆盖这条链路的每一个阶段才是关键。所以现在我做事件复盘的标准动作就是四步第一步梳理攻击时间线第二步把关键动作逐一映射到战术和技术第三步检查现有检测规则和数据源的覆盖盲区第四步根据盲区排优先级补规则或补日志。这套方法我用下来效率非常高也推荐你试试。5. 踩坑心得学习ATTCK时的几个常见误区5.1 误区一把矩阵当成记忆材料我认识很多朋友都是从每天背几个技术编号开始的背了十天半个月问他ATTCK能干嘛他说不出个所以然。ATTCK真正的价值在于分析框架而不是知识清单。学会用战术-技术的视角去拆解攻击事件比记住一百个技术ID有用得多。建议你拿到一个新技术的条目之后先不要急着背编号去看看它的检测建议和缓解措施然后问自己一个问题如果攻击者用这一招打我的环境我现有的日志能发现吗5.2 误区二认为覆盖战术越多越安全很多安全产品宣传自己覆盖ATTCK框架全部技术这其实是个误导。覆盖全部技术和有效检测是两码事。有些技术条目只是在数据字典里挂了个名实际检测逻辑却很薄弱。安全建设应该按对症下药的原则来先搞清楚自己行业常见攻击团伙用到的技术是什么再针对性地把检测能力做好。盲目追求大而全只会浪费人力和预算。5.3 误区三忽略数据源能力盲目抄检测规则ATTCK条目里列了检测建议但每个企业的数据基础不一样。有的企业连进程命令行日志都没接全这时候照着别人的检测规则抄一遍结果就是告警风暴全是误报。我自己的经验是先盘点数据源再定检测目标最后才写规则。数据源是第一位的没有数据源任何检测规则都是空中楼阁。5.4 误区四把ATTCK当成自动化的银弹我刚开始也犯过这个错误以为把ATTCK接进SIEM、接进自动化编排平台就能实现全自动检测响应。后来发现ATTCK给的是知识架构但现实攻击行为的识别和关联还需要很多工程化工作。ATTCK是好用的但它不是一个能直接装进服务器里的引擎它需要结合你的实际日志、分析流程、人员判断力才能发挥出价值。6. 后续学习路线和一点个人体会学了背景、术语和案例之后下一步该怎么走我个人建议按这个顺序第一把Enterprise矩阵从头到尾通读一遍不要求背但要求每个战术和技术都看一遍检测建议第二找两个历史攻击事件报告自己尝试做一次攻击链映射对照官方映射结果找差距第三选择一个和自己环境最相关的战术领域比如凭证访问或横向移动深入看它下面的所有技术结合自己的日志做检测覆盖评估第四等基础扎实了再去看ATTCK在红队模拟、威胁情报、检测工程里的进阶用法。6.1 给自己搭一套最小可用的学习环境我建议每个学ATTCK的人都在本地搭一套实验环境。关注到Windows域环境最好不行的话单机Windows也可以。实验环境的技术栈不复杂一台Windows虚拟机一个日志采集器再配合一套开源的SIEM或日志检索平台就足够了。有了环境之后你可以做一些无害的实验比如手动执行一些系统命令观察日志里留下了什么痕迹然后去ATTCK里查这些动作对应哪个技术、哪个数据源。这套行为→日志→框架映射的练习比看一百篇文档都管用。6.2 结合实际工作去内化学习ATTCK最忌讳的就是学一套、做一套。如果你平时做安全运营那下次收到一个告警的时候顺手做一次技术映射把告警对应到战术和技术同时记录下这次分析的心得。如果你做风险评估建议你在评估报告里用ATTCK来呈现风险点。如果你做事件响应那就把复盘报告的攻击时间线做成一张战术覆盖表。每一张表、每一行技术都是在把框架知识转成自己的实战经验。我在这个过程中最大的体会是ATTCK更像一个安全思维操作系统。它不直接给你答案但它给你一套拆解问题、组织信息的结构。用久了你会慢慢发现自己看告警、看安全事件的方式变了——不再只看表象而是会下意识去追问这个动作服务于什么战术意图还有什么同类技术可能被用过我的检测面是不是有盲区6.3 最后一个小技巧善用导航器和数据源字段如果你还不知道怎么快速上手看矩阵我推荐一个小工具——ATTCK Navigator。它可以帮你加载矩阵、给技术做标注、导出自定义视图。比如你可以把当前已覆盖检测和未覆盖检测分别用不同颜色标出来覆盖情况一目了然。另外新版本的ATTCK把数据源定义得特别细做审计和日志采集规划的时候直接参考数据源清单就能知道该采集哪些字段。我自己就照着清单把EDR的日志策略重新梳理过一遍。这个细节虽然不起眼但实际用起来非常省事。