iT邦幫忙

2022 iThome 鐵人賽

DAY 20
1
Security

資安新人30系列 第 20

資安新人30 Day20 保護 SQL Server 智慧財產權

  • 分享至 

  • xImage
  •  

昨天講到資料庫,那今天繼續資料庫的相關/images/emoticon/emoticon08.gif
主要會研究到:遮罩稽核加密


遮罩

動態資料遮罩 (DDM) 會對不具權限的使用者遮罩機密資料,從而限制其曝光

注意並非將資料加密處理

MASKED

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH(FUNCTION = '類型');
GO

類型

Default

使用預設資料型態取代

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION = 'default()')
GO
資料類型
  • 字串資料類型(或欄位大小少於 4 個字元):XXXX
  • 數值資料類型:0000
  • 日期與時間資料類型:01.01.1900 00:00:00.0000000
  • 二進位資料類型:單一位元組的 ASCII 值 0

Email

只顯示第一個字元和常數後置詞 ".com"。

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION = 'email()')
GO

Random

指定範圍內隨機的值遮罩原始值

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH(FUNCTION = 'random(最小值, 最大值)')
GO

Prtial

自訂遮罩字串

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION =  'partial(顯示前位數,"字串",顯示後位數)')
GO

Datetime

適用:SQL Server 2022 (16.x) Preview

遮罩時間資料型態的資料

ALTER TABLE 表格名稱 ALTER COLUMN 欄位
WITH (FUNCTION = 'datetime("日期格式")')
GO

稽核

SQL Server內建擁有,利用SQL Server Audit追蹤資料庫管理動作,將資料庫的行為記錄轉製為稽核報表

層級

  • 伺服器層級:包含伺服器作業,例如管理變更及登入和登出
  • 資料庫層級:包括資料操作語言(DML)及資料定義語言(DDL)
  • 稽核層級:包含稽核程序中的動作

稽核設定

相關的實作可以參考SQL Server 資料庫稽核設定


加密

相關的實作過程,可以參考這位前輩大大的文章連結
由於這篇為2016年的文章,在官網ENCRYPTBYPASSPHRASE (Transact-SQL)有說明SQL Server 2017 和更新版本會使用 AES256 金鑰以複雜密碼加密資料

  • 加密函數預設是採動態初始向量(IV)的方式,所以每次結果可能會不一樣

簡單加密函數

DECLARE @Key nvarchar(128);  
SET @Key = 'ASDFGZXCV';  
--加密  
DECLARE @ciphertext varbinary(max)
= EncryptByPassPhrase(@Key, '123455678ABCDE')  
SELECT @ciphertext

--解密
DECLARE @plainttext varchar(16) 
= CONVERT(varchar(16),DecryptByPassphrase(@Key, @ciphertext))  
SELECT @plainttext

建立憑證加密機制

由於簡單加密函數的金鑰存在程式碼裡面,很容易被發現,或者被偷取

  • 建立主要資料庫金鑰MASTER KEY
  • 建立憑證
  • 建立金鑰
  • 加密資料

注意事項

以下同事提供的,感謝他的提供/images/emoticon/emoticon32.gif

  • 當金鑰遺失時,則無法解密
  • 在資料庫備份轉移時,需要比較複雜的過程。
  • 如果有的話還原後 需要將其重新綁定至合法使用者身上
  • 刪除使用者時發現不能刪除,原因為憑證及金鑰綁在該使用者身上。因此透過更改授權來解決
  • 重新開啟DB Server需要開啟主要金鑰

參考資料

如果有任何錯誤的地方歡迎提出。/images/emoticon/emoticon41.gif

後記

可以觀看我們團隊的鐵人發文喔~


上一篇
資安新人30 Day19 資料庫備份機制
下一篇
資安新人30 Day21 資料庫安全分析 - SQL 漏洞評估工具
系列文
資安新人3030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言