國內多家軟件公司產(chǎn)品存在安全隱患
筆者從事網(wǎng)絡管理工作,數(shù)月前,應邀對本地一家公司做了一次安全檢測,在檢測就要結束的時候,在內網(wǎng)用嗅探到了一個SQLServer數(shù)據(jù)庫的SA密碼,經(jīng)該公司的網(wǎng)絡管理人員介紹說,該數(shù)據(jù)庫服務器運行了一套軟件,在互聯(lián)網(wǎng)有固定的ip地址,用于與各地子公司交換數(shù)據(jù)用的,SA密碼是軟件安裝人員設置的,數(shù)據(jù)庫服務器從來沒有出現(xiàn)過安全問題。
盡管這個SA密碼非常復雜,10多位字符,由數(shù)字和字母混合組成,但筆者一看到這個SA密碼的部分字符,馬上想到國內的一家軟件公司,會不會這個家軟件公司的SA密碼設置都是相同的,或者大部分是這個?經(jīng)過幾個月的測試,筆者發(fā)現(xiàn)了更為驚人的情況,國內多個軟件公司的部分數(shù)據(jù)庫軟件產(chǎn)品都存在安全隱患,嚴重威脅到運行服務器和數(shù)據(jù)的安全,入侵者可以在短時間內完全控制互聯(lián)網(wǎng)上大量數(shù)據(jù)庫服務器。SA密碼泄露會造成什么危害請參考筆者的這篇文章:http://www.cnking.org/post/286.html。由于眾所周知的原因,本文沒有進行抓圖說明,下文僅以字母代表軟件公司的名稱。
1、公司A的某產(chǎn)品后臺數(shù)據(jù)庫使用的是SQLServer數(shù)據(jù)庫,在服務器端安裝時會在數(shù)據(jù)庫中建立一個用戶,該用戶和SA的權限一樣,盡管密碼相對復雜一些,但密碼都是相同的,一旦泄露出去,數(shù)據(jù)庫服務器的安全肯定會受到威脅,而且產(chǎn)品說明書中并沒有說明該用戶的存在。公司B和C的產(chǎn)品同樣存在這用情況。
2、還是公司A的某個產(chǎn)品,也是使用的SQLServer數(shù)據(jù)庫,不知道什么原因,SA的密碼都是相同的,帶有很明顯的特征(非弱口令),筆者懷疑是該公司進行技術人員培訓時都以該密碼作為例子造成的。公司D、E也存在這種情況。
3、公司F、G、H的某些產(chǎn)品也是使用的SQLServer數(shù)據(jù)庫,在安裝服務器端時也會在數(shù)據(jù)庫中建立一個用戶,好在只是普通權限,只可以對本數(shù)據(jù)庫進行操作,無法執(zhí)行master數(shù)據(jù)庫中的擴展存儲過程,這些用戶的密碼有的和用戶名是一樣的,有的以明文的形式保存在ini配置文件中,這些用戶名和密碼一旦泄露會對數(shù)據(jù)安全產(chǎn)生威脅,如果什么時候再出個數(shù)據(jù)庫提權漏洞后果也是不堪設想。
4、公司I的某個軟件產(chǎn)品是安裝在嵌入式設備中的,后臺數(shù)據(jù)庫也是SQLServer,SA的密碼默認設置很復雜,但都是相同的,而且該密碼以明文的形式保存在數(shù)據(jù)庫中的某個表中。經(jīng)過測試還發(fā)現(xiàn)在數(shù)據(jù)庫中還存在一個用戶,權限和SA一樣,密碼和SA的不同,但也都是固定的,不知道在哪個環(huán)節(jié)建立的該用戶。
出于安全和方便管理考慮,不少軟件公司在安裝完自己的產(chǎn)品后,會推薦用戶購買其他公司的遠程接入產(chǎn)品,單從遠程接入軟件來看,安全措施做的都比較好,都有特征碼綁定、KEY等安全功能選擇,入侵者無法通過開啟服務器的遠程桌面服務進行連接控制,但由于SA密碼已經(jīng)泄露,遠程接入軟件也都存在被攻破的可能。
遠程接入軟件公司J可對接入方的網(wǎng)卡物理地址進行認證,入侵者在獲得服務器的SA密碼后可以通過Ipconfig /all命令獲得服務器的網(wǎng)卡物理地址,然后將自己的計算機網(wǎng)卡物理地址修改成服務器的網(wǎng)卡物理地址,運行遠程接入的客戶端就可以連接上服務器,進行圖形操作了,當然前提是設置中允許服務器遠程接入。
遠程接入軟件公司K的接入客戶端可以通過服務器開啟的web方式下載,但需要在web頁面中輸入正確的用戶名和密碼,而web頁面的用戶名和密碼保存在該遠程接入軟件的安裝目錄下的某個文件中,入侵者可以通過SA密碼使用type命令獲取該文件中的信息,用戶名是明文,密碼則是經(jīng)過某種(不方便透露)加密的,入侵者破解加密密碼獲得明文后,就可以登陸到web管理界面的后臺,獲得分發(fā)的接入客戶端,運行客戶端就可以圖形化管理服務器了。
說了這么多的安全隱患,都與使用SQLServer數(shù)據(jù)庫有關,但這不代表SQLServer數(shù)據(jù)庫存在安全問題,恰恰因為SQLServer數(shù)據(jù)庫出色的穩(wěn)定性和安全性使其得到極為廣泛的應用,安全隱患只是軟件“偷偷摸摸”建立的數(shù)據(jù)庫用戶造成的,使用其他數(shù)據(jù)庫的軟件肯定也存在類似隱患,只是筆者沒有測試過,特此說明,以免引起大家的誤會。
在數(shù)據(jù)庫中添加用戶似乎是某些軟件公司的“潛規(guī)則”,我想軟件公司的目的是好的,是為了方便用戶,讓用戶只需要把精力放在前臺的程序操作上,而不需要關心后臺是如何運作的,卻忽視了安全這個環(huán)節(jié),如果能在安裝應用程序時讓用戶自己設置數(shù)據(jù)庫新用戶的密碼,并將該密碼加密后保存在配置文件中,這樣會更安全和靈活,相信聰明的程序員一定會解決這個問題。
在互聯(lián)網(wǎng)上有非常多的服務器運行著上面這些有安全隱患的軟件,這些服務器或擁有固定ip地址,或使用花生殼、每步等軟件解析,誰家的孩子,誰家清楚,希望這篇文章能引起所有軟件公司對產(chǎn)品安全的重視,不要因為你們的疏忽而讓數(shù)據(jù)庫服務器的安全性受到威脅,讓廣大的系統(tǒng)維護人員和網(wǎng)管員背黑鍋。