一次复盘,四个泄露入口
某水务集团安全团队在一次内网监测中发现:管网 GIS 系统的地图服务接口,在无鉴权的情况下能批量返回管线坐标数据。顺着这条线做了一轮完整复盘:
| 时间 | 事件 |
|---|---|
| 第1天 | 监测发现 GIS 查询接口未做鉴权,遍历参数可批量拉取管线坐标 |
| 第2天 | 排查确认该接口曾被异常访问,调用量明显高于日常 |
| 第3天 | 复盘发现不止一个口子:测试环境带生产数据、备份散落共享盘、运维可直接查库 |
| 第4天 | 启动整改:接口鉴权、数据脱敏、数据库加密、备份加密、防勒索兜底 |
复盘结论很直接:管网 GIS 数据泄露不是单一漏洞,而是"接口越权 + 测试环境未脱敏 + 备份散落 + 明文存储"四个口子叠加。
先想清楚:GIS 数据泄露到底值多少
很多人对 GIS 数据泄露不以为然,觉得"就是一堆地图坐标"。但供水管网 GIS 数据是典型的关键信息基础设施数据:
| 数据类型 | 泄露后果 |
|---|---|
| 管线坐标/拓扑(管径、材质、埋深) | 精确定位供水干管走向,为破坏/攻击提供地图 |
| 阀门/消火栓/水表位置 | 基础设施分布暴露 |
| 压力监测点坐标 | 结合管网模型可反推运行状态 |
| 维修/巡检记录 | 推断管网薄弱环节 |
管网坐标+拓扑泄露,等于把一张"供水系统精确地图"交给攻击者——这也是住建部门供水安全合规里反复强调管网数据要保护的原因。按 GB/T 43697 数据分类分级,管网空间数据应当定级为重要数据。
四个口子怎么堵
口子一:接口越权 → 鉴权 + 脱敏后出数
GIS 查询接口必须鉴权,且不能直接返回原始坐标——应用层出数前先脱敏(见下文)。
口子二:测试环境带生产数据 → 静态脱敏
开发/测试环境不允许使用生产真实数据,测试环境数据必须脱敏到"可用但失真"。
口子三:备份散落 → 加密 + 权限管控
备份文件加密落盘,开发机/共享盘不再允许明文备份流转。
口子四:运维直查明文 → 动态脱敏 + 数据库加密
运维、第三方人员查库只给脱敏数据;生产库落盘加密,非授权进程只见密文。
坐标脱敏:为什么不能简单"打码"
脱敏看着简单,但 GIS 坐标脱敏有个特殊坑:普通掩码会破坏空间查询。
管线数据被空间索引(如 R-tree/Geohash)组织,如果对坐标做"123.4567 → 123****"这种字符掩码,空间查询、范围查询、邻接分析全部失效——测试环境"能用"就无从谈起。
坐标脱敏的正确姿势是保留格式加密/置换(FPE)+ 偏移降精度:让脱敏后的坐标仍然是合法坐标、数值特征被保留,但已经不是真实位置:
| 脱敏方式 | 效果 | 空间查询是否可用 | 风险 |
|---|---|---|---|
| 字符掩码(123****) | 彻底失真 | ❌ 不可用 | 低 |
| 随机替换 | 数据失真 | ❌ 不可用 | 低 |
| FPE保留格式脱敏 | 坐标合法、统计特征保留 | ✅ 可用 | 中(保留近似) |
| 偏移/降精度 | 位置漂移、保留空间关系 | ✅ 可用 | 中 |
实操上常用组合:
管线坐标 → FPE保留格式脱敏(保持经纬度格式与数值范围) + 整体平移偏移(按片区平移,保留拓扑相对关系) + 精度降级(保留到百米级,抹掉精确点位)降精度这步很关键:把坐标从"精确到米"降到"精确到百米",管线走向仍可分析,但具体阀门、消火栓的精确点位被抹掉——测试开发够用,泄露出去也只是一张"模糊地图"。
落地:静态脱敏 + 动态脱敏 + 数据库加密
静态脱敏(测试环境 / 数据导出)
导出测试数据前,对 GIS 库做一次静态脱敏,坐标走保留格式偏移、地址走掩码:
# KTM静态脱敏任务:对坐标/地址字段执行脱敏ktm mask--taskgis_test_data\--sourcewater_gis--targetwater_gis_test\--rule'{"lon":{"type":"fpe_shift","range_km":50},"lat":{"type":"fpe_shift","range_km":50},"addr":{"type":"mask"}}'\--batch10000动态脱敏(运维 / 第三方查询)
运维、报表、第三方系统访问 GIS 库时,走网关实时脱敏,底层数据不动:
# 动态脱敏策略:运维只读脱敏,业务读写明文masking_policy:role_groups:-role:"运维/第三方"mask:"坐标FPE+降精度, 地址掩码"-role:"GIS业务系统"mask:"明文"audit:"全量访问审计"生产库加密(TDE)
GIS 生产库落盘加密,外部拖库拿到的是密文:
-- 管线拓扑表启用TDE加密(SM4,在线,不停机)EXECtde_enable_table_encryption@database_name='water_gis',@table_name='t_pipe_topology',@encryption_algorithm='SM4_256',@key_id='tde_gis_pipe_key',@rotation_interval_days=90,@mode='online';备份加密 + 防勒索兜底
GIS 备份文件加密落盘,恢复演练在解密端执行;RDM 防勒索双引擎兜底,防止管线库被勒索加密后无法对外服务。
验收:一条都不能少
| 验收项 | 怎么验 |
|---|---|
| 接口不再返回原始坐标 | 带脱敏参数调用接口,返回坐标与真实位置偏差 ≥ 设定阈值 |
| 测试环境数据可用 | 空间查询、范围查询在脱敏库上正常运行 |
| 生产库非授权进程只见密文 | 无授权直查管线表输出密文 |
| 备份文件不可明文读取 | 直接打开备份文件内容为密文 |
| 运维访问为脱敏数据 | 审计日志确认运维会话走脱敏通道 |
供水管网 GIS 数据防泄露,核心不是"加一道权限",而是"接口鉴权 + 测试环境脱敏 + 生产库加密 + 备份加密 + 防勒索"五个动作一起上。坐标脱敏用保留格式脱敏 + 降精度,既不破坏空间查询,又抹掉精确点位。安当 KTM 静态脱敏、TDE 数据库透明加密、KSP 密钥管理、RDM 防勒索,可提供管网 GIS 数据安全的完整落地支持。
文章作者:安当加密技术负责人