曹天龍
自美國1969年創(chuàng)建互聯(lián)網(wǎng)開始到1991年第一個互聯(lián)網(wǎng)接口被開發(fā)出來,互聯(lián)網(wǎng)技術(shù)得到了快速的發(fā)展,并推動了時代的進(jìn)步,隨著數(shù)據(jù)庫技術(shù)被廣泛應(yīng)用到互聯(lián)網(wǎng)中,其諸多的漏洞逐漸出現(xiàn),這些漏洞是黑客攻擊電腦的重要途徑,給計算機(jī)系統(tǒng)的安全帶來了很大的威脅。本文主要分析了計算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫存在的各種安全威脅,并有針對性的提出了應(yīng)對措施,以期對計算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫的安全管理有一定的推動作用。
一、互聯(lián)網(wǎng)數(shù)據(jù)庫安全概述
為了有效的避免用戶非法越權(quán)使用數(shù)據(jù)庫、竊取和更改、甚至破壞數(shù)據(jù),我們必須對數(shù)據(jù)庫采取安全保護(hù)措施,數(shù)據(jù)庫安全包括如下幾點(diǎn)。
1.物理完整性。數(shù)據(jù)不會受到自然及物理問題的破壞,如電力、設(shè)備故障或物理損壞等問題。
2.邏輯完整性。保護(hù)數(shù)據(jù)庫的整體結(jié)構(gòu),例如:當(dāng)對數(shù)據(jù)庫某個字段進(jìn)行修改時,要確保其他字段沒有遭到破壞。
3.可審計性。能夠?qū)?shù)據(jù)庫元素進(jìn)行追蹤存取與修改。
4.控制訪問。明確只有通過授權(quán)的用戶才可以訪問數(shù)據(jù)庫,
可以通過不同方式限制不同用戶的訪問。
5.元素安全。數(shù)據(jù)庫中存儲的所有元素均正確。
6.可用性。授權(quán)用戶可以對數(shù)據(jù)庫進(jìn)行自由訪問。
7.身份驗(yàn)證。審計追蹤、訪問數(shù)據(jù)庫必須進(jìn)行嚴(yán)格的身份驗(yàn)證,防止不正常進(jìn)入。
二、互聯(lián)網(wǎng)數(shù)據(jù)庫存在的安全威脅
1.數(shù)據(jù)庫的下載。多數(shù)用戶在使用 ASP 編寫連接文件中,大都用語句“(conn.asp):<%......db=“/admin/database/bxzcvmqhjwkry21ahfqweir.mdb”數(shù)據(jù)庫文件具體位置......%>”對數(shù)據(jù)庫進(jìn)行保護(hù)。從語句的連接上看,這是正確的,而且名稱長度也很長、很保險,下載者對數(shù)據(jù)庫難以識別破解。但是如果通過暴庫技術(shù)與相關(guān)工具,就可以快速定位具體數(shù)據(jù)庫的各種情況,一般是用“%5c”命令,雖說不能百分百的成功暴庫,但是出現(xiàn)暴庫的幾率非常高。在獲取地址后通過IE輸入,再下載到本地,就能夠獲得用戶名及密碼。
2.注入SQL。互聯(lián)網(wǎng)中,WEB 服務(wù)器大多數(shù)是在設(shè)立防火墻后方才布置,并且只開放80端口,非法者無法入侵其他端口,因此,80 端口是他們?nèi)肭值哪繕?biāo),而常用方式是注入SQL。有少數(shù)程序員在編寫程序的代碼時,忽略了辨別用戶輸入的數(shù)據(jù)是否正確,使編寫的應(yīng)用程序面臨很多網(wǎng)絡(luò)威脅。注入SQL就是在客戶端對代碼進(jìn)行傳輸,收集服務(wù)器數(shù)據(jù)信息與處理程序,得到相應(yīng)資料。注入SQL可以常規(guī)訪問 80 端口,相當(dāng)于普通Web頁面進(jìn)行訪問,防火墻對注入SQL無法獲取報警信息,如果系統(tǒng)管理員不能及時對程序進(jìn)行審核和檢查,基本是很難發(fā)現(xiàn)數(shù)據(jù)庫被入侵的。
三、維護(hù)互聯(lián)網(wǎng)數(shù)據(jù)庫安全的應(yīng)對措施
1.嚴(yán)格查堵URL端漏洞。在審核用戶使用數(shù)據(jù)庫的情況時,若發(fā)現(xiàn)用戶端在URL提交參數(shù)時,存在exec,insert,delete,from,count,user,xp_cmdshell,add,asc(,char(,drop,able,mid"等用在注入SQL中的字符以及字符串,就必須立即禁止ASP的運(yùn)行,而且會顯示出如“出錯提示”等報警信號,對于有接收的用戶端在 URL 提交參數(shù)程序時用<!--#include?le =“../*****.asp”-->即可寫入程序,該方法不會影響程序執(zhí)行的速度,同時還能夠有效防止大多數(shù)入侵者的非法入侵,;同時也可以在 if 語句中對注入 SQL 常用的字符串、字符的方式進(jìn)行設(shè)置,限定特定的時間內(nèi)拒絕 任何IP 對數(shù)據(jù)庫的訪問,增強(qiáng)數(shù)據(jù)庫安全,防止黑客非法入侵。
2.嚴(yán)格查堵 form 和 cookies 漏洞。有些不法入侵者通過cookies、form提交含有“or”、“=”等字符入侵。在編寫程序時有意識的添加特殊字符可以防止入侵,從而確保程序安全執(zhí)行。亦可通過paraname = Request.form()即 paraname = Request.Cookies()獲取用戶名與密碼,再加入代碼,如果在用戶參數(shù) paraname中發(fā)現(xiàn)空格、=、or 等非正常字符時,應(yīng)當(dāng)立即終止 then 后面的執(zhí)行,不再運(yùn)行 ASP,以攔截入侵者入侵。
3.加強(qiáng)數(shù)據(jù)庫自身的安全。暴庫是因?yàn)?IIS 服務(wù)器具體顯示各執(zhí)行錯誤的情況并中斷執(zhí)行時,把錯誤信息發(fā)送給了用戶。通常的防范措施是把數(shù)據(jù)庫后綴名由MDB變?yōu)锳SP、ASA。雖然該方式可以防暴庫,但比較原始,隨著計算機(jī)技術(shù)的發(fā)展,該這種方法已經(jīng)無法滿適應(yīng)最新防范的要求了。為防止暴庫,應(yīng)該調(diào)整 IIS 默認(rèn)設(shè)置。黑客對 ASP、ASA 的數(shù)據(jù)庫文件的后綴進(jìn)行修改,便能夠進(jìn)行查找并確定具體存儲位置,可以通過迅雷等下載軟件下載獲得。
4.數(shù)據(jù)庫名的前面加“#”。 因?yàn)?IE 瀏覽器不能下載帶有# 號的文件,所以目前大部分的系統(tǒng)管理員會在數(shù)據(jù)庫名子的前面加上 “#” 號,以防止數(shù)據(jù)庫被非法下載,這種方法有效,但是不安全。網(wǎng)頁不僅可以通過常規(guī)方式進(jìn)行訪問,還能夠通過 IE 編碼技術(shù)對其進(jìn)行訪問。IE 里的不同字符都存在相應(yīng)編碼,編碼符號“%23”可以取代 # 號,以這樣的方式進(jìn)行處理后,后綴加 # 號的數(shù)據(jù)庫文件是無法被下載和使用的。
5.對用戶密碼進(jìn)行加密。加密用戶密碼也是一項(xiàng)有效的應(yīng)對措施,一般是采取MD5進(jìn)行加密。MD5沒有反向算法,因此很難解密,黑客們即使獲得加密情況,但還是無法找出正確的原始密碼。雖然可通過 UPDATE 方式以其他密碼替代,但是這種操作難以實(shí)行。需要注意的是,信息數(shù)據(jù)進(jìn)行 MD5 加密后很難解密,因此用戶必須防止密碼丟失、忘記。這種加密方法必須改變前用戶的所有資料,用戶要對資料進(jìn)行重新設(shè)置,還要把數(shù)據(jù)庫中經(jīng)過 MD5 加密放入相關(guān)字段進(jìn)行計算后才能再次存儲。
四、結(jié)論
數(shù)據(jù)庫的安全直接影響到整個計算機(jī)網(wǎng)絡(luò)系統(tǒng)的安全,因此,應(yīng)該采取全方位的保護(hù)措施,保證計算機(jī)網(wǎng)絡(luò)系統(tǒng)的安全,為廣大用戶營造安全且穩(wěn)定的網(wǎng)絡(luò)運(yùn)行環(huán)境,以防止計算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫被非法入侵和襲擊。
參考文獻(xiàn):
[1]邵佩英.數(shù)據(jù)庫安全應(yīng)用服務(wù)器的研究與現(xiàn)狀[M].軟件學(xué)報,2001.
[2]宋志敏,南相浩.數(shù)據(jù)庫安全的研究與實(shí)現(xiàn)[M].計算機(jī)工程與應(yīng)用,2001.