• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于反向代理的數(shù)據(jù)庫防火墻研究與應(yīng)用

    2021-05-06 02:14:46王忠花張文飛朱先清
    青海電力 2021年1期
    關(guān)鍵詞:代理服務(wù)器客戶機(jī)安全策略

    王忠花,張文飛,朱先清,李 暉

    (國網(wǎng)青海省電力公司信息通信公司,青海 西寧 810008)

    0 研究背景

    隨著互聯(lián)網(wǎng)思維的普及,企業(yè)越來越多的業(yè)務(wù)從以前的“face to face”面對面服務(wù)轉(zhuǎn)變?yōu)椤皁n line”在線化服務(wù),越來越多的敏感數(shù)據(jù)保存在數(shù)據(jù)庫中,在線信息化系統(tǒng)給客戶提供了快捷便利的業(yè)務(wù)辦理方式,大大提高了業(yè)務(wù)的辦理效率,同時巨大的業(yè)務(wù)量也給數(shù)據(jù)的安全性帶來了嚴(yán)峻的考驗,近幾年數(shù)據(jù)安全事件時有發(fā)生,并且涉及到了各個行業(yè)。自Codd在上世紀(jì)七十年代提出關(guān)系型數(shù)據(jù)模型,后來的學(xué)者們已經(jīng)陸續(xù)提出了幾種數(shù)據(jù)庫安全機(jī)制,例如安全語義、訪問控制以及數(shù)據(jù)加密等〔1〕。數(shù)據(jù)庫幾乎是所有數(shù)據(jù)泄露和網(wǎng)絡(luò)攻擊的源頭,如非法訪問數(shù)據(jù)庫、刪除或修改數(shù)據(jù)庫數(shù)據(jù)及缺乏審計等。因此,實現(xiàn)數(shù)據(jù)的完整性、保密性和有效性,對數(shù)據(jù)庫系統(tǒng)安全進(jìn)行有效保護(hù)是行業(yè)的主要研究工作〔2〕。

    數(shù)據(jù)庫由于自身復(fù)雜性以及服務(wù)范圍不斷擴(kuò)大,致使數(shù)據(jù)庫運(yùn)維安全成為一個重要課題〔3〕。數(shù)據(jù)庫管理員在數(shù)據(jù)庫運(yùn)維中主要面臨以下的問題和難點:

    1)數(shù)據(jù)庫實例數(shù)量多,運(yùn)維涉及廣泛的技術(shù),需要專業(yè)性很強(qiáng)的運(yùn)營和維護(hù)?,F(xiàn)有運(yùn)營支撐人員數(shù)量不足、素質(zhì)各異,難免出現(xiàn)非法或者過失操作,因工作失誤導(dǎo)致的數(shù)據(jù)庫關(guān)鍵數(shù)據(jù)被誤刪除時有發(fā)生,且內(nèi)部人員的攻擊難以進(jìn)行防范〔4〕,這些現(xiàn)實因素給日常運(yùn)維帶來極大的挑戰(zhàn)。

    2)現(xiàn)有數(shù)據(jù)庫防護(hù)體系只能記錄用戶操作日志,無法實時攔截危險操作,使安全防護(hù)成為事后追責(zé)的“記錄儀”,在高危操作發(fā)生時無法有效阻止,即使完整記錄了全部的危險操作過程,仍然可能會給數(shù)據(jù)庫帶來無法挽回的損失。

    3)數(shù)據(jù)庫實例較多,每個業(yè)務(wù)系統(tǒng)對數(shù)據(jù)安全的訴求不同,但現(xiàn)有的安全防護(hù)體系只能提供一刀切的防護(hù)策略,無法提供個性化的安全策略,給運(yùn)維工作帶來較大的負(fù)擔(dān)。

    本論文圍繞上述問題,在綜合分析數(shù)據(jù)庫相關(guān)的安全機(jī)制、安全防護(hù)理論、安全檢測技術(shù)基礎(chǔ)上,針對性地研究基于反向代理的數(shù)據(jù)庫防火墻實現(xiàn)技術(shù)。

    1 數(shù)據(jù)庫防火墻架構(gòu)

    數(shù)據(jù)庫防火墻本質(zhì)上是一種反向代理服務(wù)器,客戶機(jī)連接到數(shù)據(jù)庫防火墻,像正常連接到真實數(shù)據(jù)庫一樣發(fā)送查詢,數(shù)據(jù)庫防火墻分析待轉(zhuǎn)發(fā)的SQL查詢,如果認(rèn)為是合法的SQL查詢,則將SQL查詢請求轉(zhuǎn)發(fā)至真實的數(shù)據(jù)庫服務(wù)器;反之,如果認(rèn)為是非法的SQL查詢,則拒絕轉(zhuǎn)發(fā)并構(gòu)造一個拒絕包發(fā)送給客戶機(jī)。數(shù)據(jù)庫防火墻采用SQL語句分析,在預(yù)先確定的安全策略基礎(chǔ)上阻止SQL的非法操作,從而能夠?qū)Ψ欠⊿QL操作進(jìn)行主動防御和即時審查。

    如圖1所示,數(shù)據(jù)庫防火墻從技術(shù)架構(gòu)上劃分為反向代理、Oracle TNS包或MySQL數(shù)據(jù)連接包解析、SQL語法分析、策略匹配等技術(shù)。下文將從這幾個方面進(jìn)行深入研究,并開發(fā)實現(xiàn)數(shù)據(jù)庫防火墻系統(tǒng)。因MySQL〔5〕為開源軟件,其協(xié)議解析相關(guān)的內(nèi)容前人已做出過詳細(xì)研究〔6〕,本文不再贅述。協(xié)議解析方面著重介紹TNS協(xié)議解析的內(nèi)容。

    2 關(guān)鍵技術(shù)研究

    數(shù)據(jù)庫防火墻系統(tǒng)涉及了反向代理、TNS協(xié)議解析、SQL語法樹等技術(shù),實現(xiàn)了個性化的防護(hù)。安全策略共涉及19種對象類型、8種操作類型,同時支持Oracle數(shù)據(jù)庫和MySQL數(shù)據(jù)庫。

    2.1 反向代理技術(shù)

    普通代理服務(wù)器僅適用于代表內(nèi)聯(lián)網(wǎng)上的互聯(lián)網(wǎng)連接請求,客戶機(jī)的代理服務(wù)器必須指定,客戶機(jī)將原本要發(fā)到數(shù)據(jù)庫服務(wù)器的請求發(fā)到代理服務(wù)器上,再由其進(jìn)行轉(zhuǎn)發(fā)。

    如圖2所示,當(dāng)客戶機(jī)需要對數(shù)據(jù)庫服務(wù)器訪問時,與目標(biāo)數(shù)據(jù)庫沒有直接連接,而是連接反向代理服務(wù)器,此時對于客戶機(jī)而言,反向代理服務(wù)器可以被看做是數(shù)據(jù)庫服務(wù)器;而反向代理服務(wù)器接收到客戶機(jī)請求連接后,會去連接真實的數(shù)據(jù)庫服務(wù)器,對于數(shù)據(jù)庫服務(wù)器而言,反向代理服務(wù)器可以被看做是客戶機(jī),響應(yīng)數(shù)據(jù)也會按照同樣的路徑返回到客戶機(jī)。反向代理服務(wù)器會將客戶機(jī)連接和數(shù)據(jù)庫服務(wù)器連接進(jìn)行配對鎖定,并與其他連接線程隔離,確保轉(zhuǎn)發(fā)的準(zhǔn)確性。

    反向代理服務(wù)器接收到客戶機(jī)請求后,并不是第一時間發(fā)送至真實數(shù)據(jù)庫服務(wù)器,而是進(jìn)行一系列的數(shù)據(jù)庫網(wǎng)絡(luò)協(xié)議解析、SQL語法分析、策略匹配,并根據(jù)匹配結(jié)果來決定是否轉(zhuǎn)發(fā)至數(shù)據(jù)庫服務(wù)器,如圖3所示。若判斷請求包含危險操作,則構(gòu)造一個符合數(shù)據(jù)庫規(guī)范的錯誤響應(yīng)包,發(fā)送至客戶機(jī),實現(xiàn)危險操作的實時阻斷。

    采用基于對端驅(qū)動式的反向代理技術(shù),接收并轉(zhuǎn)發(fā)客戶請求,對數(shù)據(jù)庫連接進(jìn)行安全隔離,通過數(shù)據(jù)庫網(wǎng)絡(luò)協(xié)議解析技術(shù)提取SQL文本、來訪IP、用戶名、客戶端、數(shù)據(jù)庫名,對生產(chǎn)環(huán)境的配置、網(wǎng)絡(luò)、訪問性能等影響較小,運(yùn)維習(xí)慣也無須改變。

    另外,在Oracle RAC環(huán)境下,如果反向代理后端數(shù)據(jù)庫是SCAN IP會導(dǎo)致代理失效,因為Oracle的SCAN IP本身就是一個特殊的反向代理,其接收到客戶機(jī)請求后會將連接重新定向至VIP;在這種場景下需要配置VIP解決代理失效問題。

    2.2 解析TNS協(xié)議

    Oracle數(shù)據(jù)庫客戶端與服務(wù)端通過TNS協(xié)議進(jìn)行通信。TNS(Transport Network Substrate)是一個基本網(wǎng)絡(luò)協(xié)議,以Net8系統(tǒng)為基礎(chǔ)〔7〕,屬于OSI 7層模型中的一部分。在反向代理接收到客戶機(jī)請求后,需要根據(jù)TNS協(xié)議,提取出其中的重要信息,然后才能進(jìn)行SQL語法分析和策略匹配。僅針對數(shù)據(jù)庫防火墻軟件來說,TNS協(xié)議分析主要內(nèi)容集中在4個方面:一是用戶登錄驗證的過程和詳細(xì)信息,二是客戶機(jī)發(fā)送的內(nèi)容和指令的格式,三是客戶機(jī)發(fā)送的SQL文本,四是服務(wù)端返回的報文信息。

    TNS通訊協(xié)議是適配平臺和硬件架構(gòu)的,不同的客戶端服務(wù)端平臺架構(gòu)對應(yīng)不同的協(xié)議族,我們通過wireshark工具來輔助分析TNS通訊協(xié)議。

    2.2.1 TNS包主要類型分析

    Oracle數(shù)據(jù)庫客戶端啟動連接,服務(wù)端返回包括接受、拒絕、重新發(fā)送、重定向連接4種狀態(tài)〔8〕。當(dāng)建立客戶端和Oracle的連接時,客戶端首先發(fā)送一個連接包,TNS包類型為0x01,不同版本的TNS協(xié)議中,其TNS連接包結(jié)構(gòu)有輕微差異。重定向用戶后,通過重定向端口向服務(wù)器發(fā)送連接,客戶端發(fā)送連接包,如果與服務(wù)器的連接成功,服務(wù)器返回接受包,否則返回拒絕包〔9〕,接受包的TNS類型為0x02。服務(wù)端拒絕客戶端登陸所發(fā)送的拒絕包,TNS類型為0x04,重定向包的TNS類型為0x05,重定向數(shù)據(jù)可以是一個新的數(shù)據(jù)庫服務(wù)器連接地址。

    TNS數(shù)據(jù)包負(fù)責(zé)傳輸所有客戶端操作和數(shù)據(jù)庫反饋信息。每個操作都由一個或多個命令組成,即一個或多個數(shù)據(jù)包。本文主要分析命令結(jié)構(gòu)與Oracle操作相關(guān)的命令組成序列。許多結(jié)構(gòu)及其特定字節(jié)不會影響對基本Oracle命令的分析〔10〕,因此可將分析簡化。TNS主要通過數(shù)據(jù)包中的命令0x0303和0x035e類型傳輸數(shù)據(jù),用于普通SQL查詢語句。返回結(jié)果以兩個命令0x06和0x08進(jìn)行反饋。具體數(shù)據(jù)包信息參考表1:

    表1 TNS數(shù)據(jù)包分類表

    續(xù)表1

    2.2.2 SQL文本提取

    把SQL文本從數(shù)據(jù)報文中提取出來的主要目的是進(jìn)行TNS協(xié)議分析,SQL語句沒有解碼工作,因為其已明確用ASCII碼儲存在數(shù)據(jù)包中。主要的任務(wù)是確定從TNS的包頭距離SQL語句的第一個字母的偏移量,所以重點在于可以很容易地提取SQL語句。但是,TNS隨后提供的數(shù)據(jù)格式并不是固定的,而是可變長度,有兩個特點:

    1)如果以0xFE為第一個字節(jié),那么0x40一定是第二個字節(jié),因為Oracle按照0x40的長度分割長數(shù)據(jù)包;

    2)如果第一個字節(jié)是自然長度,那么下一個字節(jié)再加上這個長度在0x00或0x01的位置,這就是結(jié)束的標(biāo)志。

    根據(jù)這些特點,我們可以從TNS協(xié)議頭開始,遍歷數(shù)據(jù)包來搜尋這些特點,如果它們符合其中任何一個特點,說明SQL語句的開始位置在這里〔11〕。

    2.3 SQL語法樹與安全策略

    數(shù)據(jù)庫防火墻應(yīng)該能夠?qū)崟r識別用戶,執(zhí)行實時分析并控制通過軟件進(jìn)入數(shù)據(jù)庫的用戶操作,因此,其核心是基于SQL摘要創(chuàng)建安全策略模板?;趯?shù)據(jù)庫通信機(jī)制、數(shù)據(jù)庫操作行為進(jìn)行深入分析后,建立了這一模型。因此要對SQL語句加以分析確定其是否符合安全策略要求,進(jìn)而決定是否阻斷該SQL語句的執(zhí)行。

    2.3.1語法樹與SQL摘要

    為了獲取SQL語句的摘要,需要對SQL語句切詞和語法分析得到語法樹。SQL語法樹是根據(jù)Oracle或MySQL官方給出的語法標(biāo)準(zhǔn),參考了開源軟件sqlparser〔12-14〕中的部分功能,在系統(tǒng)中通過對SQL進(jìn)行關(guān)鍵詞提取等操作得到的,之后遍歷SQL語法樹,進(jìn)行語法標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化即負(fù)責(zé)將用戶輸入的SQL進(jìn)行處理,例如用通配符替代數(shù)字和字符串,同時刪除一些不需要的節(jié)點〔15〕,然后以SQL標(biāo)準(zhǔn)語法樹為依據(jù)提取SQL摘要。以SQL規(guī)范SQL92 ANSI/ISO標(biāo)準(zhǔn)為基礎(chǔ)的SQL規(guī)范語法樹,定義了一種語言(SQL)和數(shù)據(jù)庫行為(事務(wù)、隔離級別等)〔16〕。許多商業(yè)數(shù)據(jù)庫至少在一定程度上與SQL92兼容。SQL摘要包括操作類型、對象類型、對象名稱,它的組成包括多個維度。

    2.3.2安全策略

    一個數(shù)據(jù)庫系統(tǒng)可以執(zhí)行任意數(shù)量合法的SQL,但經(jīng)過SQL語法分析后獲取的SQL摘要數(shù)量是可控的,因此本系統(tǒng)通過SQL摘要和登陸信息配合來實現(xiàn)安全策略的構(gòu)建,可以按照登陸信息、操作類型、操作對象、對象名稱等多個維度制定安全策略。

    本系統(tǒng)安全策略分為4部分的內(nèi)容:

    一是登陸信息安全策略。通過代理功能隱藏真實數(shù)據(jù)庫的IP和端口,并將代理端口和IP開放給應(yīng)用,應(yīng)用使用代理端口后所有的SQL語句將會得到監(jiān)管,即阻止的和安全的SQL語句都可以通過統(tǒng)計進(jìn)行查看;

    二是操作類型安全策略。系統(tǒng)可以設(shè)定操作類型如select、drop等,根據(jù)應(yīng)用接入執(zhí)行的SQL語句提取的語法樹可以設(shè)定對某一操作類型進(jìn)行放行和阻斷操作;

    三是操作對象安全策略。系統(tǒng)可以設(shè)定操作對象如table、index等,根據(jù)應(yīng)用接入執(zhí)行的SQL語句中的語法樹,阻斷或放行帶有相關(guān)操作對象策略的SQL語句;

    四是對象名稱策略。根據(jù)表名稱、索引名稱等設(shè)定的策略,系統(tǒng)可以只針對某一個對象設(shè)定安全策略。

    SQL語句提取語法樹后,將本條SQL的語法樹跟安全策略進(jìn)行對比,根據(jù)對比結(jié)果確定是否阻斷,不同數(shù)據(jù)庫可根據(jù)具體情況設(shè)定相應(yīng)的安全策略,做到精準(zhǔn)可靠防護(hù)。

    3 應(yīng)用結(jié)果分析

    本系統(tǒng)安全防護(hù)是通過創(chuàng)建安全策略來阻止非法訪問。每個目標(biāo)數(shù)據(jù)庫可以配置多個安全策略,安全策略從SQL語法分析的角度進(jìn)行定義,每一條安全策略由規(guī)則名稱、對象類型、操作類型、對象名稱組成。本系統(tǒng)可設(shè)置的安全策略共涉及19種對象類型、8種操作類型,同時支持Oracle數(shù)據(jù)庫和MySQL數(shù)據(jù)庫。從日常運(yùn)維角度出發(fā),盡可能進(jìn)行全面精準(zhǔn)的防護(hù)。

    3.1 系統(tǒng)成果

    3.1.1多目標(biāo)數(shù)據(jù)庫代理能力

    實現(xiàn)生產(chǎn)環(huán)境無感知的服務(wù)代理功能,對于訪問客戶端而言,該數(shù)據(jù)庫防火墻相當(dāng)于數(shù)據(jù)庫服務(wù)器;對于真實的數(shù)據(jù)庫服務(wù)器而言,該數(shù)據(jù)庫防火墻相當(dāng)于是一個連接客戶端,無需修改應(yīng)用代碼,只需修改訪問IP信息即可,對現(xiàn)有生產(chǎn)環(huán)境盡可能無影響無感知,支持代理多達(dá)6萬個數(shù)據(jù)庫。

    3.1.2基于SQL摘要的安全策略

    SQL語法樹對SQL語句切詞和語法分析才能得到。對大量SQL進(jìn)行演繹聚合,形成三維的SQL摘要,包括操作類型(select、update、delete、drop、create等)、對象類型(table、index、database、user、view、function等)、對象名稱(表名、索引名等),進(jìn)而建立抽象化的SQL安全模型。

    3.1.3多用戶及權(quán)限隔離

    根據(jù)實際需求,數(shù)據(jù)庫防火墻系統(tǒng)對用戶權(quán)限進(jìn)行了分級,并進(jìn)行了數(shù)據(jù)隔離,可滿足每一個用戶進(jìn)行各自獨立使用的需求,用戶可各自創(chuàng)建自己的目標(biāo)數(shù)據(jù)庫和安全策略。

    3.1.4集群支持

    支持Oracle RAC和MySQL集群,支持Oracle多實例共享安全策略。

    3.2 整體評估

    在評估原型系統(tǒng)的實驗中,我們對比了兩套數(shù)據(jù)庫系統(tǒng)測試。為了使測試準(zhǔn)確性提高,其硬件配置、網(wǎng)絡(luò)、系統(tǒng)平臺均保持一致,通過在運(yùn)維機(jī)和真實數(shù)據(jù)庫服務(wù)器之間搭建數(shù)據(jù)庫防火墻來考察系統(tǒng)的性能和防護(hù)準(zhǔn)確性。

    3.2.1性能

    客戶機(jī)通過數(shù)據(jù)庫防火墻訪問真實數(shù)據(jù)庫服務(wù)器時,由于數(shù)據(jù)庫網(wǎng)絡(luò)協(xié)議解析、SQL語法樹提取、策略匹配需要對請求進(jìn)行額外處理,因此一定程度上會降低用戶訪問的性能。為了證明處理過程的性能損耗,并與正常數(shù)據(jù)庫進(jìn)行對比,我們分別執(zhí)行了不同長度的SQL語句,分別包括32、128、256、512、1024字節(jié)長度,循環(huán)1 000次,統(tǒng)計處理時間。根據(jù)測試結(jié)果,SQL執(zhí)行性能與其長度正相關(guān),數(shù)據(jù)庫防火墻對客戶機(jī)訪問性能影響非常有限。

    3.2.2防護(hù)準(zhǔn)確性

    針對數(shù)據(jù)庫防火墻的安全策略設(shè)置及阻斷功能,根據(jù)日常運(yùn)維要求進(jìn)行了逐項測試。測試發(fā)現(xiàn),數(shù)據(jù)庫防火墻對于日常運(yùn)維過程中的危險SQL語句的識別率和攔截率達(dá)到98%。

    4 結(jié)語

    本文主要研究了基于反向代理的數(shù)據(jù)庫防火墻系統(tǒng)實現(xiàn)的相關(guān)技術(shù),該系統(tǒng)實現(xiàn)了日常運(yùn)維過程中的數(shù)據(jù)庫防護(hù),其最大優(yōu)勢是可及時發(fā)現(xiàn)數(shù)據(jù)庫危險操作,實時阻斷并進(jìn)行告警,避免運(yùn)維人員誤操作或者不法分子非法操作數(shù)據(jù)庫,提升了數(shù)據(jù)庫的安全防護(hù)和運(yùn)維安全。同時針對日常的運(yùn)維SQL語句加以審計,為數(shù)據(jù)庫運(yùn)維分析提供了可靠途徑。

    下一步研究將建立更為完善的安全防護(hù)策略,進(jìn)一步提升數(shù)據(jù)庫防火墻系統(tǒng)的防護(hù)能力。

    猜你喜歡
    代理服務(wù)器客戶機(jī)安全策略
    Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
    基于認(rèn)知負(fù)荷理論的叉車安全策略分析
    基于飛行疲勞角度探究民航飛行員飛行安全策略
    地鐵信號系統(tǒng)中代理服務(wù)器的設(shè)計與實現(xiàn)
    IP地址隱藏器
    淺析涉密信息系統(tǒng)安全策略
    如何加強(qiáng)農(nóng)村食鹽消費安全策略
    瘦客戶機(jī):安全與便捷的選擇
    一種容侵系統(tǒng)的設(shè)計
    基于Web數(shù)據(jù)提高訪問速度的方法
    封开县| 南通市| 梅州市| 甘肃省| 广南县| 故城县| 永登县| 雷波县| 庆元县| 全南县| 卫辉市| 白银市| 开远市| 柯坪县| 崇礼县| 枣强县| 左贡县| 通渭县| 绵竹市| 通城县| 都昌县| 新绛县| 和静县| 玉门市| 习水县| 隆昌县| 平邑县| 介休市| 旬阳县| 长岛县| 宁夏| 南京市| 应用必备| 远安县| 成安县| 中江县| 临夏市| 吉林市| 靖西县| 曲麻莱县| 长沙市|