Lesson 15 · 约 18 分钟
守住数据:数据库系统安全
开场:主机关好了,数据还在库里
第 14 课守的是操作系统;本课落到数据真正存放的地方——数据库。 上午常考威胁分类、加密/脱敏/库防火墙、默认端口与 Oracle 保险库;下午案例常写「库加固清单」。 教材对应第 20 章。
零、先复习再开新
R1 · 「文件属主可自行把读权限授给同事」属于哪种访问控制?
答案 A。属主自主授权 = DAC(第 14 课)。库里的 GRANT/REVOKE 也常按 DAC/RBAC 考。
R2 · 用发送方私钥生成数字签名,验签时用谁的密钥?
答案 B。私钥签名 → 公钥验签(历史易错点复习)。
一、数据库安全保什么
数据库安全 = 保障库中数据的机密性、完整性、可用性。 教材把它拆成四块:管理安全、数据安全、应用安全、运行安全。
口诀(数据库职责分离):管库的不管审计,应用账号只用最小权(职责分离:DBA / 应用 / 审计分开)。
二、八类威胁(上午爱对号入座)
| 威胁 | 一句话 | 题干关键词 |
|---|---|---|
| 授权误用 | 合法用户越权或乱授权 | 内部人、权限过大 |
| 逻辑推断和汇聚 | 低敏数据拼出高敏结论 | 多次查询、平均工资反推 |
| 伪装 | 假冒合法用户进库 | 偷口令、会话劫持 |
| 旁路控制 | 后门绕过认证与访问控制 | 隐藏账号、绕过审计 |
| 隐蔽信道 | 用非正常通道偷传数据 | 共享内存、临时文件、时间戳编码 |
| SQL 注入 | 把恶意 SQL 拼进查询 | ' OR '1'='1 |
| 口令破解 | 字典/暴力/撞库猜库口令 | 弱口令、默认口令 |
| 硬件及介质 | 砸机器、偷硬盘、从废弃盘恢复 | 物理、介质 |
口诀(数据库八类威胁):授权乱用会推断,伪装旁路藏信道;注入撞库破口令,硬盘介质也要防(字头:权推伪旁隐注破硬)。
三、八项机制(下午卷可直接抄)
- 标识与鉴别:口令、证书、多因子——先认人
- 访问控制:DAC / MAC / RBAC;最小权限;细粒度到表/行/列
- 安全审计:谁在何时对哪张表做了什么
- 备份与恢复:可用性最后一道防线
- 数据加密:传输 + 存储
- 资源限制:限制 CPU、会话、连接数,防把库拖死
- 安全加固:补丁、关默认账号、改默认端口、关危险存储过程
- 安全管理:分权、流程、规范
口诀(数据库八项机制):先认人,再控权,审计备份加加密,限资源再加固,管理贯穿全过程(字头:认控审备加限固管)。
四、SQL 注入:首选参数化,不是「过滤一下」
第 2 课已见过 ' OR '1'='1。本课把防御优先级钉死:
- 首选:参数化查询(预编译 / Prepared Statement)——输入只当数据,不当 SQL 代码
- 辅以:输入白名单、应用账号最小权限(没有 DROP / 没有 xp_cmdshell)
- 库防火墙可拦恶意 SQL,但是外围补充,不能替代参数化
易错:隐藏报错、过滤单引号、缩短口令,都挡不住注入。
口诀(SQL 注入防护):简单过滤挡不住注入,参数化查询才可靠。
口诀(SQL 注入防护):简单过滤挡不住注入,参数化查询才可靠。
五、加密:网上 SSL,落地分库内库外
| 类型 | 保什么 | 考点词 |
|---|---|---|
| 传输加密 | 应用 ↔ 库 的网上数据 | SSL / TLS,防窃听 |
| 库内加密 | 落盘数据;DBMS 内核加密 | 对应用透明;可到字段级;占库 CPU |
| 库外加密 | 网关/硬件在库外加解密 | 不占库 CPU;粒度较粗(文件/表) |
| TDE | 透明数据加密(存储) | Oracle 高级安全;英文 Transparent Data Encryption |
口诀(数据库加密):网上传输走 SSL,落地存储分库内库外;透明加密简称 TDE。
六、脱敏 + 数据库防火墙
脱敏:开发/测试/分析时不给真实敏感值。教材五种方法:屏蔽、变形、替换、随机、加密。
例:银行卡 4346 **** **** 5379 是屏蔽/替换。
数据库防火墙夹在应用与库之间,做 SQL 协议分析:放行合法语句、阻断违规语句。 普通网络防火墙不看 SQL 内容(第 5 课「防不了注入」),所以拦注入要靠参数化 + 库防火墙 / WAF。
- 屏蔽直连通道;增强认证;攻击检测
- 虚拟补丁:库还没打补丁,也能先拦住已知漏洞利用
- 限制无 WHERE 的 UPDATE/DELETE、DROP、TRUNCATE
- 防敏感数据泄露;独立审计(DBA 改不了这份日志)
口诀(数据脱敏五法):屏蔽变形替换掉,随机加密都脱敏。
口诀(数据库防火墙):普通防火墙不看 SQL,数据库防火墙才拦注入。
口诀(数据库防火墙):普通防火墙不看 SQL,数据库防火墙才拦注入。
七、备份三类(别和增量/差异搞反)
| 类型 | 备份什么 | 恢复怎么拼 |
|---|---|---|
| 完全备份 | 当时全部数据 | 一份就能恢复;最慢最大 |
| 差异备份 | 相对上次完全备份的变化 | 全备 + 最后一份差异 |
| 增量备份 | 相对上一次备份(全/增均可)的变化 | 全备 + 之后每一份增量 |
口诀(备份三种类型):全备最全;差异只相对上次全备;增量相对上一次任意备份。
八、平台关键词(认端口、认保险库)
| 库 | 默认端口 | 必背词 |
|---|---|---|
| SQL Server | 1433 | 关危险扩展存储过程;传输用 SSL;限制来源 IP |
| MySQL | 3306 | 五张授权表:user / db / host / tables_priv / columns_priv;GRANT/REVOKE |
| Oracle | 常考 1521 | TDE、数据屏蔽;Database Vault 用安全域 + 命令规则控特权 |
| 国产 | — | 达梦、人大金仓、神舟等;风险仍是漏洞、第三方组件、错配、受 OS 牵连 |
口诀(数据库默认端口):SQL Server 默认一四三三,MySQL 默认三三零六。
口诀(Oracle Database Vault):Oracle 保险库控特权,靠的是安全域和命令规则。
口诀(Oracle Database Vault):Oracle 保险库控特权,靠的是安全域和命令规则。
九、动手练一练
Q1 · 防止 SQL 注入最有效的方法是?
答案 A。参数化把输入当数据。隐藏报错、改口令、关 443 都不是防注入的正道。
Q2 · 「多次查低敏数据,拼出高管薪资」属于哪种威胁?
答案 B。逻辑推断和汇聚。A 是授权误用,C 是 SQL 注入,D 是隐蔽信道。
Q3 · 应用与数据库之间防网上窃听,优先用?
答案 A。传输加密靠 SSL/TLS。改端口是加固辅助,关审计和超级权限是反面教材。
Q4 · 测试库把真实身份证换成假号码,这是?
答案 B。脱敏让非生产环境看不到真值;TDE 是密文存储,不是换成假号码。
Q5 · 普通网络防火墙通常拦不住 SQL 注入,主要因为?
答案 A。包过滤/状态检测不解析 SQL。拦注入靠参数化 + 库防火墙 / WAF。
Q6 · Microsoft SQL Server 默认监听端口通常是?
答案 B。1433 = SQL Server;3306 = MySQL;3389 = 远程桌面;1521 常与 Oracle 相关。
Q7 · Transparent Data Encryption is abbreviated as?(英文题)
答案 B。TDE = Transparent Data Encryption,透明数据加密(存储侧)。
附加题(下午卷风格)· 点击展开答案
某单位 Web 系统后台为 MySQL,存在弱口令、明文传输和 SQL 注入风险。请写出数据库安全加固的主要措施(不少于 5 点)。
① 职责分离:DBA、应用账号、审计账号分开;应用账号只给业务所需的最小权限。
② 认证加固:改默认账号与口令;强口令策略;限制来源 IP;能关远程就关 3306 对外监听。
③ 防注入:应用使用参数化查询;禁止拼接 SQL;必要时部署数据库防火墙 / WAF。
④ 传输与存储加密:应用↔库走 SSL/TLS;敏感字段加密或启用透明加密;测试环境脱敏。
⑤ 审计与高危操作:开启审计;限制无 WHERE 的更新删除、DROP 等。
⑥ 备份恢复:制定全备 + 增量/差异策略,并定期做恢复演练。
⑦ 打补丁、关危险功能(如导入本地文件)、对照安全基线扫描。
答题模板:分权最小权 + 参数化 + SSL + 脱敏/加密 + 审计备份,点到即可得分。
② 认证加固:改默认账号与口令;强口令策略;限制来源 IP;能关远程就关 3306 对外监听。
③ 防注入:应用使用参数化查询;禁止拼接 SQL;必要时部署数据库防火墙 / WAF。
④ 传输与存储加密:应用↔库走 SSL/TLS;敏感字段加密或启用透明加密;测试环境脱敏。
⑤ 审计与高危操作:开启审计;限制无 WHERE 的更新删除、DROP 等。
⑥ 备份恢复:制定全备 + 增量/差异策略,并定期做恢复演练。
⑦ 打补丁、关危险功能(如导入本地文件)、对照安全基线扫描。
答题模板:分权最小权 + 参数化 + SSL + 脱敏/加密 + 审计备份,点到即可得分。
十、今日任务(约 35 分钟)
- 精读第 20 章(20 分钟):阅读第 20 章 数据库系统安全,对照数据库安全速查卡背威胁八类与机制八项。
- 口述自测(10 分钟):不看笔记,说出:防注入首选什么;SSL 与 TDE 各保哪一段;1433 和 3306 分别是谁;差异备份相对哪一次。
- 睡前回忆(5 分钟):按考点背——① SQL 注入防护:参数化查询才可靠;② 数据库加密:网上传输走 SSL,透明加密简称 TDE;③ 数据库默认端口:SQL Server 一四三三,MySQL 三三零六。
十一、本课知识从哪来
- 《信息安全工程师教程(第 2 版)》第 20 章 数据库系统安全(清华大学出版社)
- 考试大纲 20.1–20.6(信管网转载的 2020 审定大纲结构)
- 备考笔记(辅助):博客园 · 第 20 章
- 参数化查询(辅助):OWASP SQL Injection Prevention
- 速查:数据库安全速查 · 第 15 课口诀 · 第 14 课 操作系统安全