那些容易被黑產(chǎn)盯上的開(kāi)源數(shù)據(jù)庫(kù)軟件
近期全球范圍內(nèi)大量MongoDB因?yàn)榕渲貌划?dāng)導(dǎo)致公網(wǎng)匿名可訪(fǎng)問(wèn),被黑產(chǎn)大量利用,刪除業(yè)務(wù)數(shù)據(jù)并索要贖金后才恢復(fù)數(shù)據(jù),本文從攻防角度講述下那些容易被黑產(chǎn)盯上的開(kāi)源數(shù)據(jù)庫(kù)軟件。
動(dòng)機(jī)
只要攻擊成本低于收益,就有動(dòng)機(jī)?;ヂ?lián)網(wǎng)公司大量使用各種開(kāi)源的數(shù)據(jù)庫(kù)保存重要的業(yè)務(wù)數(shù)據(jù),一旦數(shù)據(jù)被銷(xiāo)毀且無(wú)法恢復(fù),會(huì)造成較大損失,這類(lèi)互聯(lián)網(wǎng)公司有相當(dāng)一部分安全防護(hù)薄弱,攻擊成本低,也有一定能力支付較小金融的贖金,于是這波人就成了黑產(chǎn)理想的攻擊目標(biāo)。
攻擊過(guò)程
這 類(lèi)攻擊往往非常簡(jiǎn)單粗暴但有效,以MongoDB為例。MongoDB默認(rèn)情況下不需要密碼認(rèn)證即可登錄,雖然默認(rèn)是監(jiān)聽(tīng)127.0.0.1,但是較多情 況下前端和MongoDB不在一臺(tái)服務(wù)器上,管理員會(huì)配置MongoDB監(jiān)聽(tīng)網(wǎng)絡(luò)連接,于是只要沒(méi)嚴(yán)格限制外網(wǎng)訪(fǎng)問(wèn),MongoDB就被無(wú)意之中對(duì)公網(wǎng)開(kāi) 放了訪(fǎng)問(wèn)權(quán)限了。黑產(chǎn)的攻擊過(guò)程很簡(jiǎn)單,簡(jiǎn)單描述如下:
可見(jiàn),被攻擊的要素有兩個(gè):
- 無(wú)認(rèn)證或者弱口令
- 公網(wǎng)可訪(fǎng)問(wèn)
潛在目標(biāo)
知道了攻擊原理后,推而廣之有類(lèi)似問(wèn)題的開(kāi)源數(shù)據(jù)庫(kù)其實(shí)很多,既有傳統(tǒng)的SQL數(shù)據(jù)庫(kù),也有流行的NOSQL,我們列舉下名氣比較大的幾個(gè):
MySQL
作為當(dāng)今最流行的開(kāi)放源碼數(shù)據(jù)庫(kù)之一,MySQL數(shù)據(jù)庫(kù)為用戶(hù)提供了一個(gè)相對(duì)簡(jiǎn)單的 解決方案,適用于廣泛的應(yīng)用程序部署,能夠降低用戶(hù)的TCO。情況稍好,基本管理員都會(huì)配置用戶(hù)認(rèn)證和訪(fǎng)問(wèn)來(lái)源限制。
PostgreSQL
PostgreSQL是一個(gè)功能齊全、開(kāi)放源碼的對(duì)象一關(guān)系性數(shù)據(jù)庫(kù)管理系統(tǒng) (ORDBMS)。目前,PostgreSQL的穩(wěn)定版本為8.4版,具有豐富的特性和商業(yè)級(jí)數(shù)據(jù)庫(kù)管理系統(tǒng)的特質(zhì)。情況稍好,基本管理員都會(huì)配置用戶(hù)認(rèn)證和訪(fǎng)問(wèn)來(lái)源限制。
MongoDB
MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。Mongo最大的特點(diǎn)是他支持的查詢(xún)語(yǔ)言非常強(qiáng)大,其 語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵?xún)語(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢(xún)的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。情況最差,默認(rèn)匿名訪(fǎng)問(wèn)。
Redis
redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)keyvalue存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了 Python,Ruby,Erlang,PHP客戶(hù)端,使用很方便。情況最差,默認(rèn)匿名訪(fǎng)問(wèn)。
Elasticsearch
ElasticSearch 是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶(hù)能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開(kāi)發(fā)的,并作為Apache許可條款下的開(kāi)放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。設(shè)計(jì)用于云計(jì)算 中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。情況最差,默認(rèn)匿名訪(fǎng)問(wèn)。
Solr
Solr 是一個(gè)獨(dú)立的企業(yè)級(jí)搜索應(yīng)用服務(wù)器,它對(duì)外提供類(lèi)似于Web-service的API接口。用戶(hù)可以通過(guò)http請(qǐng)求,向搜索引擎服務(wù)器提交一定格式的 XML文件,生成索引;也可以通過(guò)Http Get操作提出查找請(qǐng)求,并得到XML格式的返回結(jié)果。情況最差,默認(rèn)匿名訪(fǎng)問(wèn)。
友情建議
以上只是舉了常見(jiàn)的幾個(gè),作為甲方安全團(tuán)隊(duì),我建議:
- 數(shù)據(jù)庫(kù)軟件一定要開(kāi)啟認(rèn)證,使用強(qiáng)密碼
- 嚴(yán)格限制訪(fǎng)問(wèn)源,而且最好在防火墻上限制
- 修改默認(rèn)開(kāi)放端口