第260期 / June 5, 2019

分享到臉書!分享到維特!分享到噗浪!分享到Google+!分享到微博!轉寄友人友善列印

運用在資料外洩防護系統的正規表示式實作介紹

作者/陳彥碩

[發表日期:2019/6/5]

作者簡歷

作者名為陳彥碩,目前在凌群電腦資安暨巨量資料技術研發處擔任軟體工程師,擅長領域為資訊隱藏、資訊安全相關,曾參與國內某大型商銀DLP建置案。

前言

從資訊安全的角度而言,早期大家所普遍採取的防禦思考邏輯,在於阻止病毒入侵、避免系統運作與所儲存的資料受到影響而癱瘓,後來隨著駭客入侵的行為越來越氾濫,動機也逐漸從炫耀技術變成盜竊、販賣資料來牟利的違法行為,所有人越來越清楚自己所要保護的最重要資產,就是資料。系統壞了,可以重建,資料沒了,也許還可以從備份系統中還原,但一些機密、敏感資料如果外洩出去,被其他人濫用、冒用,後果就不是你能掌控的。

為了解決以上問題,資料外洩防護(Data Loss Prevention)方案就出現了。以下簡稱為DLP。DLP主要是以安全政策及分類規則為判別基礎,並透過內容比對偵測資料內容風險程度。DLP與當前同樣標榜具備資料安全防護的其他產品,最大的不同點,在於可直接清楚標明哪些檔案屬於機密資料,抑或是否包含一些敏感性資訊。

為何要重視個資防護

隨著臺灣開始施行個人資料保護法,企業就算覺得自己不是駭客的目標,並什麼沒有了不起的資料能被壞人盯上,政府已經開始要求公民營單位遵循這項法令,因此,加強保護個人資料已經是企業經營管理必須面對的課題。

而對於個資的保護,單靠傳統的資訊安全技術,其實會受到很大的限制。以資料的偵測來說,因為個資並不是由幾個固定的字串所組成的,例如手機號碼、電子郵件等資訊,就是遵照一定格式所組成的編碼代號,有英文、數字,可是,我們所熟知的多數內容過濾產品,例如郵件稽核、網頁過濾都只能比對使用者所傳輸的內容,是否包含特定的關鍵字。

那讓如何DLP去識別資料內是否有包含特定關鍵字或是特定格式的編號代碼呢?其中一個方式,就是透過接下來要講的正規表示式(Regular Expressions)來解決這個問題。

何謂正規表示式

正規表示式,在程式碼中常簡寫為regex、regexp或RE,又稱正則表達式、正規表示法、正規運算式、規則運算式、常規表示法,是電腦科學的一個概念。正規表式使用單個字串來描述、符合一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表達式通常被用來檢索、替換那些符合某個模式的文字。許多程式設計語言都支援利用正規表達式進行字串操作。例如,在Perl中就內建了一個功能強大的正規表達式引擎。正規表達式這個概念最初是由Unix中的工具軟體(例如sed和grep)普及開的。正規表式通常縮寫成regex,單數有regexp、regex,複數有regexps、regexes、regexen。

Perl的正規表式源自於Henry Spencer於1986年1月19日發布的regex,它已經演化成了PCRE,由於正規表示式的符號不少且每個都具有不同的意義,在剛接觸時非常建議到維基百科或是其他網路資源來查詢PCRE表達式全集,並且找網路上的範例來參考並練習,只有透過大量的實作正規表示式才能夠熟悉這些符號的應用,以下會使用已寫好的正規表示式來演示實作過程。我們也可以從https://regex101.com 這個網站來看我們寫的正規表示式能不能正確的抓取到我們希望偵測到的字串。

例一:偵測所有的email domain


《圖一》



《圖二》


以上可以看出只有真正是email domain形式的字串才被識別,亂寫的被排除掉。

例二:偵測除了syscom.com以外的所有的email domain


《圖三》



《圖四》


紅線是筆者框起來的,可以看到在第二個例子裡,我們公司的網域syscom.com並沒有被正規表示式所偵測,因為我們在此正規表示式中排除了syscom.com這個網域。以上的排除技巧,有時因為客戶或其他人的特殊需求,會使用到。有機會可以到網路多觀摩其他人的寫法。

除了電子郵件、還有姓名、地址、手機號碼、身分證字號可以寫成正規表示式來偵測,但此文章就以電子郵件做為介紹,有了以上的基礎,就開始進行實作。

測試環境

測試環境為個人電腦的VMware虛擬環境,DLP為Symantec Data Loss Prevent 15.0.0.45028版本,主控端電腦作業系統為Windows 2008 R2 Standard,端點端電腦作業系統為Windows 7 Service Pack 1。CPU為Intel Core i7-3630QM 3.40Ghz,RAM為16 GB。

實作過程

一、新建一個測試政策


從Console上的Manage → Policies → Policy List
到達介面後,按下紅色框框的New圖標


《圖五》


二、選擇政策類型

按下New後會進到以下畫面,請選擇Add a blank policy


《圖六》


三、政策組態設定

進到此頁面後,請依序填完基本資訊,Name、Description、Policy Group,
並且新增規則Add Rule


《圖七》


四、規則類型

Rule Type中選擇Content Matches Regular Expression


《圖八》


五、電子郵件偵測

填寫規則名稱,並且將風險等級設成High,再把例一的正規表示式pattern拿過來套用,並選Count all unique matches,表示觸發同一特徵只要記錄一次就好。Match On保持預設全選不需要動。填完資訊後按OK。


《圖九》


六、設定個資外流時觸發的DLP回應規則

在頁籤Response中選擇Block這個回應規則。下拉選單選到Block後,按下Add Response Rule,確定出現以下畫面才算設置完成。


《圖十》


七、在Endpoint端測試個資外流狀況


《圖十一》


八、將機密資料外傳到隨身碟


《圖十二》


成功被阻擋


《圖十三》


九、到Console看觸發的事件詳細內容


《圖十四》


在雜亂資料中成功識別電子郵件的特徵,也成功阻擋,實驗結束。

結論

在目前流通的各種文件檔案格式中,可以置入許多你不易一眼就看到的內容,若單靠人力去判斷,有可能會無法發現裡面有刻意外洩的機密資料。像是本文中測試文件,在裡面的文字內容中藏個資;或是在Excel檔案裡面,可以在其他工作表裡面貼上個資,再將資料內容的字型色彩套用為白色,開啟該檔的人不易發現裡面別有玄機,但如果我們透過DLP並且配合使用合適的正規表示式,可以讓機器去偵測,相較於人工檢查方式,嚴謹太多,而且就算機密資料或個資被外流,也有相關紀錄可供管理者查詢,可以降低發生資安事件時的調查成本,對管理人員來說相當方便。

參考資料

1.https://www.ithome.com.tw/tech/86401
2.https://zh.wikipedia.org/wiki/正規表示式