安全全景与实验室:从“威胁模型”开始
你从今天开始学网络安全,最怕的不是“不会用工具”,而是把学习变成了随机漫步:今天扫端口,明天学 SQL 注入,后天又看内存马——知识点都见过,却始终回答不了三个最关键的问题:我要保护什么?谁会来打?我怎么验证自己真的变强了?本章要做的,就是给你一张“安全全景地图”,并把它落到一套可回滚、可复现的最小实验室与可执行工作流里:你做的每一次抓包、每一次复现、每一次写报告,都能在同一张坐标系里对齐。
本章路线图(纸书/电子/Markdown 三件套)
- 纸书阅读提示:本章各小节后的“纸书定位 Pxx”为排版占位,最终以成书页码为准,便于纸书快速回翻定位。
- 电子版导航:外部资源用可点击链接;术语用脚注补充背景。
- Markdown 机器标签:文末提供 `#lab #threat-model #workflow`,便于检索与自动化处理。
你将按以下路径推进(建议边读边做,别等“全看完再动手”): 1. 明确安全目标:CIA 三要素(纸书定位 P2) 2. 盘点资产与攻击面:把“我家网络/我电脑”变成清单(纸书定位 P8) 3. 威胁建模入门:STRIDE + ATT&CK 作为“问题清单”(纸书定位 P16) 4. 认识红蓝紫:产出物是什么、怎么写得像样(纸书定位 P26) 5. 搭最小实验室:虚拟机/容器取舍、快照回滚、隔离网络(纸书定位 P34) 6. 可执行学习工作流:读协议/看代码/抓包/复现/写报告(纸书定位 P44) 7. 实战案例:家庭路由 + 测试机做资产清单与端口暴露审计(纸书定位 P54) 8. 输出初版威胁模型文档:带风险优先级(纸书定位 P66)
---
安全目标的“北极星”:CIA 三要素(Confidentiality / Integrity / Availability)
网络安全里“安全”不是一句口号,而是可以被拆成可讨论、可权衡的目标。最经典的坐标系是 CIA 三要素:
- **机密性(C)**:不该看到的人看不到。
例:Wi‑Fi 密码、账号口令、家庭摄像头视频流、浏览器保存的 Cookie。
- **完整性(I)**:数据没被篡改,或篡改能被发现。
例:路由器 DNS 配置被改成恶意地址;软件更新包被“中间人替换”;日志被清空。
- **可用性(A)**:该用的时候能用。
例:家里网断了;NAS 被勒索加密;路由器被打到重启、掉线。
初学者常见误区:CIA 不是“全都要”,而是“先排序”
资源有限时,必须排序。家庭/个人场景常见排序是:
- **A 优先**:断网影响立刻可见(工作、学习、智能家居)。
- **C 次之**:泄露常常延迟显现(账号被盗、隐私被卖)。
- **I 需要意识**:篡改往往“看起来还好用”,但后果更隐蔽(DNS 劫持、配置被改)。
一个实用的判断句式是: > “如果 X 被泄露/篡改/不可用,我会损失什么?要花多久恢复?能否接受?”
把这句话记住,后面所有威胁建模、加固、检测,都是在回答它。
---
从“我有一堆设备”到“我有一张攻击面地图”:资产盘点与攻击面
什么是资产?为什么资产决定攻击面?
资产(Asset)不是“设备本身”,而是对你有价值、值得保护的东西。设备只是资产的载体。资产通常分四类:
1. 数据资产:照片、文档、密码库、浏览器 Cookie、聊天记录、备份。 2. 服务资产:路由器管理后台、NAS Web、远程桌面、SSH、家庭自动化平台。 3. 身份资产:邮箱账号、云盘账号、社交账号、支付账号、双因素设备。 4. 基础设施资产:路由器、交换机、AP、物联网网关、域名/公网 IP(如果有)、云服务器。
攻击面(Attack Surface)可以粗略理解为: > “攻击者能接触到的入口 × 入口的复杂度 × 暴露时长”
把它落到可操作层面,你要问三件事:
- **入口在哪**:哪些端口、哪些 URL、哪些无线协议、哪些账号入口?
- **谁能接触到**:仅局域网?还是公网?还是同 Wi‑Fi 就行?
- **入口后面是什么**:进来后能看到什么数据/控制什么设备?
最小资产清单:先用 15 分钟拿到“能行动”的版本
不要等“盘点到完美”。先拿到能驱动下一步的清单。建议你用一张表(纸书可打印,电子版可复制到表格软件):
| 类别 | 名称 | 位置/网络 | 入口(端口/URL) | 重要性(C/I/A) | 备注 | |---|---|---|---|---|---| | 设备 | 家庭路由器 | 192.168.1.1 | Web 管理/UPnP | A> C | 型号/固件 | | 设备 | 测试机(PC) | 192.168.1.100 | SSH/SMB | C/I | 用于实验 | | 数据 | 照片备份 | NAS | SMB/WebDAV | C | 是否加密 | | 身份 | 主邮箱 | 云服务 | Web/IMAP | C/I | 是否 2FA |
重要性怎么填?先用“高/中/低”即可;后面再量化评分。初学阶段,“能做决策”比“评分精确”更重要。
边界与信任:攻击面不只在“外面”,也在“内部”
很多新手只盯公网,其实家庭与小团队里更常见的是:
- **同网段攻击**:访客连上 Wi‑Fi;被感染的设备横向移动。
- **弱隔离导致的连带风险**:IoT 设备和电脑在同一网段;NAS 与工作电脑互通。
- **自动化功能扩大攻击面**:UPnP 自动开端口;路由器远程管理;云同步默认共享。
你需要画出“信任边界”(Trust Boundary):哪里是你认为更可信的区域,哪里是不可信或半可信。最简单的边界划分:
- 可信:你的主力电脑/手机
- 半可信:IoT(电视、音箱、摄像头)
- 不可信:访客设备/临时设备/任何你不控制的软件镜像
---
威胁建模:把安全问题变成一张“问题清单”
威胁建模(Threat Modeling)不是写大作文,而是一个可重复的过程:在系统还没出事之前,系统性地想一遍“会怎么被打”,并产出可执行的改进项。
你可以把它当成安全领域的“需求分析 + 设计评审”。
一个可落地的威胁建模流程(新手版本)
1. 确定范围(Scope):这次只看家庭网络?只看 NAS?只看某个测试网站? 2. 画数据流(DFD):数据从哪里来、到哪里去、经过哪些组件? 3. 列资产与入口:资产清单 + 暴露面(端口/URL/账号)。 4. 用清单提问:STRIDE(按威胁类型问)+ ATT&CK(按攻击手法问)。 5. 打分与排序:风险优先级,先做最划算的。 6. 定义对策与验证:加固措施、检测点、复测方法。
用 Mermaid 把流程钉在墙上(你后面会反复用它):
```mermaid flowchart TD A[范围与假设] --> B[资产/入口清单] B --> C[数据流与信任边界] C --> D[STRIDE提问] C --> E[ATT&CK对照] D --> F[风险评分与排序] E --> F F --> G[对策: 加固/隔离/权限] F --> H[检测: 日志/规则/告警] G --> I[复测与回归] H --> I ```
STRIDE:按“威胁类型”提问(适合结构化思考)
STRIDE 是微软提出的六类威胁模型,特别适合新手:你不需要很懂攻击细节,也能问出关键问题。
| STRIDE | 中文 | 直觉问题 | 常见例子 | |---|---|---|---| | S | Spoofing 身份伪造 | “他能冒充谁?” | 冒充路由器后台登录、伪造设备接入 | | T | Tampering 篡改 | “他能改什么?” | 改 DNS、改固件、改配置、改文件 | | R | Repudiation 抵赖 | “做了能否否认?” | 无日志/日志可删,难追溯 | | I | Information Disclosure 泄露 | “他能看到什么?” | 明文传输、弱权限共享、备份泄露 | | D | Denial of Service 拒绝服务 | “他能让它不可用吗?” | 打满带宽/连接数、触发崩溃重启 | | E | Elevation of Privilege 提权 | “他能从低权限变高吗?” | Web 漏洞拿到系统权限 |
把 STRIDE 和 CIA 对齐会更清楚:
- I(泄露)主要威胁 **C**
- T(篡改)主要威胁 **I**
- D(拒绝服务)主要威胁 **A**
- S/R/E 往往是“达成前面三类后果的路径或放大器”
ATT&CK:按“攻击手法库”对照(适合补全盲点)
MITRE ATT&CK 更像一本“攻击者剧本库”。它不是给你背诵的,而是用来做两件事: 1. 补盲:我是不是漏想了某种常见路径? 2. 落检测:我能在日志里看到哪一步?
电子版常用入口(建议收藏):
- MITRE ATT&CK(Enterprise):https://attack.mitre.org/
- 技术(Techniques)总览:https://attack.mitre.org/techniques/
新手使用 ATT&CK 的方式:不要从头读。选与你场景贴近的几个战术(Tactics)对照即可,例如家庭/小团队里最常用的:
- Initial Access(初始访问):弱口令、暴露服务、钓鱼
- Credential Access(凭证访问):浏览器密码、抓包、键盘记录
- Lateral Movement(横向移动):SMB/远程桌面/SSH
- Persistence(持久化):自启动、计划任务、路由器配置驻留
[^1]: ATT&CK 是开放知识库,不等同于“真实世界全部攻击”。但作为清单非常好用。
---
红队、蓝队、紫队:你在练的不是“炫技”,而是产出物
很多人学安全卡在“会做但说不清”。行业里衡量能力,靠的是产出物(Deliverables)。
三种角色的核心差异
- **红队(Red Team)**:以攻击者视角验证系统能否被突破,重点是“路径与影响”。
- **蓝队(Blue Team)**:以防守者视角提升安全性,重点是“加固与检测”。
- **紫队(Purple Team)**:把红队发现转成蓝队能力,把蓝队盲点转成红队测试用例,重点是“闭环”。
你需要学会写的三类文档(从本章开始就练)
1. 漏洞报告(红队风格):可复现步骤 + 影响范围 + 修复建议 2. 加固方案(蓝队风格):具体配置项 + 回滚方案 + 验证步骤 3. 检测规则(蓝队/紫队):日志来源 + 规则逻辑 + 误报处理
给你一个“新手也能像样”的漏洞报告最小模板(后面案例会用):
- 背景与范围:测试对象、时间、授权说明
- 结论摘要:最关键风险 3 条(按优先级)
- 复现步骤:每一步命令/截图/输出(可被别人复测)
- 影响分析:能拿到什么权限/数据?是否可横向?
- 修复建议:立刻可做、长期建议、验证方法
- 附录:扫描结果、工具版本、配置片段
---
最小化安全实验室:可复现、可回滚、可隔离
你不需要一上来就“全套企业级靶场”。新手实验室的三条硬指标: 1. 可回滚:搞炸了也能 1 分钟恢复(快照/镜像)。 2. 可复现:同样步骤能重做(记录命令、固定版本)。 3. 可隔离:实验流量不影响真实网络,更不外溢到公网。
虚拟机 vs 容器:怎么选?
虚拟机(VM)适合:
- 需要完整系统内核环境(内核漏洞、驱动、系统服务)
- 需要模拟多台机器、不同操作系统
- 需要更强隔离(网络、文件系统)
容器(Container)适合:
- 快速起服务(Web 靶场、数据库、代理)
- 复现实验更轻便(`docker compose up`)
- 适合做“可丢弃”的应用级环境
一个稳妥的最小组合(推荐):
- 1 台 VM:攻击机(例如 Kali/Ubuntu + 工具)
- 1 台 VM:靶机(Metasploitable2、Windows 测试机等)
- 若干容器:靶场服务(DVWA、OWASP Juice Shop、Nginx/Redis)
电子版参考链接(选择其一即可,不必全装):
- OWASP Juice Shop:https://owasp.org/www-project-juice-shop/
- DVWA:https://github.com/digininja/DVWA
[^2]: 靶机/靶场只在隔离环境使用,禁止暴露到公网。
网络隔离:三种常用模式(按风险从低到高)
以 VirtualBox/VMware 为例(不同软件名字略有差异): 1. Host‑Only(仅主机网络):VM 只能和宿主机互通,最安全,适合入门实验。 2. NAT:VM 可访问外网,但外网难以主动访问 VM。适合需要下载依赖/更新。 3. Bridged(桥接):VM 直接进入你的真实局域网,暴露面最大。除非你明确需要模拟真实环境,否则不建议新手使用。
推荐你把靶机放在 Host‑Only 网段,攻击机同时有 Host‑Only + NAT 两张网卡:
- NAT 用于更新工具
- Host‑Only 用于打靶与抓包
一个最小拓扑示意:
```mermaid graph LR Internet((Internet)) -->|NAT| A[攻击机 VM] A -->|Host-Only| B[靶机 VM] A --> C[宿主机] ```
快照与回滚策略:把“试错成本”压到最低
- **靶机**:装好后立刻打“干净快照”;每次实验前再打一个“实验前快照”。
- **攻击机**:工具装好后打“工具基线快照”;配置代理/证书后再打“代理基线快照”。
- **命名规则**:`2026-03-实验主题-状态`(例如 `2026-03-sqli-pre`)。
这样做的好处是:你可以大胆试,不怕把系统污染到“再也修不好”。
安全注意事项(必须写进你的习惯里)
- 只对**自己拥有或明确授权**的目标测试。
- 扫描/爆破/抓包这些动作,在真实网络可能触发告警或违规;家庭网络也要考虑对家人设备的影响。
- 实验数据尽量使用假账号、假密码、假个人信息。
- 靶场/靶机绝不端口转发到公网,关闭路由器的远程管理与 UPnP(除非你知道自己在做什么,并能回滚)。
---
可执行学习工作流:读协议 / 看代码 / 抓包 / 复现 / 写报告
初学安全最有效的方法不是“背漏洞”,而是训练一条闭环能力链。建议你把每个知识点都按同一流程跑一遍:
1. 读协议/标准:知道“正常应该怎样” 2. 看实现/源码:知道“现实里是怎么做的” 3. 抓包/观察:看到“真实流量长什么样” 4. 复现/验证:让漏洞或现象“在你手上发生” 5. 写报告/总结:沉淀成可复用资产(笔记、脚本、规则)
用一句话概括: > 安全能力 = 可解释的原理 + 可复现的操作 + 可复用的产出物
你可以把每次练习都写成同一套笔记结构(后面章节也通用):
- 目标:我想验证什么?
- 环境:版本、拓扑、快照名
- 操作:命令、请求、抓包截图
- 结果:现象、输出、影响
- 结论:原因、修复、检测
- 复现清单:别人照做能否复现?
---
实战案例:家庭路由 + 一台测试机做资产清单与端口暴露审计
本案例的目标不是“黑进路由器”,而是用最温和、可控的方法,完成两件事: 1. 输出一份可行动的资产清单 2. 找出“最不该暴露却暴露了”的入口,并给出优先级
> 授权边界:只测试你自己的家庭网络与你自己的测试机;不扫描邻居、不扫描公网段。
第一步:确定网段与关键节点(路由器就是你的“边界设备”)
你需要先知道局域网网段,例如常见是 `192.168.1.0/24` 或 `192.168.0.0/24`。
在你的电脑上(Windows / macOS / Linux 都行)确认默认网关(路由器 IP):
- Windows:`ipconfig`
- macOS/Linux:`ip route` 或 `netstat -rn`
记录:
- 路由器 IP(例如 `192.168.1.1`)
- 你自己的 IP(例如 `192.168.1.20`)
- 网段(例如 `192.168.1.0/24`)
第二步:做“活跃设备发现”(不碰端口先摸清有哪些机器)
优先用低影响方式:ARP/ICMP 探测。
在 Linux/macOS 或攻击机 VM 上可以用: ```bash nmap -sn 192.168.1.0/24 ```
你会得到一份“哪些 IP 在线”的列表。把它和路由器后台的 DHCP 租约表对照(路由器后台通常能看到设备名/MAC)。
输出到资产清单(示例):
| IP | 设备 | 类型 | 备注 | |---|---|---|---| | 192.168.1.1 | Router | 边界设备 | 管理后台 | | 192.168.1.10 | NAS | 存储 | SMB/Web | | 192.168.1.30 | TV | IoT | 低可信 | | 192.168.1.100 | TestPC | 测试机 | 允许扫描 |
第三步:端口与服务识别(先扫“测试机”,再决定是否扫其他设备)
对你的测试机(`192.168.1.100`)做服务识别:
```bash nmap -sS -sV -O -p- --min-rate 1000 192.168.1.100 ```
参数解释(新手要懂):
- `-p-`:全端口(1-65535),更全面但更慢
- `-sV`:探测服务版本(HTTP 是什么服务器、SSH 是什么版本)
- `-O`:尝试识别操作系统(不一定准)
- `--min-rate`:加快扫描(家用网络别设太高,避免影响)
把结果转成“入口清单”(示例):
| 入口 | 协议 | 说明 | 暴露范围 | |---|---|---|---| | 22/tcp | SSH | 远程登录 | 局域网 | | 445/tcp | SMB | 文件共享 | 局域网 | | 3389/tcp | RDP | 远程桌面 | 局域网(或端口映射?) |
关键追问:这些入口是否可能被“扩大暴露范围”?常见原因:
- 路由器端口转发(Port Forwarding)把内网端口映射到公网
- UPnP 自动开洞(很多软件会请求