1176 lines
32 KiB
Markdown
1176 lines
32 KiB
Markdown
# 苏州教育E卡通数据安全运维操作手册
|
||
|
||
## 前言
|
||
|
||
本手册基于苏州教育E卡通平台的实际运维需求,旨在建立一套**实用、可操作**的数据安全管控体系。我们不追求理论上的"完美"安全方案,而是聚焦于解决实际工作中真正存在的风险问题。
|
||
|
||
**核心原则:好钢用在刀刃上** - 把最严格的管控措施用在最高风险的操作上,对一般性操作保持必要的灵活性,确保安全不影响正常工作效率。
|
||
|
||
本手册适用于所有参与平台运维、管理的人员,包括但不限于系统管理员、客服人员、学校管理人员等。
|
||
|
||
---
|
||
|
||
## 一、操作风险分级体系
|
||
|
||
基于等保三级要求以及操作的影响范围和不可逆性,将所有操作分为五级:
|
||
|
||
### 1.1 一级操作(等保三级"重要管理操作")
|
||
|
||
**等保三级依据**:根据《信息安全技术网络安全等级保护基本要求》(GB/T 22239-2019),重要管理操作必须采用严格的身份鉴别和访问控制措施。
|
||
|
||
**识别标准**:
|
||
- 一级特殊敏感数据修改(身份证号、姓名、学籍号等)
|
||
- 系统核心配置修改
|
||
- 安全策略变更
|
||
- 审计规则修改
|
||
- 用户权限分配
|
||
|
||
**等保三级要求**:
|
||
- **强制双因素认证**:密码+动态令牌/生物特征
|
||
- **全程录屏记录**:操作过程不可中断记录
|
||
- **双人现场操作**:一人操作,一人监督
|
||
- **完整操作链路**:申请→审核→复核→终审→执行→确认
|
||
- **审计日志完整性**:防篡改技术保护
|
||
|
||
### 1.2 二级操作(重要数据修改)
|
||
|
||
**特殊敏感数据定义**:
|
||
|
||
**一级特殊敏感数据**:
|
||
- 学生身份证号
|
||
- 学生姓名(涉及法律身份)
|
||
- 学籍号(教育部门统一编号)
|
||
- 户籍信息
|
||
- 残疾、贫困等特殊身份标记
|
||
|
||
**二级特殊敏感数据**:
|
||
- 家庭详细住址
|
||
- 监护人联系方式
|
||
- 学生照片
|
||
- 转学、休学等学籍状态变更
|
||
- 奖惩记录
|
||
|
||
**管控要求**:
|
||
- **二级操作**采用三阶段流程:申请→审核→执行
|
||
- **强制双因素认证**:密码+短信验证码
|
||
- **双人确认机制**:主管线上审批
|
||
- **操作日志记录**:修改前后值对比
|
||
- **数据自动备份**:执行前备份,可回滚
|
||
|
||
### 1.3 三级操作(一般权限操作)
|
||
|
||
**等保三级依据**:等保三级要求对用户身份鉴别和访问控制进行分级管理。
|
||
|
||
**识别标准**:
|
||
- 二级特殊敏感数据修改
|
||
- 新生录入和注册
|
||
- 账号创建和权限分配(非管理员)
|
||
- 补换卡订单处理
|
||
- 一般配置修改
|
||
|
||
**等保三级要求**:
|
||
- **双因素认证**:重要操作需要额外认证
|
||
- **审批流程**:主管审批或自动审批
|
||
- **操作记录**:完整的操作链路记录
|
||
- **权限最小化**:基于角色的精确控制
|
||
|
||
**管控要求**:
|
||
- **三级操作**采用两阶段流程:申请→审批→执行
|
||
- **会话超时控制**:30分钟无操作自动重新认证
|
||
- **操作确认机制**:重要操作需要二次确认
|
||
- **详细操作日志**:记录操作时间、IP、内容
|
||
|
||
### 1.4 四级操作(数据查询)
|
||
|
||
**等保三级依据**:等保三级要求对数据访问进行严格控制,防止未授权访问。
|
||
|
||
**识别标准**:
|
||
- 学生信息查询
|
||
- 报表生成和统计
|
||
- 系统状态查看
|
||
- 操作日志查询(授权人员)
|
||
|
||
**等保三级要求**:
|
||
- **访问控制**:基于角色的数据访问限制
|
||
- **查询审计**:所有查询操作记录
|
||
- **结果限制**:单次查询返回记录数限制
|
||
- **异常监控**:异常查询模式自动告警
|
||
|
||
**管控要求**:
|
||
- **四级操作**采用单阶段记录
|
||
- **数据脱敏显示**:敏感信息部分隐藏
|
||
- **查询频率限制**:防止批量数据爬取
|
||
- **查询原因记录**:重要查询需要说明原因
|
||
|
||
### 1.5 五级操作(只读查看)
|
||
|
||
**等保三级依据**:等保三级要求对系统访问进行监控和审计。
|
||
|
||
**识别标准**:
|
||
- 公开信息查看
|
||
- 系统帮助文档
|
||
- 个人信息修改(非特殊数据)
|
||
- 基础报表查看
|
||
|
||
**等保三级要求**:
|
||
- **基本认证**:用户名密码认证
|
||
- **会话管理**:会话超时和安全退出
|
||
- **访问记录**:基础访问日志记录
|
||
|
||
**管控要求**:
|
||
- **五级操作**最宽松的管控
|
||
- **基础日志记录**:登录时间、访问页面
|
||
- **密码策略**:定期更换强制要求
|
||
|
||
---
|
||
|
||
## 二、等保三级身份鉴别措施
|
||
|
||
### 2.1 双因素认证应用场景
|
||
|
||
**一级操作(必须使用双因素认证)**:
|
||
- 一级特殊敏感数据修改
|
||
- 系统核心配置修改
|
||
- 安全策略变更
|
||
- 用户权限分配
|
||
- 审计规则修改
|
||
|
||
**二级操作(重要操作时启用双因素认证)**:
|
||
- 二级特殊敏感数据修改
|
||
- 重要权限变更
|
||
- 批量数据处理(≥10条)
|
||
|
||
**认证方式**:
|
||
```
|
||
双因素认证组合:
|
||
方式一:密码 + 短信验证码
|
||
方式二:密码 + 动态令牌(TOTP)
|
||
方式三:密码 + 人脸识别
|
||
方式四:数字证书 + 密码
|
||
```
|
||
|
||
### 2.2 会话管理要求
|
||
|
||
**会话超时控制**:
|
||
- 一级操作:15分钟无操作强制重新认证
|
||
- 二级操作:30分钟无操作强制重新认证
|
||
- 三级操作:60分钟无操作强制重新认证
|
||
- 四、五级操作:120分钟无操作自动退出
|
||
|
||
**等保三级合规要求**:
|
||
- 远程登录必须加密传输
|
||
- 会话ID随机生成,不可预测
|
||
- 多次失败后锁定账号
|
||
- 异地登录需要额外验证
|
||
|
||
### 2.3 密码策略
|
||
|
||
**密码复杂度要求**:
|
||
- 最小长度:10位
|
||
- 包含字符类型:大写字母、小写字母、数字、特殊字符
|
||
- 定期更换:90天强制更换
|
||
- 历史密码:最近5次密码不能重复
|
||
- 临时密码:首次登录必须修改
|
||
```
|
||
|
||
**权限限制**:
|
||
- 任何人都不能单独完成一级特殊数据修改
|
||
- 操作申请人不能是审核人员
|
||
- 系统管理员不能查看证明材料内容
|
||
- 修改前必须自动备份原始数据
|
||
- 修改后立即触发数据一致性检查
|
||
|
||
### 1.2 高危操作(预防为主)
|
||
|
||
**识别标准**:
|
||
- 影响10人以上的批量操作
|
||
- 不可逆的数据修改或删除
|
||
- 可能导致系统停机或异常的操作
|
||
- 敏感数据的批量导出
|
||
|
||
**具体操作清单**:
|
||
- 批量导入/导出学生信息(≥10条)
|
||
- 批量删除学生记录
|
||
- 数据库表结构修改(CREATE/ALTER/DROP TABLE)
|
||
- 系统服务启停操作
|
||
- 防火墙规则修改
|
||
- 服务器重启/关机
|
||
- 数据库恢复操作
|
||
- 权限角色修改
|
||
|
||
**管控要求**:
|
||
```
|
||
操作前必须完成:
|
||
1. 填写《高危操作申请单》,说明操作目的和影响范围
|
||
2. 技术负责人审批(1小时内响应)
|
||
3. 制定操作回滚方案
|
||
4. 通知相关人员操作时间窗口
|
||
|
||
操作过程中:
|
||
1. 录屏记录全程操作(堡垒机自动开启)
|
||
2. 双人在场:一人操作,一人监督
|
||
3. 操作步骤严格按照申请单执行
|
||
4. 每步操作前口头确认
|
||
|
||
操作完成后:
|
||
1. 验证操作结果
|
||
2. 监督员确认操作成功
|
||
3. 填写《高危操作完成记录》
|
||
4. 相关人员确认系统正常
|
||
```
|
||
|
||
### 1.2 中危操作(双人确认)
|
||
|
||
**识别标准**:
|
||
- 单个学生关键信息修改
|
||
- 可能影响业务流程的操作
|
||
- 权限相关的操作
|
||
|
||
**具体操作清单**:
|
||
- 二级特殊敏感数据修改(家庭住址、监护人联系方式等)
|
||
- 单个学生非关键信息修改(联系电话、地址等)
|
||
- 新生录入和注册报道
|
||
- 账号创建和权限分配
|
||
- 补换卡订单处理
|
||
- 重要接口调用(客服查询学生信息)
|
||
|
||
**管控要求**:
|
||
```
|
||
操作前:
|
||
1. 系统内提交操作申请,说明操作原因
|
||
2. 主管线上审批(4小时内响应)
|
||
3. 系统生成操作确认码
|
||
|
||
操作中:
|
||
1. 输入确认码后才能执行操作
|
||
2. 关键字段需要二次确认
|
||
3. 操作日志自动记录
|
||
|
||
操作后:
|
||
1. 发送操作完成通知
|
||
2. 相关数据自动备份
|
||
```
|
||
|
||
### 1.3 低危操作(记录可查)
|
||
|
||
**识别标准**:
|
||
- 信息查询类操作
|
||
- 非关键信息修改
|
||
- 日常监控和查看
|
||
|
||
**具体操作清单**:
|
||
- 学生信息查询
|
||
- 系统状态查看
|
||
- 非敏感信息修改(非特殊数据的普通信息)
|
||
- 操作日志查询
|
||
- 统计报表生成
|
||
|
||
**管控要求**:
|
||
```
|
||
操作中:
|
||
1. 记录查询条件和结果
|
||
2. 敏感查询自动标记
|
||
3. 异常查询行为告警
|
||
|
||
操作后:
|
||
1. 日志保存180天
|
||
2. 支持事后审计分析
|
||
```
|
||
|
||
---
|
||
|
||
## 二、岗位职责与权限边界
|
||
|
||
### 2.1 家长用户
|
||
**可操作范围**:
|
||
- 查看自己孩子的基本信息
|
||
- 查看孩子的卡状态
|
||
- 修改家庭联系方式
|
||
|
||
**禁止操作**:
|
||
- 查看其他学生任何信息
|
||
- 修改孩子的关键信息
|
||
- 批量操作
|
||
|
||
### 2.2 学校教师
|
||
**可操作范围**:
|
||
- 查看、管理本校学生信息
|
||
- 新生录入、注册报道
|
||
- 修改学生非关键信息(地址、电话)
|
||
- 查看本校学生的卡状态
|
||
|
||
**禁止操作**:
|
||
- 查看其他学校学生信息
|
||
- 删除学生记录(只能标记状态)
|
||
- 批量导出全校数据
|
||
|
||
### 2.3 客服人员
|
||
**可操作范围**:
|
||
- 通过身份证/卡号查询学生基本信息(用于补卡)
|
||
- 查看和处理补换卡订单
|
||
- 查询学生卡状态
|
||
|
||
**禁止操作**:
|
||
- 查看学生成绩、家庭信息等敏感数据
|
||
- 修改学生任何信息
|
||
- 跨校查询学生信息
|
||
- 批量导出学生数据
|
||
|
||
### 2.4 业务操作员
|
||
**角色定义**:学校教师、教务人员等负责日常学生管理的操作人员
|
||
|
||
**可操作范围**:
|
||
- 查看、管理本校学生信息
|
||
- 新生录入、注册报道
|
||
- 提交特殊敏感数据修改申请(附证明材料)
|
||
- 修改学生非特殊敏感数据信息
|
||
|
||
**禁止操作**:
|
||
- 直接修改一级特殊敏感数据
|
||
- 查看其他学校学生信息
|
||
- 审核自己的操作申请
|
||
- 查看操作日志
|
||
|
||
### 2.5 业务审核员
|
||
**角色定义**:校级或教育局负责审核业务变更的管理人员
|
||
|
||
**可操作范围**:
|
||
- 审核特殊敏感数据修改申请
|
||
- 验证证明材料真实性
|
||
- 批准或驳回操作申请
|
||
- 监督业务操作合规性
|
||
|
||
**禁止操作**:
|
||
- 直接修改学生任何信息
|
||
- 提交操作申请
|
||
- 审核自己的关联申请
|
||
- 执行系统操作
|
||
|
||
### 2.6 系统管理员
|
||
**角色定义**:负责服务器和数据库运维的技术人员
|
||
|
||
**可操作范围**:
|
||
- 服务器运维(启停服务、系统更新)
|
||
- 数据库维护(备份、优化)
|
||
- 应用部署和配置
|
||
- 执行经过审批的特殊数据修改脚本
|
||
- 用户账号管理(非业务数据)
|
||
|
||
**禁止操作**:
|
||
- 查看证明材料的具体内容
|
||
- 直接操作业务数据(除非执行已批准的脚本)
|
||
- 查看学生任何信息
|
||
- 参与业务审核
|
||
|
||
### 2.7 技术负责人
|
||
**角色定义**:负责技术架构和安全的技术专家
|
||
|
||
**可操作范围**:
|
||
- 复核特殊数据修改的技术可行性
|
||
- 评估系统影响和风险
|
||
- 制定回滚方案
|
||
- 审核系统管理员准备的操作脚本
|
||
|
||
**禁止操作**:
|
||
- 直接执行业务数据修改
|
||
- 查看学生敏感信息
|
||
- 参与业务审批
|
||
- 单独批准操作
|
||
|
||
### 2.8 日志审计员
|
||
**角色定义**:独立的审计人员,负责监督和审计所有操作
|
||
|
||
**可操作范围**:
|
||
- 查看所有操作日志和审计记录
|
||
- 设置异常行为监控规则
|
||
- 生成安全审计报告
|
||
- 发起安全事件调查
|
||
|
||
**禁止操作**:
|
||
- 修改任何业务数据
|
||
- 执行任何系统操作
|
||
- 查看学生详细信息(只能看操作记录)
|
||
- 参与业务操作或审批
|
||
|
||
### 职责分离控制机制
|
||
|
||
**角色互斥原则**:
|
||
- 同一人不能同时拥有操作权和审核权
|
||
- 同一人不能同时拥有审核权和审计权
|
||
- 同一人不能同时拥有操作权和审计权
|
||
- 系统管理员与业务数据完全隔离
|
||
|
||
**权限控制矩阵**:
|
||
|
||
| 操作类型 | 业务操作员 | 业务审核员 | 技术负责人 | 系统管理员 | 日志审计员 |
|
||
|----------|------------|------------|------------|------------|------------|
|
||
| 申请特殊数据修改 | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||
| 审核申请 | ❌ | ✅ | ❌ | ❌ | ❌ |
|
||
| 技术复核 | ❌ | ❌ | ✅ | ❌ | ❌ |
|
||
| 执行修改 | ❌ | ❌ | ❌ | ✅(双人) | ❌ |
|
||
| 查看日志 | ❌ | ❌ | ❌ | ❌ | ✅ |
|
||
| 查看业务数据 | ✅(本校) | ✅(审核范围) | ❌ | ❌ | ❌ |
|
||
|
||
---
|
||
|
||
## 三、技术控制措施
|
||
|
||
### 3.1 堡垒机管控规则
|
||
|
||
**高危命令拦截**:
|
||
```bash
|
||
# 禁止执行的命令
|
||
rm -rf /*
|
||
drop database
|
||
truncate table
|
||
delete from without where clause
|
||
shutdown immediate
|
||
```
|
||
|
||
**需要二次确认的命令**:
|
||
```bash
|
||
# 需要输入确认码
|
||
delete from [table_name]
|
||
update [table_name] set
|
||
drop table
|
||
alter table
|
||
```
|
||
|
||
### 3.2 等保三级访问控制粒度
|
||
|
||
**字段级权限控制**:
|
||
```sql
|
||
-- 身份证号字段访问控制
|
||
CREATE VIEW student_masked_view AS
|
||
SELECT
|
||
student_id,
|
||
name,
|
||
-- 仅授权人员可见完整身份证号
|
||
CASE
|
||
WHEN current_user_role() IN ('auditor', 'system_admin') THEN id_card
|
||
WHEN current_user_school_id() = school_id THEN CONCAT(SUBSTRING(id_card, 1, 6), '****', SUBSTRING(id_card, 15, 4))
|
||
ELSE '权限不足'
|
||
END as id_card_display,
|
||
-- 其他字段类似处理
|
||
FROM students;
|
||
|
||
-- 字段级访问策略
|
||
CREATE POLICY id_card_access ON students
|
||
FOR SELECT USING (
|
||
(current_user_role() = 'auditor') OR
|
||
(current_user_role() = 'system_admin' AND operation_type = 'approved_script') OR
|
||
(current_user_role() = 'business_operator' AND current_user_school_id() = school_id AND has_approval(id_card_update_id))
|
||
);
|
||
```
|
||
|
||
**记录级访问控制**:
|
||
```sql
|
||
-- 本校数据访问控制
|
||
CREATE POLICY school_data_isolation ON students
|
||
FOR ALL USING (
|
||
-- 系统管理员和审计员无限制
|
||
current_user_role() IN ('system_admin', 'auditor') OR
|
||
-- 业务人员只能访问本校数据
|
||
current_user_school_id() = school_id OR
|
||
-- 客服人员经授权可跨校查询
|
||
(current_user_role() = 'customer_service' AND has_cross_school_auth())
|
||
);
|
||
```
|
||
|
||
**时间窗口访问控制**:
|
||
```sql
|
||
-- 非工作时间访问限制
|
||
CREATE POLICY working_hours_access ON students
|
||
FOR SELECT USING (
|
||
-- 管理员和审计员全天候访问
|
||
current_user_role() IN ('system_admin', 'auditor') OR
|
||
-- 其他角色仅工作时间访问
|
||
(EXTRACT(HOUR FROM CURRENT_TIME) BETWEEN 7 AND 22 AND
|
||
EXTRACT(DOW FROM CURRENT_DATE) BETWEEN 1 AND 5) OR
|
||
-- 紧急情况需要特殊授权
|
||
has_emergency_access()
|
||
);
|
||
```
|
||
|
||
**接口访问控制**:
|
||
```json
|
||
{
|
||
"endpoint": "/api/student/query",
|
||
"field_access": {
|
||
"all_users": {
|
||
"student_id": "full",
|
||
"name": "full",
|
||
"card_status": "full",
|
||
"school_name": "full"
|
||
},
|
||
"customer_service": {
|
||
"id_card": "masked",
|
||
"phone": "full",
|
||
"address": "masked"
|
||
},
|
||
"external_api": {
|
||
"student_id": "full",
|
||
"card_status": "full"
|
||
}
|
||
},
|
||
"authentication": "2fa_required",
|
||
"audit_level": "full"
|
||
}
|
||
```
|
||
|
||
**动态权限分配**:
|
||
```sql
|
||
-- 基于任务的临时权限
|
||
CREATE TEMPORARY TABLE task_permissions (
|
||
user_id VARCHAR(50),
|
||
task_id VARCHAR(50),
|
||
permission_type VARCHAR(50),
|
||
field_list TEXT,
|
||
record_count_limit INTEGER,
|
||
expire_time TIMESTAMP
|
||
);
|
||
|
||
-- 任务完成后自动回收权限
|
||
CREATE OR REPLACE FUNCTION cleanup_task_permissions()
|
||
RETURNS void AS $$
|
||
BEGIN
|
||
DELETE FROM task_permissions
|
||
WHERE expire_time < CURRENT_TIMESTAMP;
|
||
|
||
-- 记录权限回收日志
|
||
INSERT INTO permission_cleanup_log
|
||
SELECT user_id, task_id, 'expired', CURRENT_TIMESTAMP
|
||
FROM task_permissions
|
||
WHERE expire_time < CURRENT_TIMESTAMP;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
```
|
||
|
||
### 3.3 接口权限控制
|
||
|
||
**客服网点接口**:
|
||
```
|
||
POST /api/student/query
|
||
参数: id_card OR card_no, reason
|
||
返回: [学生基础信息]
|
||
权限: 客服角色
|
||
审计: 记录查询原因和结果
|
||
```
|
||
|
||
**增效接口**:
|
||
```
|
||
POST /api/student/status
|
||
参数: card_no
|
||
返回: [卡状态]
|
||
权限: 对部接口
|
||
审计: 记录调用次数和频率
|
||
```
|
||
|
||
---
|
||
|
||
## 四、操作流程和检查表
|
||
|
||
### 4.1 高危操作检查表
|
||
|
||
**申请阶段**:
|
||
- [ ] 操作目的和影响范围明确
|
||
- [ ] 回滚方案制定完成
|
||
- [ ] 相关人员已通知
|
||
- [ ] 技术负责人已审批
|
||
- [ ] 操作时间窗口确认
|
||
|
||
**操作阶段**:
|
||
- [ ] 录屏功能已开启
|
||
- [ ] 监督人员已到场
|
||
- [ ] 操作步骤与申请单一致
|
||
- [ ] 每步操作前口头确认
|
||
- [ ] 系统响应正常
|
||
|
||
**完成阶段**:
|
||
- [ ] 操作结果验证成功
|
||
- [ ] 监督人员确认
|
||
- [ ] 完成记录填写
|
||
- [ ] 相关人员确认系统正常
|
||
|
||
### 4.2 特殊敏感数据修改检查表
|
||
|
||
**申请阶段检查**:
|
||
- [ ] 申请人身份已验证
|
||
- [ ] 证明材料真实有效(已核对原件)
|
||
- [ ] 证明材料已扫描上传并OCR识别
|
||
- [ ] 申请理由充分且符合政策
|
||
- [ ] 系统已生成唯一申请编号
|
||
- [ ] 申请人已签署承诺书
|
||
|
||
**初步审核检查**:
|
||
- [ ] 业务审核员已确认材料真实性
|
||
- [ ] 申请理由正当性已确认
|
||
- [ ] 相关利益冲突已排查
|
||
- [ ] 审核意见已记录
|
||
- [ ] 初审通过后已提交上级审核
|
||
- [ ] 审核时间记录完整
|
||
|
||
**技术复核检查**:
|
||
- [ ] 技术负责人已评估修改可行性
|
||
- [ ] 系统影响范围已评估
|
||
- [ ] 回滚方案已制定并验证
|
||
- [ ] 操作脚本已准备
|
||
- [ ] 数据备份方案已确认
|
||
- [ ] 技术风险已评估
|
||
|
||
**业务终审检查**:
|
||
- [ ] 教育局相关负责人已审批
|
||
- [ ] 政策法规符合性已确认
|
||
- [ ] 执行时间窗口已确定
|
||
- [ ] 相关部门已通知
|
||
- [ ] 最终审批文件已归档
|
||
- [ ] 审批流程完整性已验证
|
||
|
||
**双人执行检查**:
|
||
- [ ] 系统管理员A和B均已到场
|
||
- [ ] 录屏设备工作正常
|
||
- [ ] 操作脚本已由B独立审核
|
||
- [ ] 原始数据已自动备份
|
||
- [ ] 修改操作按计划执行
|
||
- [ ] 每步操作都有确认记录
|
||
|
||
**结果确认检查**:
|
||
- [ ] 修改结果已验证正确
|
||
- [ ] 申请人已确认修改效果
|
||
- [ ] 相关部门已收到修改通知
|
||
- [ ] 数据一致性检查已通过
|
||
- [ ] 完整操作链路已记录
|
||
- [ ] 所有文档已归档
|
||
|
||
### 4.3 双人确认流程
|
||
|
||
```
|
||
普通操作双人确认流程:
|
||
1. 操作人提交申请 → 系统生成确认码
|
||
2. 确认人收到确认请求 → 审核操作合理性
|
||
3. 确认人输入确认码 → 操作获得执行权限
|
||
4. 系统记录操作人和确认人信息
|
||
5. 操作执行 → 系统记录详细日志
|
||
6. 结果通知 → 相关人员知晓操作结果
|
||
|
||
特殊数据修改六阶段流程:
|
||
申请准备 → 初步审核 → 技术复核 → 业务终审 → 双人执行 → 结果确认
|
||
```
|
||
|
||
---
|
||
|
||
## 五、审计和监控
|
||
|
||
### 5.1 等保三级审计日志完整性保护
|
||
|
||
**必须记录的信息**:
|
||
- 操作人员账号和角色
|
||
- 操作时间和IP地址
|
||
- 操作类型(查询/修改/删除)
|
||
- 操作对象(学生ID/表名等)
|
||
- 操作结果(成功/失败)
|
||
- 对于查询:查询条件和结果数量
|
||
- 对于修改:修改前后的值
|
||
|
||
**等保三级日志完整性保护机制**:
|
||
|
||
1. **数字签名技术**:
|
||
```sql
|
||
-- 日志表结构
|
||
CREATE TABLE audit_logs (
|
||
log_id BIGSERIAL PRIMARY KEY,
|
||
user_id VARCHAR(50) NOT NULL,
|
||
operation_type VARCHAR(50) NOT NULL,
|
||
operation_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||
client_ip INET NOT NULL,
|
||
target_object VARCHAR(100),
|
||
operation_result VARCHAR(20) NOT NULL,
|
||
details JSONB,
|
||
hash_value VARCHAR(64) NOT NULL, -- SHA256哈希值
|
||
digital_signature TEXT, -- 数字签名
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||
);
|
||
|
||
-- 数字签名函数
|
||
CREATE OR REPLACE FUNCTION sign_audit_log()
|
||
RETURNS TRIGGER AS $$
|
||
BEGIN
|
||
-- 生成记录的哈希值
|
||
NEW.hash_value = SHA256(NEW.user_id || NEW.operation_type ||
|
||
NEW.operation_time || NEW.client_ip ||
|
||
NEW.target_object || NEW.details::TEXT);
|
||
|
||
-- 使用私钥进行数字签名
|
||
NEW.digital_signature = sign_data_with_private_key(NEW.hash_value);
|
||
|
||
RETURN NEW;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
|
||
-- 创建触发器
|
||
CREATE TRIGGER audit_log_sign_trigger
|
||
BEFORE INSERT ON audit_logs
|
||
FOR EACH ROW EXECUTE FUNCTION sign_audit_log();
|
||
```
|
||
|
||
2. **日志完整性验证**:
|
||
```sql
|
||
-- 完整性检查函数
|
||
CREATE OR REPLACE FUNCTION verify_log_integrity(log_id_param BIGINT)
|
||
RETURNS BOOLEAN AS $$
|
||
DECLARE
|
||
log_record audit_logs%ROWTYPE;
|
||
computed_hash VARCHAR(64);
|
||
signature_valid BOOLEAN;
|
||
BEGIN
|
||
-- 获取原始记录
|
||
SELECT * INTO log_record FROM audit_logs WHERE log_id = log_id_param;
|
||
|
||
-- 重新计算哈希值
|
||
computed_hash = SHA256(log_record.user_id || log_record.operation_type ||
|
||
log_record.operation_time || log_record.client_ip ||
|
||
log_record.target_object || log_record.details::TEXT);
|
||
|
||
-- 验证哈希值是否匹配
|
||
IF log_record.hash_value != computed_hash THEN
|
||
RETURN FALSE;
|
||
END IF;
|
||
|
||
-- 验证数字签名
|
||
signature_valid = verify_signature_with_public_key(log_record.hash_value, log_record.digital_signature);
|
||
|
||
RETURN signature_valid;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
```
|
||
|
||
3. **日志存储保护**:
|
||
- **在线存储**:180天,写保护存储
|
||
- **归档存储**:1年,WORM(一次写入多次读取)存储
|
||
- **异地备份**:实时同步到异地灾备中心
|
||
- **加密传输**:日志传输全程加密
|
||
|
||
**日志保存要求**:
|
||
- 在线保存:180天
|
||
- 归档保存:1年
|
||
- 日志完整性:防篡改保护
|
||
- 数字签名:确保真实性和完整性
|
||
- 异地备份:防止本地灾难
|
||
|
||
### 5.2 异常行为监控
|
||
|
||
**告警规则**:
|
||
- 单个账号1小时内查询超过100次
|
||
- 非工作时间(22:00-7:00)的操作
|
||
- 连续3次密码失败后成功的登录
|
||
- 批量操作未审批就执行
|
||
- 从非常用IP地址的访问
|
||
|
||
**处理流程**:
|
||
1. 系统自动告警
|
||
2. 安全管理员15分钟内响应
|
||
3. 评估风险,必要时阻断操作
|
||
4. 24小时内完成调查和记录
|
||
|
||
---
|
||
|
||
## 六、等保三级数据完整性保护和应急响应
|
||
|
||
### 6.1 数据完整性保护要求
|
||
|
||
**等保三级依据**:等保三级要求"应采用必要的技术措施,保证数据在传输、存储、处理过程中的完整性。"
|
||
|
||
**数据完整性校验机制**:
|
||
|
||
1. **传输完整性保护**:
|
||
```sql
|
||
-- 数据传输完整性校验
|
||
CREATE OR REPLACE FUNCTION verify_transmission_integrity(
|
||
data_original BYTEA,
|
||
data_received BYTEA,
|
||
checksum_original VARCHAR(64),
|
||
checksum_received VARCHAR(64)
|
||
) RETURNS BOOLEAN AS $$
|
||
BEGIN
|
||
-- 验证哈希值
|
||
IF checksum_original != checksum_received THEN
|
||
RETURN FALSE;
|
||
END IF;
|
||
|
||
-- 重新计算哈希值并验证
|
||
IF SHA256(data_original) != checksum_original THEN
|
||
RETURN FALSE;
|
||
END IF;
|
||
|
||
IF SHA256(data_received) != checksum_received THEN
|
||
RETURN FALSE;
|
||
END IF;
|
||
|
||
RETURN TRUE;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
```
|
||
|
||
2. **存储完整性保护**:
|
||
```sql
|
||
-- 重要表的完整性约束
|
||
ALTER TABLE students
|
||
ADD CONSTRAINT chk_id_card_format
|
||
CHECK (id_card ~ '^[1-9]\d{16}(19\d)?$');
|
||
|
||
ALTER TABLE students
|
||
ADD CONSTRAINT chk_phone_format
|
||
CHECK (phone ~ '^1[3-9]\d{9}$');
|
||
|
||
-- 数据校验触发器
|
||
CREATE OR REPLACE FUNCTION validate_student_data()
|
||
RETURNS TRIGGER AS $$
|
||
BEGIN
|
||
-- 验证身份证号格式
|
||
IF NEW.id_card IS NOT NULL AND NEW.id_card !~ '^[1-9]\d{16}(19\d)?$' THEN
|
||
RAISE EXCEPTION '身份证号格式错误';
|
||
END IF;
|
||
|
||
-- 验证手机号格式
|
||
IF NEW.phone IS NOT NULL AND NEW.phone !~ '^1[3-9]\d{9}$' THEN
|
||
RAISE EXCEPTION '手机号格式错误';
|
||
END IF;
|
||
|
||
-- 记录完整性检查日志
|
||
INSERT INTO data_integrity_log
|
||
VALUES (NEW.student_id, 'VALIDATE', NEW.id_card || '|' || NEW.phone, CURRENT_TIMESTAMP);
|
||
|
||
RETURN NEW;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
```
|
||
|
||
3. **定期完整性检查**:
|
||
```sql
|
||
-- 每日自动完整性检查
|
||
CREATE OR REPLACE FUNCTION daily_integrity_check()
|
||
RETURNS void AS $$
|
||
DECLARE
|
||
inconsistency_count INTEGER;
|
||
BEGIN
|
||
-- 检查数据一致性
|
||
SELECT COUNT(*) INTO inconsistency_count
|
||
FROM (
|
||
SELECT s.id_card, COUNT(*) as cnt
|
||
FROM students s
|
||
WHERE s.id_card IS NOT NULL
|
||
GROUP BY s.id_card
|
||
HAVING COUNT(*) > 1
|
||
) AS duplicates;
|
||
|
||
-- 发现不一致时记录告警
|
||
IF inconsistency_count > 0 THEN
|
||
INSERT INTO integrity_alerts
|
||
VALUES ('DATA_DUPLICATE', inconsistency_count, CURRENT_TIMESTAMP);
|
||
|
||
-- 通知安全管理员
|
||
INSERT INTO security_notifications
|
||
VALUES ('SYSTEM_ADMIN', 'DATA_INTEGRITY_ALERT',
|
||
'发现学生身份证号重复数据', CURRENT_TIMESTAMP);
|
||
END IF;
|
||
|
||
-- 检查关键字段完整性
|
||
INSERT INTO integrity_report
|
||
SELECT
|
||
'MISSING_ID_CARD' as issue_type,
|
||
COUNT(*) as count,
|
||
CURRENT_TIMESTAMP as check_time
|
||
FROM students
|
||
WHERE id_card IS NULL OR id_card = '';
|
||
|
||
-- 检查数据格式异常
|
||
INSERT INTO integrity_report
|
||
SELECT
|
||
'INVALID_PHONE_FORMAT' as issue_type,
|
||
COUNT(*) as count,
|
||
CURRENT_TIMESTAMP as check_time
|
||
FROM students
|
||
WHERE phone !~ '^1[3-9]\d{9}$' AND phone IS NOT NULL;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
|
||
-- 创建每日执行任务
|
||
SELECT cron.schedule('daily-integrity-check', '0 2 * * *', 'SELECT daily_integrity_check()');
|
||
```
|
||
|
||
### 6.2 数据完整性应急处理流程
|
||
|
||
**完整性破坏应急响应**:
|
||
|
||
1. **立即响应(15分钟内)**:
|
||
- 暂停相关数据访问
|
||
- 保护原始数据不被进一步破坏
|
||
- 通知应急响应小组
|
||
|
||
2. **损害评估(2小时内)**:
|
||
- 确定破坏范围和影响
|
||
- 分析破坏原因和方式
|
||
- 评估对业务的影响程度
|
||
|
||
3. **数据恢复(4小时内)**:
|
||
- 从备份恢复被破坏的数据
|
||
- 验证恢复数据的完整性
|
||
- 重新建立完整性保护机制
|
||
|
||
4. **根因分析(24小时内)**:
|
||
- 调查完整性破坏的根本原因
|
||
- 修复相关的安全漏洞
|
||
- 加强相关的防护措施
|
||
|
||
### 6.3 安全事件分级
|
||
|
||
**一般事件**:
|
||
- 单个账号异常登录
|
||
- 小范围查询异常
|
||
- 不影响系统正常运行
|
||
- 数据完整性轻微影响
|
||
|
||
**较大事件**:
|
||
- 批量数据泄露风险
|
||
- 系统性能受影响
|
||
- 可能影响多个用户
|
||
- 数据完整性部分破坏
|
||
|
||
**重大事件**:
|
||
- 数据确认泄露
|
||
- 系统宕机或严重异常
|
||
- 涉及大量用户数据
|
||
- 数据完整性严重破坏
|
||
|
||
### 6.2 应急联系人
|
||
|
||
| 角色 | 姓名 | 电话 | 备注 |
|
||
|------|------|------|------|
|
||
| 应急总指挥 | [姓名] | [电话] | 负责总体协调 |
|
||
| 技术负责人 | [姓名] | [电话] | 负责技术处置 |
|
||
| 安全负责人 | [姓名] | [电话] | 负责安全评估 |
|
||
| 业务负责人 | [姓名] | [电话] | 负责业务协调 |
|
||
|
||
---
|
||
|
||
## 七、培训和考核
|
||
|
||
### 7.1 必须培训内容
|
||
|
||
**新员工入职培训**:
|
||
- 本手册内容和操作规范
|
||
- 高危操作流程和双人确认机制
|
||
- 应急响应流程和联系方式
|
||
|
||
**年度复训**:
|
||
- 安全事件案例分析
|
||
- 操作规范更新内容
|
||
- 模拟应急演练
|
||
|
||
### 7.2 考核要求
|
||
|
||
- 每年进行1次操作规范考试
|
||
- 每半年进行1次应急演练
|
||
- 不合格人员重新培训,直至合格
|
||
|
||
---
|
||
|
||
## 附录
|
||
|
||
### 附录A:高危操作申请单模板
|
||
|
||
```
|
||
申请单编号: [自动生成]
|
||
申请时间: YYYY-MM-DD HH:MM
|
||
申请人: [姓名]
|
||
所在部门: [部门]
|
||
联系电话: [电话]
|
||
|
||
操作类型: [批量导入/批量删除/系统变更等]
|
||
操作目的: [详细说明操作目的]
|
||
影响范围: [影响的人数/系统范围]
|
||
|
||
操作步骤: [详细的操作步骤]
|
||
回滚方案: [详细的回滚方案]
|
||
|
||
风险评估: [可能存在的风险]
|
||
预防措施: [如何避免风险]
|
||
|
||
申请人签字: _________ 日期: _________
|
||
技术负责人审批: _________ 日期: _________
|
||
安全管理员审核: _________ 日期: _________
|
||
```
|
||
|
||
### 附录B:现场操作记录单模板
|
||
|
||
```
|
||
记录单编号: [自动生成]
|
||
操作时间: YYYY-MM-DD HH:MM
|
||
操作地点: [机房/办公室等]
|
||
操作内容: [具体操作内容]
|
||
|
||
操作人员: [姓名] 工号: [工号]
|
||
监督人员: [姓名] 工号: [工号]
|
||
|
||
操作步骤记录:
|
||
1. [时间] [操作内容] [结果]
|
||
2. [时间] [操作内容] [结果]
|
||
...
|
||
|
||
操作结果: [成功/失败]
|
||
发现异常: [如果有异常,详细记录]
|
||
|
||
操作人员签字: _________
|
||
监督人员签字: _________
|
||
日期: _________
|
||
```
|
||
|
||
### 附录C:权限申请审批表
|
||
|
||
```
|
||
申请编号: [自动生成]
|
||
申请人: [姓名]
|
||
所属部门: [部门]
|
||
申请岗位: [岗位]
|
||
申请原因: [详细说明]
|
||
|
||
所需权限:
|
||
- [ ] 查看权限:[具体内容]
|
||
- [ ] 修改权限:[具体内容]
|
||
- [ ] 删除权限:[具体内容]
|
||
- [ ] 其他权限:[具体内容]
|
||
|
||
权限期限: [永久/临时,写明截止时间]
|
||
|
||
申请人签字: _________ 日期: _________
|
||
部门主管审批: _________ 日期: _________
|
||
安全管理员审核: _________ 日期: _________
|
||
负责人批准: _________ 日期: _________
|
||
```
|
||
|
||
### 附录D:特殊敏感数据修改申请单
|
||
|
||
```
|
||
申请单编号: [自动生成]
|
||
申请时间: YYYY-MM-DD HH:MM
|
||
申请人: [姓名]
|
||
所在学校/单位: [学校/单位全称]
|
||
联系电话: [电话]
|
||
学生姓名: [学生姓名]
|
||
学生学号: [学号]
|
||
|
||
申请修改的数据类型(勾选):
|
||
□ 一级特殊敏感数据
|
||
□ 身份证号 (变更原因: [请填写])
|
||
□ 学生姓名 (变更原因: [请填写])
|
||
□ 学籍号 (变更原因: [请填写])
|
||
□ 户籍信息 (变更原因: [请填写])
|
||
□ 特殊身份标记 (变更原因: [请填写])
|
||
|
||
□ 二级特殊敏感数据
|
||
□ 家庭详细住址 (变更原因: [请填写])
|
||
□ 监护人联系方式 (变更原因: [请填写])
|
||
□ 学生照片 (变更原因: [请填写])
|
||
□ 学籍状态变更 (变更原因: [请填写])
|
||
□ 奖惩记录 (变更原因: [请填写])
|
||
|
||
修改前数据: [请填写原始数据]
|
||
修改后数据: [请填写新数据]
|
||
|
||
申请理由详细说明: [详细说明修改原因和依据]
|
||
|
||
证明材料清单:
|
||
1. [材料名称] - [原件已核对□] - [已扫描上传□]
|
||
2. [材料名称] - [原件已核对□] - [已扫描上传□]
|
||
3. [材料名称] - [原件已核对□] - [已扫描上传□]
|
||
|
||
申请人承诺:
|
||
本人承诺以上所提供的信息和材料真实有效,如有虚假,愿意承担相应法律责任。
|
||
|
||
申请人签字: _________ 日期: _________
|
||
学校负责人审核: _________ 日期: _________
|
||
|
||
=== 初步审核意见 ===
|
||
审核人: [姓名]
|
||
审核时间: YYYY-MM-DD HH:MM
|
||
材料真实性: [通过/不通过] - [详细说明]
|
||
申请正当性: [通过/不通过] - [详细说明]
|
||
审核结论: [同意提交/驳回申请]
|
||
审核人签字: _________
|
||
|
||
=== 技术复核意见 ===
|
||
技术负责人: [姓名]
|
||
复核时间: YYYY-MM-DD HH:MM
|
||
技术可行性: [可行/不可行] - [详细说明]
|
||
系统影响评估: [影响范围和程度]
|
||
回滚方案: [已制定/未制定]
|
||
复核结论: [同意执行/需要补充/不同意]
|
||
技术负责人签字: _________
|
||
|
||
=== 业务终审意见 ===
|
||
终审人: [姓名/职务]
|
||
终审时间: YYYY-MM-DD HH:MM
|
||
政策符合性: [符合/不符合] - [依据说明]
|
||
最终结论: [批准执行/驳回申请]
|
||
执行时间窗口: [建议执行时间]
|
||
终审人签字: _________ 职务: _________
|
||
|
||
=== 执行记录 ===
|
||
执行人A: [姓名] 工号: [工号]
|
||
执行人B: [姓名] 工号: [工号]
|
||
执行时间: YYYY-MM-DD HH:MM
|
||
操作脚本编号: [脚本编号]
|
||
执行结果: [成功/失败]
|
||
数据备份确认: [已确认]
|
||
执行人A签字: _________
|
||
执行人B签字: _________
|
||
|
||
=== 结果确认 ===
|
||
申请人确认: [修改正确□/有错误□] 确认人: _________ 日期: _________
|
||
数据一致性检查: [通过□/未通过□] 检查人: _________ 日期: _________
|
||
相关部门通知: [已完成□] 通知时间: _________
|
||
日志审计员确认: [操作链路完整□] 审计员: _________ 日期: _________
|
||
```
|
||
|
||
### 附录E:特殊数据修改证明材料要求
|
||
|
||
**身份证号修改所需材料**:
|
||
- 公安部门出具的户籍变更证明原件
|
||
- 学生户口本复印件(含变更页)
|
||
- 学生本人或监护人身份证复印件
|
||
- 学校出具的变更申请说明(加盖公章)
|
||
|
||
**姓名修改所需材料**:
|
||
- 公安部门出具的姓名变更证明原件
|
||
- 户口本复印件(含变更页)
|
||
- 学校出具的姓名变更说明(加盖公章)
|
||
- 如有学籍号变更需教育局相关文件
|
||
|
||
**学籍号修改所需材料**:
|
||
- 教育局出具的学籍号变更文件原件
|
||
- 学校学籍管理部门的变更申请
|
||
- 相关政策依据文件
|
||
- 变更原因的详细说明
|
||
|
||
**户籍信息修改所需材料**:
|
||
- 公安部门出具的户籍变更证明
|
||
- 户口本复印件(含变更页)
|
||
- 家庭关系证明材料
|
||
- 学校审核确认文件
|
||
|
||
**特殊身份标记修改所需材料**:
|
||
- 相关政府部门出具的认定文件
|
||
- 医疗证明(如残疾认定)
|
||
- 民政部门证明(如贫困认定)
|
||
- 学校相关部门审核意见
|
||
|
||
**证明材料要求**:
|
||
- 所有材料必须提供原件供核对
|
||
- 复印件必须加盖出具单位公章
|
||
- 境外材料需提供翻译件和公证
|
||
- 电子版材料必须为清晰扫描件
|
||
- 材料有效期必须在申请有效期内
|
||
|
||
---
|
||
|
||
**本手册自发布之日起执行,由数据安全管理领导小组负责解释和修订。** |