Marriott用戶信息泄露後的深思——SQL Server敏感數據審計

​當地時間3月31日

萬豪(Marriott)國際集團表示正在調查一起涉及多達520萬客戶個人信息泄露事件。

 

在官網的聲明中萬豪表示涉及到的客戶信息包括:

姓名、公司、生日、住址、電話號碼、郵箱地址、會員賬號,以及積分餘額、關聯的航空公司等。

 

聲明同時表示:

目前事件仍在調查中,目前來看,客戶的支付卡信息、護照、身份證號或駕照號碼等信息還沒有受到影響。

新浪博客前不久剛爆出信息泄漏,萬豪集團又在三年後第二次泄漏用戶信息,數據安全已經迫在眉睫。作爲數據安全人員,如何審計公司的敏感數據,以確保較小可能性泄漏,規避組織數據泄漏風險,是我們要重點考慮的事情。我在數據安全方面已經發布了數篇文章,包括訪問數據權限的限定,數據庫備份的加密,數據敏感信息列的加密等,但這些還遠遠不夠,後續還會陸續爲大家分享數據安全方面的內容。

 

就萬豪集團這次泄密來看,其已經對部分用戶的敏感數據做安全防護,但是卻沒有全面覆蓋。那麼我們該如何發現我們組織或應用中存在哪些敏感數據?這些數據是否足夠安全?本文將給出SQL Server數據庫中敏感數據的審計方案,以供參考。

首先我們需要界定什麼樣的數據爲敏感數據,如下我們給出百度百科的一段描述:

隱私保護研究下的隱私可界定爲:隱私是指個體的敏感信息,羣體或組織的敏感信息可以表示爲個體的公共敏感信息。Banisar等人把用戶隱私分爲4類:①信息隱私,即個人數據的管理和使用,包括身份證號、銀行賬號、收入和財產狀況、婚姻和家庭成員、醫療檔案、消費和需求信息(如購物、買房、車、保險)、網絡活動蹤跡(如IP地址、瀏覽蹤跡、活動內容)等;②通信隱私,即個人使用各種通信方式和其他人的交流,包括電話、QQ、E-mail、微信等;③空間隱私,即個人出入的特定空間或區域,包括家庭住址、工作單位以及個人出入的公共場所;④身體隱私,即保護個人身體的完整性,防止侵入性操作,如藥物測試等.互聯網中的用戶隱私是指,個人、機構等實體不願被外部世界知曉的信息,如用戶的身份、軌跡、位置等敏感信息。

我們依據這樣的一個隱私數據的界定,通過一個簡單的腳本,即可以發現我們SQL Server數據庫中存儲有哪些顯著的敏感數據,腳本如下:

EXEC sp_msforeachDB 'USE [?]
SELECT db_name() as [DB], 
object_name(o.object_id) AS [Object], 
c.name AS [Column]
FROM sys.columns c 
LEFT JOIN sys.types t
ON c.system_type_id=t.system_type_id AND c.user_type_id=t.user_type_id
JOIN sys.objects o 
ON c.object_id = o.object_id 
WHERE o.type IN (''U'',''V'') /* 表和視圖 */
  AND (c.name like ''%mail%''
    OR c.name like ''%name%''
    OR c.name like ''%birth%''
    OR c.name like ''%sex%''
    OR c.name like ''%address%''
    OR c.name like ''%phone%''
    OR c.name like ''%QQ%''
    OR c.name like ''%weixin%''
    OR c.name like ''%weibo%''
    OR c.name like ''%blog%''
    OR c.name like ''%gender%''
    OR c.name like ''%card%''
    OR c.name like ''%identity%''
    OR c.name like ''%identity%'')
  AND db_name() NOT IN (''msdb'',''tempdb'',''master'')
  AND t.name NOT IN(''binary'',''varbinary'')'

腳本中使用sp_msforeachDB循環除系統庫msdb、tempdb、master庫以外的所有庫,查詢字段中包括郵箱mail、姓名name、生日birth、性別sex或gender、住址address、電話號碼phone、QQ、微信weixin、微博weibo、博客blog、卡號card、身份證identity、密碼pwd等敏感信息,排除了以二進制存儲的內容(說明已經加密了)。我上面說該腳本可以查詢的是顯著的敏感信息,是因爲您的組織命名規則會極大的影響這個結果,如您的組織使用漢字作爲字段名稱而非英文,或者使用的是對應名稱的拼音,或者是英文簡寫,或者根本就是隨意給的字符。這樣的話,我們需要根據命名規則對上面模糊匹配的內容進行調整,以便列出敏感信息字段。

當然,我們最終還是需要向開發人員去核實用戶信息記錄的表及字段。以便能全面覆蓋所有敏感信息。

之後,我們可以選擇限制訪問權限,或者加密明文的敏感信息,加密有敏感信息的數據庫等安全措施,以保障數據的安全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章