版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、西北民族大學學士學位畢業(yè)論文mysql網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全性研究摘 要 隨著互聯(lián)網(wǎng)的發(fā)展,在網(wǎng)絡環(huán)境下數(shù)據(jù)庫系統(tǒng)面臨著很多的威脅,我們怎么去保證數(shù)據(jù)的保密性、完整性、可靠性和可用性是個值得去研究的問題。雖然現(xiàn)在數(shù)據(jù)庫管理系統(tǒng)自身所帶的安全保護措施雖然能夠?qū)ζ浒踩鹨欢ǖ谋Wo作用,但仍然存在很多的漏洞,像:帳號的空密碼、固定的ip訪問端口等,能夠利用這些漏洞進行攻擊,獲得管理員的權限進而控制整個數(shù)據(jù)庫系統(tǒng)。從體系結構和軟件層次上思考,將其分為網(wǎng)絡安全機制、服務器操作系統(tǒng)安全機制、數(shù)據(jù)庫管理系統(tǒng)安全機制和應用系統(tǒng)安全機制四層。關鍵字 網(wǎng)絡數(shù)據(jù)庫 訪問控制 身份認證 abstractwith the
2、 development of the internet, under the environment of network database system is facing a lot of threats, we how to ensure that the data privacy, integrity, reliability and usability is worth to study the problem. although now database management system itself with the security protection measures
3、for their safety, however, can play a protective effect, but there are still a lot of vulnerabilities, like: the empty password, fixed account of ip access ports, etc, can use these loopholes to attack and get the administrator privilege and then control the whole database system. from the system st
4、ructure and software level thinking, which is divided into network security mechanism, the server operating system security mechanism, the database management system security mechanism and application system security mechanism four layers.key word: network database access control identity authentica
5、tion目錄第一章 緒論51.1論文概述51.2論文研究問題61.3數(shù)據(jù)庫網(wǎng)絡安全研究現(xiàn)狀71.4論文研究意義以及研究工作71.5小結8第二章 網(wǎng)絡數(shù)據(jù)庫的安全和防護92.1網(wǎng)絡數(shù)據(jù)庫安全概述92.1.1網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的特點92.1.2網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全內(nèi)容102.1.3網(wǎng)絡數(shù)據(jù)庫的安全要求112.1.4網(wǎng)絡數(shù)據(jù)庫服務安全性112.1.4網(wǎng)絡數(shù)據(jù)庫安全實施原則142.2小結14第三章 mysql數(shù)據(jù)庫的安全和防護153.1 mysql數(shù)據(jù)庫概述153.2 mysql數(shù)據(jù)庫安全機制153.2.1背景153.2.2訪問控制163.2.3 mysql用戶173.2.4mysql配置183.2.5例
6、行審計203.3mysql數(shù)據(jù)庫的安全實施223.3.1 mysql-5.1.37的登錄223.3.2mysql用戶243.3.3mysql訪問控制293.4小結32第四章 總結334.1論文總結334.2論文的不足334.3展望34參考文獻35致謝36第一章 緒論1.1論文概述今年來,隨著基于web的商業(yè)和信息系統(tǒng)的蓬勃發(fā)展,數(shù)據(jù)庫已經(jīng)越來越接近網(wǎng)絡范疇。這是在web服務器上進行業(yè)務活動的必然結果,以前只能通過借個互相隔離的復雜業(yè)務邏輯層來訪問數(shù)據(jù)庫,現(xiàn)在則可以通過web應用環(huán)境直接對數(shù)據(jù)庫進行訪問,這種方式與以往的方式相比流動性更強,但是安全性能就降低了。這種方式的結果就是,數(shù)據(jù)庫更容易受
7、到攻擊。隨著向無紙化業(yè)務環(huán)境持續(xù)進軍的趨勢,人們要在數(shù)據(jù)庫系統(tǒng)中儲存越來越多的敏感信息,因此數(shù)據(jù)庫系統(tǒng)就成為越來越有價值的攻擊目標。今年來,數(shù)據(jù)庫供應商競相為大眾提供功能豐富的數(shù)據(jù)庫環(huán)境,大多數(shù)主要系統(tǒng)都支持xml、web服務、分布式復制、操作系統(tǒng)集成以及其他一些有用的功能。為什么要關注數(shù)據(jù)的安全能?因為與以前相比,數(shù)據(jù)庫更加容易遭受到攻擊,它已經(jīng)成為了更有價值的攻擊目標,所以需要配置更多的安全功能,管理也要更加的謹慎。隨著對計算機操作系統(tǒng),網(wǎng)絡協(xié)議以及數(shù)據(jù)庫系統(tǒng)的研究和應用越來越深入和廣泛,網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全越來越具有戰(zhàn)略意義。信息安全保障能力成為綜合國力的一個重要部分。現(xiàn)代社會的信息基本
8、上都需要通過數(shù)據(jù)庫來存儲和通過網(wǎng)絡來查詢,這已經(jīng)成為信息社會的一個標志。今天,政府機構,軍事部門和很多企業(yè)都把大量的信息存儲到數(shù)據(jù)庫系統(tǒng)上面,這樣作為信息系統(tǒng)安全的重要部分,數(shù)據(jù)庫的系統(tǒng)的安全性研究就越來越重要了。1.2論文研究問題這篇論文主要研究網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全性問題,在我們討論數(shù)據(jù)庫安全研究現(xiàn)狀之前,應該首先詳細地說明下我們使用這個術語的意思。通常,當使用“數(shù)據(jù)庫安全研究”這個短語時,指的是對數(shù)據(jù)庫系統(tǒng)安全中明確而實際的漏洞進行研究。我們并不去研究個別安全事件,也不會對營銷方面信賴或證明所做的相關努力進行討論。我們甚至也不會對數(shù)據(jù)安全中潛在的抽象概念進行學術研究,我們需要研究涉及真實系
9、統(tǒng)中漏洞的發(fā)現(xiàn)。我們主要把數(shù)據(jù)安全漏洞劃分為以下幾類:(1)網(wǎng)絡協(xié)議中未經(jīng)驗證的漏洞(2)網(wǎng)絡協(xié)議中經(jīng)過驗證的漏洞(3)驗證協(xié)議中的漏洞(4)未經(jīng)驗證訪問功能(5)在固有的sql元素中執(zhí)行任意代碼(6)在可保安全的sql元素中執(zhí)行任意代碼(7)通過sql注入進行特權提升(8)本地特權提升的問題1.3數(shù)據(jù)庫網(wǎng)絡安全研究現(xiàn)狀基于網(wǎng)絡的數(shù)據(jù)庫應用系統(tǒng)包括計算機網(wǎng)絡,數(shù)據(jù)庫系統(tǒng),應用程序等很多方面。主要分為兩層含義:第一層指的是系統(tǒng)運行安全,涉及:法律、政策保護,如用戶是否有合法的權利,政策是否允許等;物理控制的安全;硬件運行的安全;操作系統(tǒng)的安全;第二層是指系統(tǒng)信息方面的安全,包括:用戶口令字鑒別;
10、用戶存取權限的控制;數(shù)據(jù)存取權限和控制方式;審計跟蹤;數(shù)據(jù)加密。這些安全問題可以采用很對措施來解決吧,例如加強管理、采用備份等等。數(shù)據(jù)庫管理系統(tǒng)本身提供用戶名、密碼識別、視圖、使用權限控制、審計等管理措施,大型的數(shù)據(jù)庫管理系統(tǒng)oracle、sybase、sql等都有這樣的功能。到目前為止,盡管人們已在數(shù)據(jù)庫安全問題上做了很多的研究,但是還是有很多問題沒有解決。數(shù)據(jù)庫安全體系結構的研究也才剛剛開始。二十世紀九十年代以來,數(shù)據(jù)庫安全的研究主要圍繞著關系數(shù)據(jù)庫系統(tǒng)的訪問控制模型展開。1.4論文研究意義以及研究工作論文研究的重點工作是以應用為基礎,對網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全機制,尤其是利用rbac思想實現(xiàn)
11、安全的訪問控制的問題進行研究。全文基于“網(wǎng)絡數(shù)據(jù)庫系統(tǒng)安全機制分層”的觀點,詳細地從不同層次對網(wǎng)絡數(shù)據(jù)庫安全機制進行描述和探討。在web服務器的訪問控制中,目前多是基于對單個用戶的管理,或者簡單的矩陣式管理,無法適應大型系統(tǒng)的管理需求。如何利用現(xiàn)有的安全手段提高web服務器的安全,為網(wǎng)絡數(shù)據(jù)庫的安全訪問提供一個可信的面向角色的平臺。本文對此做了探討。研究工作包括對mysql數(shù)據(jù)庫自身安全策略的分析,基于rbac的客戶端應用程式權限控制方法的研究和服務器端安全訪問控制機制的研究。 談到數(shù)據(jù)庫安全的未來,有一些有趣的推論。如果我們必須做出預測,那么預測的結果就是,在未來幾年中,部分安全研究領域會開
12、始關注數(shù)據(jù)庫,這就會出現(xiàn)更多的補丁,以及對真實系統(tǒng)安全更好的理解,而我們都完全依賴與它。1.5小結 本章簡單的介紹了網(wǎng)絡數(shù)據(jù)系統(tǒng)安全機制的研究方向和特點,討論了論文研究的主要問題,主要討論了數(shù)據(jù)庫存在的各種漏洞,最后描述了本文的研究意義和研究的重點工作。第二章 網(wǎng)絡數(shù)據(jù)庫的安全和防護2.1網(wǎng)絡數(shù)據(jù)庫安全概述 計算機信息系統(tǒng)安全等級保護數(shù)據(jù)庫管理技術要求作為計算機信息系統(tǒng)安全等級保護技術要求系列標準之一,詳細說明了計算機信息系統(tǒng)為了實現(xiàn)gb17859所提出的安全等級保護要求對數(shù)據(jù)庫管理系統(tǒng)的安全技術要求。根據(jù)網(wǎng)絡數(shù)據(jù)庫安全特點可以畫出網(wǎng)絡數(shù)據(jù)庫安全模型: 圖2.1 網(wǎng)絡數(shù)據(jù)庫安全模型2.1.1網(wǎng)
13、絡數(shù)據(jù)庫系統(tǒng)的特點(1)數(shù)據(jù)的結構化,數(shù)據(jù)的共享性好,數(shù)據(jù)的獨立性好,數(shù)據(jù)存儲粒度小,數(shù)據(jù)管理系統(tǒng),為用戶提供了友好的接口。(2)數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎,現(xiàn)有的數(shù)據(jù)庫系統(tǒng)均是基于某種數(shù)據(jù)模型的。(3)數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。(4)數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(dbms)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構成。數(shù)據(jù)庫系統(tǒng)的基礎和核心是dbms(5)數(shù)據(jù)的語法關系到數(shù)據(jù)庫的安全。(6)客體之間的信息相關性可能比較大,我們應該去研究推理攻擊怎么去防范。2.1.2網(wǎng)絡數(shù)據(jù)庫系統(tǒng)的安全內(nèi)容(1)保障數(shù)據(jù)庫系統(tǒng)的保密性:(a)保證高級別的信息不會無緣無故的流向低級別的用戶;(b)
14、訪問數(shù)據(jù)庫系統(tǒng)的用戶要進行身份認證;(c)要嚴格的控制數(shù)據(jù)庫系統(tǒng)的訪問;(d)推理的攻擊對數(shù)據(jù)庫系統(tǒng)的影響;(e)數(shù)據(jù)庫系統(tǒng)必須要有可審計性;(f)隱蔽信道攻擊數(shù)據(jù)庫系統(tǒng)時必須要做好充分的準備。(2)保障數(shù)據(jù)庫系統(tǒng)的完整性:(a)保障數(shù)據(jù)庫系統(tǒng)的物理完整性;(b)保障數(shù)據(jù)庫系統(tǒng)的邏輯完整性;(c)保障數(shù)據(jù)庫系統(tǒng)的元素完整性;(3)數(shù)據(jù)庫系統(tǒng)的可用性:在用戶需要的時候,授權用戶能夠在數(shù)據(jù)庫系統(tǒng)中存儲或者取出信息,訪問信息的技術。2.1.3網(wǎng)絡數(shù)據(jù)庫的安全要求作為信息數(shù)據(jù)的存儲地和處理地,數(shù)據(jù)庫及管理系統(tǒng)在大網(wǎng)絡環(huán)境下,應該能對信息數(shù)據(jù)的安全存儲和安全訪問提供服務,并具有安全防范的能力。具體有以下
15、幾個方面:(1)要求數(shù)據(jù)庫具有保密性,就是非法用戶訪問數(shù)據(jù)庫是能夠被阻止,保護數(shù)據(jù)庫中數(shù)據(jù)不被泄露出去。(2)要求數(shù)據(jù)庫具有完整性和一致性,不正確的操作或非法用戶的惡意攻擊對數(shù)據(jù)庫進行時能被防止;(3)要求數(shù)據(jù)庫具有可用性,即能防止或者即使修復因軟、硬件系統(tǒng)的錯誤所造成的數(shù)據(jù)庫惡意破壞。(4)要求能對數(shù)據(jù)庫各種變化作跟蹤記錄,這樣就是方便追查并防止否認對數(shù)據(jù)庫的安全責任。2.1.4網(wǎng)絡數(shù)據(jù)庫服務安全性(1)數(shù)據(jù)庫的完整性數(shù)據(jù)的中心倉庫就是數(shù)據(jù)庫,要保證用戶能信賴其數(shù)據(jù)的準確性,必須保證對其進行更新的人只有有管理權限的人才能進行。有兩種情況會影響數(shù)據(jù)庫的完整性:(a)破壞整個數(shù)據(jù)庫。(b)有些數(shù)
16、據(jù)項不可讀。(2)元素的完整性正確性和準確性是數(shù)據(jù)庫元素的完整性的標志。數(shù)據(jù)庫管理員負責把正確的數(shù)據(jù)放入數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)必須幫助用戶再輸入的時候能夠發(fā)現(xiàn)錯誤,能夠修正查出錯誤的數(shù)據(jù)。(3)可審計性數(shù)據(jù)庫的審計可以協(xié)助維持數(shù)據(jù)庫的完整性,一旦所有內(nèi)容都啟動且正在運行,就不應該在不管理的情況下讓mysql獨自運行。如果一級防范進行得充分,就會很好地防御攻擊者,但是知道有人在試圖攻擊你將會很有幫助,即使他們沒有成功。關鍵是要時刻保持著警惕。(4)訪問控制數(shù)據(jù)庫系統(tǒng)的訪問控制比較復雜。相比于操作系統(tǒng),操作系統(tǒng)的文件,是非相關的項目。而數(shù)據(jù)庫的記錄、字段和元素都是有著關聯(lián)的。用戶通過讀其他文件是不
17、能來確定某文件的內(nèi)容,但是可以通過只讀其他的數(shù)據(jù)庫元素而確定一個元素,所以說推測數(shù)據(jù)是可能的。(5)用戶認證嚴格的用戶認證是保證數(shù)據(jù)庫管理系統(tǒng)安全的重要措施,用戶的這些認證基本都是在操作系統(tǒng)完成的認證的結果上再加上去的。數(shù)據(jù)庫管理系統(tǒng)必須作自己的認證。(6)可用性數(shù)據(jù)庫系統(tǒng)對可用性的要求是很高的??捎眯杂幸粋€問題來自對兩個用戶請求的同一個記錄的仲裁,另一個是要求扣發(fā)某些非保護數(shù)據(jù)以免泄露被保護的數(shù)據(jù)。數(shù)據(jù)庫應該隨時保持可用性。(7)數(shù)據(jù)庫加密傳遞信息和存儲信息的重要保護手段市數(shù)據(jù)庫加密。保證對入侵事實上不能破是信息的加密;應快速存取數(shù)據(jù)是合法用戶;空間和時間的消耗小。應依據(jù)系統(tǒng)的具體需要進行控
18、制對數(shù)據(jù)庫是否需要加密和如何加密。這是一個復雜的工作,去建設一個安全的基于網(wǎng)絡的數(shù)據(jù)庫應用系統(tǒng),建立一個對安全策略的整體設計的模型是很有好處的。為了保證系統(tǒng)的安全性,根據(jù)安全威脅的途徑,實施安全任務和原則,考慮mysql網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)的安全特性和應用程序安全特性,可以建立下面的模型進行安全控制。圖2.2 系統(tǒng)安全防護模型2.1.4網(wǎng)絡數(shù)據(jù)庫安全實施原則最小特權原則:用戶只擁有完成任務所需要的信息訪問權限。最小泄密原則:用戶有責任也必須要保護自己的訪問權內(nèi)的信息。多重保護原則:任何安全保護措施不是絕對的安全,都有可能被破壞。所以說要建立一個多重的保護系統(tǒng),有一個保護系統(tǒng)被攻破時,另外的保護系
19、統(tǒng)還是能夠保護數(shù)據(jù)庫的安全。綜合性原則:在整個系統(tǒng)上全方位的進行安全措施的施展。2.2小結 本章介紹了網(wǎng)絡數(shù)據(jù)的的特點,安全內(nèi)容,還有網(wǎng)絡數(shù)據(jù)的安全要求等等。將數(shù)據(jù)庫系統(tǒng)安全問題分為保密性、完整性和可用性。第三章 mysql數(shù)據(jù)庫的安全和防護3.1 mysql數(shù)據(jù)庫概述mysql數(shù)據(jù)庫聲稱是世界上最受歡迎的開放源數(shù)據(jù),這是有很好地理由的。mysql是免費的,可運行在多種平臺上。它相當簡單,容易配置,即使在很重的負荷下也能運行良好。與其他的一些數(shù)據(jù)庫相比,雖然mysql非常簡單,但是仍然有大量的各種與安全相關的配置問題。mysql是一個不同尋常的開源項目,其數(shù)據(jù)庫服務器源代碼屬于瑞典的一家公司,
20、以gpl和商業(yè)許可證發(fā)布。隨著商業(yè)許可證一起發(fā)布的還有一個支持程序包,該程序包非常重要,它使得其他公司可以將mysql引擎插入到他們的產(chǎn)品中而無需開放其他產(chǎn)品源代碼。3.2 mysql數(shù)據(jù)庫安全機制 本節(jié)重點討論mysql數(shù)據(jù)庫的安全機制。具體分為:背景、訪問控制、mysql的用戶、mysql配置、例行審計等五個方面。3.2.1背景如果想了解攻擊者,那么擁有最新的信息來源是非常重要的。(1)mysql數(shù)據(jù)庫有一支非常敏感的安全團隊,他們會將第三方查明的信息以及bug報告反饋在文檔中。這些關于mysql的安全文檔是我們收集mysql安全材料的第一選擇。(2)mysql會頻繁的發(fā)布新的版本。當它發(fā)
21、布新版本時,總會有一個非常綜合的變更日志,它會詳細地記錄下新版本中新增加的或者是修改過的內(nèi)容。如果您正在一個項目的某個階段,它會使您有時間決定dbms,并且您正在關注mysql的話,那么這將幫助您進一步理解哪個版本有哪些特色和舊版本中有哪些bug。(3)了解您的bug!有規(guī)律地檢查脆弱數(shù)據(jù)庫,如security focus以及icat,看是否有mysql bug,并且訂閱安全郵件列表?;谀约旱奶囟ōh(huán)境,最好的方法就是一旦有信息公布就立即關注這些問題,而不是等待著補丁的發(fā)布。3.2.2訪問控制 mysql為我們提供了一套簡單而且有效的安全管理措施。mysql管理員保護數(shù)據(jù)庫內(nèi)容的安全,似的記
22、錄只能由經(jīng)過嚴格認證的那些用戶訪問。包括內(nèi)部安全性和外部安全性。(1)內(nèi)部安全性關心文件系統(tǒng)級的問題就是內(nèi)部安全性,像保護mysql數(shù)據(jù)庫目錄避免遭到擁有運行服務器的機器賬號的用戶攻擊。但是,如果數(shù)據(jù)內(nèi)容的文件許可權過分隨意,那么有人可以將對應這些表的文件進行簡單的替換,這樣的話,內(nèi)部的安全性就不能很好地確保適當?shù)慕W(wǎng)絡上客戶機訪問的授權表的控制。數(shù)據(jù)庫管理員應保護的內(nèi)容包括:數(shù)據(jù)庫文件和日志文件。(2)外部安全性 外部安全性關心客戶機從外部連接的問題,像防止mysql服務器遭受利用網(wǎng)絡與服務器連接請求導致的數(shù)據(jù)庫內(nèi)容訪問攻擊。mysql有一套先進但是不是很標準的安全/授權系統(tǒng),其授權機制
23、的基本作用就是給某個主機上的用戶對某個數(shù)據(jù)庫對象一些權限。3.2.3 mysql用戶一旦操作系統(tǒng)受到保護,就需要鎖定mysql本身。這樣做的一步就是準備用戶賬戶和特權模型。(1)為rootlocalhost賬戶設置一個“強健”的口令。這樣做的原因很明顯;在mysql中部存在多次輸錯口令后就將用戶鎖定的這種情況。因此,對于mysql用戶名和口令的brute-force攻擊是很有效的。設置這樣的“強健”口令能夠幫助預防攻擊者的猜測口令行為。(2)刪除所有非root的mysql用戶。在初始的安裝階段,了解哪些用戶能夠訪問數(shù)據(jù)庫是很重要的。最好的方法就是將這些用戶從最核心處刪除,然后建立您所需要的用戶
24、。(3)將mysql的root用戶重命名為較復雜的名字(4)如果啟用了遠程連接,那么在建立用戶時要指定grant語句中的require ssl。它會為特殊用戶在連接時執(zhí)行ssl加密。這樣做有兩個好處:第一,它保證用戶所寫的開發(fā)腳本不會其作用;第二,它保證了口令盤問回答的順序。(5)為每個web應用創(chuàng)建一個mysql用戶。例如,可以有一個mysql用戶來更新表格,另一個低特權的用戶來從表格中進行選擇。如果攻擊者能夠攻擊某個應用程序,那么它將會調(diào)整組件的特權以使攻擊者受到限制。(6)確保mysql用戶都能受到ip地址限制,也能受到口令的限制。一旦嵌入mysql配置,那么考慮下限制用戶的ip地址,是
25、用戶無法自行驗證。(7)如果賬戶不一定需要,不要隨便給出賬戶特權。如果必須與mysql下的文件系統(tǒng)相互作用,那么考慮創(chuàng)建個單獨的mysql賬戶,這樣就可以進行應用了。(8)不要讓任何人進入mysql.user表格。因為如果他們能從用戶表格中讀取口令散列,那么就能以其他任意用戶身份登錄。3.2.4mysql配置一旦用戶和特權問題得以解決,那么還有其他一些配置方面的修改需要去做,以便提高安全系數(shù)。(1)在mysql文檔中“general query log”被認為是調(diào)試時的一個特色。它并不記錄這些查詢的結果或返回的數(shù)據(jù),但可以提供給我們線索誰在我們的數(shù)據(jù)庫上做了什么,所以值得對該配置進行修改。查詢
26、日志在默認情況下是禁用的,所以必須要用log來進行激活。(2)通過在f 文件中加入set-variable=local-infile=0來禁用load data local infile命令。這個命令是load data語句的一個變體,它允許客戶機直接從本地文件系統(tǒng)中的文件上傳數(shù)據(jù)至mysql表中。這可能會被攻擊者在某些情況下用以在客戶機主機上閱讀文件。(3)刪除任何不用的udf。udf可能出乎意料地產(chǎn)生危險。myphp、myperl、mylua等等都允許攻擊者通過一些簡單的腳本命令在服務器上大肆擴展自己的控制權。如果您沒有使用udf,卻在mysql.fuc表格中看見了它們,那么應當立即刪除。
27、(4)如果僅僅正在使用本地連接,那么通過設置skip-networking選項來禁用tcp/ip連接。因為有時遠程主機沒有必要去連接mysql。(5)根據(jù)具體的操作系統(tǒng)以及數(shù)據(jù)目錄的配置情況,可以通過設置skip-symbolic-links選項來禁用symbolic鏈接。mysql的symbolic鏈接在windows平臺上以受限制的方式得到支持,限制包括創(chuàng)建一個名為“database”.sym的文件,以及創(chuàng)建通往數(shù)據(jù)庫所有表格文件所在目錄的路徑。在一些unix系統(tǒng)上,symbolic鏈接會導致一些問題。如果用戶能夠修改一個symbolic鏈接,那么它們將能夠與文件系統(tǒng)相互作用,從而使真正的
28、mysql用戶也受到限制。(6)刪除默認的測試數(shù)據(jù)庫。默認情況下,測試數(shù)據(jù)庫是存在的,應將該數(shù)據(jù)庫刪除。它能訪問的有效數(shù)據(jù)庫名字可能對攻擊者有用,所以默認的測試數(shù)據(jù)庫應該刪除。(1)確保mysql通信量是加密的。在默認情況下,mysql流量是不加密的。這意味著如果一個攻擊者能夠在客戶機和服務之間建立的連接上進行竊聽,那么他就能獲取用戶名和口令盤問/回答序列。3.2.5例行審計一旦所有內(nèi)容都啟動且正在運行,就不應該在不管理的情況下讓mysql獨自運行。如果一級防范進行得充分,就會很好地防御攻擊者,但是知道有人在試圖攻擊你將會很有幫助,即使他們沒有成功。關鍵是要時刻保持著警惕。(1)檢查日志如果已
29、經(jīng)用log選項配置了查詢?nèi)罩?,我們應該定期查看正在發(fā)生些什么事情。特別是查看是否有一些常用的sql注入攻擊,并且使用load-file、以及outfile的文件系統(tǒng)語法。定期檢查錯誤日志也是很重要的,盡管它們提供的信息沒有查詢?nèi)罩灸敲炊?。記住,與日志進行交互時,日志數(shù)據(jù)是調(diào)試敏感的;如果正把它引入到其他存儲庫進行分析,記住查詢?nèi)罩究赡馨脩裘涂诹?。?)定期計算用戶數(shù),并且使用show grants語句查看哪些特權授予了哪些用戶。例如:mysqlselect user, host form mysql.user;user | host| monty | root | local host
30、|2 rows in set (0.00 sec)mysql show grants for monty%;grants for monty%|grant usage om .to monty% identified by password5d2el9393cc5ef67|grant select on test.* to monty%|2 rows in set (0.00sec)mysqlshow grants for rootlocalhost;|grants for rootlocalhost|grant all privileges on *.* to rootlocalhost i
31、dentified by password 5d2el9393cc5ef67 winth grant option|1 row in set (0.00 sec)我們可能發(fā)現(xiàn)在數(shù)據(jù)庫中有兩個用戶,rootlocalhost和monty,其中monty能從任意主機登錄但僅在測試數(shù)據(jù)庫上有選擇的特權。另外,我們也可以發(fā)現(xiàn)monty和root有相同的口令。(3)周期性地對口令散列進行一些快速檢查。mysql中的散列值是沒有加鹽的,這意味著同樣的口令總是散列到同一個值。如果使用mysql select user、password from mysql.user;|user | password|roo
32、t | 5d2el9393cc5ef6 |monty| 5d2el9393cc5ef67|2 rows in set (0.00 sec)就會看到哪些賬戶擁有相同的口令。3.3mysql數(shù)據(jù)庫的安全實施 本小節(jié)對mysql數(shù)據(jù)庫的安全方面的用戶和訪問控制方面做研究。運用sql語言在mysql應用軟件中做了一些簡單的實現(xiàn)。運用的是mysql-5.1.37-win32。3.3.1 mysql-5.1.37的登錄 服務器:localhost 端口:3306 連接,類型direct 字符集:utf8。圖3.1 mysql-5.1.37的登錄圖3.2用戶登錄3.3.2mysql用戶 create use
33、r用于創(chuàng)建新的mysql賬戶。要使用create user,您必須擁有mysql數(shù)據(jù)庫的全局create user權限,或擁有insert權限。對于每個賬戶,create user會在沒有權限的mysql.user表中創(chuàng)建一個新記錄。如果 賬戶已經(jīng)存在,則出現(xiàn)錯誤。使用自選的identified by子句,可以為賬戶給定一個密碼。user值和 密碼的給定方法和grant語句一樣。特別是,要在純文本中指定密碼,需忽略password關鍵詞。要把 密碼指定為由password()函數(shù)返回的混編值,需包含關鍵字password。首先,使用mysql程序以mysql root用戶來連接服務器:shel
34、l mysql -user=root mysql以root連接到服務器上后,可以添加新賬戶。下面的語句使用grant來設置四個新賬戶:mysql grant all privileges on *.* to montylocalhost - identified by some_pass with grant option;mysql grant all privileges on *.* to monty% - identified by some_pass with grant option;mysql grant reload,process on *.* to adminlocalho
35、st;mysql grant usage on *.* to dummylocalhost;創(chuàng)建的賬戶有下面的屬性: 其中兩個賬戶有相同的用戶名monty和密碼some_pass。兩個賬戶均為超級用戶賬戶,具有完全的權限可以做任何事情。一個賬戶 (montylocalhost)只用于從本機連接時。另一個賬戶(monty%)可用于從其它主機連接。請注意monty的兩個賬戶必須能從任何主機以monty連接。沒有l(wèi)ocalhost賬戶,當monty從本機連接時,mysql_install_db創(chuàng)建的localhost的匿名用戶賬戶將占先。結果是,monty將被視為匿名用戶。原因是匿名用戶賬戶的hos
36、t列值比monty%賬戶更具體,這樣在user表排序順序中排在前面。 一個賬戶有用戶名admin,沒有密碼。該賬戶只用于從本機連接。授予了reload和process管理權限。這些權限允許admin用戶執(zhí)行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予訪問數(shù)據(jù)庫的權限。你可以通過grant語句添加此類權限。 一個賬戶有用戶名dummy,沒有密碼。該賬戶只用于從本機連接。未授予權限。通過grant語句中的usage權限,你可以創(chuàng)建賬戶而不授予任何權限。用上面的sq語言
37、運行后會得到4個不同管理權限的用戶,下圖為montylocalhost用戶,只能從本地連接,是超級賬戶,具有數(shù)據(jù)庫系統(tǒng)的所有權限。圖3.3超級用戶-只能從本機登錄下圖為用戶monty%,它和上面的用戶一樣,具有管理數(shù)據(jù)庫系統(tǒng)的全部權限,但是可以其他主機連接。圖3.4超級用戶-可以從其他主機連接 下圖為用戶admin,該賬戶只用于從本機連接。授予了reload和process管理權限。圖3.5受限制用戶-只能本地連接 下圖為用戶dummy,沒有權限,只能從本地連接。圖3.6無權限用戶3.3.3mysql訪問控制 下面的例子創(chuàng)建3個賬戶,允許它們訪問專用數(shù)據(jù)庫。每個賬戶的用戶名為custom,密碼
38、為obscure。要想用grant創(chuàng)建賬戶,使用下面的語句:/創(chuàng)建用戶grant select,insert,update,delete,create,drop on bankaccount.* to custom1localhost identified by obscure; grant select,insert,update,delete,create,drop on expenses.* to identified by obscure;grant select,insert,update,delete,create,drop on cus
39、tomer.* to custom3server.domain identified by obscure; /將創(chuàng)建的用戶與相應的數(shù)據(jù)庫對應起來insert into db (host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv) values(localhost,bankaccount,custom1,y,y,y,y,y,y);insert into db (host,db,user,select_priv,insert_priv,update_priv,delete_priv,
40、create_priv,drop_priv) values(,expenses,custom2,y,y,y,y,y,y);insert into db (host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv) values(server.domain,customer,custom3,y,y,y,y,y,y);這3個賬戶可以用于· 第1個賬戶可以訪問bankaccount數(shù)據(jù)庫,但只能從本機訪問。第2個賬戶可以訪問expenses數(shù)據(jù)庫,但只
41、能從主機訪問。第3個賬戶可以訪問customer數(shù)據(jù)庫,但只能從主機server.domain訪問。下圖為可以訪問bankaccount數(shù)據(jù)庫的custom1。圖3.6用戶custom1下圖為只能從主機訪問expenses數(shù)據(jù)庫的custom2。因為它只能從,所以你從mysql-5.1.37直接登錄會出現(xiàn)下面的對話框。圖3.7用戶custom2 用戶custom3和用戶custom2一樣,因為都是要從外部訪問數(shù)據(jù)庫,所以會出現(xiàn)一樣的效果。3.4小結 本章首先介紹了mysql網(wǎng)絡數(shù)據(jù)的特點等。讓后重點研究了mysql網(wǎng)絡數(shù)據(jù)的安全機制??偣卜譃?個方面:mysql的背景、訪問控制、mysql的用戶、mysql配置、還有例行審計。針對mysql的不同安全機制我們可以用不同的方法來解決安全問題。再對mysql數(shù)據(jù)庫的安全方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同協(xié)議網(wǎng)絡廣告協(xié)議
- 借款延期合同
- 借款合同借款合同范文
- 《深入解析HTTP協(xié)議》課件
- 金錢與期刊:媒體禁制令及一稿多投禁制
- 區(qū)塊鏈共識機制與改進算法研究進展
- 生長因子促進膝軟骨再生:研究熱點的文獻計量學分析
- 基于機器視覺的智能車系統(tǒng)設計
- 考慮失效相關性的無人機飛控系統(tǒng)可靠性分配與預計
- 基于藍牙的LBS系統(tǒng)攻擊檢測方法研究
- (一模)寧波市2024學年第一學期高考模擬考試 數(shù)學試卷(含答案)
- 父母贈與子女農(nóng)村土地協(xié)議書范本
- 集團母子公司協(xié)議書
- 中醫(yī)病證診斷療效標準
- 南安市第三次全國文物普查不可移動文物-各鄉(xiāng)鎮(zhèn)、街道分布情況登記清單(表五)
- ITSMS-D-038 問題記錄表范本
- 第1課+古代亞非(教學設計)【中職專用】《世界歷史》(高教版2023基礎模塊)
- 新教科版六年級下冊科學全冊教案
- 物業(yè)客服管家的培訓課件
- 2024年房地產(chǎn)行業(yè)的樓市調(diào)控政策解讀培訓
- 《統(tǒng)計學-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時間序列分析和預測
評論
0/150
提交評論