國泰乘客資料外洩,洩漏咗940萬位乘客資料,令全城嘩然。市民大眾對一件大事過咗咁耐先公佈感到好憤怒同不可思議。政府個人資料私隱專員公署就只係講咗話難以接受,同乘客期望有落差云云。更有議員話係因為炒得太多IT 人,所以造成無人24小時監察住個網絡情況,令到被人攻擊之類。
但係喺眾多嘅討論之中,有一個重點往往被忽略:就係點解測試要用真實乘客嘅數據 ? 其實事情嘅源由,係因為國泰一個 Vendor 有晒國泰所儲落嘅個人資料,佢哋嘅網絡被人入侵,導致國泰嘅 Testing Network 都畀人入侵。咁大家如果有軟件開發嘅經驗,大家都知道有一樣野叫做 Testing Environment,即係專為測試而設嘅環境。咁入面嘅數據就理所當然理論上同實際上 Production Environment 嘅數據唔會共用。
但係大家都知道理想同現實總係⋯⋯
唔少 Vendor 甚至大公司,因為時間、資源問題,都會直接使用 Production Data 作為 Testing environment 嘅數據來源。就結果喺咁多個因素加埋一齊之下,就發生咗呢個大規模資料外洩事件。
其實方法不外乎兩大類: 1. 自己作Testing Data
呢個方法大家都一定用過,因為如果要做好簡單嘅 Integration test 就會用到呢個方法。好處就係因為係自己整 Testing Data,基本上乜野組合都可以有齊,無身份證無年齡之類係現實世界好難遇到嘅問題你都可以做得到。
但係問題好顯而易見,就係要整咁多 Testing Data 係非常費時失事,而大家都明白整 Testing data 呢個感覺上吃力不討好嘅行為解釋畀 Non-technical 嘅人又要大費唇舌。可能你努力做咗幾日之後,換來嘅係上司嘅一句:「你倒個 Production DB 落去咪得囉!」
呢個亦都係上面理想同現實差咁遠嘅主要原因。
咁有無第二個方法解決呢個問題呢? 其實係有嘅!
所謂數據匿名化,係指將原本敏感嘅個人資料,經過數據處理後﹐變成唔會洩漏大家身份嘅普通資料。
以下就分享幾個常見數據匿名化嘅技巧:
以上就係幾個常用嘅數據匿名化技巧,如果大家有興趣知多一點,可以去以下呢個網址,有詳盡的例子解說。
(按:無錯,係新加坡政府嘅官方文件⋯⋯)
希望大家下次接觸到相似嘅問題時候,會諗起數據匿名化呢樣野,咁資訊安全就更得到保障了。