王 鵬 房海龍
(伊春市森林防火指揮部,黑龍江 伊春 153000)
數(shù)據(jù)庫系統(tǒng)的安全除依賴自身的安全機(jī)制外,還與外部網(wǎng)絡(luò)環(huán)境、應(yīng)用環(huán)境、從業(yè)人員素質(zhì)等因素息息相關(guān),因此,從廣義上講,數(shù)據(jù)庫系統(tǒng)的安全框架可以劃分為五個(gè)層次,這里主要講其中的三個(gè)層次。
(1)網(wǎng)絡(luò)層安全
從廣義上講,數(shù)據(jù)庫的安全首先依賴于網(wǎng)絡(luò)系統(tǒng)。隨著Internet 的發(fā)展和普及,越來越多的公司將其核心業(yè)務(wù)向互聯(lián)網(wǎng)轉(zhuǎn)移,各種基于網(wǎng)絡(luò)的數(shù)據(jù)庫應(yīng)用系統(tǒng)如雨后春筍般涌現(xiàn)出來,面向網(wǎng)絡(luò)用戶提供各種信息服務(wù)??梢哉f網(wǎng)絡(luò)系統(tǒng)是數(shù)據(jù)庫應(yīng)用的外部環(huán)境和基礎(chǔ),數(shù)據(jù)庫系統(tǒng)要發(fā)揮其強(qiáng)大作用離不開網(wǎng)絡(luò)系統(tǒng)的支持,數(shù)據(jù)庫系統(tǒng)的用戶(如異地用戶、分布式用戶)也要通過網(wǎng)絡(luò)才能訪問數(shù)據(jù)庫的數(shù)據(jù)。網(wǎng)絡(luò)系統(tǒng)的安全是數(shù)據(jù)庫安全的第一道屏障,外部入侵首先就是從入侵網(wǎng)絡(luò)系統(tǒng)開始的。
從技術(shù)角度講,網(wǎng)絡(luò)系統(tǒng)層次的安全防范技術(shù)有很多種,大致可以分為防火墻、入侵檢測(cè)、VPN 技術(shù)等。
(2)操作系統(tǒng)層安全
操作系統(tǒng)是大型數(shù)據(jù)庫系統(tǒng)的運(yùn)行平臺(tái),為數(shù)據(jù)庫系統(tǒng)提供一定程度的安全保護(hù)。目前操作系統(tǒng)平臺(tái)大多數(shù)集中在windows NT 和UNIX,安全級(jí)別通常為C1、C2 級(jí)。主要安全技術(shù)有操作系統(tǒng)安全策略、安全管理策略、數(shù)據(jù)安全等方面。
操作系統(tǒng)安全策略用于配置本地計(jì)算機(jī)的安全設(shè)置,包括密碼策略、賬戶鎖定策略、審核策略、IP 安全策略、用戶權(quán)利指派、加密數(shù)據(jù)的恢復(fù)代理以及其他安全選項(xiàng)。具體可以體現(xiàn)在用戶賬戶、口令、訪問權(quán)限、審計(jì)等方面。
(3)數(shù)據(jù)庫管理系統(tǒng)層安全
數(shù)據(jù)庫系統(tǒng)的安全性很大程度上依賴于數(shù)據(jù)庫管理系統(tǒng)。如果數(shù)據(jù)庫管理系統(tǒng)安全機(jī)制非常強(qiáng)大,則數(shù)據(jù)庫系統(tǒng)的安全性能就較好。目前市場(chǎng)上流行的是關(guān)系式數(shù)據(jù)庫管理系統(tǒng),其安全性功能很弱,這就導(dǎo)致數(shù)據(jù)庫系統(tǒng)的安全性存在一定的威脅。
數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)主要是用來解決這一問題的,即當(dāng)前面兩個(gè)層次已經(jīng)被突破的情況下仍能保障數(shù)據(jù)庫數(shù)據(jù)的安全,這就要求數(shù)據(jù)庫管理系統(tǒng)必須有—套強(qiáng)有力的安全機(jī)制;解決這一問題的有效方法之—是數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)庫文件進(jìn)行加密處理,使得即使數(shù)據(jù)不幸泄露或者丟失,也難以被人破譯和閱讀。
以上這三個(gè)層次構(gòu)筑成數(shù)據(jù)庫系統(tǒng)的安全體系,與數(shù)據(jù)安全的關(guān)系是逐步緊密的,防范的必要也逐層加強(qiáng),從外到內(nèi)、內(nèi)表及里保證數(shù)據(jù)的安全。
隨著一些自動(dòng)化注入攻擊的出現(xiàn),目前針對(duì)Web 應(yīng)用的SQL 注入攻擊越來越普遍,技術(shù)也在不斷翻新。但是SQL 注入的基本原理還是通過構(gòu)造畸形的SQL 語句,繞過認(rèn)證系統(tǒng)獲得敏感信息。然而為了使用Web 服務(wù)器和數(shù)據(jù)庫服務(wù)器的功能,實(shí)現(xiàn)信息交互的目的、就不可避免的暴露一些可以被攻擊者非法利用的安全缺陷。如何采取有效的措施阻止內(nèi)部信息泄露,將系統(tǒng)的安全威脅降至最低是防護(hù)的關(guān)鍵。這需要從配置Web 服務(wù)器、配置數(shù)據(jù)庫和編寫安全代碼等多方面著手,加強(qiáng)系統(tǒng)安全性,這里僅僅從Web 服務(wù)器的安全配置方面來簡(jiǎn)單闡述一下方法或者是措施。
由于Web 服務(wù)器龐大而復(fù)雜的結(jié)構(gòu),使得Web 服務(wù)器在安全方面難免存在缺陷。正確配置Web 服務(wù)器可以有效降低SQL 注入的風(fēng)險(xiǎn)。
(1)修改服務(wù)器初始配置
服務(wù)器在安裝時(shí)會(huì)添加默認(rèn)的用戶和默認(rèn)口令,開啟默認(rèn)的連接端門等,這些都會(huì)給攻擊者留下入侵的可能。在安裝完成后應(yīng)該及時(shí)刪除默認(rèn)的賬號(hào)或者修改默認(rèn)登錄名的權(quán)限。關(guān)閉所有服務(wù)端口后,再開啟需要使用的端口。
(2)及時(shí)安裝服務(wù)器安全補(bǔ)丁
及時(shí)對(duì)服務(wù)器模塊進(jìn)行必要的更新,特別是官方提供的有助于提高系統(tǒng)安全性的補(bǔ)丁包。使服務(wù)器保持最新的補(bǔ)丁包,運(yùn)行穩(wěn)定的版本。
(3)關(guān)閉服務(wù)器的錯(cuò)誤提示信息
錯(cuò)誤提示信息對(duì)于調(diào)試中的應(yīng)用程序有著很重要的作用,但是當(dāng)Web 應(yīng)用一旦發(fā)布,這些錯(cuò)誤提示信息就應(yīng)該被關(guān)閉。詳細(xì)的錯(cuò)誤信息也會(huì)讓攻擊者獲得很多重要信息。自行設(shè)置一種錯(cuò)誤提示信息,即所有錯(cuò)誤都只返回同一條錯(cuò)誤消息,讓攻擊無法獲得有價(jià)值的信息。
(4)配置目錄權(quán)限
對(duì)于Web 應(yīng)用程序所在的目錄可以設(shè)置其為只讀的。通過客戶端上傳的文件單獨(dú)存放,并設(shè)置為沒有可執(zhí)行權(quán)限,并且不在允許Web 訪問的目錄下存放機(jī)密的系統(tǒng)配置文件。這樣是為了防止注入攻擊者上傳惡意文件,例如,Webshell 等。
(5)刪除危險(xiǎn)的服務(wù)器組件
有些服務(wù)器組件會(huì)為系統(tǒng)管理員提供方便的配置途徑,比如通過Web 頁面配置服務(wù)器和數(shù)據(jù)庫、運(yùn)行系統(tǒng)命令等。但是這些組件可能被惡意用戶加以利用,從而對(duì)服務(wù)器造成嚴(yán)重的威脅。為安全起見,應(yīng)當(dāng)及時(shí)刪除這樣的服務(wù)器組件。
從技術(shù)上講,如今的SQL 注入攻擊者們?cè)谌绾握页鲇新┒吹木W(wǎng)站方面更加聰明,也更加全面了。出現(xiàn)了一些新型的SQL 攻擊手段。黑客們可以使用各種工具來加速漏洞的利用過程。我們不妨看看the Asprox Trojan 這種木馬,它主要通過一個(gè)發(fā)布郵件的僵尸網(wǎng)絡(luò)來傳播,其整個(gè)工作過程可以這樣描述:首先,通過受到控制的主機(jī)發(fā)送的垃圾郵件將此木馬安裝到電腦上,然后,受到此木馬感染的電腦會(huì)下載一段二進(jìn)制代碼,在其啟動(dòng)時(shí),它會(huì)使用搜索引擎搜索用微軟的ASP 技術(shù)建立表單的、有漏洞的網(wǎng)站。搜索的結(jié)果就成為SQL 注入攻擊的靶子清單。接著,這個(gè)木馬會(huì)向這些站點(diǎn)發(fā)動(dòng)SQL 注入式攻擊,使有些網(wǎng)站受到控制、破壞。訪問這些受到控制和破壞的網(wǎng)站的用戶將會(huì)受到欺騙,從另外一個(gè)站點(diǎn)下載一段惡意的JavaScript 代碼。最后,這段代碼將用戶指引到第三個(gè)站點(diǎn),這里有更多的惡意軟件,如竊取口令的木馬。
雖然以前Web 應(yīng)用程序的程序員們對(duì)其代碼進(jìn)行測(cè)試并打補(bǔ)丁,雖然SQL 注入漏洞被發(fā)現(xiàn)和利用的機(jī)率并不太高。但近來攻擊者們?cè)絹碓蕉嗟匕l(fā)現(xiàn)并惡意地利用這些漏洞。因此,在部署其軟件之前,開發(fā)人員應(yīng)當(dāng)更加主動(dòng)地測(cè)試其代碼,并在新的漏洞出現(xiàn)后立即對(duì)代碼打補(bǔ)丁。