以資料為中心的資料安全基礎能力建設探索
企業資料安全治理,除了熟悉法律法規條文,資訊採集最小化,服務入口明確隱私協議外,更多的是需要建設內部基礎能力,如資料識別、分類分級、資料加密、許可權管控等資料安全的基礎能力。
本文資料為中心的理念,圍繞資料識別、分類分級、基礎防護幾個方面,結合開源軟體做一次梳理和功能演示,希望能幫助有需要的人員對資料安全有個直觀的瞭解。
在資料識別基礎上,建立資料資產大盤,實現資料資產風險識別、監測、運營的資產全生命週期管理;
在資料分類分級的基礎上,對不同資料資產進行分類、分級,將優勢資源投入到關鍵資產的安全防護上;
在資料安全基礎防護方面,除了應具有基礎設施和架構的安全穩固外,基於資料識別和分類分級,對儲存、傳輸的敏感資料進行加密防護、賬號許可權管控、資料脫敏和分發管控,結合內外部風險變化,最終走向資料安全風控之路。
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 -P3308 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 8.0.20-Sharding-Proxy 4.1.0 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. 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-rNIm2CbQ mysql: [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 1379 Server 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 its affiliates. Other names may be trademarks of their respective owners. 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 names You can turn off this feature to get a quicker startup with -A Database changed mysql> 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、問題和思考
本文從資料識別、分類分級、配置管理、儲存欄位加密這個流程梳理下來,其實需要橫向和縱向擴充套件的還非常多,統一金鑰管理、賬號許可權、資產大盤、風險監測和運營管理,這些組成了資料安全的基礎能力。上面也只是羅列了一些開源工具的能力,只是做了單點的簡單功能演示,沒有詳細進一步去了解實現機制和優劣勢,後續有精力再做深一步的研究,也希望有落地實現的同行交流實際經驗,如在架構方案設計、異構適配、效能穩定性等方面的多維度實踐探索。
來自 “ Freebuf ”, 原文作者:js2thon;原文連結:https://www.freebuf.com/articles/database/323318.html,如有侵權,請聯絡管理員刪除。
相關文章
- 以資料為中心的網路安全
- 美創科技以資料為中心的安全治理實踐
- 資料服務基礎能力之後設資料管理
- 疫情後的數字化醫療:以大資料為基礎的綜合治理能力的提升大資料
- “以資料為中心”的數安實踐感悟
- 從0到1建設智慧灰度資料體系:以vivo遊戲中心為例遊戲
- 乾貨:以資料為中心的多層防禦,集中管控式大資料安全架構大資料架構
- 資料安全法正式實施,如何構建企業資料安全能力
- 以安全中臺為核心,構建關鍵基礎設施安全運營
- 美創解讀|《資料安全法》實施,企業資料安全合規技術能力建設
- 長江大資料交易中心以資料安全標準護航安全和隱私大資料
- 以資料庫為中心的架構與以領域為中心的架構的區別 - DevSDhami資料庫架構dev
- 企業資料平臺建設的基石:構建統一的資料存算能力
- 資料安全出境系列——資料追溯能力
- 《資料安全法》之下,你的資料安全建設跟上了嗎?
- 吳恩達:以資料為中心的人工智慧吳恩達人工智慧
- 網易資料基礎平臺建設經驗談
- 蔣鴻翔:網易資料基礎平臺建設
- IAB:2020年以資料為中心的企業
- 資料庫設計基礎資料庫
- SQL Server資料庫基礎之行資料轉換為列資料SQLServer資料庫
- 建設資料安全監測體系,為交通收費資料保駕護航
- Databricks收購了以AI為中心的資料治理平臺OkeraAI
- 淺析大資料時代的資料安全合規體系建設大資料
- 大資料背景下的高職院校資訊化建設探索大資料
- 基於OneData的資料倉儲建設
- 和 CCF 資料庫專委會合作,以 TiDB 的 Talent Plan 為基礎資料庫TiDB
- 為資料安全護航,袋鼠雲在資料分類分級上的探索實踐
- 資料中心也能“上天入海”?探索綠色資料中心的建設方案|聯瑞網路卡
- IAB:2018年以資料為中心的組織報告
- 案例|政務大資料平臺資料安全建設實踐大資料
- 資料安全建設五步走|拒絕做大資料時代的透明人大資料
- 聚焦資料安全建設難點,綠盟科技釋出《資料安全白皮書2.0》
- 構建資料安全合作生態,守護資料安全
- 資料湖構建DLF資料探索快速入門-淘寶使用者行為分析
- 探索Redis設計與實現1:Redis 的基礎資料結構概覽Redis資料結構
- 基於雲端計算的大資料平臺基礎設施建設實踐 排序大資料排序
- vivo資料庫與儲存平臺的建設和探索資料庫