一則數(shù)據(jù)泄露案例教你做好安全基線的重要性
據(jù)澎湃新聞2月15日消息,2月13日,GDI基金會荷蘭安全研究員Victor Gevers在推特上爆料,中國某公司發(fā)生大規(guī)模數(shù)據(jù)泄露事件。Gevers表示,該公司所掌握的數(shù)百萬人的跟蹤數(shù)據(jù)可供任何人訪問,其中包含超過256萬人的個人信息,例如身份證號碼、身份證發(fā)行日期、性別、國家、住址、生日、照片、雇主和過去24小時內(nèi)的位置,大約有668萬條記錄。Gevers稱,該公司的數(shù)據(jù)庫從2018年7月開始就處于任何人都可以訪問的狀態(tài)。
經(jīng)仔細閱讀分析該案例后,發(fā)現(xiàn)常易被人忽視的日常安全運營之安全基線工作即能輕松預(yù)防和避免該類事件的發(fā)生,詳細分析如下:
一、案例成因分析
1. 背景信息
2. 數(shù)據(jù)泄露原因技術(shù)分析
從Gevers在推特上發(fā)的截圖和描述可以初步分析如下,該公司使用MongoDB數(shù)據(jù)庫存放人臉識別等個人敏感數(shù)據(jù),該數(shù)據(jù)庫實例服務(wù)使用MongnDB安裝缺省端口27017,該服務(wù)端口可由互聯(lián)網(wǎng)直接訪問,該數(shù)據(jù)庫未啟用身份認證機制,即允許任何人訪問。
事件產(chǎn)生原因:該公司對存放人臉識別敏感數(shù)據(jù)的MongoDB數(shù)據(jù)庫使用了出場安裝缺省配置,未進行日常安全運營中的安全基線工作,存在嚴重安全漏洞導(dǎo)致了此事件的發(fā)生。
二、安全運營之安全基線工作的預(yù)防能力介紹
在日常安全運營中的安全基線工作中,企業(yè)的安全團隊會針對公司使用的各種系統(tǒng)、軟件和數(shù)據(jù)庫開發(fā)和發(fā)布相應(yīng)的安全基線標準,在系統(tǒng)上線前進行部署和合規(guī)性檢查,經(jīng)檢查只有在與公司的安全基線標準符合的前提下才允許上線,這樣就可以避免由于各種系統(tǒng)、軟件和數(shù)據(jù)庫由于使用廠家出廠不安全缺省配置導(dǎo)致的安全漏洞問題,有效地降低和控制安全風險。
下面針對該案例摘錄部分MangoDB安全基線內(nèi)容如下:
1. 端到端安全架構(gòu)設(shè)計
MongoDB端到端安全架構(gòu)設(shè)計如下圖所示,從人員、過程和產(chǎn)品(技術(shù))三個維度進行縱深安全體系防護,分別通過訪問控制、加密和審計來實施。
網(wǎng)絡(luò)安全架構(gòu)部署參照下圖,通過兩層防火墻將WEB/應(yīng)用服務(wù)器和MongoDB數(shù)據(jù)庫服務(wù)器分別隔離在不同的兩個DMZ類進行網(wǎng)絡(luò)區(qū)域隔離和分層網(wǎng)絡(luò)訪問控制,數(shù)據(jù)庫服務(wù)器通過防火墻訪問規(guī)則控制只能由DMZ1區(qū)域內(nèi)的應(yīng)用服務(wù)器訪問,避免了將其直接暴露給互聯(lián)網(wǎng)的安全風險問題。
2. 啟用MongoDB數(shù)據(jù)庫身份認證功能
身份認證功能狀態(tài)檢查:
- cat /etc/mongod.conf | grep “Auth=”
如果身份認證功能已啟用,則Auth的設(shè)置值為“True”。
激活身份認證功能步驟:
(1)啟動未激活身份認證功能的MongoDB數(shù)據(jù)庫實例;
- mongod --port 27017--dbpath /data/db1
(2)創(chuàng)建數(shù)據(jù)庫系統(tǒng)管理員用戶,并確保設(shè)置的口令符合組織口令策略的要求;
- use admin db.createUser(
- {
- user: "siteUserAdmin", pwd:"password",
- roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
- }
- )
(3)重啟已激活身份認證功能的MongoDB數(shù)據(jù)庫實例。
- mongod --auth--config /etc/mongod.conf
3. 確保MongoDB數(shù)據(jù)庫實例只在授權(quán)的接口上偵聽網(wǎng)絡(luò)連接
當前數(shù)據(jù)庫實例網(wǎng)絡(luò)偵聽狀態(tài)檢查:
檢查MongoDB配置文件;
- cat /etc/mongod.conf |grep –A12“net”| grep “bindIp“
檢查相關(guān)網(wǎng)絡(luò)訪問控制設(shè)置;
- iptables –L
配置數(shù)據(jù)庫實例偵聽在指定網(wǎng)絡(luò)接口并用防火墻規(guī)則進行嚴格訪問控制,應(yīng)只允許DMZ區(qū)域里的應(yīng)用服務(wù)器連接,下面以主機防火墻iptables示例配置如下。
- iptables -A INPUT -s <ip-address> -p tcp--destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
- iptables -A OUTPUT -d <ip-address> -p tcp--source-port 27017 -m state --state ESTABLISHED -j ACCEPT
如上對比分析可以看出,如果企業(yè)在日常安全運營中,認真嚴格地按照MongoDB數(shù)據(jù)庫安全基線標準執(zhí)行的話,就能夠有效地預(yù)防和避免類似大數(shù)據(jù)泄露案例的發(fā)生。
Reference:
https://github.com/cn-quantumsec/Diaoyu-Castle-Sec-Benchmark-Project