一、信息安全威胁
1.1、四大类
1.1.1、人为蓄意破坏
被动型攻击:网络监听、非法登录、信息截取。
主动型攻击:数据篡改、假冒身份、拒绝服务、重放攻击、散播病毒、主观抵赖。
1.1.2、灾害性攻击
水灾、火灾、地震、雷击、战争。
1.1.3、系统故障
硬件故障、软件故障、链路故障、供电故障。
1.1.4、人员无意识行为
编程错误、操作错误、无意泄密。
1.2、风险体系架构图

1.3、被动攻击 vs 主动攻击
被动攻击 :只听不改 。侧重于收集信息,不破坏数据,难以检测。
主动攻击 :又听又改 。侧重于破坏或伪造,会改变数据或系统状态,容易检测。
1.4、被动攻击
1.4.1、目标
破坏保密性。
1.4.2、常见类型
窃听 (Sniffing/Snooping):搭线监听、电磁泄漏截取。
业务流分析 (Traffic Analysis):通过统计通信频率、流向、数据量来分析规律(即使加密了也能分析出谁和谁在联系)。
非法登录:盗用账号进入系统窥探(注:教材将其归为被动,因其主要目的常为获取信息)。
1.5、主动攻击
1.5.1、目标
破坏可用性 、完整性 、真实性。
1.5.2、常见类型详解
假冒身份 (Masquerade):非法用户冒充合法用户,或低权限冒充高权限。
抵赖 (Repudiation) :否认自己发送过消息或接收过消息。(对策:数字签名)。
旁路控制 (Side-Channel Attack):利用系统的物理特征(如功耗、时间差)来获取密钥或绕过防线。
重放攻击 (Replay Attack) :截获合法数据包,重新发送。加【时间戳】或随机数(Nonce) 能识别并防御重放攻击。
拒绝服务 (DoS) :破坏服务的可用性 。SYN Flood 是典型的 DoS 攻击手段(利用 TCP 三次握手缺陷)。
1.5.3、Web与代码安全
1.5.3.1、常见 Web 攻击
XSS (跨站脚本攻击):
- 原理:利用开发漏洞,注入恶意 HTML/JavaScript 代码。
- 后果:盗取用户 Cookie、重定向用户。
CSRF (跨站请求伪造):
- 原理:欺骗用户的浏览器,利用用户已登录的身份(Cookie)去发送恶意请求(如转账)。
- 区别:XSS 是盗取你的身份自己用;CSRF 是借你的手干坏事。
缓冲区溢出:
- 利用系统漏洞,写入超过缓冲区长度的数据,覆盖内存,导致崩溃或执行恶意代码。
1.5.3.2、SQL 注入攻击
原理:攻击者把 SQL 命令插入到 Web 表单中,欺骗服务器执行。
- 示例 :
Select * from user where id = 1 or 1=1(永远为真,绕过验证)。
攻击方式:恶意拼接查询、利用注释符号、传入非法参数。
防御方式:
- 使用参数化查询 / 预编译语句 (Precompiled) ------ 这是最有效的防御手段!
- 使用正则表达式 过滤特殊字符。
- 检查用户输入合法性。
- 存储过程。
- 用户相关数据加密处理。
1.5.3.3、恶意代码分类
特洛伊木马 (Trojan) :伪装性。表面是无害程序(如游戏),运行时破坏系统。不自我复制。
陷阱门 (Trapdoor/Backdoor) :后门。开发者留下的特殊入口,特定输入可绕过安全检查。
计算机病毒 (Virus) :传染性。能够自我复制,"感染"其他程序。
1.5.4、主动攻击类型总结图

二、安全模型
2.1、安全模型分类体系
2.1.1、定义
安全策略定义"做什么",安全模型提供"如何做"的形式化描述。
2.1.2、分类结构
2.1.2.1、基本模型
HRU(访问控制矩阵模型)。
2.1.2.2、机密性模型
BLP 模型 (Bell-LaPadula)。
Chinese Wall 模型 (同时也涉及完整性,处理利益冲突)。
2.1.2.3、完整性模型
Biba 模型。
Clark-Wilson 模型。
2.1.2.4、其他
信息流模型、RBAC角色访问控制。
2.1.3、模型与目标的对应
BLP →\rightarrow→ 军用/机密性(只管保密,不管数据准不准)。
Biba →\rightarrow→ 完整性(只管数据准不准,不管泄不泄密)。
Clark-Wilson →\rightarrow→ 商用/银行(防篡改、职责分离)。
Chinese Wall →\rightarrow→ 投行/律所(防利益冲突)。
2.1.4、安全模型分类图谱

2.2、BLP 模型 (机密性)
2.2.1、全称
Bell-LaPadula 模型。
2.2.2、类型
强制访问控制 (MAC) 模型,以敏感度划分安全级别(绝密 > 机密 > 秘密)。
2.2.3、核心规则
2.2.3.1、简单安全规则
级别低 的主体不能读 级别高的客体。(不可上读)。
2.2.3.2、星属性安全规则
级别高 的主体不能往 低级别的客体写 。(不可下写)。注:这是为了防止高密级信息泄露到低密级文档中。
2.2.3.3、强星属性
不允许对另一级别进行读写。
2.2.3.4、自主安全规则
基于访问控制矩阵。
2.2.4、场景记忆
BLP = 保护机密 = 不下写,不上读。
将军(高)可以看士兵(低)的报告(读下),但士兵不能看将军的机密文件(不读上)。将军不能把机密命令写在士兵的公开日记本里(不写下)。
2.3、Biba 模型 (完整性)
2.3.1、目标
解决完整性的第一目标,防止非授权用户的篡改。防止数据从低完整性流向高完整性。
2.3.2、核心规则
2.3.2.1、星完整性规则
完整性低 的主体不能 对完整性高 的客体写 数据。(不可上写)。注:防止低水平的人篡改高水平的数据。
2.3.2.2、简单完整性规则
完整性高 的主体不能 从完整性低 的客体读 取数据。(不可下读)。注:防止脏数据污染干净环境。
注:Biba 中高完整性主体可以写低完整性客体(虽然少见,但规则允许),严禁的是低写高(上写)。
2.3.2.3、调用属性规则
低级别主体不能调用高级别程序。
2.4、Chinese Wall 模型 (利益冲突)
2.4.1、场景
最初为投资银行 设计,处理利益冲突 (Conflict of Interest, COI)。
2.4.2、核心逻辑
2.4.2.1、墙内信息
与主体曾经访问过的信息属于同一公司数据集,可以访问。
2.4.2.2、完全不同
属于完全不同的利益冲突组,可以访问。
2.4.2.3、写权限限制
主体能对客体进行写的前提是,主体未对任何属于其他公司数据集进行过访问。
2.4.3、定理
在一个利益冲突组中,一个主体最多只能访问一个公司数据集。
2.4.4、动态性
它是动态的访问控制模型(BLP和Biba是静态的)。
随着用户访问的数据增加,这堵"墙"会不断变化,能访问的范围会越来越小(为了避嫌)。
2.5、Clark-Wilson 模型 (CWM)
2.5.1、场景
常用于银行系统中保证数据完整性。
2.5.2、核心机制
实现了成型的事务处理机制。
2.5.3、关键组件
UDI:用户提交订单。
TP:转换程序(关键!)。
CDI:受控数据项(核心数据)。
IVP:验证过程(审计)。
2.5.4、主要特征
采用 Subject / Program / Object 三元素方式。(重点:人不能直接碰数据,必须通过程序 TP)。
权限分离原则:关键功能分给多人完成。
要求具有审计能力。
2.5.5、CWM 事务流程图

2.6、状态机模型
2.6.1、定义
无论处于何种状态都是安全的系统。
2.6.2、工作原理
初始状态(默认值)必须安全。
状态转换规则:确保变更不会使系统置于不安全状态。
归纳法证明:只要初始安全,且每一步转换都检查安全性,那么最终状态也是安全的。
三、安全模型防范功能
3.1、安全模型防范功能演进表
| 模型名称 | 预警 | 保护 | 检测 | 响应 | 恢复 | 反击 | 管理 | 核心特征/备注 |
|---|---|---|---|---|---|---|---|---|
| PDR | 无 | 有 | 有 | 有 | 无 | 无 | 无 | 最基础的模型(基于时间) |
| PPDR | 无 | 有 | 有 | 有 | 无 | 无 | 无 | 第一个 P 代表 Policy (策略) |
| PDRR | 无 | 有 | 有 | 有 | 有 | 无 | 无 | 增加了 Recovery (恢复),强调韧性 |
| MPDRR | 无 | 有 | 有 | 有 | 有 | 无 | 有 | M 代表 Management (管理) |
| WPDRRC | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 增加了 Warning (预警) 和 Counter-attack (反击) |
3.2、PDR 模型
3.2.1、核心理论
基于时间的安全理论 (Time-based Security)。
3.2.2、必考公式
Pt>Dt+RtPt > Dt + RtPt>Dt+Rt
PtPtPt (Protection Time):系统防护手段能坚持的时间(黑客攻破防火墙需要的时间)。
DtDtDt (Detection Time):检测到入侵的时间。
RtRtRt (Response Time):系统做出响应阻断攻击的时间。
含义:如果你能在黑客攻破防线之前,发现并切断他,系统就是安全的。
3.3、PPDR 模型
技术只是手段,策略 (Policy) 才是安全的核心。所有的防护、检测、响应都必须依据安全策略来执行。
3.4、PDRR 模型
进化点:承认"系统终究会被攻破"。
核心理念 :加入了 恢复 (Recovery)。在被攻击后,如何把系统恢复到正常状态。
3.5、WPDRRC 模型
3.5.1、地位
目前最全面的安全模型,是我国"863"计划提出的。
3.5.2、预警
从"亡羊补牢"变成了"未雨绸缪"(如威胁情报)。
3.5.3、反击
这是该模型最独特的特征。不仅要防,还要具备对攻击源进行追踪和反制的能力(如蜜罐诱捕)。
3.6、模型能力演进阶梯图

四、信息安全体系架构设计
4.1、五层安全体系架构
4.1.1、物理安全
定义:保障设备设施免受物理环境破坏与人为事故影响。
关键词:机房环境、防盗防雷、备用电源 (UPS)、门禁。
4.1.2、网络安全
定义:部署访问控制、入侵检测、防病毒等关键技术措施。
关键词:防火墙、IDS/IPS、VPN、网络隔离、抗DDoS。
4.1.3、系统安全
定义:强化网络结构、操作系统、应用系统等核心组件的基础安全。
关键词:OS加固、补丁管理、数据库管理系统(DBMS)安全配置、漏洞扫描。
4.1.4、应用安全
定义:管控共享资源访问与敏感信息存储操作的安全风险。
关键词:身份认证(统一认证)、权限控制、审计日志、防SQL注入/XSS(代码层面)。
4.1.5、管理安全
定义:建立制度、技术平台与人员培训三位一体的保障体系。
关键词:安全策略文档、人员背景调查、安全意识培训、定期审计制度。
4.2、纵深防御体系图

五、开放系统互联(OSI)安全体系结构
5.1、安全体系的三维立体空间
5.1.1、X轴:8大安全机制
是手段
加密、数字签名、访问控制、数据完整性、鉴别交换、业务流填充、路由控制、公证。
5.1.2、Y轴:7层网络协议
是位置
物理层、链路层、网络层、传输层、会话层、表示层、应用层。
ISO 标准中,只有"物理层、网络层、传输层、应用层" 具备最完整的安全服务能力。
物理层 :只能做 数据机密性 (链路加密)和 业务流填充。
网络层 / 传输层 :能做 机密性、完整性、认证(IPSec, TLS)。
应用层 :全能王 。只有在应用层才能实现 抗抵赖性(公证)。
5.1.3、Z轴:5大安全服务
是目标
鉴别服务(认证)、访问控制、数据机密性、数据完整性、抗抵赖性。
5.2、服务与机制的对应关系
| 安全服务 (目标) | 主要支撑的安全机制 (手段) | 备注 |
|---|---|---|
| 鉴别服务 (Authentication) | 加密机制 、数字签名 、鉴别交换 | 证明你是你 |
| 访问控制 (Access Control) | 访问控制机制 | 决定你能干什么 (RBAC) |
| 数据机密性 (Confidentiality) | 加密机制 、业务流填充 、路由控制 | 这一层对应连线较多,防止被窃听 |
| 数据完整性 (Integrity) | 加密机制 、数字签名 、数据完整性机制 | 防止被篡改 |
| 抗抵赖性 (Non-repudiation) | 数字签名 、公证机制 | 重点:公证是抗抵赖的终极手段 |
5.3、逻辑对应流程图

六、ISO 认证(鉴别)框架
6.1、鉴别的目的
防止其他实体占用和独立操作被鉴别实体的身份(即:防止冒充)。
6.2、鉴别的核心术语
6.2.1、AI (Authentication Information)
鉴别信息(如密码、指纹数据、证书)。
6.2.2、申请者
声称自己是谁的一方。
6.2.3、验证者
检验申请者是不是真的那一方。
6.3、鉴别的五种方式
| 课件原文 | 标准术语 (多因素认证基础) | 典型例子 |
|---|---|---|
| (1) 已知的 | 所知 (What you know) | 密码、PIN码、密保问题 |
| (2) 拥有的 | 所有 (What you have) | 身份证、U盾、手机验证码、智能卡 |
| (3) 不改变的特性 | 所是 (Who you are) | 指纹、虹膜、人脸识别 (生物特征) |
| (4) 相信可靠的第三方 | 基于信任体系 | 数字证书 (CA)、Kerberos (KDC) |
| (5) 环境 | 上下文/行为 | IP地址、地理位置、操作习惯 |
6.4、双因素认证(2FA)
通常是指前三种里的任意两种组合(比如:密码+指纹,或 密码+手机验证码)。
6.5、认证交互流程图

直接交换:比如你输入密码,系统直接查数据库比对。
第三方介入 :比如 Kerberos 或 PKI/CA。
- 申请者找 TTP(CA中心)要证书。
- 申请者把证书给验证者。
- 验证者找 TTP(或者利用 TTP 的公钥)来验证这个证书。
6.6、主要威胁与对策
| 威胁名称 | 解释 | 架构师防御对策 (必背) |
|---|---|---|
| 凭证窃取 | 偷密码、偷私钥 | 加密存储、定期改密、双因素认证 |
| 假冒 | 冒充别人 | 强身份认证 (PKI)、数字签名 |
| 重放攻击 | 把刚才截获的数据包再发一遍 | 加时间戳 (Timestamp) 、加随机数 (Nonce) |
| 暴力破解 | 猜密码 | 账号锁定策略、验证码、密码复杂度要求 |
七、机密性框架
7.1、机密性的核心定义
定义 :确保信息仅仅 是对被授权者可用。
不是自己人,绝对看不见(访问控制)。
就算偷走了,也看不懂(加密)。
7.2、两大核心机制
7.2.1、通过"禁止访问"提供机密性
核心逻辑:不让未授权的人接触到数据。
具体技术手段:
- 物理层:门禁系统、隔离网闸、屏蔽室。
- 网络层:防火墙、VLAN 隔离、路由控制。
- 系统层:文件权限控制 (ACL)、操作系统登录验证。
- 应用层:身份认证、RBAC 权限控制。
7.2.2、通过"加密"提供机密性
核心逻辑:假设数据已经被接触或截获,确保其不可读。
具体技术手段:
- 存储加密:数据库加密 (TDE)、磁盘加密 (BitLocker)、文件加密。
- 传输加密:SSL/TLS (HTTPS)、VPN (IPSec/PPTP)、SSH。
- 算法选择 :使用 对称加密 (AES) 加密大量数据,使用 非对称加密 (RSA/ECC) 加密密钥。
7.3、机密性保障架构图

八、完整性框架
8.1、完整性的核心定义
定义 :保护数据及其属性不被非授权修改(即:防篡改)。
策略双保险:
- 阻止威胁(Prevent):不让你改。
- 探测威胁(Detect):如果你改了,我能立马发现。
8.2、两大核心机制
8.2.1、阻止对媒体访问的机制
这是物理/系统层面的硬防守。
- 核心逻辑:如果黑客接触不到硬盘或数据库文件,自然就改不了数据。
- 举例 :
- 物理层:把服务器锁在机柜里,拔掉光驱/USB口。
- 系统层 :设置文件为 "只读" (Read-only) 属性。
- 网络层:隔离网闸,只允许单向传输(只进不出,或只出不进)。
8.2.2、探测非授权修改的机制
这是数据/应用层面的软监控。
- 核心逻辑:承认数据可能被改,但必须有机制能校验出来。
- 关键词 :序列 (Sequence) 。特别提到了"数据项序列",这是为了防止重放攻击 或乱序攻击。
- 举例 :
- 摘要算法:计算 MD5/SHA 值。下载文件后比对 Hash 值。
- 数字签名:用私钥签名,改一个标点都能验出来。
- 序列号:TCP 报文里的 Sequence Number,防止包被丢弃或乱序。
8.3、完整性保障架构图

九、抗抵赖框架
9.1、抗抵赖的核心定义
不仅仅是保护数据,而是要生成证据 。它包括证据的生成、验证、记录 ,以及在发生纠纷时的证据恢复和再次验证。
防发送方抵赖 (Proof of Origin):A 发了邮件,但 A 说"不是我发的"。→\rightarrow→ 用 A 的私钥签名解决。
防接收方抵赖 (Proof of Delivery):B 收到了邮件,但 B 说"我没收到"。→\rightarrow→ 用 B 的签收回执(时间戳+签名)解决。
9.2、抗抵赖的四个独立阶段
9.2.1、证据生成
动作:当发生关键业务操作(如转账、签合同)时,系统自动利用数字签名技术生成"不可伪造"的证据。
技术:Hash 摘要 + 私钥签名。
9.2.2、证据传输、存储及恢复
动作 :证据必须安全传输,并且长期归档。如果后续发生数据损坏,必须能从备份中恢复。
要点 :日志服务器通常要求 WORM (Write Once Read Many) 存储特性,防止证据被篡改。
9.2.3、证据验证
动作:接收方或审计人员使用公钥对证据进行校验,确认其有效性。
9.2.4、解决纠纷
动作 :这是抗抵赖最独特的环节。当 A 和 B 吵架时,第三方仲裁机构(如法院、公证处)介入,调取存储的证据,进行最终裁决。
9.3、抗抵赖业务流程图

十、访问控制框架
10.1、访问控制的底层逻辑
10.1.1、AEF
(Access Enforcement Function) - 访问控制实施功能
角色 :"保安"。
职责 :它站在门口,拦截"发起者"的请求。它不思考,它只负责执行(放行或拒绝)。
流程 :拦截请求 →\rightarrow→ 问 ADF →\rightarrow→ 拿到结果 →\rightarrow→ 执行操作。
10.1.2、ADF
(Access Decision Function) - 访问控制判决功能
角色 :"大脑/法官"。
职责 :它手里拿着法律条文(策略),根据请求来判断是 Yes 还是 No。
流程 :接收 AEF 的判决请求 →\rightarrow→ 查阅规则 →\rightarrow→ 返回判决结果。
10.1.3、实际应用
鉴权网关:API Gateway 通常就充当了 AEF 的角色,而背后的 IAM (身份识别与访问管理) 服务 则充当 ADF。
10.2、四大访问控制类型
10.2.1、基于角色的访问控制 (RBAC)
核心逻辑 :用户 (U) →\rightarrow→ 角色 ® →\rightarrow→ 权限 §。
特点:权限不直接发给人,而是发给"岗位(角色)"。人走了,角色还在,换个人顶上即可。
组成要素:用户、角色、会话、权限。
场景 :企业内部系统(如:HR系统、OA系统)。这是目前应用最广的模型。
10.2.2、基于任务的访问控制 (TBAC)
核心逻辑 :动态、流程化。
特点:权限不是永久的,只有在执行某个任务(工作流)时才拥有,任务结束,权限回收。
关键词 :工作流 、任务 、动态实时 、生命周期。
场景:电子政务审批、公文流转(轮到你审批时你才有写权限,审批完就没了)。
10.2.3、基于属性的访问控制 (ABAC)
核心逻辑 :细粒度、环境感知。
特点:根据"谁(主体属性)"在"什么情况(环境属性)"下访问"什么(客体属性)"来决定。
关键词 :属性 、环境条件 (如时间、地点、IP)、复杂策略。
场景:云环境、高安全需求(如:只允许在工作日、在公司内网访问绝密文档)。
10.2.4、基于对象的访问控制 (OBAC)
核心逻辑 :从数据源出发。
特点:主要解决大数据量、数据种类繁多的大型管理信息系统。
关键词 :信息系统的数据差异变化 、用户需求。
注意:这个模型在软考中考得相对较少,作为补充记忆即可。
10.3、访问控制模型对比图

十一、软件架构脆弱性分析
11.1、核心定义
脆弱性 (Vulnerability) :是指软件系统中隐藏的一个弱点。
来源 :设计过程中的考虑不周、折中设计或人为大意产生的漏洞或缺陷。
后果 :本身不会引起危害,但被利用后会产生严重的安全后果。
11.2、四大特征
11.2.1、隐蔽性
它是一个隐藏的弱点,不被攻击时可能看起来一切正常。
11.2.2、根源是逻辑错误
开发过程中引入的逻辑错误是大多数脆弱性的根本来源(比如没有校验输入、流程设计死循环)。
11.2.3、环境相关性
系统环境的差异可能导致不同的脆弱性问题(在内网安全的代码,放到公网可能就是漏洞百出)。
11.2.4、长期存在性
旧的补好了,新的又来了(补丁引入新Bug)。
11.3、B/S vs C/S 脆弱性分析
| 架构类型 | 核心脆弱性 (考点) | 备注 |
|---|---|---|
| 分层架构 | 层间通信的脆弱性 | 一层破,层层破;或者数据在层与层传递时被截获。 |
| C/S 架构 | 1. 客户端软件本身的漏洞 2. 网络协议的脆弱性 | 客户端需要安装维护,容易被逆向分析。 |
| B/S 架构 | 比 C/S 更弱! 使用 HTTP 协议,更容易被病毒入侵。 | 注意:虽然 HTTPs 提升了安全性,但明确指出 B/S 相对 C/S 而言更容易受攻击(因为浏览器环境太开放)。 |
| MVC 架构 | 1. 视图(View)与控制器(Controller)紧密连接 2. 缺少对调用者的安全验证 3. 数据传输不够安全 | 视图为了显示数据,往往低效率地频繁访问模型,增加了暴露面。 |
11.4、现代架构的脆弱性分析
11.4.1、事件驱动架构
死循环:事件驱动容易进入逻辑死循环(A触发B,B触发A)。
高并发:在海量事件涌入时,系统极易崩溃。
组件间逻辑:难以预测的组件交互带来的漏洞。
11.4.2、微内核架构
典型代表:操作系统内核、插件化软件(如 Eclipse)。
通信开销大 :因为内核很小,功能都在外部服务中,进程间通信 (IPC) 开销比单体内核大得多。
通信损失率高:数据在频繁通信中容易出错或丢失。
11.4.3、微服务架构
典型代表:Spring Cloud, Kubernetes。
分布式复杂性:开发人员需要处理复杂的分布式结构。
通信机制风险 :服务间通过网络通信,面临速度过慢 或不可用(局部失效)的问题。
管理复杂性:由于服务实例众多,全局统筹和运维管理的难度极大,容易出现配置错误导致的漏洞。
11.5、架构脆弱性全景图
