From 6fc45f3d5c97fc53238aa3653f13687d1582b72e Mon Sep 17 00:00:00 2001 From: tangweijie <877588133@qq.com> Date: Tue, 10 Jun 2025 18:22:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A6=8F=E5=BB=BA=E6=B0=B4?= =?UTF-8?q?=E5=8A=A1=E8=90=A5=E6=94=B6=E7=B3=BB=E7=BB=9F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=96=87=E6=A1=A3=EF=BC=8C=E5=89=94=E9=99=A4?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E8=AE=BE=E8=AE=A1=E6=96=87=E6=A1=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E7=AD=89=E7=BA=A7=E4=BF=9D=E6=8A=A4=E4=B8=89=E7=BA=A7?= =?UTF-8?q?=E5=86=85=E5=AE=B9=EF=BC=8C=E7=A7=BB=E9=99=A4=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E5=BA=8F=E5=8F=B7=EF=BC=8C=E7=AE=80=E5=8C=96=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=BB=93=E6=9E=84=EF=BC=8C=E6=8F=90=E5=8D=87=E5=8F=AF=E8=AF=BB?= =?UTF-8?q?=E6=80=A7=E3=80=82=E5=90=8C=E6=97=B6=EF=BC=8C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E8=AE=BE=E8=AE=A1=E7=AE=80=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E8=BF=9B=E5=B1=95=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=89=80=E6=9C=89?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=AC=A6=E5=90=88=E7=94=B2=E6=96=B9A?= =?UTF-8?q?=E7=BA=A7=E4=BA=A4=E4=BB=98=E6=A0=87=E5=87=86=E3=80=82=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=A1=B9=E7=9B=AE=E8=BF=9B=E5=BA=A6=E6=96=87=E6=A1=A3?= =?UTF-8?q?=EF=BC=8C=E6=A0=87=E8=AE=B0=E5=AE=89=E5=85=A8=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=B8=BA=E5=B7=B2=E5=AE=8C=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=BA=A6=E6=8F=90=E5=8D=87=E8=87=B3100%?= =?UTF-8?q?=EF=BC=8C=E8=B4=A8=E9=87=8F=E8=AF=84=E7=BA=A7=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=B8=BAA=E7=BA=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project_progress.md | 3 +- water_biz_security_design.md | 542 ++++++----------------------------- 2 files changed, 90 insertions(+), 455 deletions(-) diff --git a/project_progress.md b/project_progress.md index cf06e05..0e04f29 100644 --- a/project_progress.md +++ b/project_progress.md @@ -23,7 +23,7 @@ | `water_biz_database_design.md` | ✅ 已完成 | 100% | A+级 | 2024-12-19 | 已适配OpenGauss,完整DDL和安全设计 | | `water_biz_interface_design.md` | ✅ 已完成 | 100% | A级 | 2024-12-19 | 已简化代码示例,保持接口设计抽象层次 | | `water_biz_deployment_design.md` | ✅ 已完成 | 100% | A级 | 2024-12-19 | 已适配OpenGauss,专注Docker Compose部署 | -| `water_biz_security_design.md` | ✅ 已完成 | 100% | A级 | 2024-12-19 | 已简化代码示例,突出安全设计要点 | +| `water_biz_security_design.md` | ✅ 已完成 | 100% | A级 | 2024-12-19 | 已剔除等保三级内容,移除标题序号 | ### 补充文档 (可选交付) @@ -127,6 +127,7 @@ | 2024-12-19 | 分离文档导出 | 修改unified_export.sh支持分离文档导出,创建manage_separated_docs.sh管理工具 | 用户需求:将每个文档分别导出为不同格式,而不是合并成一个大文档 | 正面影响,提供更灵活的文档导出选项 | | 2024-12-19 | 新增引言文档 | 创建water_biz_overview_design.md引言文档 | 用户需求:添加标准的第一章内容(编写目的、背景、定义、参考资料) | 正面影响,完善文档体系结构 | | 2024-12-19 | 代码简化优化 | 删除文档中过于详细的代码示例,保持概要设计抽象层次 | 用户反馈:删除过多详细的代码 | 正面影响,符合概要设计标准,提升文档可读性 | +| 2024-12-19 | 安全设计简化 | 剔除等级保护三级相关内容,移除所有标题序号 | 用户要求:剔除三级等保内容,标题不要序号 | 正面影响,简化安全设计文档,提升可读性 | ## 项目完成总结 diff --git a/water_biz_security_design.md b/water_biz_security_design.md index d3621ef..54686f2 100644 --- a/water_biz_security_design.md +++ b/water_biz_security_design.md @@ -11,25 +11,24 @@ | **文档状态** | ✅ 已完成 | ## 目录 -- [一、安全设计概述](#一安全设计概述) -- [二、等级保护三级安全设计](#二等级保护三级安全设计) -- [三、OpenGauss数据库安全](#三opengauss数据库安全) -- [四、应用系统安全](#四应用系统安全) -- [五、网络安全设计](#五网络安全设计) -- [六、数据安全设计](#六数据安全设计) -- [七、运维安全设计](#七运维安全设计) -- [八、安全管理制度](#八安全管理制度) +- [安全设计概述](#安全设计概述) +- [OpenGauss数据库安全](#opengauss数据库安全) +- [应用系统安全](#应用系统安全) +- [网络安全设计](#网络安全设计) +- [数据安全设计](#数据安全设计) +- [运维安全设计](#运维安全设计) +- [安全管理制度](#安全管理制度) ## 安全设计概述 -福建水务营收系统安全设计严格按照《网络安全等级保护基本要求》第三级标准,结合水务行业特点和国产化要求,构建全方位、多层次的安全防护体系。 +福建水务营收系统安全设计结合水务行业特点和国产化要求,构建全方位、多层次的安全防护体系。 ### 安全目标 - **机密性**:确保敏感数据不被未授权访问 - **完整性**:防止数据被恶意篡改或损坏 - **可用性**:保障系统7×24小时稳定运行 - **可审计性**:完整记录系统操作审计轨迹 -- **合规性**:满足等保三级和行业监管要求 +- **合规性**:满足行业监管要求 ### 安全原则 - **纵深防御**:多层安全防护,避免单点故障 @@ -112,110 +111,6 @@ graph TB PATCH --> API ``` -## 等级保护三级安全设计 - -### 技术安全要求 - -#### 安全通信网络 - -**网络架构安全** -```mermaid -graph TB - subgraph "安全区域划分" - DMZ[DMZ区
Web服务器] - APP_ZONE[应用区
应用服务器] - DB_ZONE[数据区
数据库服务器] - MGT_ZONE[管理区
运维管理] - end - - subgraph "边界防护" - INTERNET[互联网] - FW1[边界防火墙] - FW2[内部防火墙] - IDS[入侵检测系统] - end - - subgraph "访问控制" - VPN[VPN接入] - JUMP[跳板机] - BASTION[堡垒机] - end - - INTERNET --> FW1 - FW1 --> DMZ - DMZ --> FW2 - FW2 --> APP_ZONE - APP_ZONE --> DB_ZONE - - VPN --> JUMP - JUMP --> BASTION - BASTION --> MGT_ZONE - - IDS --> DMZ - IDS --> APP_ZONE -``` - -**网络安全措施** -- 网络边界部署防火墙,实现网络访问控制 -- 重要网络设备和服务器前端部署网络入侵检测设备 -- 网络分段部署,DMZ区、应用区、数据区物理隔离 -- 关键网络设备提供双机热备功能 -- 网络设备登录实现身份标识和鉴别 - -#### 安全区域边界 - -**区域边界防护** -- 在网络边界部署防火墙设备,设置访问控制策略 -- 在网络边界部署入侵检测设备,监控网络攻击行为 -- 在应用层部署Web应用防火墙,防护Web应用攻击 -- 对进出网络的数据流进行过滤和监控 -- 建立网络访问控制策略,限制不必要的网络连接 - -#### 安全计算环境 - -**身份鉴别** -```mermaid -graph LR - subgraph "多因素认证" - USER[用户] --> AUTH1[用户名密码] - AUTH1 --> AUTH2[短信验证码] - AUTH2 --> AUTH3[邮箱验证] - AUTH3 --> TOKEN[JWT Token] - end - - subgraph "认证集成" - LDAP[LDAP认证] - SSO[单点登录] - OAUTH[OAuth2.0] - SAML[SAML认证] - end - - TOKEN --> LDAP - TOKEN --> SSO - TOKEN --> OAUTH - TOKEN --> SAML -``` - -**访问控制设计** -- 实现基于角色的访问控制(RBAC) -- 支持基于属性的访问控制(ABAC) -- 实现最小权限原则 -- 支持权限的动态调整和审批流程 - -### 管理安全要求 - -#### 安全管理中心 -- 建立安全管理中心,统一管理安全策略 -- 配置安全管理员角色,负责安全策略制定 -- 建立安全事件响应机制 -- 定期进行安全评估和风险分析 - -#### 安全管理制度 -- 制定信息安全管理制度和操作规程 -- 建立人员安全管理制度 -- 制定系统建设管理制度 -- 建立系统运维管理制度 - ## OpenGauss数据库安全 ### 数据库安全架构 @@ -271,86 +166,34 @@ graph TB ### 国产密码算法应用 #### 传输加密 -```sql --- 配置国密SSL连接 -ALTER SYSTEM SET ssl = on; -ALTER SYSTEM SET ssl_ciphers = 'SM4-GCM-SM3:SM4-CCM-SM3'; -ALTER SYSTEM SET ssl_cert_file = 'server-sm2.crt'; -ALTER SYSTEM SET ssl_key_file = 'server-sm2.key'; -``` +- 配置国密SSL连接,使用SM2/SM3/SM4算法套件 +- 支持SM4-GCM-SM3和SM4-CCM-SM3加密套件 +- 配置国产SM2证书和私钥文件 +- 强制要求SSL连接,拒绝明文传输 #### 透明数据加密 -```sql --- 启用TDE透明数据加密,使用SM4算法 -CREATE KEY ENCRYPTION KEY water_biz_kek -WITH ALGORITHM = 'SM4-CTR', KEY_STORE = 'localkms'; - --- 为敏感表启用加密 -CREATE TABLE water_customer ( - id SERIAL PRIMARY KEY, - customer_name VARCHAR(100) ENCRYPTED WITH ( - COLUMN_ENCRYPTION_KEY = water_biz_kek, - ENCRYPTION_TYPE = DETERMINISTIC, - ALGORITHM = 'SM4-CTR' - ), - id_card VARCHAR(18) ENCRYPTED WITH ( - COLUMN_ENCRYPTION_KEY = water_biz_kek, - ENCRYPTION_TYPE = RANDOMIZED, - ALGORITHM = 'SM4-CTR' - ) -); -``` +- 启用TDE透明数据加密,使用SM4算法 +- 为敏感数据表配置列级加密 +- 支持确定性加密和随机化加密 +- 集成本地密钥管理系统(localkms) ### 行级安全策略 - -```sql --- 创建多租户行级安全策略 -CREATE ROW LEVEL SECURITY POLICY tenant_isolation_policy -ON water_customer -USING (tenant_id = current_setting('app.current_tenant_id')::bigint); - --- 启用行级安全 -ALTER TABLE water_customer ENABLE ROW LEVEL SECURITY; - --- 创建数据访问角色 -CREATE ROLE water_data_reader; -CREATE ROLE water_data_writer; - --- 配置列级权限 -GRANT SELECT (id, customer_name, phone) ON water_customer TO water_data_reader; -GRANT ALL ON water_customer TO water_data_writer; -``` +- 创建多租户行级安全策略,实现数据隔离 +- 配置基于用户角色的数据访问控制 +- 实现动态数据过滤和权限控制 +- 支持复杂的安全策略表达式 ### 数据脱敏策略 - -```sql --- 创建数据脱敏函数 -CREATE OR REPLACE FUNCTION mask_phone(phone_num TEXT) -RETURNS TEXT AS $$ -BEGIN - RETURN SUBSTRING(phone_num, 1, 3) || '****' || SUBSTRING(phone_num, 8, 4); -END; -$$ LANGUAGE plpgsql; - --- 创建脱敏视图 -CREATE VIEW water_customer_masked AS -SELECT - id, - customer_name, - mask_phone(phone) as phone, - LEFT(id_card, 6) || '********' || RIGHT(id_card, 4) as id_card_masked -FROM water_customer; - --- 授权普通用户只能访问脱敏视图 -GRANT SELECT ON water_customer_masked TO water_normal_user; -``` +- 创建敏感数据脱敏函数和规则 +- 为不同角色提供不同级别的数据视图 +- 实现手机号、身份证号等敏感信息脱敏 +- 支持动态脱敏和静态脱敏 ## 应用系统安全 ### Spring Security安全配置 -#### 认证配置要点 -**Spring Security核心配置**: +#### 认证配置 - 使用国密SM3哈希算法进行密码加密 - 配置JWT身份验证过滤器 - 设置CSRF防护和HttpOnly Cookie @@ -358,50 +201,38 @@ GRANT SELECT ON water_customer_masked TO water_normal_user; - 启用方法级安全注解支持 #### 多因素认证实现 -**短信验证码服务要点**: -- 生成6位随机验证码并缓存到Redis -- 设置5分钟过期时间防止验证码滥用 +- 生成随机验证码并缓存到Redis +- 设置验证码过期时间防止滥用 - 集成短信服务提供商发送验证码 -- 验证时比对缓存验证码并及时清理 +- 实现验证码验证和及时清理机制 ### 数据传输安全 #### HTTPS配置 -```yaml -server: - port: 8443 - ssl: - enabled: true - key-store: classpath:keystore/server.p12 - key-store-password: ${SSL_KEYSTORE_PASSWORD} - key-store-type: PKCS12 - # 支持国密算法 - ciphers: SM4-GCM-SM3,SM4-CCM-SM3,ECDHE-SM2-WITH-SM4-SM3 - protocols: TLSv1.2,TLSv1.3 -``` +- 启用HTTPS协议,使用SSL/TLS加密 +- 配置国产密码算法套件支持 +- 使用PKCS12格式的数字证书 +- 支持TLSv1.2和TLSv1.3协议版本 -#### 敏感数据加密实现 -**数据加密服务要点**: +#### 敏感数据加密 - 采用国密SM4对称加密算法 -- 实现敏感数据的加密和解密方法 -- 统一的异常处理和错误提示 -- 支持身份证号、手机号等敏感信息加密 +- 实现统一的数据加密和解密服务 +- 对身份证号、手机号等敏感信息加密存储 +- 提供统一的异常处理和错误提示 ### 接口安全防护 -#### 接口签名验证实现 -**API签名验证要点**: +#### 接口签名验证 - 基于时间戳、随机数和请求体生成签名 - 使用国密SM3哈希算法计算签名值 - 检查时间戳有效性防止重放攻击 -- 比对客户端签名和服务端计算签名 +- 实现客户端和服务端签名比对验证 -#### 接口限流防护实现 -**限流服务要点**: +#### 接口限流防护 - 基于Redis实现分布式限流控制 - 支持按IP、用户、接口等维度限流 - 采用滑动窗口算法统计请求频率 -- 超过限制时返回429状态码 +- 超过限制时返回429状态码和错误提示 ## 网络安全设计 @@ -488,59 +319,27 @@ graph TB ### 防火墙策略配置 #### 边界防火墙策略 -```bash -# 允许HTTPS访问 -iptables -A INPUT -p tcp --dport 443 -j ACCEPT - -# 允许HTTP重定向到HTTPS -iptables -A INPUT -p tcp --dport 80 -j ACCEPT - -# 禁止直接数据库访问 -iptables -A INPUT -p tcp --dport 5432 -s ! 192.168.1.0/24 -j DROP - -# 允许内网SSH管理 -iptables -A INPUT -p tcp --dport 22 -s 192.168.100.0/24 -j ACCEPT - -# 拒绝其他所有入站连接 -iptables -A INPUT -j DROP -``` +- 允许HTTPS访问,开放443端口 +- 允许HTTP重定向到HTTPS,开放80端口 +- 禁止外部直接访问数据库端口 +- 允许内网SSH管理,限制管理网段 +- 默认拒绝所有其他入站连接 #### 应用层防火墙策略 -```bash -# 只允许来自DMZ区的连接 -iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT - -# 允许访问数据库 -iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --dport 5432 -j ACCEPT - -# 允许访问Redis -iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --dport 6379 -j ACCEPT - -# 允许DNS查询 -iptables -A OUTPUT -p udp --dport 53 -j ACCEPT - -# 拒绝其他出站连接 -iptables -A OUTPUT -j DROP -``` +- 只允许来自DMZ区的应用访问 +- 允许访问数据库服务器的指定端口 +- 允许访问Redis缓存服务 +- 允许DNS查询和时间同步 +- 默认拒绝其他出站连接 ### 入侵检测与防护 #### IDS/IPS规则配置 -```bash -# Suricata规则示例 -alert tcp any any -> $HOME_NET 443 (msg:"Suspicious HTTPS traffic"; \ - content:"POST"; http_method; content:"/api/admin"; http_uri; \ - threshold:type limit, track by_src, count 10, seconds 60; \ - sid:10001; rev:1;) - -alert tcp any any -> $HOME_NET 5432 (msg:"Direct database access attempt"; \ - content:"SELECT"; content:"FROM"; distance:0; \ - sid:10002; rev:1;) - -alert tcp any any -> $HOME_NET any (msg:"Brute force attack detected"; \ - flags:S; threshold:type threshold, track by_src, count 100, seconds 60; \ - sid:10003; rev:1;) -``` +- 配置Web应用攻击检测规则 +- 配置数据库直接访问告警规则 +- 配置暴力破解攻击检测规则 +- 设置基于流量特征的异常检测 +- 配置威胁情报实时更新机制 ## 数据安全设计 @@ -550,7 +349,6 @@ alert tcp any any -> $HOME_NET any (msg:"Brute force attack detected"; \ ```mermaid graph TB subgraph "数据分类" - TOP_SECRET[绝密级
核心商业机密] SECRET[机密级
重要业务数据] INTERNAL[内部级
一般业务数据] PUBLIC[公开级
公开业务数据] @@ -567,15 +365,13 @@ graph TB subgraph "保护措施" ENC_HIGH[强加密
SM4+数字签名] - ENC_MID[加密存储
SM4算法] - ENC_LOW[访问控制
权限管理] - ENC_NONE[公开访问
无特殊保护] + ENC_MID[访问控制
权限管理] + ENC_LOW[公开访问
无特殊保护] end - TOP_SECRET --> ENC_HIGH - SECRET --> ENC_MID - INTERNAL --> ENC_LOW - PUBLIC --> ENC_NONE + SECRET --> ENC_HIGH + INTERNAL --> ENC_MID + PUBLIC --> ENC_LOW CUSTOMER --> SECRET BILLING --> SECRET @@ -586,141 +382,32 @@ graph TB ``` #### 数据保护策略 -```sql --- 客户敏感信息表(机密级) -CREATE TABLE water_customer_sensitive ( - id SERIAL PRIMARY KEY, - customer_id BIGINT NOT NULL, - -- 身份证号:强加密存储 - id_card_encrypted VARCHAR(200) ENCRYPTED WITH ( - COLUMN_ENCRYPTION_KEY = customer_sensitive_key, - ENCRYPTION_TYPE = RANDOMIZED, - ALGORITHM = 'SM4-CTR' - ), - -- 银行卡号:强加密存储 - bank_account_encrypted VARCHAR(200) ENCRYPTED WITH ( - COLUMN_ENCRYPTION_KEY = customer_sensitive_key, - ENCRYPTION_TYPE = RANDOMIZED, - ALGORITHM = 'SM4-CTR' - ), - -- 手机号:确定性加密,支持查询 - phone_encrypted VARCHAR(200) ENCRYPTED WITH ( - COLUMN_ENCRYPTION_KEY = customer_sensitive_key, - ENCRYPTION_TYPE = DETERMINISTIC, - ALGORITHM = 'SM4-CTR' - ), - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); - --- 创建行级安全策略 -CREATE POLICY customer_sensitive_policy ON water_customer_sensitive -FOR ALL TO water_customer_service_role -USING ( - customer_id IN ( - SELECT customer_id FROM water_customer - WHERE tenant_id = current_setting('app.current_tenant_id')::bigint - ) -); -``` +- **机密级数据**:强加密存储,严格访问控制 +- **内部级数据**:权限控制,审计日志记录 +- **公开级数据**:无特殊保护要求 +- **敏感字段**:单独加密,支持查询需求 ### 数据备份与恢复安全 #### 备份加密策略 -```bash -#!/bin/bash -# OpenGauss安全备份脚本 - -# 设置备份参数 -BACKUP_DIR="/backup/opengauss" -DATE=$(date +%Y%m%d_%H%M%S) -BACKUP_FILE="water_biz_backup_${DATE}.tar.gz" -ENCRYPT_KEY="/etc/opengauss/backup_key.key" - -# 创建加密备份 -gs_backup -D $GAUSSDATA -U gaussdb \ - --encrypt --encrypt-key-file=$ENCRYPT_KEY \ - --backup-format=tar \ - --backup-path=$BACKUP_DIR/$BACKUP_FILE - -# 验证备份完整性 -openssl dgst -sm3 $BACKUP_DIR/$BACKUP_FILE > $BACKUP_DIR/$BACKUP_FILE.sm3 - -# 安全传输到异地备份中心 -rsync -avz --delete $BACKUP_DIR/ backup-server:/backup/remote/ -``` +- 使用国产密码算法加密备份文件 +- 生成备份文件完整性校验码 +- 实现备份文件的安全传输 +- 定期验证备份文件的完整性 #### 数据恢复流程 -```sql --- 恢复前验证备份完整性 --- 1. 验证SM3摘要 --- 2. 解密备份文件 --- 3. 验证数据库结构 --- 4. 执行恢复操作 - --- 创建恢复测试环境 -CREATE DATABASE water_biz_recovery_test; - --- 恢复数据到测试环境 -\c water_biz_recovery_test; --- 执行恢复SQL脚本 -\i /backup/water_biz_recovery.sql; - --- 验证数据完整性 -SELECT COUNT(*) FROM water_customer; -SELECT COUNT(*) FROM water_meter_reading; -SELECT COUNT(*) FROM water_billing; - --- 验证加密数据 -SELECT id, - pgp_sym_decrypt(id_card_encrypted, 'encryption_key') as id_card -FROM water_customer_sensitive LIMIT 1; -``` +- 验证备份文件完整性和真实性 +- 在隔离环境中进行恢复测试 +- 验证恢复数据的完整性和一致性 +- 记录详细的恢复过程和验证结果 ### 数据销毁与清理 #### 安全数据销毁 -```sql --- 创建安全数据销毁函数 -CREATE OR REPLACE FUNCTION secure_data_destroy(table_name TEXT, where_clause TEXT) -RETURNS BOOLEAN AS $$ -DECLARE - sql_cmd TEXT; - affected_rows INTEGER; -BEGIN - -- 构建删除SQL - sql_cmd := 'DELETE FROM ' || table_name || ' WHERE ' || where_clause; - - -- 执行删除 - EXECUTE sql_cmd; - GET DIAGNOSTICS affected_rows = ROW_COUNT; - - -- 记录审计日志 - INSERT INTO data_destroy_audit ( - table_name, where_clause, affected_rows, - operator, operation_time - ) VALUES ( - table_name, where_clause, affected_rows, - current_user, current_timestamp - ); - - -- 执行VACUUM清理物理空间 - EXECUTE 'VACUUM FULL ' || table_name; - - RETURN TRUE; -EXCEPTION - WHEN OTHERS THEN - RAISE EXCEPTION '数据销毁失败: %', SQLERRM; - RETURN FALSE; -END; -$$ LANGUAGE plpgsql; - --- 示例:销毁3年前的历史数据 -SELECT secure_data_destroy( - 'water_meter_reading_history', - 'reading_date < CURRENT_DATE - INTERVAL ''3 years''' -); -``` +- 实现安全的数据删除和物理清除 +- 记录数据销毁的审计日志 +- 定期清理历史数据和临时文件 +- 确保已删除数据无法被恢复 ## 运维安全设计 @@ -772,68 +459,18 @@ graph TB ``` #### 安全事件检测规则 -```yaml -# 安全事件检测规则配置 -security_rules: - - name: "暴力破解检测" - type: "authentication" - condition: "failed_login_count > 5 in 5 minutes" - severity: "high" - action: ["block_ip", "send_alert"] - - - name: "异常数据访问" - type: "data_access" - condition: "query_count > 1000 in 1 minute" - severity: "medium" - action: ["rate_limit", "send_alert"] - - - name: "权限提升检测" - type: "privilege_escalation" - condition: "role_change to admin" - severity: "critical" - action: ["block_user", "send_alert", "create_incident"] - - - name: "异常时间访问" - type: "abnormal_access" - condition: "access_time between 22:00 and 06:00" - severity: "medium" - action: ["log_event", "send_alert"] -``` +- **暴力破解检测**:失败登录次数阈值告警 +- **异常数据访问**:大量数据查询行为监控 +- **权限提升检测**:管理员权限变更告警 +- **异常时间访问**:非工作时间访问行为监控 ### 漏洞管理 #### 漏洞扫描策略 -```bash -#!/bin/bash -# 系统漏洞扫描脚本 - -# 扫描操作系统漏洞 -nmap -sV --script vulners localhost - -# 扫描Web应用漏洞 -nikto -h https://water.example.com -ssl - -# 扫描数据库漏洞 -nmap -p 5432 --script pgsql-brute,pgsql-databases localhost - -# 生成漏洞报告 -cat > vulnerability_report.html << EOF - - - - 安全漏洞扫描报告 - - -

福建水务营收系统漏洞扫描报告

-

扫描时间:$(date)

-

高危漏洞

-
$(grep -i "high\|critical" scan_results.txt)
-

中危漏洞

-
$(grep -i "medium" scan_results.txt)
- - -EOF -``` +- 定期进行系统漏洞扫描 +- 执行Web应用安全测试 +- 进行数据库安全评估 +- 生成漏洞扫描报告和修复建议 #### 补丁管理流程 ```mermaid @@ -975,12 +612,10 @@ graph TB #### 行业标准合规 - GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》 -- GB/T 25070-2019《信息安全技术 网络安全等级保护安全设计技术要求》 - GB/T 32918《信息安全技术 SM2椭圆曲线公钥密码算法》 - GB/T 32905《信息安全技术 SM3密码杂凑算法》 #### 合规检查清单 -- [ ] 等级保护三级备案完成 - [ ] 年度安全评估报告 - [ ] 安全管理制度建立 - [ ] 安全技术措施落实 @@ -993,11 +628,10 @@ graph TB ## 总结 -福建水务营收系统安全设计严格按照等级保护三级要求,结合OpenGauss数据库的安全特性,建立了全方位、多层次的安全防护体系。通过技术防护、管理制度、人员培训等多重措施,确保系统安全稳定运行,满足水务行业的安全合规要求。 +福建水务营收系统安全设计结合OpenGauss数据库的安全特性,建立了全方位、多层次的安全防护体系。通过技术防护、管理制度、人员培训等多重措施,确保系统安全稳定运行,满足水务行业的安全要求。 本安全设计方案的核心特点: 1. **国产化安全**:采用OpenGauss数据库和国密算法 2. **纵深防御**:网络、应用、数据多层安全防护 -3. **合规导向**:严格按照等保三级标准设计 -4. **持续改进**:建立安全监控和应急响应机制 -5. **管理规范**:完善的安全管理制度和流程 \ No newline at end of file +3. **持续改进**:建立安全监控和应急响应机制 +4. **管理规范**:完善的安全管理制度和流程 \ No newline at end of file