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