SQL Server安全問題案例研究
編者按:本系列關于SQL Server安全的文章共分四部分,本文是第一部分。
數據庫備份被盜了,病毒攻擊了服務器,數據庫有未經授權的更改——如果SQL Server安全保護設置寬松的話,這些事情都會發生。
數據庫技術本質上就是許多信息系統的組件,這是由于它們用來存儲大量敏感企業數據而決定的,比如客戶信息和其它機密商業數據。正因如此,把像SQL Server這樣的數據庫稱為任何組織最有價值的資產并不為過,這也正是數據庫在內部和外部攻擊面前必須確保安全的原因。
不幸的是,事實并非如此,許多組織仍然發現數據庫安全是一個不太受人關注的話題。結果,他們沒有全面的數據庫安全策略來保護他們的數據庫基礎設施不受內部和外部攻擊。許多數據庫甚至不能滿足常規法規需求,比如Gramm-Leach-Bliley法案(簡稱GLBA)、歐洲數據保護聯盟(簡稱EUDPD)、健康保險流通與責任法案(簡稱HIPAA)、支付卡行業數據安全標準(簡稱PCI DSS)以及塞班斯法案(簡稱SOX)。
公司缺乏SQL Server安全策略
XYZ公司是一家大型制藥公司,在全球范圍內針對小型制藥公司銷售各種醫藥產品。因為SQL Server有良好的往績記錄,漏洞和弱點比較少,所以XYZ公司使用SQL Server作為主數據庫技術,存儲公司的保密數據,比如客戶信息、卡信息和員工信息。這些數據是從原始Excel電子表格中移植過來的。近幾年來,XYZ公司已經在其所有業務領域獲得了顯著增長。然而,在過去一年里,該公司卻面臨巨大輿論壓力——泄露客戶數據,未經授權訪問以及其它造成SQL Server基礎設施不安全的原因。
下面是XYZ公司SQL Server基礎設施安全漏洞列表:
◆未經授權的更改。
在過去的一年中,未經授權的數據庫變更是其SQL Server基礎設施故障的主要因素。這是因為XYZ公司目前沒有變更管理流程。未經授權對數據庫變更意味著更大的外部威脅,比如來自外部黑客或惡意代碼的攻擊。
對于XYZ公司SQL Server數據庫代碼部署,很需要一套文檔化而且健全的變更管理流程,因為它可以確保授權變更應用到生產數據庫并避免不必要的風險。
◆未授權用戶。
在少數情況下,會有未經授權的用戶連續訪問XYZ公司的SQL Server數據庫。這主要發生在SQL Server實例配置為混合授權模式的情況下,或者“BUILTIN\Administrators”是“系統管理員”角色也有可能發生。經調查,大部分SQL登錄(包括用sysadmin(sa)權限的登錄)存在漏洞或者空密碼,而且用戶沒有被強制要求定期修改密碼。
微軟SQL Server安全最佳實踐建議你在混合認證模式使用Windows認證,因為SQL Server存儲的SQL登錄密碼是純文本形式。如果混合模式是為了向后兼容的緣故,那么要確保給sysadmin和所有其它SQL登錄賬號使用復雜密碼。這一點可以通過對sysadmin和所有其它SQL登錄用戶啟用“強制密碼過期”和“強制實施密碼策略”選項實現。
SQL Server安全最佳實踐還推薦對這些賬號重命名,因為sysadmin是超級用戶,許多黑客都知道這個賬號,修改用戶名會使得黑客控制攻擊更困難。最佳實踐還建議不要使用sysadmin管理SQL Server。同時,確保“BUILTIN\Administrators”不是sysadmin角色成員;而要授予sysadmin權限給本地管理員組中的任何賬號。
◆SQL注入攻擊。
SQL注入是未經授權訪問數據庫的另一種方式。那是因為應用程序中的SQL代碼允許直接更新表,而且大部分SQL代碼參數沒有做驗證。推薦驗證代碼參數并用SQL Server存儲過程執行所有數據庫更新。
◆來賓用戶。
使用與數據庫內部用戶沒有關聯的用戶登錄仍然有可能訪問到敏感數據。這是因為這些數據庫啟用了來賓賬戶。所以我們要禁用來賓賬號。這將確保公共服務器角色不能訪問到SQL Server中的用戶數據庫,除非你明確地賦予了對數據庫的訪問權限。
◆計算機病毒攻擊。
XYZ公司的SQL Server在前幾年已經被計算機病毒攻擊了幾次。大部分SQL Server安全補丁、修復包以及更新包還沒有應用到這些受影響的SQL Server上。微軟公司持續發布的安全更新和補丁應該升級上去,這樣能保護避免前述問題。
◆使用慣用的TCP/IP端口。
人們已經注意到大部分服務器攻擊情況,黑客使用的是慣用的TCP/IP端口,比如1433和1432。如果條件允許的話,應該修改這些標準端口,可以確保SQL Server安全。
◆數據庫備份被盜。
在過去幾個月里,人們已經注意到由于網絡安全性不足導致的數據庫備份被盜情況。而且,數據已經被盜,從表復制到操作系統文件。XYZ公司接到建議,加強數據庫備份安全性,啟用透明數據加密。另外,要確保SQL Server實例上的“xp_cmdshell ”和“OPENROWSET ”保持禁用,只有系統管理員能訪問這些SQL Server功能特性。
◆缺乏監視。
目前,XYZ公司SQL Server數據庫的SQL Server用戶活動并沒有被監視起來。很明顯,這就為黑客打開了大門,他們可以訪問該公司服務器而沒有任何后顧之憂。SQL Server提供了各種功能,比如登錄審計或者登錄觸發器,通用遵守準則,ddl觸發器,甚至還有專門跟蹤SQL Server惡意活動的通知和審計。