先分3點從全局來看

對作業系統的安全需求:防止對DBMS的非法訪問和修改,保護存儲的數據、文件的安全性,對資料庫用戶的認證
對資料庫系統本身的安全需求:用戶認證管理、訪問控制、審計,資料庫的穩定性,保證數據的安全性與完整性,完善的恢復功能,數據加密
對資料庫應用系統的安全需求:訪問控制、認證管理,對資料庫的保護防止非法訪問和修改,自身的穩定性

名 詞 解 釋 :資料庫(Database)
網站主機或虛擬主機中存取資料的地方。這些資料通常以某種相關性及順序性存放在磁碟、光碟或磁帶等儲存媒體上..more

舉一個實例

SQL注入:利用現有應用程式,將(惡意)的SQL命令注入到後台資料庫引擎執行的能力,這是SQL注入的標準釋義。
所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙伺服器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,比如典型的攻擊類型是在newsid變數後加後sql語句:exec xp_cmdshell ‘net user’
這樣就執行了一個加用戶的命令了。

Web應用程式訪問資料庫會造成特定的一些潛在安全問題。SQL注入攻擊仍然穩居駭客至愛兵器榜的首位,對那些想要保護數據安全的企業來說,這是個大麻煩。
據CVE的2006年度統計數據顯示,SQL注入攻擊漏洞呈逐年上升的狀態

如何做好資料庫的安全工作

1.資料庫基本安全架構

從廣義上講,資料庫的安全首先依賴於網路系統。網路系統的安全是資料庫安全的第一道屏障,外部入侵首先就是從入侵網路系統開始的。

解決方案:防火牆,入侵檢測 IDS—Instrusion Detection System,協作式入侵檢測技術,IPS:Intrusion Prevention System 入侵防禦系統

對於宿主作業系統層次,作業系統安全策略用於配置本地電腦的安全設置,包括密碼策略、賬戶鎖定策略、審核策略、IP安全策略、用戶權利指派、加密數據的恢復代理以及其它安全選項。
2 資料庫用戶及權限

減少特權管理,不要顯式地將同一特權組授權給幾個用戶,只需將這特權組授給角色,然後將角色授權給每一用戶。
動態特權管理,如果一組特權需要改變,只需修改角色的特權,所有授給該角色的全部用戶的安全域將自動地反映對角色所作的修改。
特權的選擇可用性,授權給用戶的角色可選擇地使其使能(可用)或使不能(不可用)。
應用可知性,當一用戶經一用戶名執行應用時,該資料庫應用可查詢字典,將自動地選擇使角色使能或不能。
專門的應用安全性,角色使用可由口令保護,應用可提供正確的口令使用權角色使能,達到專用的應用安全性。因用戶不知其口令,不能使角色使能。
3 資料庫加密技術

庫外加密
將資料庫的文件作為加密對像,在庫外加密方式中,加/解密過程發生在DBMS之外,DBMS管理的是密文。加/解密過程大多在客戶端實現,也有的由專門的加密伺服器或硬體完成。
庫內加密
加密對像為資料庫中存儲的數據,比如表、記錄、元素、數據等。庫內加密在DBMS內核層實現加密,加/解密過程對用戶與應用透明,數據在物理存取之前完成加/解密工作。
硬體加密
在物理存儲器與資料庫系統之間的硬體加密裝置,加密解密操作由硬體中間設備完成
4 資料庫備份技術

資料庫有三種標準的備份方法,它們分別為導出/導入(EXPORT/IMPORT)、冷備份、熱備份。
— 導入/導出備份:邏輯備份
— 冷備份:物理備份
— 熱備份:物理備份
設定資料庫備份計劃,啟動資料庫歸檔模式,定期執行資料庫備份,監控檢查備份情況

5 資料庫審計技術

審計是對選定的用戶動作的監控和記錄,通常用於:
審查可疑的活動。例如:數據被非授權用戶所刪除,此時安全管理員可決定對該 資料庫的所有連接進行審計,以及對資料庫的所有表的成功地或不成功地刪除進行審計。
監視和收集關於指定資料庫活動的數據。例如:DBA可收集哪些被修改、執行了多少次邏輯的I/O等統計數據。

資料庫常見攻擊與防護

1 破解弱口令或預設的用戶名及口令

Oracle資料庫常見缺省用戶:SYS、SYSTEM、DBSNMP、SCOTT
資料庫常見缺省用戶:SA

2 特權提升

特權提升:惡意的用戶佔有超過其應該具有的系統特權
原因:
資料庫管理系統漏洞
如:oracle 10g DBMS_Scheduler本地特權提升漏洞:任何擁有CREATE JOB權限可通過dbms_scheduler執行一個資料庫作業而轉換SESSION_USER到SYS,本地攻擊者可以利用此漏洞提升權限。
錯誤的配置:一個用戶被錯誤地授與了超過其實際需要用來完成工作的、對資料庫及其相關應用程式的訪問和特權。
3 利用未用的資料庫服務和功能中的漏洞

利用未用的和不需要的資料庫服務和功能中的漏洞
利用未用的和不需要的資料庫服務和功能中的配置缺陷
4 針對未打補丁的資料庫漏洞

雖然Oracle和其它的資料庫廠商確實在為其漏洞打補丁,問題是單位不能跟得上這些補丁,因此它們總是處於企圖利用某種機會的老謀深算的攻擊者控制之下。
5 SQL注入攻擊及防護

漏洞原理:在資料庫應用的編寫過程中,由於工程師沒有對用戶輸入數據進行規範檢查,導致攻擊者能夠通過構造惡意輸入數據,操作資料庫執行,甚至能直接攻擊作業系統
SQL Injection(SQL注入),就是利用某些資料庫的外部應用把特定的數據命令插入到實際的資料庫操作語言當中,從而達到入侵資料庫乃至作業系統的目的。

解決方案:

從根本上避免出現SQL Injection漏洞,必須提高WEB工程師的安全意識和安全編寫技能來解決程式本身的漏洞;
語法中必須對所有用戶輸入進行嚴格的過濾,對單引號、雙引號以及“–”等符號、非指定的數據類型及數據長度進行過濾;
用存儲過程來執行所有的查詢
限製表單或查詢字符串輸入的長度
檢查用戶輸入的合法性,確信輸入的內容只包含合法的數據
將用戶登錄名稱、密碼等數據加密保存
檢查提取數據的查詢所返回的記錄數量
合理設置資料庫應用程式的權限;
對資料庫系統進行必要的安全配置。

更多

Related Posts

專欄文摘

社群行銷如何抓住大學生的心

  各大院校在校大學生無疑是社群媒體上的活躍分子。這些人年輕 Read more...

專欄文摘

這時代人人必須學行銷? 世界越來越像一個巨大的市場

  “網絡行銷不是你想不想學的問題,而是生存就必須學的問題” Read more...

專欄文摘

網頁互動之設計美學提高網站瀏覽體驗

當你瀏覽一款網站時,一般會迅速的對網站的外觀和使用感受做個評判,整體的 Read more...