一、数据库系统的安全设计
1. 数据库安全设计的评估标准
- 国际标准 :
- TCSEC(橘皮书):分4类(A/B/C/D)7级,强调机密性与访问控制。
- ITSEC:欧洲标准,分离功能需求(F)与评估等级(E)。
- CC标准(ISO/IEC 15408):通用评估框架,覆盖安全功能(TOE)与保障要求(EAL1-7)。
- 核心评估维度 :
- 身份鉴别:强认证机制(如多因子认证)。
- 访问控制:基于角色(RBAC)或属性(ABAC)的权限模型。
- 审计追踪:记录敏感操作(如数据修改、权限变更)。
- 数据加密:传输层(TLS/SSL)与存储层(透明加密/TDE)。
2. 数据库的完整性设计
- 实体完整性:主键约束(唯一性+非空),防止重复记录。
- 参照完整性:外键约束,确保关联表数据一致性(如级联删除)。
- 用户定义完整性 :
- 域约束:数据类型、范围(如年龄>0)。
- 业务规则:触发器(Trigger)实现复杂逻辑(如库存不足时禁止订单)。
- 典型技术 :
- 校验和(Checksum):检测数据篡改。
- 事务机制(ACID):原子性保障操作完整性。
考点提示:数据库完整性 vs. 安全性
- 完整性 :防数据错误(业务逻辑);安全性:防未授权访问(攻击防护)。
二、系统架构的脆弱性分析
1. 脆弱性根源与分类
- 来源 :
- 设计瑕疵(如协议缺陷)。
- 实现弱点(如缓冲区溢出)。
- 配置错误(默认密码未修改)。
- 软件脆弱性类型 :
软件脆弱性 设计脆弱性 结构脆弱性 架构模式缺陷 组件交互漏洞
2. 典型软件架构的脆弱性分析
| 架构风格 | 脆弱性表现 | 应对措施 |
|---|---|---|
| 分层架构 | 层间通信瓶颈;底层错误扩散至全系统(如空指针) | 冗余设计;异步消息队列 |
| C/S架构 | 客户端数据泄露;二层结构暴露数据库凭证 | 三层结构;HTTPS加密传输 |
| B/S架构 | HTTP协议易受中间人攻击;会话劫持 | 启用HSTS;会话令牌绑定IP |
| 事件驱动架构 | 死循环风险;高并发导致数据丢失 | 限流机制;事务补偿 |
| MVC架构 | 视图频繁调用模型降低性能;控制器未验证输入(SQL注入) | 输入过滤;缓存优化 |
| 微服务架构 | 分布式事务管理复杂;服务通信链路过长(延迟累积) | 服务网格(如Istio);熔断机制 |
高频考点:
- 分层架构的"层间通信脆弱性"常考性能与安全性权衡。
- 微服务架构的"分布式复杂性"是案例分析重点。
三、安全架构设计案例分析
案例1:电子商务系统安全性设计
- 威胁应对 :
- 支付安全:PCI-DSS合规(加密卡号+独立支付区)。
- DDoS防护:CDN分流+Web应用防火墙(WAF)。
- 数据泄露:敏感信息脱敏(如手机号部分隐藏)。
- 架构策略 :
- 纵深防御:网络层(防火墙)→ 应用层(输入验证)→ 数据层(加密)。
- 零信任模型:动态验证每次请求身份。
案例2:基于混合云的工业安全架构
- 挑战:本地设备与云平台协同时的攻击面扩大。
- 解决方案 :
- 边缘计算:敏感数据本地处理(减少传输风险)。
- 安全切片:5G uRLLC切片隔离关键控制流量。
- 统一审计:集中日志分析(SIEM系统)覆盖混合环境。
- 技术整合 :
- SDN网络:动态策略下发隔离威胁。
- 机密计算:TEE(可信执行环境)保护运行时数据。
四、考题示例(高频考点)
-
选择题:
在MVC架构中,哪一层的脆弱性可能导致SQL注入攻击?
A. 模型层
B. 视图层
C. 控制器层
答案:C(未验证用户输入) -
案例分析题:
某微服务系统在高并发场景下出现数据不一致,请从架构脆弱性角度分析原因并提出改进方案。
答题要点:- 原因:服务间异步通信丢失消息;无分布式事务协调。
- 方案:引入Saga模式;消息队列持久化+重试机制。
学习建议:
- 重点理解不同架构的脆弱性特征(如分层架构的"错误扩散" vs. 微服务的"通信复杂性")。
- 结合案例掌握安全设计模式(如零信任、纵深防御)。
- 考题多聚焦实际场景应用(如电商支付、工业物联网)。