資料庫安全小議

pxbibm發表於2016-10-19

資料庫安全小議

資料庫安全目前是安全從業者討論的重要主題之一。隨著越來越多的突發事件發生,是時候採取一些行動了。

安全的資料庫應當為成員的訪問提供了有效控制與保護,同時還能保障所有的資料質量。我們必須充分了解資料庫安全的相關挑戰並努力提供一個解決方案。針對資料庫的威脅取決於很多因素,例如網際網路安全、物理安全、加密、身份驗證等等。由於所處組織的不同,資料的敏感度也大不相同。資料庫中可能是客戶資料、財務記錄以及許多其他型別的具有價值的資訊。

因此保護這些資料免受內部或者外部的攻擊,都至關重要。進行定期稽核來檢查資料庫中存在的缺陷和漏洞是非常必要的,由於在程式設計時忽略了安全因素,或因沒有及時更新、使用過期版本的應用程式而出現一些缺陷。瞭解資料庫的結構,並在初始階段就識別出潛在的威脅是非常重要的。

在我們保護資料庫時應當考慮如下三個要點:

● 保護資料免受未經授權的訪問;

● 防止未經授權的洩露;

● 修復硬體或軟體的錯誤。

因此,與資料庫安全相關的任何情況,都需要考慮到控制訪問許可權、應用程式訪問、漏洞管理以及審計。由於幾乎所有資料庫都與網際網路相連,我們需要明白其結構的複雜性。

下圖中顯示了一個資料庫通常的使用情況:

資料庫安全小議

圖1:資料庫環境

身份驗證

訪問資料庫的第一步是在身份驗證過程完成後進行資料庫伺服器登入。如果身份驗證過程的配置不正確,攻擊者便更容易獲取對資料庫的訪問許可權。如果資料庫包含高優級資料,那應該採取多層身份驗證,以達到最高的安全保護級別。即便採用的使用者名稱或密碼驗證比較普通,我們必須確保關鍵字是高強度的。以下是增加密碼強度的幾條建議:

● 密碼中採用的字元應當介於8-20個之間;

● 它不應當與你的使用者名稱、電子郵件地址、伺服器名稱或者電話號碼有關。這些密碼都很容易被猜到;

● 應當避免多賬戶採用相同的密碼;

● 混合數字、字母和符號將增加密碼強度。

這裡有許多用於檢測密碼強度的應用,使用其中的一個軟體,便可確保最大強度的密碼。

訪問控制

保護資料的最佳方式便是限制其訪問。我們應當對每個使用者訪問資料的使用者進行授權和身份驗證。通常的做法是將使用者名稱和密碼分配到每個登入資料庫的使用者。同時,對於不同使用者應當根據敏感資料的分類要求,進行不同許可權設定。讓我們透過具體的例項來進行解釋,例如一個大學的資料庫。學生應當被授予登入他們各自賬戶資料庫的許可權,以及資料庫中相關內容的讀取許可權。教師以及其他工作人員則需要擁有資料庫的錄入許可權。這是保護資料庫的基本步驟。即使攻擊者設法使用學生賬戶登入,所具有的許可權也是有限的。在這個過程中,識別每個使用者並且分配他們對應資料的訪問許可權,至關重要。訪問控制主要可以實現於以下四個級別:

● 自主訪問控制(DAC):在這個層次上,基於一些預設的權衡性政策,根據使用者身份及特權授予其訪問許可權。透過這一方法,使用者可以授權其他使用者訪問該資料,處於這一特性,這也被用於大多數企業。使用者能夠在存在需求時,對許可權進行新增或刪減。

● 基於內容的訪問控制:在這裡許可權的授予與否是基於內容而定的。在一個組織中,同一時間可能執行多個專案,因此使用者需要訪問的資料只需是和專案有關的。

● 細粒度訪問控制:可設定不同級別的訪問控制。例如,我們能夠在Oracle虛擬資料庫中看到這些內容。

● 強制訪問控制(MAC):這是個基於使用者和資料物件分類的模型。分類基於不同等級,被稱為訪問類。一個訪問類包含多層安全水平,可以用於給不同類適當的讀寫許可權。

應用程式訪問

使用者總是將記錄檔案同放在資料庫放在一個目錄,並且透過某個軟體或者應用程式來管理資料庫,透過分析這些應用的構造框架,我們可以逐一擊破並修復其中的毛病。這個工具是用來進行身份認證以及許可權獲取的,這個應用框架同樣也提供一個資料視覺化管理的功能,應用中,將顯示各資料庫、類之間的關聯關係,並提供出關於當前資料詳細的提示。而對於一個程式來說,最大的問題在於確定軟體框架定義的許可權授予是否真的是按提交過來的使用者身份而對應分配的。

資料庫威脅

研究發現,資料庫是最易遭到破壞的資產。資料庫是所有組織的心臟,因此保護資料庫安全至關重要。當攻擊者得到了訪問資料庫的許可權時,他們便會想方設法進行破壞、曝光,足以擾亂整個組織的運作。下面將列舉出在很長一個階段內,存在的影響資料庫安全的一些威脅:

● 過度和未使用的特權:使用者總是獲得超出他們需求的特權。這些超出的特權落入“特殊使用者”手中往往會導致各種問題。如果這個人居心叵測,他便可以利用這些特權竊取敏感資料。而這之所以會發生,是不恰當的許可權控制機制所造成的。

● 濫用特權:有時使用者會在一些未經授權的活動中“錯用”自己的許可權。此事在很多情況下都會發生。因此,不建議他們在未經授權的活動中使用許可權。

● SQL隱碼攻擊:透過向Web應用程式中插入惡意語句發動攻擊。攻擊者便有機會獲得整個資料庫的訪問許可權。

● 惡意軟體:攻擊者使用駭客技術,將釣魚郵件將惡意軟體傳送到使用者郵箱。使用者在不知情的情況下,點選郵件連結從而被控制。攻擊者利用這個使用者,便可透過各種路徑進入資料庫。

● 糟糕的審計記錄:自動化系統記錄應當是每個資料庫的一部分。如果沒有進行適當的記錄,便可能導致各種問題。大多數公司都會進行系統審計,這一般是由資料庫廠商提供的。而這種軟體通常無法滿足每個公司的需求。

● 儲存媒體曝光:人們花費了很多努力保護活躍物件。他們有時會忘記安全備份,儘管這與保護系統同樣重要。一個攻擊者可以輕鬆進入未加密備份,然後對公司進行入侵。因此,保護備份資料檔案也非常重要,請保持對高優先順序使用者的持續關注。

● 拒絕服務(DOS):這是一個很常見的攻擊型別,攻擊者對網路裝置或資料造成拒絕訪問。在資料庫中,DOS通常由大量請求、佔用大量資源從而伺服器過載。這使得伺服器沒有響應,最終導致資料庫淪陷。DOS是一個嚴重的危害,應當被重視。任何一個系統都會受此影響。

資料庫審計

在定期監控的幫助之下,針對資料庫的攻擊可以降到最小。審計可以幫助我們發現現存架構中的漏洞和缺陷,然後找到一個適合的解決方案來修復它們。資料庫審計包含以下不同層次:

● 訪問及身份驗證審計:這裡包括了登入使用者使用的資料庫。它記錄了使用者訪問資料庫的時間、內容以及途徑。

● 使用者與管理員審計:針對使用者和管理員執行的活動進行分析和報告。

● 安全活動監控:這裡對全部活動列表進行了跟蹤,並將資料庫中任何未授權或者可疑的活動進行報告。

● 漏洞與威脅審計:漏洞普遍存在於所有系統中。我們的職責便是及時地發現並修復它們。在這個審計步驟中,漏洞會被發現並修復。同時,想要利用這些漏洞的“使用者”也會被發現。

● 審計中的變化:首先,為審計過程建立一個基礎結構。然後審計政策會根據需求而進行變化,由此可以避免出現任何含糊不清的地方。

如何進行資料庫審計?

● 明確資料:這並不像聽起來那麼簡單。確定那些真正需要保護的資料是非常重要的。資料庫可能包含了各型別、優先順序不同的資料。對這些型別的資料進行分類,會使審計過程變得非常輕鬆。

● 利用在建功能的基礎審計:現在每個資料庫伺服器都有預設審計功能。第一件事是執行這些運用於審計的工具。他們的登入觸發功能在許多伺服器中都是預設開啟的,這樣有助於我們對登入的詳細資訊進行控制與監視。使用這些工具,我們無法自定義地進行審計工作,特別是一些複雜的工作。對於這種情況,可以使用第三方審計軟體來開展工作。

● 使用第三方的審計軟體和網路裝置:這些審計工具可以為滿足使用者需求進行特殊定製。因為它們具有超多功能,為創造最大輸出而進行了深度挖掘。這些裝置可用於提供保護的同時還能監控伺服器。而它們的主要優勢是,伺服器效能不會受到影響,因為這些工具都是單獨安裝於伺服器的。

資料加密

加密是應當被給予更多關注的領域之一。資料加密對保護資料庫而言非常重要。而在實際情況中情,我們需要處理兩種型別的資料。第一種是對靜態資料進行加密,另一種則是透過強驗證轉化的資料。對於靜態資料而言,多種加密演算法並不能輕易被未授權的使用者破解。不同的演算法取決於各自的加密技術。一些用於伺服器是演算法包括DES、Triple DES、DESX、128位AES、192位AES等等。這些演算法根據各自的特點被用於適合的位置。無論如何,完美的演算法是並不存在的。用於傳輸資料的安全shell流量應當獲得保護。通常資料使用明文在網路中傳遞,這種型別的資料很容易在嗅探器的“幫助下”被獲取。為了避免這樣的情況,資料應該透過SSH加密通道。

保護一個資料庫

對資料庫的保護是一個永無休止的過程。

● 第一步,也是最為重要的一步就是對資料庫進行分析和安全防護。

● 接著,根據需求對系統或者資料進行分類。一個資料庫通常含有不同優先順序的資料型別,應當在正式執行前進行恰當的分類。

● 對資料庫進行掃描以發現漏洞、錯誤配置以及其中發生的變更。此舉將為保護資料庫安全提供一個策略。

● 下一步則需基於上一步驟的資訊,掃描發現的漏洞應當進行及時的修復。

● 為漏洞找到合適的修復方式,然後對所有現有系統進行補丁。

● 審計應當在漏洞修復之後進行。這一步中如果發現任何異常,都會及時反映。重複整個迴圈週期可以最大程度上地保障資料庫的安全。

資料庫安全小議

圖2:資料庫安全迴圈

監控與封鎖

● 實時預警和封鎖:應當對包括登入、訪問登出等在內的資料庫活動進行監控,以阻止資料洩露以及未經授權的訪問。伺服器內這樣的活動一旦被檢測到,應該會產生提示和警告。如果再次出現,使用者則應當封鎖通向資料庫的訪問。資料庫流量應當被持續監控以便識別異常活動,例如可能導致DOS攻擊等問題。

● 檢測異常訪問活動:每個使用者配置檔案都應當被完全監控。任何越級訪問資料庫的嘗試都應當出發一個警告,或被直接封鎖。這樣或許有助於保護我們免受注入、惡意軟體等攻擊活動。

● 過濾Web請求:為了避免注入攻擊,封鎖所有惡意Web請求至關重要。同時,一個Web應用程式防火線應當同時被用於檢查Web應用程式中的請求。針對請求中的所有HTTP引數都要進行檢查。請求中出現中括號或者特殊字元都可能是攻擊活動的跡象。

● 本地資料庫監控:系統管理員這樣的使用者常常擁有最高許可權,因此必須對其進行密切監控。一旦他們被網路釣魚攻擊,威脅可能波及整個資料庫。

● 響應時間:DOS攻擊導致伺服器超載,造成了無法響應請求和查詢語句。響應時間監控應當可以檢查響應延遲以及其他因子,由於延遲會降低整個伺服器效能,因此任何與之相關的線索都必須被仔細觀察。

● 實現連線控制:伺服器上的負載應當透過限制連線速率、查詢速度等等手段,加以控制。

結論

保護資料安全的需求日益增加。這便是資訊時代的失敗與偉大。資料庫已經成為了全世界攻擊者的目標。所有的組織、機構都將資料庫安全作為規劃的一部分,也越來越清楚地認識到資料庫安全的重要性。市場中已經存在很多符合我們安全需求的產品。我們則必須對它們進行分析再選擇適合我們環境的。忽視這一點則可能導致整個組織的淪陷,因此公司必須建立包括資料庫安全在內的、堅實的安全策略。

保護資料庫安全不是一項簡單的任務,也並不能在短短几小時內解決的問題。這需要持續地規劃和投入,最為重要的是,保護措施應當在一定的時間段內反覆進行才能獲得最大效率。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-2126729/,如需轉載,請註明出處,否則將追究法律責任。

相關文章