互聯(lián)網(wǎng)公司數(shù)據(jù)安全保護新探索
近年來,數(shù)據(jù)安全形勢越發(fā)嚴(yán)峻,各種數(shù)據(jù)安全事件層出不窮。在當(dāng)前形勢下,互聯(lián)網(wǎng)公司也基本達成了一個共識:雖然無法完全阻止攻擊,但底線是敏感數(shù)據(jù)不能泄漏。也即是說,服務(wù)器可以被掛馬,但敏感數(shù)據(jù)不能被拖走。服務(wù)器對于互聯(lián)網(wǎng)公司來說,是可以接受的損失,但敏感數(shù)據(jù)泄漏,則會對公司產(chǎn)生重大聲譽、經(jīng)濟影響。
在互聯(lián)網(wǎng)公司的數(shù)據(jù)安全領(lǐng)域,無論是傳統(tǒng)理論提出的數(shù)據(jù)安全生命周期,還是安全廠商提供的解決方案,都面臨著落地困難的問題。其核心點在于對海量數(shù)據(jù)、復(fù)雜應(yīng)用環(huán)境下的可操作性不佳。
例如數(shù)據(jù)安全生命周期提出,首先要對數(shù)據(jù)進行分類分級,然后才是保護。但互聯(lián)網(wǎng)公司基本上都是野蠻生長,發(fā)展壯大以后才發(fā)現(xiàn)數(shù)據(jù)安全的問題。但存量數(shù)據(jù)已經(jīng)形成,日以萬計的數(shù)據(jù)表在增長,這種情況下如何實現(xiàn)數(shù)據(jù)分類分級?人工梳理顯然不現(xiàn)實,梳理的速度趕不上數(shù)據(jù)增長速度。
再例如安全廠商提供的數(shù)據(jù)審計解決方案,也都是基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫的硬件盒子。Hadoop環(huán)境下的數(shù)據(jù)審計方案是什么?面對海量數(shù)據(jù),很多廠商也買不起這么多硬件盒子啊。
因此,互聯(lián)網(wǎng)公司迫切需要一些符合自身特點的手段,來進行數(shù)據(jù)安全保障。為此,美團點評信息安全中心進行了一些具體層面的探索。這些探索映射到IT的層面,主要包括應(yīng)用系統(tǒng)和數(shù)據(jù)倉庫,接下來我們分別闡述。
一、應(yīng)用系統(tǒng)
應(yīng)用系統(tǒng)分為兩塊,一是對抗外部攻擊,是多數(shù)公司都有的安全意識,但意識不等于能力,這是一個負(fù)責(zé)任企業(yè)的基本功。傳統(tǒng)問題包括越權(quán)、遍歷、SQL注入、安全配置、低版本漏洞等,這一類在OWASP的Top10風(fēng)險都有提到,在實踐中主要考慮SDL、安全運維、紅藍對抗等手段,且以產(chǎn)品化的形式來解決主要問題。這里不做重點介紹。
1.1 掃號及爬蟲
新的形勢下,還面臨掃號、爬蟲問題。掃號是指撞庫或弱口令:撞庫是用已經(jīng)泄漏的賬號密碼來試探,成功后輕則竊取用戶數(shù)據(jù),重則盜取用戶資金;弱口令則是簡單密碼問題。對于這類問題,業(yè)界不斷的探索新方法,包括設(shè)備指紋技術(shù)、復(fù)雜驗證碼、人機識別、IP信譽度,試圖多管齊下來緩解,但黑產(chǎn)也在不斷升級對抗技術(shù),包括一鍵新機、模擬器、IP代理、人類行為模仿,因此這是個不斷的對抗過程。
舉個例子,有公司在用戶登錄時,判斷加速等傳感器的變化,因為用戶在手機屏幕點擊時,必然會帶來角度、重力的變化。如果用戶點擊過程中這些傳感器沒有任何變化,則有使用腳本的嫌疑。再加上一個維度去判斷用戶近期電量變化,就可以確認(rèn)這是一臺人類在用的手機,還是黑產(chǎn)工作室的手機。黑產(chǎn)在對抗中發(fā)現(xiàn)公司用了這一類的策略,則很輕易的進行了化解,一切數(shù)據(jù)都可以偽造出來,在某寶上可以看到大量的此類技術(shù)工具在出售。
爬蟲對抗則是另一個新問題,之前有文章說,某些公司的數(shù)據(jù)訪問流量75%以上都是爬蟲。爬蟲不帶來任何業(yè)務(wù)價值,而且還要為此付出大量資源,同時還面臨數(shù)據(jù)泄漏的問題。
在互聯(lián)網(wǎng)金融興起后,爬蟲又產(chǎn)生了新的變化,從原來的未授權(quán)爬取數(shù)據(jù),變成了用戶授權(quán)爬取數(shù)據(jù)。舉例來說,小張缺錢,在互聯(lián)網(wǎng)金融公司網(wǎng)站申請小額貸款,而互聯(lián)網(wǎng)金融公司并不知道小張能不能貸,還款能力如何,因此要求小張?zhí)峁┰谫徫锞W(wǎng)站、郵箱或其他應(yīng)用的賬號密碼,爬取小張的日常消費數(shù)據(jù),作為信用評分參考。小張為了獲取貸款,提供了賬號密碼,則構(gòu)成了授權(quán)爬取。這和以往的未授權(quán)爬取產(chǎn)生了很大的變化,互聯(lián)網(wǎng)金融公司可以進來獲取更多敏感信息,不但加重了資源負(fù)擔(dān),還存在用戶密碼泄漏的可能。
image
對爬蟲的對抗,也是一個綜合課題,不存在一個技術(shù)解決所有問題的方案。解決思路上除了之前的設(shè)備指紋、IP信譽等手段之外,還包括了各種機器學(xué)習(xí)的算法模型,以區(qū)分出正常行為和異常行為,也可以從關(guān)聯(lián)模型等方向入手。但這也是個對抗過程,黑產(chǎn)也在逐漸摸索試探,從而模擬出人類行為。未來會形成機器與機器的對抗,而決定輸贏的,則是成本。
1.2 水印
近年來業(yè)界也出現(xiàn)了一些將內(nèi)部敏感文件,截圖外發(fā)的事件。有些事件引起了媒體的炒作,對公司造成了輿論影響,這就需要能夠?qū)@種外發(fā)行為進行溯源。而水印在技術(shù)上要解決的抗魯棒性問題,針對圖片的水印技術(shù)包括空間濾波、傅立葉變換、幾何變形等,簡單的說是將信息經(jīng)過變換,在惡劣條件下還原的技術(shù)。
1.3 數(shù)據(jù)蜜罐
是指制作一個假的數(shù)據(jù)集合,來捕獲訪問者,從而發(fā)現(xiàn)攻擊行為。國外已經(jīng)有公司做出了對應(yīng)的產(chǎn)品,其實現(xiàn)可以粗暴地理解為,在一個數(shù)據(jù)文件上加入了一個“木馬”,所有的訪問者再打開后,會把對應(yīng)記錄發(fā)回服務(wù)器。通過這個“木馬”,可以追蹤到攻擊者細(xì)節(jié)信息。我們也曾做過類似的事情,遺憾的是,這個數(shù)據(jù)文件放在那里很久,都無人訪問。無人訪問和我我們對蜜罐的定位有關(guān),現(xiàn)階段我們更愿意把它作為一個實驗性的小玩意,而不是大規(guī)模采用,因為“木馬”本身,可能帶有一定的風(fēng)險。
1.4 大數(shù)據(jù)行為審計
大數(shù)據(jù)的出現(xiàn),為關(guān)聯(lián)審計提供了更多的可能性,可以通過各種數(shù)據(jù)關(guān)聯(lián)起來分析異常行為。這方面,傳統(tǒng)安全審計廠商做了一些嘗試,但從客觀的角度來看,還比較基礎(chǔ),無法應(yīng)對大型互聯(lián)網(wǎng)公司復(fù)雜情況下的行為審計,當(dāng)然這不能苛求傳統(tǒng)安全審計廠商,這與生意有關(guān),生意是要追求利潤的。這種情況下,互聯(lián)網(wǎng)公司就要自己做更多的事情。
例如防范內(nèi)鬼,可以通過多種數(shù)據(jù)關(guān)聯(lián)分析,通過“與壞人共用過一個設(shè)備”規(guī)則,來發(fā)現(xiàn)內(nèi)鬼。舉一反三,則可以通過信息流、物流、資金流等幾個大的方向衍生出更多符合自身數(shù)據(jù)特點的抓內(nèi)鬼規(guī)則。
除此之外,還可以通過UEBA(用戶與實體行為分析)來發(fā)現(xiàn)異常,這需要在各個環(huán)節(jié)去埋點采集數(shù)據(jù),后端則需要對應(yīng)的規(guī)則引擎系統(tǒng)、數(shù)據(jù)平臺、算法平臺來支撐。
例如常見的聚類算法:某些人與大多數(shù)人行為不一致,則這些人可能有異常。具體場景可以是:正常用戶行為首先是打開頁面,選擇產(chǎn)品,然后才是登錄、下單。而異常行為可以是:先登錄,然后修改密碼,最后下單選了一個新開的店,使用了一個大額優(yōu)惠券。這里每一個數(shù)據(jù)字段,都可以衍生出各種變量,通過這些變量,最后可以有一個異常判斷。
再例如關(guān)聯(lián)模型,一個壞人團伙,通常是有聯(lián)系的。這些維度可以包括IP、設(shè)備、WiFi MAC地址、GPS位置、物流地址、資金流等若干維度,再結(jié)合自己的其他數(shù)據(jù),可以關(guān)聯(lián)出一個團伙。而團伙中如果有一個人標(biāo)記為黑,則關(guān)系圈則會根據(jù)關(guān)系強弱進行信譽打分降級。
image
UEBA的基礎(chǔ)是有足夠的數(shù)據(jù)支撐,數(shù)據(jù)可以是外部的數(shù)據(jù)供應(yīng)商。例如騰訊、阿里都提供一些對外數(shù)據(jù)服務(wù),包括對IP信譽的判斷等,使用這些數(shù)據(jù),可以起到聯(lián)防聯(lián)控的效果。也可以是內(nèi)部的,互聯(lián)網(wǎng)公司總會有若干條業(yè)務(wù)線服務(wù)一個客戶,這就要看安全人員的數(shù)據(jù)敏感度了,哪些數(shù)據(jù)能為自己所用。
1.5 數(shù)據(jù)脫敏
在應(yīng)用系統(tǒng)中,總會有很多用戶敏感數(shù)據(jù)。應(yīng)用系統(tǒng)分為對內(nèi)和對外,對外的系統(tǒng)脫敏,主要是防止撞號和爬蟲。對內(nèi)的系統(tǒng)脫敏,主要是防止內(nèi)部人員泄漏信息。
對外系統(tǒng)的脫敏保護,可以分層來對待。默認(rèn)情況下,對于銀行卡號、身份證、手機號、地址等關(guān)鍵信息,強制脫敏,以**替換關(guān)鍵位置,這樣即使被撞庫或者爬蟲,也獲取不到相關(guān)信息,從而保護用戶數(shù)據(jù)安全。但總有客戶需要看到自己或修改自己的完整信息,這時就需要分層保護,主要是根據(jù)常用設(shè)備來判斷,如果是常用設(shè)備,則可以無障礙的點擊后顯示。如果非常用設(shè)備,則推送一個強驗證。
在日常業(yè)務(wù)中,美團點評還有一個特點。外賣騎手與買家的聯(lián)系,騎手可能找不到具體位置,需要和買家進行溝通,這時至少包括了地址、手機號兩條信息暴露。而對于買家信息的保護,我們也進行了摸索試探。手機號碼信息,我們通過一個“小號”的機制來解決,騎手得到的是一個臨時中轉(zhuǎn)號碼,用這個號碼與買家聯(lián)系,而真實號碼則是不可見的。地址信息,我們在系統(tǒng)中使用了圖片顯示,在訂單完成之后,地址信息則不可見。
對內(nèi)系統(tǒng)的脫敏保護,實踐中可以分為幾個步驟走。首先是檢測內(nèi)部系統(tǒng)中的敏感信息,這里可以選擇從Log中獲取,或者從JS前端獲取,兩個方案各有優(yōu)劣。從Log中獲取,要看公司整體上對日志的規(guī)范,不然每個系統(tǒng)一種日志,對接周期長工作量大。從前端JS獲取,方案比較輕量化,但要考慮性能對業(yè)務(wù)的影響。
檢測的目的是持續(xù)發(fā)現(xiàn)敏感信息變化,因為在內(nèi)部復(fù)雜環(huán)境中,系統(tǒng)會不斷的改造升級,如果缺少持續(xù)監(jiān)控的手段,會變成運動式工程,無法保證持續(xù)性。
檢測之后要做的事情,則是進行脫敏處理。脫敏過程需要與業(yè)務(wù)方溝通明確好,哪些字段必須強制完全脫敏,哪些是半脫敏。應(yīng)用系統(tǒng)權(quán)限建設(shè)比較規(guī)范的情況下,可以考慮基于角色進行脫敏,例如風(fēng)控案件人員,是一定需要用戶的銀行卡完整信息的,這時候可以根據(jù)角色賦予免疫權(quán)限。但客服人員則不需要查看完整信息,則進行強制脫敏。在免疫和脫敏之間,還有一層叫做半脫敏,是指在需要的時候,可以點擊查看完整號碼,點擊動作則會被記錄。
就脫敏整體而言,應(yīng)該有一個全局視圖。每天有多少用戶敏感信息被訪問到,有多少信息脫敏,未脫敏的原因是什么。這樣可以整體追蹤變化,目標(biāo)是不斷降低敏感信息訪問率,當(dāng)視圖出現(xiàn)異常波動,則代表業(yè)務(wù)產(chǎn)生了變化,需要追蹤事件原因。
二、數(shù)據(jù)倉庫
數(shù)據(jù)倉庫是公司數(shù)據(jù)的核心,這里出了問題則面臨巨大風(fēng)險。而數(shù)據(jù)倉庫的治理,是一個長期漸進的建設(shè)過程,其中安全環(huán)節(jié)只是其中一小部分,更多的則是數(shù)據(jù)治理層面。本文主要談及安全環(huán)節(jié)中的一些工具性建設(shè),包括數(shù)據(jù)脫敏、隱私保護、大數(shù)據(jù)行為審計、資產(chǎn)地圖、數(shù)據(jù)掃描器。
2.1 數(shù)據(jù)脫敏
數(shù)據(jù)倉庫的脫敏是指對敏感數(shù)據(jù)進行變形,從而起到保護敏感數(shù)據(jù)的目的,主要用于數(shù)據(jù)分析人員和開發(fā)人員對未知數(shù)據(jù)進行探索。脫敏在實踐過程中有若干種形式,包括對數(shù)據(jù)的混淆、替換,在不改變數(shù)據(jù)本身表述的情況下進行數(shù)據(jù)使用。但數(shù)據(jù)混淆也好,替換也好,實際上都是有成本的,在大型互聯(lián)網(wǎng)公司的海量數(shù)據(jù)情況下,這種數(shù)據(jù)混淆替換代價非常高昂,實踐中常用的方式,則是較為簡單的部分遮蓋,例如對手機號的遮蓋,139**0011來展示,這種方法規(guī)則簡單,能起到一定程度上的保護效果。
但有些場景下,簡單的遮蓋是不能滿足業(yè)務(wù)要求的,這時就需要考慮其他手段,例如針對信用卡號碼的的Tokenization,針對范圍數(shù)據(jù)的分段,針對病例的多樣性,甚至針對圖片的base64遮蓋。因此需要根據(jù)不同場景提供不同服務(wù),是成本、效率和使用的考量結(jié)果,數(shù)據(jù)遮蓋要考慮原始表和脫敏后的表。原始數(shù)據(jù)一定要有一份,在這個基礎(chǔ)上是另外復(fù)制出一張脫敏表還是在原始數(shù)據(jù)上做視覺脫敏,是兩種不同成本的方案。另外復(fù)制一張表脫敏,是比較徹底的方式,但等于每張敏感數(shù)據(jù)表都要復(fù)制出來一份,對存儲是個成本問題。而視覺脫敏,則是通過規(guī)則,動態(tài)的對數(shù)據(jù)展現(xiàn)進行脫敏,可以較低成本的實現(xiàn)脫敏效果,但存在被繞過的可能性。
2.2 隱私保護
隱私保護上學(xué)術(shù)界也提出了一些方法,包括K匿名、邊匿名、差分隱私等方法,其目的是解決數(shù)據(jù)聚合情況下的隱私保護。例如有的公司,拿出來一部分去除敏感信息后的數(shù)據(jù)公開,進行算法比賽。這個時候就要考慮不同的數(shù)據(jù)聚合后,可以關(guān)聯(lián)出某個人的個人標(biāo)志。目前看到業(yè)界在生產(chǎn)上應(yīng)用的是Google的DLP API,但其使用也較為復(fù)雜,針對場景比較單一。隱私保護的方法,關(guān)鍵是要能夠進行大規(guī)模工程化,在大數(shù)據(jù)時代的背景下,這些還都是新課題,目前并不存在一個完整的方法來解決隱私保護所有對抗問題。
2.3 大數(shù)據(jù)資產(chǎn)地圖
是指對大數(shù)據(jù)平臺的數(shù)據(jù)資產(chǎn)進行分析、數(shù)據(jù)可視化展現(xiàn)的平臺。最常見的訴求是,A部門申請B部門的數(shù)據(jù),B作為數(shù)據(jù)的Owner,當(dāng)然想知道數(shù)據(jù)給到A以后,他是怎么用的,有沒有再傳給其他人使用。這時候則需要有一個資產(chǎn)地圖,能夠跟蹤數(shù)據(jù)資產(chǎn)的流向、使用情況。換個角度,對于安全部門來說,需要知道當(dāng)前數(shù)據(jù)平臺上有哪些高敏感數(shù)據(jù)資產(chǎn),資產(chǎn)的使用情況,以及平臺上哪些人擁有什么權(quán)限。因此,通過元數(shù)據(jù)、血緣關(guān)系、操作日志,形成了一個可視化的資產(chǎn)地圖。形成地圖并不夠,延伸下來,還需要能夠及時預(yù)警、回收權(quán)限等干預(yù)措施。
2.4 數(shù)據(jù)庫掃描器
是指對大數(shù)據(jù)平臺的數(shù)據(jù)掃描,其意義在于發(fā)現(xiàn)大數(shù)據(jù)平臺上的敏感數(shù)據(jù),從而進行對應(yīng)的保護機制。一個大型互聯(lián)網(wǎng)公司的數(shù)據(jù)表,每天可能直接產(chǎn)生多達幾萬張,通過這些表衍生出來更多的表。按照傳統(tǒng)數(shù)據(jù)安全的定義,數(shù)據(jù)安全第一步是要分類分級,但這一步就很難進行下去。在海量存量表的情況下,該怎樣進行分類分級?人工梳理顯然是不現(xiàn)實的,梳理的速度還趕不上新增的速度。這時候就需要一些自動化的工具來對數(shù)據(jù)進行打標(biāo)定級。因此,數(shù)據(jù)庫掃描器可以通過正則表達式,發(fā)現(xiàn)一些基礎(chǔ)的高敏感數(shù)據(jù),例如手機號、銀行卡等這些規(guī)整字段。對于非規(guī)整字段,則需要通過機器學(xué)習(xí)+人工標(biāo)簽的方法來確認(rèn)。
綜上,數(shù)據(jù)安全在業(yè)務(wù)發(fā)展到一定程度后,其重要性越發(fā)突出。微觀層面的工具建設(shè)是一個支撐,在盡量減少對業(yè)務(wù)的打擾同時提高效率。宏觀層面,除了自身體系內(nèi)的數(shù)據(jù)安全,合作方、投資后的公司、物流、騎手、商家、外包等各類組織的數(shù)據(jù)安全情況,也會影響到自身安全,可謂“唇亡齒寒”。而在當(dāng)前各類組織安全水平參差不齊的情況下,就要求已經(jīng)發(fā)展起來的互聯(lián)網(wǎng)公司承擔(dān)更多的責(zé)任,幫助合作方提高安全水平,聯(lián)防共建。
【本文為51CTO專欄機構(gòu)“美團點評技術(shù)團隊”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號聯(lián)系機構(gòu)獲取授權(quán)】