软考学习(十八)
尝试使用AI分析pdf和真题集,总结出一份学习指南。
第20章 数据库系统安全 · 核心总结
依据《信息安全工程师教程(第2版)》第20章(教材第 428–446 页)整理;第七、八节基于真题集 965 题中筛选出的 20 余道本章相关真题逐题研读补充。本章是”威胁分类 + 三大数据库安全实践”章节,选择题专考数据库威胁名词辨析与加密/备份细节,案例题与 Web 安全、等保场景联动。
一、数据库安全概况(20.1)
概念:数据库是网络信息系统的基础性软件;国外主流数据库有 MSSQL、MySQL、Oracle、DB2,国产数据库主要有人大金仓、达梦。数据库安全=数据库的机密性、完整性、可用性能够得到保障,涉及数据库管理安全、数据安全、数据库应用安全、数据库运行安全四个方面。
八大安全威胁(名词辨析,真题考过 4 次以上)
| 威胁 | 关键描述(真题答案口径) |
|---|---|
| 授权的误用(Misuses of Authority) | 合法用户越权获得不该获得的资源、窃取程序或存储介质;或将自己的特权不适当授予其他用户 |
| 逻辑推断和汇聚(Logical Inference and Aggregation) | 把不太敏感的数据结合推断出敏感信息;个别数据项不敏感但汇聚成集后变敏感 |
| 伪装(Masquerade) | 攻击者假冒用户身份获取数据库访问权限(真题答案) |
| 旁路控制(Bypassing Controls) | 在数据库设置后门,绕过安全访问控制机制(真题答案) |
| 隐蔽信道(Covert Channels) | 利用非正常通信途径传输数据躲避安全机制控制,如共享内存、临时文件 |
| SQL 注入攻击(SQL Injection) | 利用应用程序输入未进行安全检查的漏洞,欺骗数据库服务器执行恶意 SQL 命令,可致信息泄露甚至系统失控 |
| 数据库口令密码破解 | 口令字典或手动猜测;”撞库“=收集互联网已泄露的用户+口令生成字典表,批量登录其他网站 |
| 硬件及介质攻击 | 对数据库相关设备和存储介质的物理攻击 |
七大安全隐患(案例素材)
①用户账号和密码隐患——默认账号/默认密码;Oracle 隐患:内部密码储存在 strXXX.cmd 文件(XXX 是系统 ID 和 SID,默认”ORCL”,用于数据库启动进程,真题答案)、监听进程密码保存在 listener.ora(保存所有 Oracle 执行密码,可被利用做 DoS)、”orapw” 文件存 SYSDBA 角色密码应限制权限;②扩展存储过程隐患——登录 sa 即可用 xp_cmdshell 执行操作系统命令(Sybase/SQL Server 后门);③软件和应用程序漏洞——“黛蛇”(Dasher.B)蠕虫利用 MS04-045/MS04-039 漏洞;④权限分配隐患——DBA 分配权限过大;⑤用户安全意识薄弱——弱口令、历史记录泄露;⑥网络通信明文传递——窃听登录凭据;⑦安全机制不健全——MS SQL Server 不能删除账号 sa 且默认空口令(Slammer 蠕虫利用该漏洞攻击)。
八项安全需求
标识与鉴别(认证后才可操作数据库对象)、访问控制(自主/强制/角色等多种模式)、安全审计(记录操作类型、用户标识、时间、客体对象)、备份与恢复(备份数据还原+利用日志恢复重建)、数据库加密(防操作系统工具直接窃取;备份内容成密文,减少备份介质失窃损失)、资源限制(限制 CPU、共享缓存、存储介质、并行会话数,避免拒绝服务攻击)、安全加固(漏洞检查修补)、安全管理(安全策略集中配置管理)。
二、数据库安全机制与实现技术(20.2)
安全机制及功能(表 20-1,”哪个机制实现什么功能”真题考过 2 次)
| 机制 | 功能 |
|---|---|
| 标识与鉴别 | 用户属性定义、用户-主体绑定、鉴别失败处理、秘密验证、多重鉴别机制 |
| 访问控制 | 会话建立控制、系统权限设置、数据资源访问权限设置 |
| 安全审计 | 审计数据产生、用户身份关联、安全审计查阅、限制审计查阅、选择审计事件 |
| 备份与恢复 | 备份和恢复策略设置、备份数据导入导出 |
| 数据加密 | 加密算法参数设置、密钥生成和管理、加密解密操作 |
| 资源限制 | 持久/临时存储空间最高配额、事务持续时间限制 |
| 安全加固 | 漏洞修补、弱口令限制 |
| 安全管理 | 安全角色配置、安全功能管理(真题答案 D) |
数据库加密(真题考过 4 次)
- 两种类型:网上传输数据——通常利用 SSL 协议实现(真题答案);存储数据——数据库存储加密
- 按加密组件与 DBMS 的关系分两种:库内加密(在 DBMS 内部实现支持加密的模块)、库外加密(DBMS 范围之外由专门加密部件完成加解密)
- 三种常用技术方法:基于文件(整个数据库文件作为整体加密)、基于记录(每个记录加密成密文存放)、基于字段(以不同记录的不同字段为基本加密单元)——数据库中最小的加密单位是字段(真题答案);索引字段不能加密(加密后无法索引查找,真题答案:不能加密的字段=索引字段,密码/名称/日期字段可以)
数据库防火墙(案例真题考过)
通过 SQL 协议分析,按预定义禁止/许可策略让合法 SQL 通过、阻断非法操作,形成数据库外围防御圈;提供 SQL 注入禁止和虚拟补丁包功能——不用升级打补丁即可完成对主要数据库漏洞的防控。案例真题答案原文:”基于数据通信协议深度分析和虚拟补丁,根据安全规则对数据库访问操作及通信进行安全访问控制”→数据库防火墙(与 WAF 区分:WAF 抵御 SQL 注入、XSS、Cookie 注入、CSRF 等 Web 攻击)。七大作用:屏蔽直接访问通道、增强认证(两层身份认证)、攻击检测(记录时间/来源 IP/用户名/攻击代码)、防止漏洞利用(虚拟补丁)、防止内部高危操作(限定无 Where 的更新删除、限定 drop/truncate)、防止敏感数据泄露(限定查询下载量与访问用户地点时间)、数据库安全审计。
数据库脱敏(真题考过 2 次,教材原例)
按脱敏规则对敏感数据进行变换,去除标识数据、实现匿名化处理。常见数据脱敏技术方法五种:屏蔽、变形、替换、随机、加密。教材原例(真题 8261):物品标识数据 4346 6454 0020 5379 脱敏后变 4346 xxxx xxxx 5379 → 该方法为替换(真题答案 C)。
数据库漏洞扫描
模拟黑客漏洞发现技术做安全探测,收集漏洞详细信息、分析不安全配置、检查弱口令用户;建立数据库安全基线。商业产品:NGSSQuirrel for Oracle(检查几千个安全威胁、补丁状况、对象权限、密码审计功能含字典和暴力破解模式)、xSecure-DBScan。
三、Oracle 数据库安全分析与防护(20.3)
Oracle 公司 1979 年首先推出基于 SQL 标准的关系型数据库。安全机制五种:
- 用户认证:除数据库认证外还支持操作系统认证、网络认证、多级认证、SSL 认证;采用”用户名+口令”,有口令加密、账户锁定、口令生命期和过期、口令复杂度验证;管理员须特别认证(强认证、操作系统认证、口令文件认证);网络认证支持第三方认证、PKI 认证、远程认证
- 访问控制:网络访问控制(限制连接 IP)+细粒度访问控制 FGAC(对 select、insert、update、delete 用不同策略)
- 保险库 Database Vault(DV):保护敏感数据,功能=防止未授权变更、多因素可信授权、职责隔离、最小化特权;通过**安全域(Realm)和命令规则(Command Rules)**控制特权——如 DBA 禁止操作 HR 安全域;可阻止 drop table、alter system 等未授权命令
- 安全审计和数据库防火墙:可审计活动三种类型=登录尝试、数据库活动、对象存取;防火墙提供 SQL 语法分析引擎,支持白名单(认可的 SQL 语句)、黑名单(不允许特定用户/IP/类型 SQL)、基于例外名单的策略(可覆盖白/黑名单,基于 SQL 类别、时间、应用、用户、IP)
- 高级安全功能:透明数据加密 TDE(阻止攻击者绕过数据库从存储设备强制读取敏感信息)+数据屏蔽(Data Masking)
最佳实践 12 条(素材):增强操作系统安全、最小化安装删组件、装最新补丁、删除或修改默认用户名密码、启用认证、口令策略(修改用户概要文件:最大错误登录次数、失效锁定时间、有效时间、复杂检查)、最小化权限(撤销 Public 组权限,严格限制 **UTL_FILE(读服务器文件)、UTL_HTTP(HTTP 访问外部资源)、UTL_TCP(TCP 连接获取文件)、UTL_SMTP(SMTP 转发文件)四个程序包)、限制连接 IP(TNS 监听器漏洞可致超级用户权限)、传输加密(TNS 协议明文,用 SSL)、启用审计(审核登录”失败”事件)、跟踪漏洞信息、灾备计划。漏洞修补:Oracle 建立关键补丁更新包 CPU(Critical Patch Updates)**服务=安全补丁修补集;按 CVSS 评估风险(满分 10 分)。
四、MS SQL Server 数据库安全分析与防护(20.4)
起源于 Sybase,基于 Windows NT 的大型关系型数据库。安全机制五种:
- 用户身份认证:Windows 认证(默认方式)和混合认证两种——Windows 认证信任特定 Windows 用户/组账户直接登录
- 访问控制:基于角色——三种角色=固定服务器角色、固定数据库角色、应用角色
- 数据库加密:Transact-SQL 函数、非对称密钥、对称密钥、证书、透明数据加密(2008 起提供);密钥层级=服务主密钥→数据库主密钥→证书→数据库加密密钥
- 备份恢复机制:备份支持静态备份和动态备份;四种备份方案=文件和文件组备份、事务日志备份、完全备份、差异备份;三种恢复模型=简单恢复、完全恢复、批量日志记录恢复。关联真题:增量备份=只备份上次备份后有变化的数据(备份类型:完全/增量/差分/按需)
- 安全审计:美国政府 C2 级认证要求,内置审计机制可审计所有权限使用
最佳实践要点:密码策略(Slammer 蠕虫利用 sa 空口令);删除不必要的扩展存储过程(xp_cmdshell);Tabular Data Stream 协议明文传输→用 SSL;修改默认 TCP/IP 端口 1433(真题答案:SQL Server 默认端口 1433);IP 限制;日志审计(审核登录”失败和成功”事件);补丁;操作系统加固;容灾备份。漏洞特点:主要为拒绝服务、代码执行、溢出、特权获取;最严重 CVE-2002-0721(CVSS 满分 10 分);微软设 MSRC(微软安全响应中心)每月发布安全公告并公布漏洞利用指数四级(0-检测到被利用、1-可能被利用、2-不太可能、3-不可能)。
五、MySQL 数据库安全分析与防护(20.5)
网络化关系型数据库,与 PHP、Apache 组合(LAMP)广泛应用于互联网。安全机制三种:用户身份认证(用户名/口令)、访问授权(5 个授权表=user、db、host、tables_priv、columns_priv;grant 和 revoke 命令创建删除用户权限)、安全审计(内置机制记录运行状况)。
最佳实践 10 条(真题考过”不正确做法”):①单独启动 MySQL 的用户和组、装最新软件包;②建立 Chrooting 运行环境(”沙箱”保护,增强抗渗透);③关闭远程连接——关闭默认监听端口 3306(本地用 mysql.sock 连接,备份用 SSH);④禁止 LOAD DATA LOCAL INFILE 命令(防读本地文件入数据库);⑤修改 root 用户 ID 和密码;⑥删除默认数据库 test、除 root 外去掉其他用户;⑦更改 root 用户名(防口令暴力破解,update user set user=”mydbadmin”);⑧应用程序独立账号,限制 FILE、GRANT、ALTER、SHOW DATABASE、RELOAD、SHUTDOWN、PROCESS、SUPER 等特权;⑨安全监测;⑩备份。真题陷阱(8087):”设置 sy1 用户并赋予 mysql 库 user 表的存取权限“是错误做法——除 root 外任何用户都不应拥有 user 表存取权限(SELECT/UPDATE/INSERT/DELETE)。
六、国产数据库安全分析与防护(20.6)
概况:国产数据库=神舟数据(通用)、人大金仓、达梦等传统数据库及中科院软件所安捷实时数据库;已用于国家电网、国土资源、审计、铁路、电力、银行、通信等关基领域。国家标准《信息安全技术 数据库管理系统安全技术要求(GB/T 20273—2019)》规定五个安全等级。
四大安全风险:①国产数据库自身漏洞(达梦 CNVD-2017-31606 越权访问漏洞——非法获取 DBA 角色权限;南大通用 GBASE CNVD-2016-09750 拒绝服务漏洞——astest 函数耗尽内存宕机);②依赖第三方组件漏洞(如 OpenSSL 漏洞影响网络传输);③安全配置不当(未启用安全功能、弱口令、开放过多端口、非安全远程登录);④支持平台(操作系统)安全。
增强措施三方面:①漏洞挖掘及扫描(安华金和数据库攻防实验室、支持国产数据库的漏扫工具);②数据库加密(达梦 DM:内部算法加密、第三方软硬件存储加密、透明/半透明/非透明加密,密码引擎把外部密码设备抽象为调用接口);③国产安全数据库(人大金仓 KingbaseES 安全版遵照 GB/T 20273—2019 第四级技术要求:多重身份鉴别、入侵检测与报警、可信路径、推理控制、形式化证明、隐蔽信道分析,通过公安部第四级检验;LOIS SDBMS——国内第一个采用核心化体系结构的安全数据库,强制访问控制粒度达到记录级,达国标 17859 第三级;南京大学 Softbase 同达第三级)。
七、真题补充考点(教材未细讲,但真题反复考)
1. 数据库安全策略原则(真题考过)
最小特权原则(用户仅被允许访问应该访问的信息)、最大共享原则(让用户尽可能访问被允许访问的信息,保证信息最大限度利用)、开放系统 vs 封闭系统——开放系统存取规则规定哪些访问不被允许(规则丢失→未经许可访问发生);封闭系统规则仅规定哪些访问被许可(规则丢失只会使访问限制更严格)。真题陷阱把开放/封闭的后果写反。
2. SQL 注入防护与危害(真题考过 3 次)
不能防范 SQL 注入的措施=”在 Web 应用程序中用管理员账号连接数据库“(特权过高后果更严重);有效措施=配置 IIS、去掉不需要的函数和存储过程、检查输入参数。SQL 注入危害:可造成整个数据库全部泄露(”危害不大”是错误说法);它不是”直接对 Web 数据库的攻击”(是通过 Web 应用间接)。数据库 IDS 检测 SQL 注入/口令攻击/漏洞利用,跨站脚本 XSS 宜用 Web IDS 检测(真题)。
3. 用户身份鉴别定义(真题考过)
用户身份鉴别=验证用户的身份是否真实、合法(区别于用户角色、数据库授权)。
4. 数据加密传输(真题考过)
数据库网上传输的数据通常利用 SSL 协议实现加密传输(”SSH”是干扰项——SSH 用于远程登录通道)。
5. 运维审计中的数据库视角(与第12章交叉)
运维安全审计产品含字符会话审计(针对 SSH 和 Telnet 协议)、图形操作审计、数据库运维审计、文件传输审计、合规审计——详见第 12 章总结。
八、真题高频考法与案例分析题型
综合知识选择题高频问法
| 考点 | 真题问法与答案要点 |
|---|---|
| 威胁名词辨析 | “设置后门绕过访问控制”→旁路控制(考过 2 次);”假冒用户身份获取权限”→伪装;”不敏感数据聚合成敏感集”→逻辑推断和汇聚;”共享内存/临时文件传数据”→隐蔽信道 |
| 安全机制功能 | “实现安全角色配置、安全功能管理”→安全管理(考过 2 次);”漏洞修补、弱口令限制”→安全加固 |
| Oracle 密码文件 | 内部密码储存在 strXXX.cmd(listener.ora=监听进程密码,干扰项) |
| 加密单位 | 最小加密单位=字段;索引字段不能加密 |
| 加密方式 | 网上传输用 SSL;库内加密=DBMS 内部模块、库外加密=DBMS 之外专门部件;方法=文件/记录/字段 |
| 备份类型 | “只备份上次备份后有变化的数据”→增量备份;SQL Server 四方案=文件文件组/事务日志/完全/差异;三恢复模型=简单/完全/批量日志 |
| 默认端口 | SQL Server=1433;MySQL=3306(默认监听应关闭) |
| sa 与 xp_cmdshell | sa 登录可用 xp_cmdshell 执行操作系统命令;MS SQL 不能删 sa 且默认空口令 → Slammer 蠕虫利用 |
| MySQL 最佳实践 | 错误做法=”普通用户拥有 mysql 库 user 表存取权限“;正确=删匿名账号、root 设口令、避免 root 权限运行、改 root 名、删 test 库、禁 LOAD DATA LOCAL INFILE |
| SQL 注入 | 定义=利用输入未检查漏洞欺骗执行恶意 SQL;危害=整个数据库全部泄露;”用管理员账号连数据库”不能防范 |
| 数据脱敏 | 五方法=屏蔽、变形、替换、随机、加密;”4346 xxxx xxxx 5379”→替换(教材原例) |
| 数据库防火墙 | 原理=数据通信协议深度分析+虚拟补丁;作用=不用升级打补丁防控漏洞;与 WAF 分工(WAF 管 Web 攻击、DB 防火墙管数据库访问) |
| 身份鉴别 | “验证用户身份是否真实合法”→用户身份鉴别 |
案例分析题型(真题集相关案例考法)
- 防火墙设备选型(15026 问题 4):”抵御 SQL 注入、XSS、Cookie 注入、CSRF 等”→ WAF(Web 应用防火墙);”基于数据通信协议深度分析和虚拟补丁、对数据库访问操作进行安全访问控制”→ 数据库防火墙——两空配对出题,区分口径即可拿分。
- LAMP 网站数据库安全(15048/15049,与第4/22章交叉):MySQL 的 user 表权限、防鉴别信息窃听(详见第 4 章总结的等保案例)。
- 数据中心等保三级(15040/15045):”对数据库区域进行安全防护”的边界设备→防火墙;数据库安全域划分(详见第 4 章总结)。
- SQL 注入应急与防护(跨章):Web 视角(IIS 配置、输入检查、最小特权账号)归第 22 章;数据库视角(最小权限、删存储过程、关闭 1433 对外)归本章。
复习提示:本章案例单独出大题少,主要作为设备选型(WAF vs 数据库防火墙)与等保场景的采分点;选择题主抓”威胁名词配对、加密三层次、备份四方案、两大默认端口”。
备考提示
真题研读后的优先级排序(按出题频次与分值):
- 八大威胁名词辨析——旁路控制(2 次)、伪装、授权误用、逻辑推断汇聚、隐蔽信道、SQL 注入,选择题必考
- 数据库加密体系——SSL 传输加密、库内/库外、文件/记录/字段、最小单位字段、索引字段不可加密,考过 4 次
- 安全机制功能配对——安全管理=安全角色配置+安全功能管理、安全加固=漏洞修补+弱口令限制,考过 2 次
- Oracle 安全细节——strXXX.cmd 内部密码、listener.ora 监听密码、UTL 四程序包、DV 保险库、CPU 关键补丁更新包
- SQL Server 细节——Windows/混合认证、三角色、四备份方案三恢复模型、1433 端口、sa 空口令与 Slammer、xp_cmdshell
- MySQL 最佳实践——5 授权表、grant/revoke、3306 关闭远程、user 表权限只有 root、删 test 库改 root 名
- SQL 注入攻防——定义、危害(全库泄露)、”管理员账号连库”不能防、数据库 IDS vs Web IDS 分工
- 数据库防火墙与 WAF 分工——协议深度分析+虚拟补丁 vs Web 攻击防护,案例配对题
- 数据脱敏——屏蔽/变形/替换/随机/加密五法,教材原例考过 2 次
- 国产数据库——GB/T 20273—2019 五级、达梦加密引擎、金仓第四级、LOIS SDBMS 记录级强制访问控制
易混速记
| 对比 | 内容 |
|---|---|
| 伪装 vs 旁路控制 | 伪装=假冒用户身份;旁路控制=设置后门绕过访问控制 |
| 授权误用 vs 逻辑推断 | 授权误用=合法用户越权或乱授权;逻辑推断=不敏感数据推断/汇聚出敏感信息 |
| 库内 vs 库外加密 | 库内=DBMS 内部加密模块;库外=DBMS 之外专门加密部件 |
| 增量 vs 差异备份 | 增量=上次备份后有变化的数据;差异=上次完全备份后变化的数据;SQL Server 四方案含事务日志备份 |
| WAF vs 数据库防火墙 | WAF=挡 Web 攻击(SQL 注入/XSS/CSRF/Cookie 注入);数据库防火墙=协议深度分析+虚拟补丁管数据库访问 |
| strXXX.cmd vs listener.ora | strXXX.cmd=Oracle内部密码(启动进程);listener.ora=监听进程密码 |
| 1433 vs 3306 | SQL Server 默认 1433(建议更改);MySQL 默认 3306(建议关闭远程) |
| Windows 认证 vs 混合认证 | SQL Server 默认=Windows 认证;混合=Windows+SQL Server 自身账号 |
| grant vs revoke | grant=授权/创建用户;revoke=撤权/删除用户权限(MySQL) |
| sa vs root | sa=MS SQL Server 系统账号(不能删、曾默认空口令→Slammer);root=MySQL 超级用户(应改名、删多余账号) |
| 索引字段 vs 普通字段 | 索引字段不能加密(否则无法检索);密码、名称等业务字段可加密 |
| 开放系统 vs 封闭系统 | 开放系统规则=规定不允许的访问(丢规则→越权);封闭系统规则=仅规定允许的访问(丢规则→更严格) |

