當前位置:
首頁 > 新聞 > 七大維度談NoSQL資料庫安全風險

七大維度談NoSQL資料庫安全風險

NoSQL,泛指非關係型的資料庫。隨著近年數據規模的爆髮式增長,資料庫的發展也經歷了快速演變。為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題,NoSQL資料庫應運而生。

從2009年登上歷史舞台,NoSQL資料庫只用了8年時間,已經在主流資料庫中佔據3個席位。相較傳統的非關係型資料庫,NoSQL憑藉其讀取數據的高效性、易擴展性等優勢,在眾多細分領域應用中取得主導地位。例如電商行業:其業務屬於標準的多讀少寫、事物簡單,數據關係不複雜,這部分業務應用NoSQL會事半功倍。

NoSQL資料庫不像標準關係形資料庫有明確的定義,權威的規範,每種不同NoSQL適合的細分領域也多有不同,NoSQL從大類可以分成四類:

· 鍵值資料庫

· 文檔資料庫

· 列族資料庫

· 圖資料庫

仍以電商為例,該行業某些業務中使用的是鍵值資料庫和文檔資料庫,本文對NoSQL安全問題展開分析也將主要從這兩大類資料庫類型入手。

一、NoSQL安全問題綜述

NoSQL資料庫在設計之初,就是為大大提升用戶使用效率,所以並未做安全考慮。因此,NoSQL資料庫普遍存在大量安全問題。安全問題主要可以分為七大類,分別為:

· 身份認證

· 許可權控制

· 審計

· 通訊加密

· 數據加密

· NoSQL注入

· 自身安全漏洞

大約在2013年前後,一些開源項目被企業化,企業化後企業版在一定範圍內解決了一部分NoSQL資料庫的安全問題。但大部分解決方案是以犧牲性能為代價,並不具備優良的推廣性。大部分用戶使用最多的還是社區版,該版本存在很多嚴重的安全問題。

1)身份認證安全問題

·無密碼的身份認證安全問題

由於NoSQL中默認沒有用開啟戶身份認證機制,所以任何用戶都可以偽裝成合法用戶來訪問資料庫,並對資料庫中的數據進行各種操作。如2016年底至2017年初興起的一股針對NoSQL資料庫的勒索行動,就是利用無身份認證登陸上NoSQL資料庫實施敲詐勒索,這只是此安全隱患最簡單的利用方式。很多時候黑客會以NoSQL資料庫為跳板入侵NoSQL資料庫所在的伺服器,甚至整個網路環境。目前,最直接的解決方法就是給NoSQL加用戶名和密碼。

·有密碼的身份認證安全問題

NoSQL出於性能考量,默認不設置用戶名和密碼。要解決身份認證安全問題,一般採取兩種方法。一種是使用NoSQL資料庫自身支持的簡單身份驗證。通過客戶端獲取用戶名和密碼,然後和資料庫中對應的記錄進行比對,吻合則批准登錄。該方法在抗暴力破解和網路竊取上非常差,一旦用戶數量過多會引起性能的嚴重下降,所以部分NoSQL資料庫不支持多用戶登錄。

另一種解決方案是以Hbase為代表,引入成熟的身份認證機制Kerberos來完成身份認證工作。該方式較適合以計算為主業的NoSQL資料庫,對於要求執行效率和以大量查詢為主要的業務並不適合。隨著用戶數量增長,並發量不斷提高,KCD(密鑰奮發中心)很快會成為整個業務流程的瓶頸。

2)許可權控制

NoSQL資料庫不僅缺乏身份驗證,更缺乏對每個資料庫用戶的許可權控制。很多NoSQL資料庫,把自己當作「應用資料庫」去設計,完全不關心資料庫用戶之間的許可權區別,導致任意用戶都相當於ORACLE資料庫的sys用戶。這種許可權的混亂可能導致應用側、運維側兩個層面的三種安全風險:1、缺乏命令許可權控制;2、缺乏集合訪問許可權控制;3、缺乏集合內部數據訪問控制。

NoSQL中有兩類許可權,一類是調用腳本的許可權;另一類是對資料庫系統的許可權。Redis在這部分做得較差,任意用戶都可以調用這兩類許可權,導致資料庫面臨安全威脅。一些重視安全的NoSQL資料庫具備一定的訪問控制能力,但仍缺乏細粒度的訪問控制能力。

3)通訊加密

NoSQL資料庫不僅身份驗證是明文傳輸,後面的請求和結果集同樣也是明文傳輸。這會導致戶隱私數據、系統敏感信息在傳輸過程被竊取。解決通訊加密一般會提供一個附加的SSL安全層,但ssl安全層會拖慢整個業務的執行速度。後文會給出相應解決方案。

4)審計

NoSQL資料庫缺乏審計能力,部分NoSQL資料庫可以通過配置添加日誌監控來完成一部分審計功能。通過日誌的記錄來判斷整個流程中是否存在問題。這種日誌的記錄缺乏特徵的判斷和自動提示的功能。後面我們會用NoSQL審計產品完善審計功能的缺失。

5)數據加密

NoSQL資料庫缺乏對數據的存儲保護,所有數據均是明文形式存儲,超管可以不經過用戶允許直接查看、修改用戶在雲端保存的文件,很容易造成數據泄露。因此,需要常態保持加密,只允許具有固定身份的用戶拿到明文,這樣既保護了數據安全又強化了資料庫許可權控制。

6)NoSQL注入

雖然NoSQL資料庫不再支持sql語句,也就沒有了sql注入的威脅,但存在另外一種威脅——NoSQL注入威脅。NoSQL注入和其他注入類攻擊類似,能獲得資料庫中整個集合(表)的信息,甚至通過改變語義,獲得其他集合(表)中的敏感信息。目前已發現的SQL注入有重言式、聯合查詢、JavaScript注入、背負式查詢四種。

7)自身安全漏洞

除了上述由於設計理念和web導致的安全風險外,NoSQL資料庫本身也存在一些安全漏洞。主要集中在三方面:1、泄露敏感數據;2、越權操作;3、錄調用的函數存在緩衝區溢出漏洞,會導致服務宕機。解決方法有二:1、及時打補丁;通過漏洞防護技術進行防護。

二、NoSQL安全解決方案

NoSQL資料庫的設計目標是追求極致的效率和簡易擴展性,設計者假設NoSQL資料庫在一個絕對安全的環境下運行。現實中並沒有絕對安全的運行環境,因此不可避免的出現了很多安全問題。

文本旨在提出一種針對NoSQL資料庫全方位的安全解決方案。該解決方案主要由三部分構成。第一部分如上圖黃線所示,採用NoSQL漏掃產品,對NoSQL資料庫進行弱口令、CVE漏洞、未使用安全配置進行檢測,並生成報告提醒管理人員對NoSQL資料庫進行安全加固。通過配置可以解決一部分安全問題,但很多細節問題難以解決。

於是需要引入上文紅線所示的一套NoSQL防火牆+加解密代理。作為整套實時防護技術的核心,NoSQL防火牆通過截獲web端到數據的數據,對數據進行分析,獲取登錄信息後進行一系列身份驗證。在確定訪問用戶後,經過判斷許可權來決定放行與否。此外,NoSQL防火牆還是應對暴力破解的好手。如果單位時間內同一用戶錯誤登錄10次,則會對該用戶的登錄進行限時禁止行為,防止資料庫被暴力破解。基於NoSQL防火牆對NoSQL資料庫的語法解析能力,提煉出特定特徵可以有效阻止NoSQL注入和CVE漏洞攻擊,防止低許可權用戶越權操作。儘管NoSQL防火牆可以解決身份認證、細粒度訪問控制、暴力破解、NoSQL注入、CVE漏洞攻擊等問題,但欠缺對明文數據的保護。作為必要補充,部署加解密代理可以有效應對這個問題。數據通過加解密代理存入資料庫後成為密文形態。加解密代理和NoSQL防火牆聯動,保證只有具備訪問目標value值的用戶拿到的返回值才是明文,其他用戶即使獲取數據也是密文形態。

第三條綠線則是通過部署NoSQL審計產品對資料庫的行為、動態進行更深入細緻的追查。在事後為客戶追查問題,提供有力保障。

至此,一個完整的NoSQL資料庫安全環境搭建完畢。這個環境從事前、事中和事後三個層面,以縱向包裹整個NoSQL資料庫,保障資料庫的絕對安全。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

電信天翼客戶端攜帶病毒瘋狂「挖礦「多款軟體攜帶同樣病毒代碼
Apache James 伺服器反序列化漏洞分析和利用
對Android應用植入後門 實現msf控制
WordPress這次的更新有故事 站長們還請快快更新
差學生秒變三好學生?因為一款黑客工具他入獄了

TAG:嘶吼RoarTalk |