什么是动态数据脱敏?

news/2024/9/25 3:39:43/

原文地址 https://www.bytebase.com/blog/what-is-dynamic-data-masking/

动态数据脱敏(DDM)动态更改返回给应用程序或用户的数据库记录,以此来实时保护敏感数据,且不会更改静态数据。

在这里插入图片描述

DDM 与静态数据脱敏(SDM)不同。SDM 创建原始数据永久更改、不可逆转的副本,而 DDM 则是在访问时对数据进行即时修改。这种动态方法可确保敏感数据在查询执行过程中受到保护,而不会改变静态的基础数据。

(一)应用场景

SDM 的主要应用场景是创建安全、经过「消毒」的产品数据,供非生产环境使用。而 DDM 则主要用于生产环境,根据用户角色、许可或其他关联因素,动态控制对敏感数据的访问。这样,企业就可以保护敏感信息,而无需更改底层数据。因此,DDM 是实时数据访问场景中维护安全性和合规性的有力工具。

(二)数据脱敏复杂度

数据脱敏的复杂度主要源于其动态性质。系统必须根据各种运行环境,实时决定如何以及何时进行数据脱敏。这些环境包括:

用户环境

  • 基于角色的访问: 不同的用户或角色可能有不同程度的数据访问权限。DDM 必须根据用户的身份动态调整数据的可见性,确保只有经授权的用户才能看到未屏蔽形式的敏感信息。
  • 用户位置和设备: 在某些情况下,数据访问可能会受到用户位置(如企业网络内外)或所用设备的影响。DDM 必须能够动态考虑这些变量。

时间环境

  • 临时访问: 用户可能需要临时访问权限来解决紧急情况。
  • 日期和时间敏感性: 某些数据可能只在特定时间段内被视为敏感数据,这就要求 DDM 对其行为做出相应调整。

目标数据库

  • 特定列脱敏: 数据库中的不同列可能需要不同的脱敏技术或规则。DDM 必须根据访问的特定列动态应用适当的屏蔽算法。
  • 复杂数据类型: 处理复杂数据类型(如列中的 JSON 或 XML)会增加额外的复杂度,因为 DDM 必须解析并选择性地对这些结构中的内容脱敏。

应用环境

  • 特定环境脱敏: 脱敏规则有时需要随应用程序的运行环境(如开发、测试、UAT、生产)而改变。DDM 必须识别环境并应用适当级别的脱敏。
  • 业务项目或用例: 不同的业务项目或用例可能有独特的数据访问要求。

脱敏算法

  • 算法选择: DDM 必须根据上下文动态选择最合适的数据脱敏算法,确保数据仍然有用,同时还能保护敏感信息。算法可能包括随机、标记、部分脱敏等技术。
  • 算法复杂度与性能: 脱敏算法的选择对性能有直接影响。DDM 需要在算法提供的安全性与尽量减少性能开销之间取得平衡,确保查询执行时间保持在可接受的水平。

性能

鉴于 DDM 的动态特性,其中一个关键挑战是如何最大限度地降低与实时脱敏相关的性能开销。这就需要优化脱敏逻辑,确保其既高效又可扩展,尤其是在高流量环境中。

(三)数据库支持

在这里插入图片描述

主流商业数据库都支持 DDM。不过,MySQL 和 PostgreSQL 这两种最流行的开源数据库都不支持开箱即用的 DDM。对于那些受支持的数据库,DDM 是通过扩展 SQL 语法实现的。以 Snowflake 为例:

CREATE OR REPLACE MASKING POLICY email_mask AS (val string) RETURNS string ->CASEWHEN CURRENT_ROLE() IN ('ANALYST') THEN valELSE '*********'END;-- apply masking policy to a table column
ALTER TABLE IF EXISTS user_info MODIFY COLUMN email SET MASKING POLICY email_mask;

数据库引擎只提供数据脱敏的基础。为整个组织全面配置脱敏策略仍然是一个巨大的挑战。

Bytebase 提供 GUI 和 API 来配置动态数据脱敏。

值得一提的是,Bytebase 支持 MySQL 和 PostgreSQL。


💡 更多资讯,请关注 Bytebase 公号:Bytebase


http://www.ppmy.cn/news/1530097.html

相关文章

【云安全】云上攻击路径

一、2022年CSA发布的《云计算的11类顶级威胁》: 1)身份、凭据、访问和管理密钥、特权账号管理的不足 2)不安全的接口和API 3)配置不当和变更控制的不足 4)缺乏云安全架构和战略 5)不安全的软件开发 6…

基于C++ 实现一个庆祝国庆节的小程序(含实现代码)

基于C 实现一个庆祝国庆节的小程序。以下是一些具体的扩展建议和实现示例: 完整示例免费下载链接 1. 增加更多的祝福样式 我们可以扩展祝福语,使其更加多样化。可以根据节日的不同方面(如家庭、朋友、祖国等)来分类。 std::ve…

20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示,设置电流阈值为80,电流小阈值为50,电压阈值为60,温度阈值…

【Linux】线程同步(第十七篇)

目录 线程同步: 1.概述 2.线程同步的方式 1.互斥锁: 2.读写锁: 3.进程互斥锁: 4.自旋锁: 5.信号量: 6.条件变量COND: 线程同步: 1.概述 多线程模型中,即当有一个线程在对内…

k8s自动清理pod脚本分享

检查会遇到集群节点内存消耗超过90%,我们可以筛选一些可以进行重启的pods,如脚本中涉及svc-开头的,进行触发即重启的shell编写。此项会涉及metrics组件需要安装。 #!/bin/bash# 设置内存使用率阈值为90% MEMORY_THRESHOLD90# 初始化一个数组…

【Linux】从内核认识信号

一、阻塞信号 1 .信号的一些其他相关概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注…

yum 集中式安装 LNMP

目录 安装 nginx 安装 mysql 安装 php 配置lnmp 配置 nginx 支持 PHP 解析 安装 nginx 修改yum源 将原本的yum源备份 vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/7/$basearch/ gpgcheck0 enable…

在Java中如何利用ClassLoader动态加密、解密Class文件

文章目录 一、准备示例代码二、加密Class文件三、自定义ClassLoader四、使用自定义ClassLoader加载类五、进阶:使用更高安全性的AES加密算法六、注意事项 在Java开发中,保护代码的安全性是一个重要的课题。为了防止代码被轻易反编译,我们可以…