一個(gè)854 GB大(dà)小的(de)MongoDB數據庫無人(rén)看管,無需密碼登錄驗證即可(kě)查看和(hé)訪問中國求職者超過2億份非常詳細的(de)簡曆。202,730,434 條記錄中的(de)每條記錄不僅包含候選人(rén)的(de)技能和(hé)工作經驗,還(hái)包括他(tā)們的(de)個(gè)人(rén)信息,如手機号碼,電子郵件,婚姻,子女(nǚ),政治,身高(gāo),體重,駕駛執照(zhào),識字水(shuǐ)平,薪水(shuǐ)期望等。
該安全事件由HackenProof的(de)安全研究員(yuán)BobDiachenko發現,遭洩露的(de)是MongoDB數據庫,其中存有大(dà)量中國求職者的(de)詳細信息。據一位Twitter用(yòng)戶查證,已被删除的(de)應用(yòng)主要來(lái)源之一是bj.58.com。安全研究員(yuán)BobDiachenko表示:“經過調查,MongoDB數據庫不安全且不受保護,因此無需通(tōng)過高(gāo)尖端的(de)手段就可(kě)獲取用(yòng)戶信息,實際上,大(dà)量的(de)求職信息是通(tōng)過簡單的(de)BinaryEdge或Shodan搜索找到的(de),沒有任何密碼保護。”
該事件發生不久後,該數據庫被加入了(le)保護機制,但這(zhè)距離數據庫成立已過去很久,因此這(zhè)種後來(lái)的(de)保護很有可(kě)能起不到多(duō)少作用(yòng)。根據MongoDB日志,至少有十幾個(gè)IP可(kě)能在脫機之前訪問了(le)數據庫。對(duì)于事後“亡羊補牢”,JASK公司的(de)安全研究主管RodSoto認爲,或許應該要求軟件開發人(rén)員(yuán)引入自動給代碼打補丁的(de)機制。他(tā)說:“盡管這(zhè)樣做(zuò)能夠有效降低被互聯網上已知應用(yòng)程序攻擊的(de)幾率,但強行更新或打補丁通(tōng)常會帶來(lái)意想不到的(de)後果。”
實際上,此類情況并非個(gè)例,如今有越來(lái)越多(duō)的(de)用(yòng)戶數據被置身于“裸奔”狀态,企業應該正确的(de)認識到保護第三方數據庫的(de)重要性。顯然,此次事件中簡曆網站并沒有行使保護數據安全的(de)責任,讓數量如此衆多(duō)的(de)用(yòng)戶的(de)簡曆信息被公開查閱。
數據必須受到保護,因爲它們存在于流程生命周期中的(de)各個(gè)環節。
數據通(tōng)常是一個(gè)組織機構最大(dà)最有價值的(de)資産,這(zhè)一特性使其成爲了(le)各種類型敵人(rén)(包括犯罪分(fēn)子和(hé)民族國家)的(de)首要目标。幾乎每周都會有新的(de)數據洩漏事件發生,持續提醒我們數據安全的(de)重要性。僅在2018年上半年,就有944起數據洩露事件導緻了(le)33億條數據記錄遭到洩露。但是真正的(de)數據安全是什(shén)麽樣的(de)呢(ne)?
許多(duō)解決方案都宣傳“端到端保護”的(de)必要性以及他(tā)們有能力提供這(zhè)種保護,但當我們越過這(zhè)些流行術語,我們是否清楚地知道保護數據意味著(zhe)什(shén)麽?
随著(zhe)攻擊途徑不斷增加,攻擊者變得(de)越來(lái)越缜密,信息安全的(de)方方面面都變得(de)非常重要——從安全的(de)數據存儲、傳輸和(hé)處理(lǐ)到訪問控制和(hé)有效的(de)密鑰管理(lǐ)。如果有一個(gè)環節容易受到攻擊,則會破壞其他(tā)安全措施的(de)有效性。這(zhè)種來(lái)自多(duō)方面的(de)風險需要一種全面的(de)、以數據爲中心的(de)安全保護方法,這(zhè)種方法應該在其生命周期的(de)所有環節關注保護數據本身,而不是隻關注其周圍的(de)網絡、應用(yòng)程序或服務器。組織機構必須遵循如下(xià)原則始終确保數據安全:
a. 在文件系統,數據庫上或通(tōng)過存儲技術保護靜态數據;
b. 當數據在網絡中移動時(shí),保護傳輸中的(de)數據;
c. 在使用(yòng)或處理(lǐ)數據時(shí),保護正在使用(yòng)的(de)數據;
經驗告訴我們,如果存在有價值的(de)數據正處于危險之中,攻擊者會通(tōng)過某種方法找到并接觸它們——我們不能隻緊鎖大(dà)門;每一個(gè)入口都需要保護。因此,僅将加密局限在數據安全三要素——存儲、傳輸、使用(yòng)中的(de)一部分(fēn),是一種危險的(de)行爲。保護靜止、傳輸和(hé)使用(yòng)中的(de)數據是至關重要的(de)。
1 靜态數據
以任何數字形式存儲的(de)非活動數據,靜态數據可(kě)能位于硬盤驅動器或數據庫、數據湖、雲存儲或無數其他(tā)位置。在通(tōng)常被認爲是最安全的(de)數據狀态下(xià),我們通(tōng)常會将基于邊界的(de)技術和(hé)解決方案視爲第一道防線,并根據數據本身的(de)用(yòng)途和(hé)敏感性添加額外防線。這(zhè)些額外防線包括加密敏感數據,無論數據存儲在本地還(hái)是存儲在雲中。由于數據存儲的(de)聚合性,靜态數據對(duì)于想要竊取大(dà)量有價值數據的(de)攻擊者來(lái)說是一個(gè)很有吸引力的(de)目标。
2 傳輸中的(de)數據
傳輸中的(de)數據很容易受到攻擊,無論是通(tōng)過專用(yòng)網絡、本地設備,還(hái)是公共不可(kě)信空間。人(rén)們普遍認爲,加密傳輸中的(de)數據是标準做(zuò)法——這(zhè)通(tōng)常是安全團隊保護數據資産時(shí)最先關注的(de)環節之一。這(zhè)是必須的(de),而且隻要企業遵守正确的(de)協議(yì),傳輸加密就是一種有效的(de)防線。
3 使用(yòng)中的(de)數據
如果前面描述的(de)兩種數據狀态可(kě)以簡單地标記爲最容易理(lǐ)解和(hé)最容易解決的(de),那麽使用(yòng)中的(de)數據應該被貼上最容易被忽略的(de)标簽。因此,它很快(kuài)就成爲攻擊者最容易突破的(de)地方。本質上,數據使用(yòng)領域的(de)挑戰與缺乏對(duì)問題本身的(de)認識有關。這(zhè)部分(fēn)被忽略的(de)原因是,安全領域的(de)一些人(rén)錯誤地認爲,保護靜态數據和(hé)傳輸中的(de)數據就可(kě)以了(le)。
然而,随著(zhe)攻擊者越來(lái)越老練,再加上對(duì)計算(suàn)機芯片處理(lǐ)機制普遍存在的(de)缺陷的(de)驚人(rén)披露,所有規模的(de)企業都需要意識到保護正在使用(yòng)的(de)數據的(de)重要性。當我們使用(yòng)數據來(lái)提取有價值信息時(shí),數據是最有價值的(de),這(zhè)可(kě)以通(tōng)過執行搜索或分(fēn)析來(lái)實現。除了(le)訪問控制和(hé)用(yòng)戶身份驗證,這(zhè)類在任何安全計劃中都重要的(de)部分(fēn)之外,還(hái)有各種商業上可(kě)用(yòng)的(de)解決方案和(hé)技術方法可(kě)于抵禦此漏洞,包括同态加密、安全多(duō)方計算(suàn)和(hé)安全Secure Enclave技術。
我們都知道攻擊者正在成長(cháng),而我們的(de)安全工作也(yě)必須跟上。保護方案必須識别和(hé)保護數據,因爲數據存在于流程生命周期中的(de)各個(gè)環節,無論是靜态的(de)、傳輸中還(hái)是在使用(yòng)中。
1 部署問題
這(zhè)就是數據庫安全版的(de)博爾特一蹬出起跑器就被鞋帶絆倒。數據庫經過廣泛測試以确保能勝任應該做(zuò)的(de)所有工作,但有幾家公司肯花時(shí)間做(zuò)數據庫安全性測試?
解決辦法:這(zhè)個(gè)問題的(de)解決辦法十分(fēn)明(míng)顯:部署前做(zuò)更多(duō)的(de)測試,找出可(kě)被攻擊者利用(yòng)的(de)非預期操作。
2 離線服務器數據洩露
公司數據庫可(kě)能會托管在不接入互聯網的(de)服務器上,但這(zhè)并不意味著(zhe)對(duì)基于互聯網的(de)威脅完全免疫。無論有沒有互聯網連接,數據庫都有可(kě)供黑(hēi)客切入的(de)網絡接口。
解決辦法:首先,将數據庫服務器當成聯網服務器一樣看待,做(zuò)好相應的(de)安全防護。其次,用(yòng)SSL或TSL加密通(tōng)信平台加密其上數據。
3 錯誤配置的(de)數據庫
有太多(duō)的(de)數據庫都是被老舊(jiù)未補的(de)漏洞或默認賬戶配置參數出賣的(de)。個(gè)中原因可(kě)能是管理(lǐ)員(yuán)手頭工作太多(duō)忙不過來(lái),或者因爲業務關鍵系統實在承受不住停機檢查數據庫的(de)損失。無論原因爲何,結果就是這(zhè)麽令人(rén)唏噓。
解決辦法:在整個(gè)公司中樹立起數據庫安全是首要任務的(de)氛圍,讓數據庫管理(lǐ)員(yuán)有底氣去花時(shí)間恰當配置和(hé)修複數據庫。
4 SQL注入
SQL注入不僅僅是最常見的(de)數據庫漏洞,還(hái)是開放網頁應用(yòng)安全計劃(OWASP)應用(yòng)安全威脅列表上的(de)頭号威脅。該漏洞可(kě)使攻擊者将SQL查詢注入到數據庫中,達成讀取敏感數據、修改數據、執行管理(lǐ)操作乃至向操作系統發出指令等目的(de)。
解決辦法:開發過程中,對(duì)輸入變量進行SQL注入測試。開發完成後,用(yòng)防火牆保護好面向Web的(de)數據庫。
5 權限問題
涉及訪問權限,數據庫面臨兩大(dà)主要問題:
(1)員(yuán)工被賦予超出工作所需的(de)過多(duō)權限;
(2)合法權限被未授權或惡意使用(yòng)。
解決辦法:權限分(fēn)發時(shí)遵循最小權限原則,僅給員(yuán)工賦予完成工作所需最小權限。數據庫訪問也(yě)要受到嚴格監視,确保員(yuán)工權限僅用(yòng)于經授權的(de)操作。員(yuán)工離職時(shí)需立即撤銷分(fēn)發給他(tā)/她的(de)權限。
6 存檔數據
與上一條相關,無論出于報複還(hái)是利益,員(yuán)工通(tōng)過盜取數據庫備份獲得(de)大(dà)量個(gè)人(rén)資料的(de)事屢見不鮮。
解決辦法:加密存檔數據,嚴密監視存檔數據訪問和(hé)使用(yòng)情況,可(kě)以大(dà)幅減少内部人(rén)威脅。