安全架构

4 安全架构 4.1 威胁模型 | STRIDE类别 | 威胁描述 | 针对的生命周期阶段 | 对应安全功能(章节) | |------------|----------|------------------|----------------------| | **S** 欺骗 | 攻击者伪造合法用户/系统身份 | 访问、传输 | 身份认证、安全传输(TLS/TLCP) | | **T** 篡改 | 攻击者修改数据或代码 | 传输、计算、存储 | 安全传输、数据防篡改(账本表)、全密态加密、审计日志防篡改 | | **R** 否认 | 用户否认执行过某操作 | 所有阶段 | 安全审计(不可否认记录) | | **I** 信息泄露 | 敏感数据被未授权读取 | 访问、传输、计算、存储 | 访问控制、安全传输、透明加密、全密态加密、机密计算、数据脱敏 | | **D** 拒绝服务 | 攻击者使系统不可用 | 访问、网络 | 网络ACL、SQL防火墙(阻断异常大查询) | | **E** 权限提升 | 普通用户获得更高权限 | 访问、计算 | 访问控制(三权分立、最小权限)、数据库防火墙 | 角色 动机 目标 技术 分类 黑客 售卖获利 鉴别数据 不可信IP登录 欺骗 内部运维人员 勒索获利 用户表 暴力破解 篡改 内部研发人员 情报窃取 系统表 凭证重放 否认 系统维护人员 蓄意报复 事务日志 默认账户攻击 信息泄露 供应链 规避审计 审计日志 过期账号攻击 拒绝服务 网络中间人 炫耀技能 内存数据 弱口令攻击 权限提升 机房管理人员 人为过失 配置文件 内存凭证残留 - - - - 认证耗尽 - - - - 密码泄露 - - - - 数据泄露 - - - - 流量伪造 - - - - 流量重放 - - - - 密钥泄露 - - - - 证书伪造 - - - - 身份伪造 - - - - 未授权访问 - - - - 越权访问 - - - - 权限提升 - - - - 权限滥用 - - - - 磁盘窃取 - - - - 恶意软件 - - - - 系统隔离失效 - - - - 文件篡改 - - - - 日志伪造 - - - - 特权窥探 - - - - 供应链后门 - - - - 内存嗅探 - - - - 调试工具滥用 - - - - 操作抵赖 - - - - 攻击隐匿 - - - - 合规证据缺失 - 攻击者画像 攻击动机 攻击阶段 攻击类型 攻击目标 攻击技术(ATT&CK) 影响的安全域(GB/T 20273) 风险等级 安全功能与标准映射 外部渗透测试者 数据窃取 侦察 欺骗(S) 认证凭据 暴力破解(T1110) 身份鉴别(4.1) 高 身份认证;GB/T 20273 4.1;ISO 27001 A.9;NIST IA-5 内部恶意DBA 数据篡改 武器化 篡改(T) 会话令牌 中间人攻击(T1557) 传输数据保密性(4.8.2) 高 TLS双向认证;GB/T 20273 4.8.2;ISO 27001 A.13.2;NIST SC-8 内部开发人员 权限提升 投递 否认(R) 数据字典 账户操纵(T1098) 安全审计(4.6) 高 统一审计;GB/T 20273 4.6;ISO 27001 A.12.4;NIST AU-3 第三方运维人员 拒绝服务 利用 信息泄露(I) 用户表数据 SQL注入(T1190) 自主访问控制(4.2) 高 数据脱敏;GB/T 20273 4.2;PCI DSS 3.2 网络中间人 规避审计 安装 拒绝服务(D) 审计日志 日志清除(T1070) 用户数据完整性(4.7) 高 审计日志防篡改;GB/T 20273 4.7;ISO 27001 A.12.4;NIST AU-9 云租户(恶意) 勒索 命令与控制 权限提升(E) 存储过程/函数 服务器软件组件劫持(T1505) 强制访问控制(4.4) 中 最小权限原则;GB/T 20273 4.4;NIST AC-6 恶意应用程序 报复 目标达成 - 备份集 数据加密(防御绕过)(T1022) 存储数据保密性(4.8.1) 高 透明加密(TDE);GB/T 20273 4.8.1;ISO 27001 A.10.1 恶意OS管理员 间谍活动 - - 内存中的明文 进程注入(T1055) 标记(4.3) 高 机密计算(TEE);NIST SC-3 物理入侵者 误操作 - - 配置文件 系统信息发现(T1082) 可信路径(4.9) 中 网络ACL;GB/T 20273 4.9;ISO 27001 A.13.1 - 身份伪造 - - 数据导出文件 数据破坏(T1485) - 低 备份加密 - 会话劫持 - - 数据库链接 服务停止(T1489) - - SQL防火墙 - - - - 索引/分区 通过API攻击(T1559) - - 行级安全(RLS) - - - - 物化视图 客户端连接劫持(T1184) - - 列级加密 - - - - 同义词 网络嗅探(T1040) - - 三权分立 - - - - 触发器等对象 创建账户(T1136) - - 密钥管理(KMS/HSM) - - - - 临时表空间 数据从本地拉取(T1213) - - 全密态执行 - - - - Undo日志 禁用安全工具(T1562) - - 权限分析工具 - - - - 控制文件 受信关系利用(T1199) - - - - - - - 监听器/端口 反向工程(T1598) - - - - - - - SSL证书私钥 数据加密(自身通讯)(T1573) - - - - - - - 数据库参数 域策略修改(T1484) - - - - - - - 数据库进程内存 - - - - - - - - 数据快照 - - - - - - - - 数据库服务端口 - - - - gemini 攻击者画像 攻击动机 攻击阶段 (Kill Chain) 攻击类型 (STRIDE) 攻击目标 (数据库资产) 攻击技术(MITRE ATT&CK) ISO 15408 (CC) 功能组件映射 商业标杆对标 (Oracle企业版组件) 本内核架构防御机制基线 外部黑客/APT组织 经济利益(勒索/售卖) 侦察 (Recon) 欺骗(Spoofing) 认证凭据 (Hash/密码) T1190 利用面向公众的应用 FIA_UAU.2 (用户鉴别) Oracle Centrally Managed Users (CMU) 统一身份认证与多因素(MFA) 内部恶意超管/DBA 商业间谍(数据窃密) 武器化 (Weaponization) 篡改(Tampering) 数据文件(MDF/PGDATA) T1110 暴力破解 FCS_COP.1 (密码运算) Oracle Advanced Security (TDE) 透明数据加密 (TDE) 内部研发/测试人员 蓄意破坏(报复社会) 投递 (Delivery) 否认(Repudiation) WAL/Redo/Undo日志 T1098 账户操纵 FAU_GEN.1 (审计数据产生) Oracle Audit Vault and DB Firewall (AVDF) 高性能异步统一审计与防篡改日志 供应链/第三方运维 掩盖罪行(规避审计) 漏洞利用 (Exploitation) 信息泄露(Info Disclosure) 系统目录/数据字典 T1078 有效账户(默认/后门) FDP_ACC.1 (子集访问控制) Oracle Database Vault (Realm特权隔离) 强三权分立与安全堡垒(Realm)隔离 网络中间人(MITM) 炫耀技能(黑客主义) 安装/植入 (Installation) 拒绝服务(DoS) 业务表核心数据 T1059 命令行解释器提权 FDP_DAU.1 (基本数据鉴别) Oracle Blockchain Tables / Immutable Tables 数据防篡改内核账本 (Ledger Hash) 恶意云租户/邻居 误操作(配置失误) 命令与控制 (C2) 特权提升(Elevation) 审计日志记录 T1552 访问非安全凭据 FMT_SMR.1 (安全管理角色) Oracle Label Security (OLS) 强制访问控制 (MAC 安全标签) 恶意OS管理员 资源盗用(挖矿) 横向移动 (Lateral Move) 侧信道探测(Side-Channel) 密钥/证书/Keystore T1040 网络嗅探 FDP_RIP.1 (残余信息保护) Oracle Advanced Security (Data Redaction) 动态数据脱敏 (DDM) 物理机房入侵者 合规性破坏(名誉打击) 目标达成 (Actions) - 存储过程/UDF/扩展插件 T1557 中间人攻击 FCS_CKM.1 (密码密钥产生与管理) Oracle Key Vault (OKV) 两级密钥管理架构 (KMS/HSM对接) 失陷的业务程序 - - - 数据库进程内存 (SGA) T1070 清除审计日志 FPT_ITT.1 (内部TOE传输保护) Oracle Virtual Private Database (VPD) 行级安全 / 列级安全 (RLS / CLS) 离职/僵尸账号 - - - 监听器/暴露网络端口 T1486 影响数据加密(勒索) FTA_TSE.1 (TOE会话建立) Oracle Data Safe (合规评估与发现) 敏感数据发现与分类分级扫描 - - - - 会话令牌/Session T1485 数据破坏(删库) FPT_PHP.3 (抗物理攻击的TSF) Always Encrypted (SQL Server标杆) 硬件级机密计算 (TEE/SGX 内核隔离) - - - - DBLink/跨库链接 T1005 收集本地系统数据 - - 全密态执行引擎 (内存密态运算) - - - - 物理备份集/快照 T1565 数据逻辑操纵 - - 全链路 TLS 1.3 / 国密 TLCP 加密通道 - - - - 视图/物化视图/触发器 T1184 客户端连接劫持 - - 细粒度网络准入 (IP/用户元组控制) - - - - 数据库配置文件 - - - 内核级 SQL 防火墙 (基于AST白名单) - - - - 临时表空间(Temp) - - - - deepseek 攻击者画像 攻击动机 攻击阶段 攻击类型 (STRIDE) 攻击目标 攻击技术 (ATT&CK) 影响的安全域 (GB/T 20273-2019) 风险等级 安全功能与标准映射(示例) 外部渗透测试者 数据窃取 侦察 欺骗 (S) 认证凭据 暴力破解 (T1110) 身份鉴别 (4.1) 高 多因素认证;GB/T 20273 4.1;ISO 27001 A.8.5 内部恶意DBA 权限提升 武器化 篡改 (T) 会话令牌 SQL注入 (T1190) 自主访问控制 (4.2) 中 TLS双向认证;GB/T 20273 4.7.2;NIST SC-8 内部开发人员 数据篡改 投递 否认 (R) 数据字典 中间人攻击 (T1557) 强制访问控制 (4.4) 低 统一审计;GB/T 20273 4.5;ISO 27001 A.8.15 第三方运维人员 拒绝服务 利用 信息泄露 (I) 用户表数据 账户操纵 (T1098) 安全审计 (4.5) - 数据脱敏;PCI DSS 3.2 网络中间人 规避审计 安装 拒绝服务 (D) 审计日志 日志清除 (T1070) 用户数据完整性 (4.6) - 审计日志防篡改;NIST AU-9 恶意应用程序 勒索 命令与控制 权限提升 (E) 存储过程/函数 进程注入 (T1055) 存储数据保密性 (4.7.1) - 最小权限原则;GB/T 20273 4.4;NIST AC-6 恶意OS管理员 报复 目标达成 - 备份集 服务器软件组件劫持 (T1505) 传输数据保密性 (4.7.2) - 透明加密 (TDE);ISO 27001 A.8.24 物理入侵者 间谍活动 持久化 - 内存中的明文 数据加密(影响)(T1485) 可信路径 (4.8) - 机密计算 (TEE);NIST SC-3 云租户(恶意) 误操作 收集 - 配置文件 系统信息发现 (T1082) 网络安全 (4.9) - 网络ACL;GB/T 20273 4.9 恶意内部员工 身份伪造 渗出 - 数据导出文件 服务停止 (T1489) - - 备份加密;DLP 外部攻击者 会话劫持 物理访问 - 数据库链接 数据破坏 (T1485) - - SQL防火墙;连接限制 内部运维人员 侦察 - - 索引/分区 通过API攻击 (T1559) - - 行级安全 (RLS) 内部用户 - - - 物化视图 客户端连接劫持 (T1184) - - 列级加密 - - - - 同义词 网络嗅探 (T1040) - - 三权分立 - - - - 触发器等对象 创建账户 (T1136) - - 密钥管理 (KMS/HSM) - - - - 临时表空间 数据从本地拉取 (T1213) - - 全密态执行 - - - - Undo日志 禁用安全工具 (T1562) - - 权限分析工具 - - - - 控制文件 受信关系利用 (T1199) - - 不可变备份 - - - - 监听器/端口 反向工程 (T1598) - - 配置基线检查 - - - - SSL证书私钥 数据加密(自身通信) (T1573) - - 端口隐藏 - - - - 数据库参数 域策略修改 (T1484) - - 内存加密 - - - - 数据库进程内存 内存刮削 (T1535) - - 快照加密 - - - - 数据快照 数据泄露 (T1213) - - 文件系统权限 - - - - 数据库服务端口 端口扫描 (T1046) - - - 攻击者画像 攻击动机 攻击阶段 (Kill Chain) 攻击类型 (STRIDE) 攻击目标 (数据库资产) 攻击技术 (ATT&CK) 影响的安全域 (GB/T 20273-2019) 风险等级 安全功能与标准映射(含商业组件 & 内核防御) 外部黑客/APT组织 经济利益(勒索/售卖) 侦察 欺骗 (S) 认证凭据(密码Hash/票据) 暴力破解 (T1110) 身份鉴别 (4.1) 高 多因素认证;Oracle CMU;ISO 27001 A.8.5;NIST IA-5 → 统一身份认证与MFA内核模块 网络中间人 会话劫持 利用 篡改 (T) 会话令牌/Cookie 中间人攻击 (T1557) 传输数据保密性 (4.7.2) 高 TLS双向认证;Oracle Advanced Security;GB/T 20273 4.7.2;NIST SC-8 → 全链路TLS 1.3/国密TLCP加密通道 内部恶意DBA 商业间谍(数据窃密) 武器化 否认 (R) 数据字典/系统编目 账户操纵 (T1098) 安全审计 (4.5) 高 统一审计+防篡改日志;Oracle Audit Vault;GB/T 20273 4.5;ISO 27001 A.8.15 → 高性能异步审计与只读日志内核 第三方运维人员 数据窃取 投递 信息泄露 (I) 业务核心表数据 SQL注入 (T1190) 自主访问控制 (4.2) 高 SQL防火墙+静态脱敏;Oracle AVDF;PCI DSS 3.2 → 内核级AST白名单SQL防火墙 恶意内部员工 规避审计 安装 篡改 (T) 审计日志记录 日志清除 (T1070) 用户数据完整性 (4.6) 高 审计日志防篡改(只读表空间);Oracle Blockchain Table;NIST AU-9 → 内核防篡改账本(Ledger Hash) 云租户(恶意邻居) 勒索 命令与控制 权限提升 (E) 存储过程/函数/包 服务器软件组件劫持 (T1505) 强制访问控制 (4.4) 中 最小权限+代码签名;Oracle Database Vault;NIST AC-6 → 强三权分立与Realm特权隔离 恶意应用程序 报复 目标达成 拒绝服务 (D) 物理备份集/快照 数据破坏 (T1485) 存储数据保密性 (4.7.1) 高 不可变备份+离线存储;Oracle RMAN;ISO 27001 A.8.13 → 备份加密与防删除兜底策略 恶意OS管理员 间谍活动 横向移动 信息泄露 (I) 数据库进程内存(SGA/PGA) 进程注入/内存刮削 (T1055/T1535) 用户数据保密性 (4.7.1) 高 机密计算(TEE/SGX);Oracle Database 23ai Secure Enclaves;NIST SC-3 → 内存密态运算引擎 物理入侵者 误操作/物理破坏 物理访问 信息泄露 (I) 配置文件(spfile/pg_hba) 系统信息发现 (T1082) 可信路径 (4.8) 中 文件系统权限+配置加密;Oracle Data Safe;GB/T 20273 4.8;ISO 27001 A.8.1 → 内核可信路径与完整性校验 离职/僵尸账号 身份伪造 利用 欺骗 (S) 数据库链接(DBLink) 有效账户滥用 (T1078) 身份鉴别 (4.1) 中 账户生命周期管理;Oracle CMU;ISO 27001 A.8.2 → 动态权限回收与实时拦截 失陷的业务程序 数据泄露 渗出 信息泄露 (I) 敏感数据列(身份证/手机号) 通过API攻击 (T1559) 存储数据保密性 (4.7.1) 中 动态数据脱敏+行级安全;Oracle VPD/OLS;ISO 27001 A.8.26 → 列级加密(CLS)与行级安全(RLS) 内部运维人员 侦察 侦察 信息泄露 (I) 索引/分区/物化视图 网络嗅探 (T1040) 网络安全 (4.9) 低 加密通信+网络ACL;Oracle CMAN;GB/T 20273 4.9;ISO 27001 A.8.20 → 细粒度网络准入控制 供应链/第三方开发 权限提升 持久化 权限提升 (E) 触发器/UDF/扩展插件 创建账户 (T1136) 强制访问控制 (4.4) 高 权限分析+代码审查;Oracle Database Vault;NIST AC-6 → 插件签名验证与默认拒绝策略 内部恶意DBA 掩盖罪行 目标达成 篡改 (T) Undo/Redo/WAL日志 禁用安全工具 (T1562) 用户数据完整性 (4.6) 高 防篡改日志+权限分析;Oracle Audit Vault;ISO 27001 A.8.15 → 写入只读日志流与篡改即报警 云租户(恶意) 权限提升 利用 欺骗 (S) 控制文件/密码文件 受信关系利用 (T1199) 身份鉴别 (4.1) 高 网络隔离+强认证;Oracle MFA;GB/T 20273 4.1;NIST IA-5 → 基于TEE的密钥保护 外部攻击者 勒索 利用 拒绝服务 (D) 数据库监听器/服务端口 服务停止 (T1489) 网络安全 (4.9) 中 端口隐藏+SQL防火墙;Oracle CMAN;ISO 27001 A.8.22 → 内核级连接限流与抗DDoS 网络中间人 数据窃取 利用 信息泄露 (I) SSL证书私钥/Keystore 数据加密(自身通信) (T1573) 传输数据保密性 (4.7.2) 高 HSM/KMS保护私钥;Oracle Key Vault;NIST SC-12 → 两级密钥管理架构 内部恶意DBA 规避审计 安装 篡改 (T) 数据库参数(init.ora) 域策略修改 (T1484) 安全审计 (4.5) 高 配置基线检查+变更审计;Oracle AVDF;CIS 基线 → 参数修改自动回滚与告警 恶意内部员工 数据窃取 收集 信息泄露 (I) 临时表空间/临时文件 数据从本地拉取 (T1213) 存储数据保密性 (4.7.1) 中 全密态执行+临时文件加密;Always Encrypted;ISO 27001 A.8.24 → 全密态查询处理引擎 物理入侵者 数据窃取 渗出 信息泄露 (I) 数据快照/克隆副本 数据泄露 (T1213) 存储数据保密性 (4.7.1) 中 快照加密+访问审计;Oracle RMAN;ISO 27001 A.8.12 → 存储级加密与快照防激活 外部渗透测试者 侦察 侦察 信息泄露 (I) 数据库服务端口/监听器 端口扫描 (T1046) 网络安全 (4.9) 低 防火墙策略+IPS;Oracle CMAN;GB/T 20273 4.9 → 端口敲门与隐身技术 chatgpt 攻击者画像 攻击动机 攻击阶段 攻击类型 攻击目标 攻击技术 影响安全域(GB/T 20273) 风险等级 安全功能与标准映射 外部攻击者 数据窃取 侦察 机密性攻击 用户凭据 暴力破解(T1110) 身份鉴别(4.1) 高 身份认证;GB/T 20273 4.1;ISO 27001 A.9;ISO 15408 FIA 内部恶意DBA 数据篡改 权限提升 完整性攻击 会话令牌 中间人攻击(T1557) 传输数据保密性(4.8.2) 中 TLS双向认证;GB/T 20273 4.8.2;ISO 27001 A.13.2;NIST SC-8 内部开发人员 权限提升 执行 否认攻击 数据字典 账户操纵(T1098) 安全审计(4.6) 高 统一审计;GB/T 20273 4.6;ISO 27001 A.12.4;NIST AU-3 第三方运维人员 拒绝服务 利用 信息泄露攻击 用户表数据 SQL注入(T1190) 自主访问控制(4.2) 高 数据脱敏;GB/T 20273 4.2;PCI DSS 3.2 网络中间人 规避审计 安装 可用性攻击 审计日志 日志清除(T1070) 用户数据完整性(4.7) 高 审计日志防篡改;GB/T 20273 4.7;ISO 27001 A.12.4;NIST AU-9 云租户 勒索 命令与控制 权限提升攻击 存储过程/函数 服务器组件劫持(T1505) 强制访问控制(4.4) 中 最小权限原则;GB/T 20273 4.4;NIST AC-6 恶意应用程序 报复 目标达成 机密性攻击 备份集 数据加密防绕过(T1022) 存储数据保密性(4.8.1) 高 透明加密(TDE);GB/T 20273 4.8.1;ISO 27001 A.10.1 恶意操作系统管理员 间谍活动 - - 内存明文 进程注入(T1055) 标记(4.3) 高 机密计算(TEE);NIST SC-3 物理入侵者 误操作 - - 配置文件 系统信息发现(T1082) 可信路径(4.9) 中 网络ACL;GB/T 20273 4.9;ISO 27001 A.13.1 - 身份伪造 - - 数据导出文件 数据破坏(T1485) - 低 备份加密 - 会话劫持 - - 数据库链接 服务停止(T1489) - - SQL防火墙 - - - - 索引/分区 通过API攻击(T1559) - - 行级安全(RLS) - - - - 物化视图 客户端连接劫持(T1184) - - 列级加密 - - - - 同义词 网络嗅探(T1040) - - 三权分立 - - - - 触发器等对象 创建账户(T1136) - - 密钥管理(KMS/HSM) - - - - 临时表空间 数据从本地拉取(T1213) - - 全密态执行 - - - - Undo日志 禁用安全工具(T1562) - - 权限分析工具 - - - - 控制文件 受信关系利用(T1199) - - - - - - - 监听器/端口 反向工程(T1598) - - - - - - - SSL证书私钥 数据加密(自身通讯)(T1573) - - - - - - - 数据库参数 域策略修改(T1484) - - - - - - - 数据库进程内存 - - - - - - - - 数据快照 - - - - - - - - 数据库服务端口 - - - - 关系数据库安全威胁维度字典(多维去重 · 结构化版) 攻击者画像 攻击动机 攻击阶段 攻击类型 攻击目标 攻击技术 影响安全域(GB/T 20273 / ISO 15408) 风险等级 安全功能与标准映射 外部攻击者 数据窃取 侦察 机密性攻击 用户凭据 暴力破解(T1110) 身份鉴别(4.1) 高 身份认证 / MFA 内部恶意DBA 数据篡改 初始访问 完整性攻击 会话令牌 SQL注入(T1190) 自主访问控制(4.2) 中 访问控制(RBAC/RLS) 内部开发人员 权限提升 执行 可用性攻击 数据字典 中间人攻击(T1557) 标记(4.3) 低 三权分立 第三方运维人员 拒绝服务 持久化 不可否认性攻击 用户表数据 账户操纵(T1098) 强制访问控制(4.4) - 最小权限 网络中间人 勒索 权限提升 - 索引/分区 日志清除(T1070) 安全审计(4.6) - 审计日志防篡改 云租户 报复 防御规避 - 物化视图 进程注入(T1055) 用户数据完整性(4.7) - 统一审计 恶意应用程序 间谍活动 凭据获取 - 同义词 服务器组件劫持(T1505) 存储数据保密性(4.8.1) - 透明加密(TDE) 恶意操作系统管理员 规避审计 内部侦察 - 存储过程/函数 数据加密防绕过(T1022) 传输数据保密性(4.8.2) - TLS / 双向认证 物理入侵者 误操作 横向移动 - 触发器等对象 系统信息发现(T1082) 可信路径(4.9) - 网络ACL 离职/僵尸账号 身份伪造 数据收集 - 临时表空间 通过API攻击(T1559) FIA / FDP / FAU / FMT / FCS / FPT - SQL防火墙 自动化攻击工具 会话劫持 数据外传 - Undo日志 客户端连接劫持(T1184) - - 行级安全(RLS) - - 影响/破坏 - 控制文件 创建账户(T1136) - - 列级安全(CLS) - - - - 监听器/端口 数据从本地拉取(T1213) - - 数据脱敏 - - - - SSL证书私钥 禁用安全工具(T1562) - - 密钥管理(KMS/HSM) - - - - 数据库参数 受信关系利用(T1199) - - 全密态执行 - - - - 数据库进程内存 反向工程(T1598) - - 机密计算(TEE) - - - - 数据快照 数据加密(自身通讯)(T1573) - - 数据分类分级 - - - - 数据库服务端口 - - - 配置基线检查 4.2 防御模型 一、访问安全 威胁ID 威胁描述 STRIDE 风险等级 缓解的安全功能 T-ACS-01 弱口令爆破或默认账户攻击 S 高 身份认证(密码策略、账户锁定、MFA) T-ACS-02 重放攻击(抓取认证报文后重放) S 中 身份认证(Challenge-Response、Kerberos时间戳) T-ACS-03 从不可信IP或恶意主机连接 S/D 中 网络ACL(IP白名单) T-ACS-04 SQL注入攻击绕过权限检查 E 高 SQL防火墙(SQL白名单)、最小权限原则 T-ACS-05 内部人员滥用合法权限(如DBA偷看数据) I/E 高 访问控制(三权分立、行级安全)、数据脱敏 T-ACS-06 权限过度授予导致横向越权 E 高 访问控制(RBAC、最小权限)、权限分析工具 T-ACS-07 用户否认执行了某项敏感操作 R 高 安全审计(统一审计、细粒度审计) 二、传输安全 威胁ID 威胁描述 STRIDE 风险等级 缓解的安全功能 T-TRP-01 网络嗅探窃听数据库通信 I 高 安全传输(TLS 1.3、国密TLCP) T-TRP-02 中间人攻击(MITM)篡改或劫持会话 T/S 高 安全传输(证书双向验证、防降级攻击) T-TRP-03 会话劫持后模拟合法用户 S 高 安全传输(会话加密、绑定认证) 三、计算安全 威胁ID 威胁描述 STRIDE 风险等级 缓解的安全功能 T-CPT-01 数据库管理员或恶意进程在内存中读取敏感数据 I 高 全密态加密、机密计算(TEE) T-CPT-02 通过侧信道攻击(如Cache时间)推断数据 I 中-高 机密计算(恒定时间执行)、全密态加密 T-CPT-03 SQL执行计划中泄露敏感值(如错误消息、执行计划) I 中 数据脱敏(返回结果遮盖)、错误消息泛化 T-CPT-04 攻击者调用加密函数进行暴力破解或穷举 I/D 中 加密函数(密钥强度限制、防暴力调用策略) T-CPT-05 云环境下虚拟机管理器直接读取数据库进程内存 I 高 机密计算(TEE内执行、加密内存) T-CPT-06 已授权用户通过脱敏绕过机制看到原始数据 I 中 数据脱敏(权限校验、防绕过) 四、存储安全 威胁ID 威胁描述 STRIDE 风险等级 缓解的安全功能 T-STR-01 攻击者窃取磁盘或备份介质,绕过数据库直接读取数据文件 I 高 透明加密(TDE)、备份加密 T-STR-02 攻击者或恶意OS篡改数据文件中的数据块 T 高 数据防篡改(哈希链、账本表)、块级校验 T-STR-03 未授权用户通过文件系统直接拷贝数据文件 I 高 透明加密(TDE)+ 文件权限保护 T-STR-04 备份介质丢失导致数据泄露 I 高 透明加密(备份加密) T-STR-05 密钥管理不当(硬编码、弱密钥、不轮换)导致加密失效 I/T 高 密钥管理(KMS、HSM、自动轮换) T-STR-06 敏感数据未被识别(未分类分级)导致保护缺失 I 高 数据发现(自动扫描、分类分级) 五、合法合规 威胁ID 威胁描述 STRIDE 风险等级 缓解的安全功能 T-AUD-01 攻击者或恶意管理员删除/篡改审计日志以掩盖痕迹 T/R 高 审计日志防篡改(只写一次、WORM存储、加密) T-AUD-02 审计日志被未授权读取(泄露用户行为) I 中 审计日志加密存储、访问控制 T-AUD-03 审计数据量过大导致性能下降或日志溢出 D 中 统一审计(条件审计、采样审计) T-AUD-04 合规性检查时无法证明对敏感数据的控制措施 R 高 合规对标(等保、ISO、GDPR)、审计记录完整性 4.3 安全功能 一、访问安全 身份认证、访问控制(自主访问控制、强制访问控制、角色访问控制(三权分立)、行级访问控制) 二、传输安全 SSL 三、计算安全 加密函数、全密态、机密计算、动态脱敏 四、存储安全 透明加密、防篡改 五、合法合规 安全审计、密钥管理 一、接入安全 1. 网络防火墙 - 不可信IP登录 2. 身份认证 暴力破解 凭证重放 默认账户攻击 过期账号攻击 弱口令攻击 内存凭证残留 认证耗尽 密码泄露 二、传输安全 3. 安全传输 数据泄露 流量伪造 流量重放 会话密钥泄露 证书伪造 身份伪造 三、访问安全 4. 访问控制 未授权访问 越权访问 权限提升 权限滥用 权限提升 ...

June 11, 2026 · 11 min · 2140 words · Me

传统安全 1 密码学

1 密码学综述 本文主要总结常见的密码算法与协议,并不详细介绍原理 密码算法 对称密码算法 非对称密码算法 哈希算法 完整性校验算法 其他算法 随机数生成算法 密钥派生算法 2 密码算法 2.1 对称加密算法 对称加密算法的基本原理是,输入明文、密钥,对明文进行分组,对每组明文进行多轮线性、非线性运算,比如异或、代换等,得到密文。 常见的对称加密算法如下: 算法 发布时间 分组长度 密钥长度 算法 DES 1977 64 64 16 x 置换(E扩展、异或、代换、P置换) 3DES - - - - IDEA 1990 - - - AES 2001 128 128/192/256 10/12/14 x 矩阵运算(字节代换、行移位、列混合、异或) SM4 2012 128 128 32 x 分组运算(异或、代换、移位) SM1 - 128 128 未公开 SM7 - 128 128 未公开 在实现加密的过程中,还有几个基础知识: 密钥扩展:加密时,会迭代很多轮,每一轮都用1个轮密钥。1个原始密钥,扩展为多个的轮密钥。 加密模式:一个原始明文,分为多个明文组,组与组之间的组合方式如下: 模式 中文 描述 ECB 电子密码本 不同的明文块,用相同的密钥 CBC 密码分组链接 上1密文块,与下一明文块异或 CTR 计数器模式 密钥加密计数器生成密钥流,密文块与密钥流异或 CFB 密码反馈模式 - OFB 输出反馈模式 与CFB类似 常见算法的具体实现原理如下: ...

January 21, 2025 · 4 min · 711 words · Me

传统安全 3 网络安全

网络欺骗 - 50% 概述:局域网内,结合数据传播特点,伪造数据,欺骗机器网卡 模型: 主机:维护ARP缓存,内容为 [IP:MAC] 协议:ARP:Address Resolution Protol:根据IP获取MAC 主机网卡: 网卡工作模式: 混杂:接收所有数据 广播:接收dest_addr为广播地址的数据 多播:接收dest_addr为多播地址的数据 单播:接收dest_addr为本机地址的数据 链路层:需要MAC地址 交换机 分类:二层、三层、四层交换机 二层交换机:根据MAC,找到端口,发送数据,维护MAC缓存,内容为 [MAC:端口] 示意图 帧[mac][ip] 帧[mac][ip] [主机1] -----------> [交换机] -------------> [主机2] | IP | MAC | | 端口 | MAC | | IP | MAC | | 端口 | MAC | 攻击方式: 1 攻击机:发送大量 虚假MAC 的帧,占满交换机缓存,让交换机广播数据 2 攻击机:发送虚假的ARP:欺骗局域网内的主机 3 受害机:把数据发到错误的地方,比如攻击机 解决: 预防:主机静态ARP表、进制ARP 检测:看某台主机的ARP缓存,判断是否有主机发送大量ARP包 检测:看无通信主机的ARP缓存,检测是否缓存了ARP包 信息收集 - ok 概述:在进行攻击之前,收集受害者的信息 攻击方式: 主机状态 ICMP Echo攻击:发送ICMP Echo包,如果回复,则主机开启 Non-Echo ICMP:发送其他类型的ICMP包,如果回复,则主机开启 IP异常包头:发送异常IP包(无效字段、错误分片、静止分片),判断主机返回信息 TCP扫描 UDP扫描 操作系统版本 被动栈指纹识别:嗅探,收集网络中数据包,判断IP的TTL、TOS、DF和TCP 的Windows-size等特征 主动栈指纹识别:TCP三次握手,ACK序号相等还是加一 TCP ISN取样:向目标主机多次握手,多次取样返回的ISN ICMP包错误信息发送速率:向目标主机连续发送大量icmp错误包 ICP消息引用:向目标主机发送ICMP错误包,判断返回的错误引用长度 端口 TCP 连接(开放):tcp三次握手后,tcp反向ident协议可查看:对方进程pid和角色 TCP SYN(半开放):发送tcp syn包,端口关闭:返回rst,开启:返回syn+ack TCP FIN(隐蔽):发送fin包,关闭:返回rst,开启:无返回 TCP Xmax(隐蔽):发送fin、urg、push标记的包,关闭:返回rst,开启:返回 TCP NULL (隐蔽):发送关闭无标记包 FTP PROXY (隐藏):请求ftp服务向目标主机建立连接 UDP:发送UDP包,关闭:ICMP port unreachable,开启:无返回 软件版本 漏洞 操作系统漏洞:基于漏洞库,扫描CGI漏洞、POP3漏洞、FTP漏洞、SSH漏洞等 拒绝服务 - ok 概述:合法用户无法访问服务 ...

January 21, 2025 · 2 min · 220 words · Me

传统安全 4 防火墙

1 netfilter 1.1 netfilter 架构 1.2 netfilter 编程 struct nf_hook_state { unsigned int hook; int thresh; u_int8_t pf; struct net_device *in; struct net_device *out; struct sock *sk; struct net *net; struct list_head *hook_list; int (*okfn)(struct net *, struct sock *, struct sk_buff *); }; /* 回调函数 */ typedef unsigned int nf_hookfn( void *priv, struct sk_buff *skb, const struct nf_hook_state *state); /* 回调函数返回值 */ #define NF_DROP 0 #define NF_ACCEPT 1 #define NF_STOLEN 2 #define NF_QUEUE 3 #define NF_REPEAT 4 #define NF_STOP 5 /* 向内核注册回调函数 */ struct nf_hook_ops { struct list_head list; /* 链表成员 */ nf_hookfn *hook; /* 回调函数 */ struct module *owner; int pf; /* 协议簇 */ int hooknum; /* NF_ARP_IN, NF_ARP_OUT */ int priority; /* 优先级 */ } ; /* 协议簇 */ #define AF_UNSPEC 0 #define AF_UNIX 1 #define AF_LOCAL 1 #define AF_INET 2 /* IP */ #define AF_INET6 10 /* IPV6 */ #define AF_LLC 26 /* 注册 */ void nf_register_hooks(struct nf_hook_ops *ops_arr, int arr_len); module_init(arp_hook_init) 参考:netfilter结构体:https://www.cnblogs.com/ink-white/p/16818769.html 参考:netfilter构造报文:https://www.cnblogs.com/ink-white/p/16816464.html 参考:netfilter捕获arp:https://blog.csdn.net/fuyuande/article/details/79772134 2 iptables 2.1 iptables 命令 # 1 查看所有规则 iptables --list -n iptables --list -t [filter/mangle/nat/raw] # 2 规则管理 iptables [操作] [链名] [动作] [过滤条件] # 操作 -A : 新增规则,添加至末尾 -I : 新增规则,添加到指定位置 -D : 删除规则 -R : 替换规则 # 链名 PREROUTING INPUT OUTPT FORWARD # 动作 -j ACCEPT -j DROP -j REJECT -j SNAT # 过滤条件 -s 0.0.0.0 : 源IP -sport 100 : 源端口 -d 1.1.1.1 : 目标IP -dport 100 : 目标端口 -p icmp/tcp/udp : 协议类型 -p icmp --icmp-type 8 : ping -i etho : 数据接收网口 -o eth1 : 数据发送网口 -m 其他参数 -m mac --mac-source 00:00:00:00:01 -m owner --uid-owner 100 -m owner --pid-owner 100 -m state --state [NEW, RELATED, ESTABLISHED, INVALID] # 3 启动与停止 [ location: /etc/init.d/iptables ] iptables start iptables stop iptables restart # 4 批量操作 iptables -F # 清空规则 iptables -X # 清空用户规则 iptables -Z # 清空计数 # 5 保存规则 [ storage: /etc/sysconfig/iptables ] iptables save 3 kkwall 3.1 命令 # 1 过滤 # 1.1 过滤ip kkwall filter -sip 10.10.10.10 kkwall accept -dip 10.10.10.10 # 1.2 过滤端口 kkwall filter -sport 100 kkwall accept -dport 100 kkwall filter -dport all # 1.2 过滤协议 kkwal filter -protol tcp/icmp/udp/igmp # 3 入侵检测 # 3.1 防 arp 欺骗 # 网关固定mac kkwal set mac 0.0.0.0/00:00:00:00:01 # 短时间内,大量arp报文 # 3.2 端口扫描 # 设置端口白名单,如果报文目标端口在白名单外的端口,为异常报文 kkwal set ports 22,80 # 检测所有tcp状态,识别所有syn和fin扫描 # 3.3 拒绝服务 # 系统漏洞: # ping of death: 超长icmp包 63336, 分片发送 -> 丢弃 # tear drop: 重复的IP分片 -> 丢弃 # 有限资源 # smurf: 短时间接收到大量icmp echo包 -> 全丢弃 # tcp syn flood: 短时间,大量半开请求 # tcp syn land: tcp src_addr和dst_addr都是自己 # http flood: http请求 typedef struct { ; } ArpHdr; typedef struct { ; } IpHdr; typedef struct { ; } TcpHdr; typedef struct { int type; IpHdr *iphdr; TcpHdr *tcphdr; } Fragment; /* */ void detecte_trick(ArpHdr *arp) { ArpItem staticarp = arp_list_find(arp->mac); if (arp->dst_ip != staticarp) { printf("arp trick"); } } 参考:iptables常用命令 https://blog.csdn.net/shiner_chen/article/details/132104300

January 21, 2025 · 3 min · 466 words · Me

传统安全 5 数据库加密

1 数据库加密的背景 1.1 数据库安全机制 应用将数据发送给数据库后,数据库组织数据,将数据存储在文件中,并提供一系列安全机制,保护数据安全。比如: 安全传输:基于TLS等安全协议,保证数据在应用与数据库之间传输的机密性、完整性等,避免攻击者对传输中的数据进行窃听、伪造、篡改等 身份认证:基于IP、口令、证书等鉴别用户身份,避免攻击者非法访问数据库 访问控制:通过多种访问控制机制,限制攻击者对数据库对象的的访问范围 安全审计:记录攻击者在数据库中执行的各项操作 数据脱敏:对隐私数据库进行脱敏处理,避免攻击者查看数据库中的隐私数据 数据防篡改:基于区块链等技术,记录数据变化情况,识别攻击者非法篡改磁盘上的数据库文件 1.2 数据泄露问题 在很多针对数据库的攻击行为中,攻击者可绕过上述数据库安全机制,直接从磁盘窃取数据,造成数据泄露问题。 为了规避此类问题,有效的方案是对数据进行加密,使攻击者仅能从磁盘获取数据密文,无法解密数据,从而解决数据泄露问题。 1.3 数据库加密方案分类 数据库加密方案较多,本博客仅介绍一些常见的,且适用于大部分场景的加密方案。 一、按加密位置分类 首先,按加密位置分类,可分为以下6种: 各方案的基本原理如下: 应用加密:应用先将数据加密,再使用SQL语句,将数据密文存储至数据库 全密态加密:数据库驱动识别并加密SQL语法中的数据,同时自动解密SQL查询结果。部分数据库产品提供此功能 网关或代理加密:在应用与数据库之间的中继节点中,比如代理或网关中,通过解析网络流量,自动识别与加解密流量中的数据,包括SQL语法中的数据与SQL查询结果。很多云服务、安全厂商提供此服务 加密函数:数据库内置加密函数或存储过程,应用可通过SQL语法主动调用加密函数。大部分数据库产品提供此功能 透明加密:数据库将数据存储至磁盘前,自动加密数据,数据库从磁盘读取数据时,自动解密数据。大部分数据库产品提供此功能 磁盘加密:操作系统处理磁盘读写请求时,自动加密与解密读写到的数据。部分操作系统或云存储服务提供此功能 二、按加密定义方式分类 上述加密方案中,按应用是否主动感知加密过程,可将其分为非自动加密与自动加密。 非自动加密 以应用加密为例,用户加密数据的流程如下: -- 1 首先,定义表 CREATE TABLE t1 (c1 TEXT, c2 TEXT); -- 2 假设需向t1中存储数据 (1, 'data1'),应用需要先将数据加密,在通过SQL语法将加密后的数据存储至数据库 -- 3 存储数据 INSERT INTO t1 VALUES ('encrypted[1]', 'encrypted[data1]'); -- 4 查询数据时,查询结果为数据密文,数据无法直接使用 SELECT * FROM t1; -- 查询结果为:('encrypted[1]', 'encrypted[data1]') -- 5 应用需自行解密查询结果,最终解密后得到原始数据 (1, 'data1') 此类加密方案中,每次涉及数据读写操作时,都需要主动进行加密与解密,操作复杂。 ...

January 21, 2025 · 3 min · 550 words · Me

数据库安全 0 postgresql表级透明加密

1 特性背景 2 实现方案 2.1 系统表 1. pg_key_info 密钥信息 2. pg_key_data 密钥数据 3. pg_encryption 加密对象 2.2 定义表 2.3 定义表加密 2.4 操作表 2.5 管理表加密 2.6 管理主密钥 2.7 管理数据密钥 2.8 管理加密定义 2.8 未来计划 一、功能补充 二、语法复用 3 关键设计 3.1 格式设计 3.2 流程设计 整体流程 加密粒度 加密时机 加密判断 密钥存储 解密时机 解密判断 密钥来源 3.3 其他设计 3.2 主备密钥同步 4 特性源码 4.1 功能概览 基本功能篇 高级功能篇 加强篇 4.2 新增系统表 pg_key_info 4.2 新增系统表 pg_key_data 4.3 新增语法 CREATE KEY 4.4 新增语法 CREATE TABLE .. (protect=$data_key) 4.5 对加密对象的数据进行加密 参考 1 特性背景 2 实现方案 2.1 系统表 1. pg_key_info 密钥信息 keyoid keyname type alrotithm storage access protect create_time round 1 mk_1 master_key any localkms path=./keyfile $pass1 2024/02/01 13:01:01 - 2 dk_1 date_key aes_256_cbc database m100.d100.b1.i2 mk1 2024/02/01 13:01:01 0 2. pg_key_data 密钥数据 oid keydata algorithm 3 abcd1234 aes_256 3. pg_encryption 加密对象 type name oid special protect oldest_round table t1 100 - dk_1 1 2.2 定义表 定义表 定义表的语法与非加密表一致,我们通过单独的语法定义ENCRYPTION。 ...

January 21, 2025 · 4 min · 706 words · Me

数据库安全 Oracle

https://www.tapd.cn/60475194/markdown_wikis/show/#1160475194001006330 3 异常参数 3.1 DES encrypt 封装函数 CREATE OR REPLACE FUNCTION desencrypt(hex_plain VARCHAR2, hex_key VARCHAR2) RETURN VARCHAR2 IS cipher RAW(100); BEGIN dbms_obfuscation_toolkit.desencrypt(hextoraw(hex_plain), hextoraw(hex_key), encrypted_data=>cipher); RETURN rawtohex(cipher); END; / 函数格式 desencrypt(plain, key, cipher); 约束: 构造用例 明文长度 密钥长度 输出:密文长度 示例 结果 一、正常用例 8 8 8 desencrypt() abc 16 8 16 desencrypt() abc 一、明文长度异常 0 8 16 desencrypt() 明文不是8的倍数 1 8 - desencrypt() 明文不是8的倍数 7 8 - desencrypt() 明文不是8的倍数 15 8 - desencrypt() 明文不是8的倍数 二、密钥长度异常 8 0 8 desencrypt() 密钥长度不是8 8 1 8 desencrypt() 密钥长度不是8 8 15 8 desencrypt() 密钥长度不是8 8 16 8 desencrypt() 密钥长度不是8 3.2 DES decrypt 3.3 3DES encrypt 封装函数 ...

January 25, 2025 · 3 min · 435 words · Me

数据库安全 0 整体架构

摘要:介绍常见数据库安全机制的原理: 1.身份认证 2.安全传输 3.安全审计 4.访问控制 5.数据发现 6.数据防篡改 7.加密函数 8.透明加密 9.数据脱敏 10.全密态加密 11.机密计算 1 数据库安全概述 1.1 数据库基本功能 本文讨论数据库安全,为方便理解,将大部分软件架构简化为2个主体:应用端与数据库端。 应用:实现业务逻辑,收集业务数据,将数据发送至数据库,由数据库提供数据存储功能,并且,要求数据库提供数据查询功能 数据库:存储业务数据,向应用提供SQL接口,接收应用发送的SQL语句,并处理SQL语句。同时,解决高并发、高性能、高可靠的问题 大部分场景中,应用与数据库部署于不同主机上,以下是一个应用使用数据库实现数据存储与查询的示例流程: 建立连接:应用与数据库建立网络连接 定义数据:应用向数据库发送以下SQL语句,创建1个表 CREATE TABLE t1 (c1 INT, c2 TEXT); 存储数据:应用向数据库发送以下SQL语句,向表中存储数据 INSERT INTO t1 VALUES (1, 'abc'); 查询数据:应用向数据库发送以下SQL语句,从表中查询数据 SELECT * FROM t1; 1.2 数据库基本架构 数据库架构较复杂,此处先将数据库架构简单划分为以下3个部分: 数据库驱动:集成到应用内部,向应用提供编程接口,常见接口有:连接数据库、执行SQL语句等 计算模块:解析SQL语句,并按合理地执行流程处理SQL语句中的请求,调用存储模块接口实现数据存储与读取 存储模块:合理组织数据,调用IO接口,实现磁盘读写操作。向计算模块提供接口 1.3 数据库安全威胁 在应用使用数据库的过程中,攻击者可能对整个系统造成恶意攻击,攻击的最终目标是: 破坏业务数据:窃取、伪造、篡改、损坏等 破坏业务系统:拒绝服务等 攻击者针对多个系统薄弱点进行功能: 数据库网络:协议等 数据库应用:身份认证机制等 数据库主机:操作系统、软件(除数据库外的其他软件)、硬件等 假设应用与数据库部署在不同主机,分为是下图中的主机c和主机z,常见安全威胁的架构图如下: 1.4 数据安全架构 针对各类威胁,数据库提供多种安全机制,保护数据与数据库安全,常见的安全机制如下: 身份认证:阻止非法用户与数据库建立网络连接 安全传输:阻止非法用户窃取、篡改、伪造、..传输数据 安全审计:记录非法/合法用户对数据库的操作 访问控制:缩小非法用户对数据库的访问范围 数据发现:协助合法用户识别敏感数据 数据防篡改:识别非法用户篡改、伪造、..存储数据 加密函数:协助合法用户加密存储数据 透明加密:阻止非法用户窃取、篡改、伪造、..存储数据 数据脱敏:缩小非法用户对数据内容的访问范围 全密态加密:阻止非法用户窃取、篡改、伪造、..传输、计算、存储数据 机密计算:阻止非法用户窃取、篡改、伪造计算数据 按对数据处理的顺序,各安全机制的架构如下图所示: ...

January 22, 2025 · 1 min · 96 words · Me

数据库安全 1 身份认证

摘要:从5个方面,介绍PostgreSQL身份认证特性:背景、原理、使用、设计、实现 1 身份认证概述 1.1 非法访问风险 数据库进程 数据库运行时,本质是一个服务器进程,在特定的主机上,监听特定端口。应用如果知道IP和端口,都可与数据库进程建立TCP连接,并进行数据交互,包括发送SQL语句、接收查询结果等。 数据泄露风险 为避免非法用户访问数据库,构造特殊数据,造成数据损坏、数据泄露等问题,数据库接收应用建立TCP的请求,并成功建立TCP连接后,需先确认应用的身份是否合法,再接收应用的其他数据,比如接收SQL语句等。 1.2 身份认证机制 在信息系统中,身份认证是一种常见的机制,身份认证的概念较成熟,本文不详细介绍相关概念。身份认证分为标识与鉴别两个部分: 标识:用户向系统声明自己的身份,系统标识用户 鉴别:系统验证用户提供的信息,确认用户是否是已标识的用户 按照认证因素,可将身份认证划分为3类: 知识因素:用户知道某些秘密,比如口令、密码等 拥有因素:用户拥有某些实物,比如钥匙、证书、令牌等 生物因素:用户拥有某些特征,比如指纹、面部、虹膜、签名等 1.3 PostgrSQL的身份认证 PostgreSQL的认证方式有很多种,包括:密码认证、Ident认证、Peer认证、证书认证、LDAP认证等。本文仅介绍最常见的方案。 在大部分场景中,PostgreSQL采用以下2层认证机制: 主机认证: 标识:在PostgreSQL的配置文件中,配置IP白名单 鉴别:PostgreSQL与应用建立连接后,检查应用的IP是否在白名单内,判断应用是否合法 口令认证: 标识:PostgreSQL已存在的用户,创建新用户,为其设置用户信息,以及口令 备注:第一次安装PostgreSQL时,PostgreSQL要求用户创建初始用户 鉴别:在主机认证后,PostgreSQL先要求应用提供用户信息,再要求应用提供对应的口令,判断应用是否合法 2 身份认证的使用流程 2.1 基本流程 PostgreSQL中,从用户的角度观察,使用身份认证的流程可简单理解为: 用户:已存在的用户使用CRATE USER {username} .. PASSWORD {password} ..语法,创建新用户并设置口令 数据库:数据库先对口令进行哈希,再存储口令的哈希值,目前的版本中,默认哈希算法为sha256算法,用户可通过GUC参数配置哈希算法类型 用户:用户与数据建立连接,将{username}与{password}的哈希值发送给数据库,数据库比较用户发送的哈希值与系统表中的哈希值,判断{password}是否合法 具体实现中,第3步的验证过程较为复杂,RFC5 802协议提供了一套安全的交互流程。后文介绍内部实现的详细流程。 3 身份认证的实现 3.1 基于IP的身份认证 标识:访问者的IP 鉴别:数据库遍历IP白名单,判断访问者IP是否在白名单中,如果在,则认为访问者合法,允许与数据建立TCP连接。 PostmasterMain ServerLoop ConnCreate StreamConnection BackendStartup BackendRun PostgresMain InitPostgres PerformAuthentication ClientAuthentication hba_getauthmethod /* 从hba文件中,获取指定ip的认证方式 */ check_hba check_hostname check_ip /* 如果指定ip未获取到认证方式,则返回空 */ switch hba->auth_method: /* 根据ip采用不同的认证方式 */ case uaReject: case uaImplicitReject: case uaGSS: case uaSSPI: case uaPeer: ... case uaMD5: case uaPassword: case uaCert: case uaTrust: ... 3.2 基于证书的身份认证 创建主体的语法示例如下: ...

January 24, 2025 · 2 min · 229 words · Me

数据库安全 3 安全审计

摘要:从5个方面,介绍openGauss审计特性:背景、原理、使用、设计、实现 1 审计的背景 1.1 审计的原理 在使用数据库存取数据的大部分场景中,数据库具有以下特点: 对象多:一个数据库集群中有多个database对象,1个database对象中有多个schema对象,1个schema对象中有多个table、index等对象 用户多:一个数据库中,有多个用户,每个用户可访问的数据库对象不同 应用多:多个应用将数据存储在同一数据库集群中,并同时访问数据库集群 操作多:数据库提供丰富的功能,包括DDL、DML、DCL、运维等 运行久:一个数据库集群,可能会保持数十年运行 审计的主要目的,使记录数据运行过程中发生了哪些事件。审计的3要素是: 主体:一般指数据库用户 客体:一般指数据库对象,包括:集群、用户、连接、数据对象(database、schema、table、index、function等) 操作:主体对客体的操作,比如某个用户访问了某个表 1.2 审计的目的 审计具有以下重要意义: 攻击检测:通过检查审计日志,可判断是否发生网络安全攻击事件 例行维护:通过检查审计日志,可跟踪对某个对象的访问信息 故障检测:当数据库出现故障是,协助快速定位问题 合法合规:《网络安全法》等法律法规与表中中,要求应用具备审计功能 … 1.3 审计的功能 审计功能包含以下3个部分: 设置审计范围:通过数据库配置参数,或者数据库语法,定义哪些对象需要被审计 设置审计存储:通过数据库配置参数,定义审计日志如何存储 生成审计日志:数据库运行过程中,访问某个对象时,记录访问信息 管理审计日志:查询,删除,归档审计日志 1.4 oracle审计 oracle审计的发展: - oracle 8i及更早:支持传统审计 - oracle 12c:新增支持统一审计 - oracle 23ai:不支持传统审计,仅支持统一审计 oracle统一审计的使用: -- 1 创建审计策略 CREATE AUDIT POLICY ap1 PRIVILEGES CREATE TABLE, ALTER USER -- privilege 子句,记录所有使用CreateTable, AlterUser权限的操作 ACTIONS SELECT,INSERT,UPDATE ON t1 -- aciton 子句,记录所有对表t1执行SELECT,INSERT,UPDATE的操作 ROLES r1; -- role 子句,记录所有使用r1角色的操作 -- 2 启用审计策略 AUDIT POLICY ap1; -- 3 查看审计日志 SELECT * FROM UNIFIED_AUDIT_TRAIL; -- DBA_COMMON_AUDIT_TRAIL, DBA_AUDIT_SESSION, DBA_AUDIT_OBJECT, DBA_FGA_AUDIT_TRAIL SELECT * FROM DBA_AUDIT_TRAIL; os_username | username | userhost | terminal | timestamp | owner | obj_name | action | action_name | ------------+----------+----------+----------+-----------+-------+----------+--------+-------------+ | new_owner | new_name | obj_privilege | sys_privilege | admin_option | grantee | audit_option | ses_actions | +----------+----------+---------------+---------------+--------------+---------+--------------+-------------+ logoff_time | logoff_lread | logoff_pwrite | logoff_dlock | comment_text | sessionid | entryid | statementid | returncode | +-----------+--------------+---------------+--------------+--------------+-----------+---------+-------------+------------+ | priv_used | client_id | econtext_id | session_cpu | extended_timestamp | proxy_sessionid | global_uid | instance_number | +-----------+-----------+-------------+-------------+--------------------+-----------------+------------+-----------------+ os_process | transactionid | scn | sql_bind | sql_text | obj_edition_name | dbid | rls_info | current_user | +----------+---------------+-----+----------+----------+------------------+------+----------+--------------+ 其中,可设置的权限、操作等范围如下: ...

January 22, 2025 · 13 min · 2643 words · Me
心情不好的时候可以点一下 🐱
×
🤖 Doubao AI ×
Hi! 我是你的技术助手。关于代码、架构或 Bug,随时问我!🚀