以数据为中心的数据安全基础能力建设探索

VSole2022-08-24 16:16:07

企业数据安全治理,除了熟悉法律法规条文,信息采集最小化,服务入口明确隐私协议外,更多的是需要建设内部基础能力,如数据识别、分类分级、数据加密、权限管控等数据安全的基础能力。

本文数据为中心的理念,围绕数据识别、分类分级、基础防护几个方面,结合开源软件做一次梳理和功能演示,希望能帮助有需要的人员对数据安全有个直观的了解。

在数据识别基础上,建立数据资产大盘,实现数据资产风险识别、监测、运营的资产全生命周期管理;

在数据分类分级的基础上,对不同数据资产进行分类、分级,将优势资源投入到关键资产的安全防护上;

在数据安全基础防护方面,除了应具有基础设施和架构的安全稳固外,基于数据识别和分类分级,对存储、传输的敏感数据进行加密防护、账号权限管控、数据脱敏和分发管控,结合内外部风险变化,最终走向数据安全风控之路。

1. 数据识别、分类

在大数据时代的今天,如何做好数据识别、分类,在这个基础上建立数据资产全生命周期管理是很多企业面临的挑战。比如企业内部有多少数据库表明文存储手机号字段、有多少接口对外暴露且有手机号字段,这些数据库表、接口等资产又面临哪些风险,如何做到全生命周期的风险管控。针对结构化数据,如数据库表中字段识别、半结构化数据,如日志中的数据识别、非结构化如图片、音视频文件的数据识别,在识别能力的覆盖范围、识别准确率、对性能的影响等方面,这对很多企业还是有不小的挑战。

1.1. 内容识别示例

数据识别可以通过关键字、正则、算法等实现,网上文章很多,以及一些大厂也有成熟的识别技术和方案,从落地实现上主要还是基于业务场景,从数据类型上看主要分为结构化、半结构化、非结构化的数据识别。

结构化:关系型数据库

半结构化:日志数据、JSON数据、XML文档等

非结构化:HTML网页、办公文档、图片、音视频文件等

1.2. 分类分级管理展示

2. 利用ShardingSphere-Proxy实现敏据加

ShardingSphere是apache顶级开源项目,旨在构建异构数据库上层的标准和生态。它关 注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。ShardingSphere 站在 数据库的上层视角,关注他们之间的协作多于数据库自身。

连接、增量和可插拔是 Apache ShardingSphere 的核心概念。

连接:通过对数据库协议、SQL方言以及数据库存储的灵活适配,快速的连接应用与多模式的异构数据库;

增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能;

可插拔:项目采用微内核+三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。

ShardingSphere-Proxy定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支 持。目前提供 MySQL 和 PostgreSQL。

安装

下载ShardingSphere‐Proxy 的最新发行版。解压缩后修改conf/server.yaml和以config-前缀开头的文件,如:conf/config-encrypt.yaml 文件,进行字段加密配置,其他配置如分片规则、读写分离规则配置暂不讨论。Linux 操作系统运行 bin/start.sh,可以指定proxy端口,bin/start.sh 3308.

敏感字段配置

(base) gengdeMacBook-Pro:conf js2thon$ mysql -h127.0.0.1 -uroot -P3308Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 13Server version: 8.0.20-Sharding-Proxy 4.1.0Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show tables;+----------------------+------------+| Tables_in_encrypt_db | Table_type |+----------------------+------------+| t_encrypt            | BASE TABLE |+----------------------+------------+1 row in set (0.03 sec)mysql> select * from t_encrypt;+----------+---------+-------------+| order_id | user_id | phone       |+----------+---------+-------------+|       10 |       0 | 18516014911 ||       11 |       1 | 18516014922 ||       12 |       2 | 18516014933 ||       13 |       3 | 18516014944 ||       14 |       4 | 18516014955 |+----------+---------+-------------+5 rows in set (0.09 sec)mysql> select * from t_encrypt;+----------+---------+--------------------------+-------------+| order_id | user_id | phone_cipher             | phone       |+----------+---------+--------------------------+-------------+|       10 |       0 | uFZ1RGQfxsUM+GUJqI5rlQ== | 18516014911 ||       11 |       1 | SGxnMaUHY/HR50hJcYp6Vg== | 18516014922 ||       12 |       2 | Z5NBefdS9WN3Bl6p45R1Dw== | 18516014933 ||       13 |       3 | SKqYOUF4dxloUH5M9t/wEg== | NULL        ||       14 |       4 | 4q+dOa+bxUTFSzX6AOjvUg== | NULL        |
+----------+---------+--------------------------+-------------+
(向右滑动,查看更多)

3、利用Vault实现数据库动态凭证和数据加解密的接口调用

Hashicorp Vault解决了管理敏感信息的问题,如数据库凭证和API密钥就是需要以安全的方式存储和提供给应用程序的敏感数据,Vault支持许多secret引擎,部分如下:

Key-Value:简单的静态键值对

动态生成的凭据:由Vault根据客户端请求生成

加密密钥:用于使用客户端数据执行加密功能

3.1.数据库动态凭证


Vault安装配置较为简单,这里主要列下相关配置信息:

数据库链接配置

角色配置

获取数据库凭证

使用动态凭证登录验证

(base) js2thondeMacBook-Pro:Downloads js2thon$ mysql -u v-my-r-owFmZ3LFu -pM8DdaYZXYRU-rNIm2CbQmysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1379Server version: 5.6.41-log MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

上面在Vault配置了用户只有SELECT权限,验证可以正常查询

mysql> use mysql_test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+----------------------+| Tables_in_mysql_test |+----------------------+| account              |+----------------------+mysql> select * from account;+------+------+| id   | name |+------+------+|  100 | abc  |+------+------+1 row in set (0.00 sec)

执行数据插入操作,因为没有权限Vault报错。

mysql> insert into account values(101,'def');ERROR 1142 (42000): INSERT command denied to user 'v-my-r-owFmZ3LFu'@'localhost' for table 'account'

3.2.数据加解密接口调用

Vault作为kms提供加解密接口,通过调用接口实现数据加解密,Vault数据密钥的创建可参考官网文档,此处忽略。

Vault管理后台密钥创建

加解密接口调用Python实现

4. 问题和思考

本文从数据识别、分类分级、配置管理、存储字段加密这个流程梳理下来,其实需要横向和纵向扩展的还非常多,统一密钥管理、账号权限、资产大盘、风险监测和运营管理,这些组成了数据安全的基础能力。上面也只是罗列了一些开源工具的能力,只是做了单点的简单功能演示,没有详细进一步去了解实现机制和优劣势,后续有精力再做深一步的研究,也希望有落地实现的同行交流实际经验,如在架构方案设计、异构适配、性能稳定性等方面的多维度实践探索。

大数据数据安全
本作品采用《CC 协议》,转载必须注明作者和本文链接
“卓信数据计划”持续招募成员单位,预计2022年3月前完成第六批(2022年第二批)100家相关企业招募审核工作。
当前,以数字经济为代表的新经济成为经济增长新引擎,数据作为核心生产要素成为了基础战略资源,数据安全的基础保障作用也日益凸显。伴随而来的数据安全风险与日俱增,数据泄露、数据滥用等安全事件频发,为个人隐私、企业商业秘密、国家重要数据等带来了严重的安全隐患。近年来,国家对数据安全与个人信息保护进行了前瞻性战略部署,开展了系统性的顶层设计。《中华人民共和国数据安全法》于2021年9月1日正式施行,《中华人
前言:工信部召开“十四五”信息通信行业发展规划新闻发布会。工信部网络安全管理局副局长杜广达在会上回答有关“数据安全”和“网络安全”等问题。
高额奖金等你来拿~
随着《中华人民共和国密码法》和《国家政务信息化项目建设管理办法》(国办发〔2019〕57 号)的发布,以密码为核心的网络安全的重要性越发凸显。然而,在国内智慧城市的大规模建设中,“重业务、轻安全”的现象普遍存在。密码技术作为智慧城市网络安全的基础与核心技术,从智慧城市密码的应用架构、密码核心技术、防护能力、解决的应用领域、密码应用实践等方面分别进行了阐述,可以解决智慧城市建设中出现的安全性问题,
医疗物联网升温态势明显,做好安全保障前置了吗?
10月16日至17日,“天府杯”国际网络安全大赛暨2021天府国际网络安全高峰论坛将在成都天府国际会议中心举行。本届“天府杯”国际网络安全大赛将总奖金额提升至150万美元。“网络安全红云展”和“反诈宣传展”两特色科普宣传展将在天府杯活动中首度亮相。值得一提的是,这两项特色科普展览原计划于今年8月举行的2021北京网络安全大会上首次展出。但受突发疫情影响,北京网络安全大会改为线上举行
本报告通过六张实战推演图,结合安全能力者、第三方机构和安全运营者的观点,展示了攻击方从攻击面分析、边界突破、横向渗透到靶标攻陷的攻击过程,防守方从基础保护、强化保护到协同保护的纵深防御体系,描绘了大型网络安全攻防实战演习的全景对象和步骤推演。
11月16日,在工业和信息化部举办的《“十四五”信息通信行业发展规划》新闻发布会上,工信部信息通信发展司司长谢存介绍了《规划》起草的背景、过程、主要考虑和相关内容。
VSole
网络安全专家