梁櫻花



摘要:在當前社會背景下,計算機數據庫是非常關鍵的,自斯諾登事件發生后,對數據庫的安全防護成了一項非常重要的工作,現在是,未來同樣也是。在數據庫的安全防護中,入侵檢測技術是非常關鍵的一環,但現在的入侵檢測技術存在一定的短板,在反入侵上存在不足,有很多入侵手段可以繞過入侵檢測并且利用數據庫的漏洞來實現非法目標。因此該文針對性地從攻擊的角度探討了數據的入侵檢測技術,以供參考。
關鍵詞:數據庫;入侵檢測;反入侵
中圖分類號:TP311 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)14-0221-03
? ? 數據庫安全問題是非常關鍵的一個問題,在數據庫安全建設當中,核心的數據一定會被放在層層保護之下,并且在外部加載防火墻、堡壘機、入侵檢測等等,但是要說防護能力方面,依然是防不勝防。所謂魔高一尺道高一丈,再好的防護技術,也是存在一些疏漏的,在安全防護與攻擊的對壘當中,事前的防是必要的,但防不一定能夠完全防住,所以入侵檢測就非常關鍵了,雖然不一定能快速定位入侵,但是在安全防護中提供了反入侵的可能與時間。因此探討數據庫的入侵檢測技術具有非常顯著的現實意義。
1 入侵檢測技術
入侵檢測(IDS)是一種主動保護自己免受入侵的一種安全防護技術,是對防火墻的重要補充。[2]
入侵檢測的主要原理是掃描當前的網絡活動,監視以及記錄網絡的流量,然后根據定義好的規則來過濾主機網卡與網絡之間的流量并提供實時的報警。具體來說入侵檢測包含兩個方面的主要內容,即感知和數據分析,其中感知方面具備網絡數據采集,主機信息采集以及應用服務記錄。數據分析方面則是提供數據格式化、入侵檢測規則以及全局數據挖掘。它是配置在網絡防火墻之后的,與防火墻和路由器配合工作。[1]
一般而言,入侵檢測可以分為HIDS和NIDS兩種。HIDS的檢測數據來源主要是系統日志、應用程序日志等等,當然也可以通過如監督系統調用等手段來收集主機的信息數據來分析。NIDS的檢測數據主要來自網絡上的數據分組,具體而言主機的網卡一般會設置為Promisc Mode,然后監聽網段上的所有數據分組,并且進行按照預先設定的規則來進行數據分析判斷。
在IDS的配置上,一般可認為NIDS是前置的入侵檢測,因為入侵都是通過網絡來進行的,當數據庫所在網段遭遇入侵,數據分析規則判斷入侵的數據分組來提供報警信號,同時在防火墻的配合下來延長入侵數據與數據庫連接的時間,進而提供一個能夠反入侵的可能。而HIDS一般就是后置的入侵檢測,按上文的分析HIDS檢測是數據庫主機的系統日志、應用程序日志等,在正常的情況下系統日志、應用程序日志一般是沒有異常的,而當遭遇了入侵,可能會出現用戶密碼修改、應用程序異常運行等等記錄,在這種情況下HIDS實際就是一種后追蹤技術。
看似IDS非常的美好,但實際上依然防不勝防,主要在于IDS本身存在一些比較大的局限性,來自網絡的入侵只要找到了數據庫的漏洞就可以針對IDS的局限來繞過IDS的檢測,現在的網絡都比較復雜,如果Hacker精心的將發包偽裝起來,在一定程度上可以繞過NIDS的檢測,比方說通過SSH服務來進行數據包加密,現在有一個方法是Fabric使用流行的Paramiko Python庫來管理SSH連接,通過Python腳本建立對外端SSH加密隧道連接,并在服務器上形成如圖所示連接。
當然建立了連接,在系統當中必定會留下痕跡,因為Hacker入侵成功第一時間會保持連接,而這個就會留下一定的痕跡并且被檢測出來,比如上文提供的入侵案例中,就利用態勢感知產品的C&C外聯檢測模塊發現了對外可疑連接,如圖。
這個連接存在可疑情況,但不能確定就是異常的連接,要證明這個連接異常需要登錄服務器查看簡歷的連接,此時要注意主機在感染之前是否有配置安全系統,如果沒有,檢測手段可能會失去效用,此時就需要基于網絡層面進行檢測。C&C外聯時要產生連接一般只需要上傳數據即可,所以直接登錄服務器查看具體的對外連接,看這個IP地址的具體情報,結果發現該IP地址位于法國大東部大區斯特拉斯堡,帶僵尸網絡、垃圾郵件標簽。
所以基于上述的簡單分析,入侵檢測本身具有一定的檢測局限,其作為防火墻的延伸必須要圍繞防火墻,構建一個動態的、縱深的、多樣化的入侵檢測體系,以此來盡可能地識別入侵。[3]
2 數據庫入侵檢測技術思考
2.1 入侵檢測技術應用需要注意的問題
一般情況下,建設了IDS后,當出現非法入侵時,系統會提示有人掃描主機,這個階段入侵者正在收集信息,此時如果系統管理員迅速地采取措施可以有效地將入侵扼殺在搖籃之中,但是現在的安全防范還算是健全的,但依然會被攻擊。這個就是需要注意的關鍵問題。可能的原因包括如下幾個方面。
其一,管理員能力有限。
其二,IDS雖然能夠進行自動化作業,發現了入侵也能夠做出響應,但是IDS僅僅提供告警,要攔住攻擊要靠防火墻,而如果攻擊強,能不能將其防住就需要管理員經常去查看IDS告警信息,并且采取必要的入侵分析手段來發現攻擊行為并采取措施來防范,同時形成經驗來優化IDS的部署。
其三,IDS因為本身存在缺陷,可能有漏報或者誤報,是很難查到哪里存在入侵者的,當網絡結構發生變化時,是最容易出現入侵問題的,此時用戶應該適時的更新知識庫當中的規則。同時有些用戶對IDS的期望過高,IDS本身只承擔檢測入侵任務并對入侵做出響應的任務,如果用戶想要通過IDS來阻擋Hacker入侵那是不現實的,也不是IDS的功能,實際上IDS只是一項安全管理工具,系統要安全,關鍵還是得看人。
所以要認識到未知攻,焉知防,入侵與反入侵關鍵就是知己知彼,要在攻防的博弈中不斷提高,入侵檢測技術的應用也是在攻防當中不斷進步的。
2.2 入侵與反入侵分析
現在市場上份額最大的是Oracle數據庫如圖。
這類數據庫遭遇入侵的主要形式在于SQL注入,而SQL注入一般有兩種操作方式,即越權操作和提權操作,其中提權操作是越權操作當中的一個子類。[4]
在Oracle數據當中SQL注入漏洞是廣泛存在于PL/SQL編寫的函數、存儲過程、數據包、觸發器當中的,其根本原因是PL/SQL定義了勸和及調用者權限。前者為低權限用戶在特定情況下擁有高權限的可能,這樣就可疑在入侵當中實施提權操作。而后者則給入侵者提供了創建SQL并被高權限執行的可能。
在具體的入侵手段當中可以采用GRANT DNA TO USER命令,這個命令就是為USER創建一個DBA權限,用來提權。而越權操作當中典型的命令是select password from sys.user$where name=SYS,這個命令的主要目的是查詢DBA權限的密碼哈希散列,當獲取了哈希散列后就可以利用軟件離線破解對應的密碼。
利用SQL注入入侵數據庫,大體上可以獲得如下數據庫賬號,包括較高數據權限賬號、賬號具備創建函數或存儲過程的權限以及只有連接權限。
在這種情況下入侵者提權可以分為三個步驟,第一個階段是入侵者要對數據庫中的DBA進行篩選,因為數據庫中并不是只有一個DBA,然后確定哪些視圖或者表能夠獲得Insert.update或者是delete。第二個階段就是入侵者圍繞確定的視圖或者表來構造一個調用者權限并且實現提權語句的存儲過程。然后在第三個階段針對DBA用戶創建觸發器,觸發第二階段中實現的存儲過程,并執行。這三過程是入侵者的基本流程,當其擁有一個create any view權限的賬號時,也能夠很容易提升到DBA,具體就是入侵者用數據庫管理員的模式創建一個視圖,然后一個具有高權限的用戶訪問這個視圖就能夠達到提權的目的。
當然要實現對Oracle數據庫的入侵,一般就確定了數據庫的漏洞被入侵者發現了,而通常數據庫中最容易被發現的漏洞包括存在//連接符號的連接函數、函數當中存在OUT參數、函數中含有復雜的數據類型等,在入侵防護當中針對這樣的問題函數進行調整是非常關鍵的。同時要求DBA限制住賬號權限,因為越簡單的權限越容易被入侵,反過來說就是當入侵者拿到一個低的權限去提升DBA難度會成倍增加,也就是說可以利用這種特性來限制攻擊,具體可參考下表。
進一步要求刪除數據庫不必要的服務,比如JAVA服務,在數據庫張有DBMS_JVM_EXP_PERMS、DBMS_JAVA以及DBMS_JAVA_TEST等直接授權給了Public,這種情況下,任意用戶都能夠執行JAVA程序,但必須要用到JAVA時,SSH則是一個比較關鍵的東西,但是SSH服務可以繞過IDS來實現入侵,則就只能靠人工入侵分析來應對了。
2.3 數據庫入侵檢測技術反思
在Oracle數據庫中對入侵的檢測主要靠數據庫審計和防火墻,即AVDF,可以通過高精度的基于SQL語言來實現監視未被授權的SQL流量。其入侵檢測的關鍵在于數據庫審計,而審計的核心就是分析腳本以及大數據自動化處理技術。在入侵和反入侵當中入侵檢測與系統的響應關鍵就在于與分析腳本或者大數據挖掘分析。從這個角度來講,數據路的入侵檢測重點要進行入侵分析,在入侵檢測技術當中分析也是最為核心的部分。當發生入侵時,數據庫審計可以提供一個關鍵的告警,而如果不予理會那么入侵就成為現實了。正如上文所言要注意的是必須要在系統告警時快速去分析入侵的情況,這其中分析腳本或者大數據是現在主流的模式,當然也有人工分析的,而這個對管理員的經驗要求非常高。所有的入侵檢測結論要存儲在ES的索引當中,用來做SOC工具分析處理,也可以作為學習數據保存下來。
入侵檢測是必要的,但是關鍵還是要有完善的預警、檢測以及必要的防御措施,要有明確科學的安全應急響應機制。因為入侵檢測的目的是要阻止入侵的行為,對已經造成實質的入侵進行相應的恢復,進而形成整體的安全策略調整。入侵檢測在一定程度上具有阻斷入侵的功能,但是在強大的攻擊面前幾乎可以忽略不計,最關鍵的阻斷入侵的功能是由防火墻提供的,這要求入侵檢測系統和防火墻要形成動態的防御體系,當入侵檢測系統發現異常數據的上傳下載,那么向防火墻發送動態的安全策略,防火墻根據這個策略來產生一個對應的訪問控制規則,由此來阻斷入侵,防止出現連續的入侵。
3 結束語
綜上所述,數據庫本身具有很多安全漏洞,這些安全漏洞的存在讓數據庫很容易被入侵,而實際防護當中數據庫自身的安全防護能力取決于數據庫審計和防火墻的能力。其中還有非常重要的技術就是入侵檢測,但實際現在的入侵檢測也存在非常大的局限性,有很多入侵手段很難識別出來,事前防護控制還需要進一步強化,隨著大數據乃至人工智能在入侵檢測上的應用,在一定程度上可以保證快速的識別定位入侵。本文對此展開了分析,借此與業內人士共同探討,提高反入侵的能力水平。
參考文獻:
[1] 王鑫.計算機數據庫安全防范技術探討[J].網絡空間安全,2016,7(06):73-74+77.
[2] 鄭義.多層分布式大型差異數據庫優化入侵檢測仿真[J].計算機仿真,2013,30(11):400-403.
[3] 楊益平,閔嘯.計算機網絡數據庫安全技術的優化[J].電子技術與軟件工程,2018(13):199-200.
[4] 萬海航.計算機數據庫的構建與管理維護對策[J].信息化建設,2016(01):94.
【通聯編輯:朱寶貴】