兩位一體:論信息化中的應(yīng)用安全和數(shù)據(jù)庫安全
黑盒測試 黑盒測試是一種把軟件產(chǎn)品當(dāng)成是一個黑箱的測試技術(shù),這個黑箱有入口和出口,測試過程中只需要了解黑箱的輸入和輸出結(jié)果,不需要了解黑箱里面具體是怎樣操作的。這當(dāng)然很好,因為測試人員不用費神去理解軟件里面的具體構(gòu)成和原理,測試人員只需要像用戶一樣看待軟件產(chǎn)品就行了。
例如,銀行轉(zhuǎn)賬系統(tǒng)提供給用戶轉(zhuǎn)賬的功能,則測試人員在使用黑盒測試方法時,不需要知道轉(zhuǎn)賬的具體實現(xiàn)代碼是怎樣工作的,只需要把自己當(dāng)成用戶,模擬盡可能多的轉(zhuǎn)賬情況來檢查這個軟件系統(tǒng)能否按要求正常實現(xiàn)轉(zhuǎn)賬功能即可。
如果只像用戶使用和操作軟件一樣去測試軟件黑盒測試可能存在一定的風(fēng)險。例如,某個安全性要求比較高的軟件系統(tǒng),開發(fā)人員在設(shè)計程序時考慮到記錄系統(tǒng)日志的必要性,把軟件運行過程中的很多信息都記錄到了客戶端的系統(tǒng)日志中,甚至把客戶端連接服務(wù)器端的數(shù)據(jù)庫連接請求字符串也記錄到了系統(tǒng)日志中,像下面的一段字符串:
"Data Source=192.168.100.99;Initial Catalog=AccountDB;User ID=sa;PassWord=123456;
那么按照黑盒測試的觀點,這是程序內(nèi)部的行為,用戶不會直接操作數(shù)據(jù)庫的連接行為,因此檢查系統(tǒng)日志方面的測試是不會做的。這明顯構(gòu)成了一個Bug,尤其是對于安全性要求高的軟件系統(tǒng),因為它暴露了后臺數(shù)據(jù)庫賬號信息。
有人把黑盒測試比喻成中醫(yī),做黑盒測試的測試人員應(yīng)該像一位老中醫(yī)一樣,通過“望、聞、問、切”的方法,來判斷程序是否“有病”。這比單純的操作黑箱的方式進(jìn)了一步,這種比喻給測試人員一個啟示,不要只是簡單地看和聽,還要積極地去問,積極地去發(fā)現(xiàn)、搜索相關(guān)的信息。應(yīng)該綜合應(yīng)用中醫(yī)看病的各種“技術(shù)”和理念來達(dá)到找出軟件“病癥”的目的,具體作法如下:
“望”,觀察軟件的行為是否正常;
“聞”,檢查輸出的結(jié)果是否正確;
“問”,輸入各種信息,結(jié)合“望”、“聞”來觀察軟件的響應(yīng)程度;
“切”,像中醫(yī)一樣給軟件“把脈”,敲擊一下軟件的某些“關(guān)節(jié)”。
白盒測試如果把黑盒測試比喻成中醫(yī)看病,那么白盒測試無疑就是西醫(yī)看病了。測試人員采用各種儀器和設(shè)備對軟件進(jìn)行檢測,甚至把軟件擺上手術(shù)臺解剖來看個究竟。白盒測試是一種以理解軟件內(nèi)部結(jié)構(gòu)和程序運行方式為基礎(chǔ)的軟件測試技術(shù),通常需要跟蹤一個輸入經(jīng)過了哪些處理,這些處理方式是否正確。
在很多測試人員,尤其是初級測試人員看來,白盒測試是一種只有非常了解程序代碼的高級測試人員才能做的測試。熟悉代碼結(jié)構(gòu)和功能實現(xiàn)的過程當(dāng)然對測試有很大的幫助,但是從黑盒測試與白盒測試的區(qū)別可以看出,有些白盒測試是不需要測試人員懂得每一行程序代碼的。
如果把軟件看成一個黑箱,那么白盒測試的關(guān)鍵是給測試人員戴上一副X光透視眼鏡,測試人員通過這副X光透視眼鏡可以看清楚輸入到黑箱中的數(shù)據(jù)是怎樣流轉(zhuǎn)的。
一些測試工具就像醫(yī)院的檢測儀器一樣,可以幫助了解程序的內(nèi)部運轉(zhuǎn)過程。例如,對于一個與SQL Server數(shù)據(jù)庫連接的軟件系統(tǒng),可以簡單地把程序的作用理解為:把用戶輸入的數(shù)據(jù)通過SQL命令請求后臺數(shù)據(jù)庫,數(shù)據(jù)庫把請求的數(shù)據(jù)返回給程序的界面層展示給用戶。可以把SQL Server自帶的工具事件探查器當(dāng)成是一個檢查SQL數(shù)據(jù)傳輸?shù)木軆x器,它可以記錄軟件客戶端與服務(wù)器數(shù)據(jù)庫之間交互的一舉一動,從而讓測試人員可以洞悉軟件究竟做了哪些動作。
在測試過程中,應(yīng)該綜合應(yīng)用黑盒測試方法和白盒測試方法,按需要采用不同的技術(shù)組合。不要用黑盒測試方法和白盒測試方法來劃分自己屬于哪一類測試人員,一名優(yōu)秀的測試人員應(yīng)該懂得各種各樣的測試技術(shù)和查找Bug的手段。
最后我們談?wù)勑碌姆阑饓栴}。到目前為止,我們都是側(cè)重于預(yù)防措施。但在現(xiàn)實世界中,我們不可能總是改編程序和環(huán)境,所以我們必須采用其他技術(shù)措施。這就是為什么會產(chǎn)生新的防火墻。
防火墻用于應(yīng)用程序或者監(jiān)控流量的運行監(jiān)控,也可以在執(zhí)行運行時進(jìn)行分析。防火墻可以找出攻擊,并阻止嘗試或修改的要求,來確保WEB服務(wù)器和數(shù)據(jù)庫服務(wù)器的安全運行。
目前不光有WEB應(yīng)用防火墻和網(wǎng)絡(luò)防火墻能防范攻擊者透過應(yīng)用層和網(wǎng)絡(luò)層的攻擊;“數(shù)據(jù)庫防火墻”也于這兩年在不斷的數(shù)據(jù)庫泄密事件中出現(xiàn)在公眾的視線里,國內(nèi)稱之為“數(shù)據(jù)庫審計”產(chǎn)品,這些產(chǎn)品能給數(shù)據(jù)庫提供實時的網(wǎng)絡(luò)存儲與訪問的安全。
任何一個好的數(shù)據(jù)庫安全策略都應(yīng)包括監(jiān)控和審計,以確保保護(hù)對象正常運行,并且運行在正確的位置上,這也是個非常耗時的過程。由于缺乏時間和工具,大多數(shù)用戶對于數(shù)據(jù)庫配置的檢查往往也僅是抽查而已。
這里還需要指出的是目前多數(shù)人認(rèn)為“數(shù)據(jù)庫審計”等同于數(shù)據(jù)庫安全,事實上,數(shù)據(jù)庫安全遠(yuǎn)遠(yuǎn)不是數(shù)據(jù)庫審計可以搞定的,數(shù)據(jù)庫審計只是數(shù)據(jù)庫安全的一個很小的方面,之所以有時候?qū)Φ绕饋恚环矫媸怯捎谑袌鲂麄鲗?dǎo)致的誤導(dǎo),另一方面的確是這個部分的問題比較容易產(chǎn)品化/工具化,技術(shù)實現(xiàn)相對比較成熟。數(shù)據(jù)庫安全應(yīng)該包括:數(shù)據(jù)庫資產(chǎn)管理、數(shù)據(jù)庫配置加固、職責(zé)分離、特權(quán)用戶控制、數(shù)據(jù)庫弱點掃描和補(bǔ)丁管理、數(shù)據(jù)庫加密、數(shù)據(jù)庫審計。
最后,我們還是回到應(yīng)用程序的安全以及與數(shù)據(jù)庫之間的相互作用問題上。即我們必須要考慮到的問題是應(yīng)用程序的安全以及與數(shù)據(jù)庫之間的相互作用,尤其是對于當(dāng)今流行的高度動態(tài)的和互動的網(wǎng)絡(luò)應(yīng)用程序而言。理解數(shù)據(jù)庫與應(yīng)用程序和系統(tǒng)環(huán)境之間的作用可以更加提升數(shù)據(jù)的安全性。
有問題是客觀情況,其實我們需要的不是過多的責(zé)難,而是不斷改進(jìn)問題本身,當(dāng)我們被迫把安全做的簡單時,我們就被迫直接面對真正的問題。當(dāng)我們不能用表面的裝飾交差時,我們就不得不做好真正的本質(zhì)部分。希望本文可以讓讀者了解到一系列管理和風(fēng)險降低方面的策略,不論你是否愿意配置數(shù)據(jù)庫防火墻、進(jìn)行源代碼審記或者嚴(yán)格地控制數(shù)據(jù)庫管理系統(tǒng),其目的都是相同的:做好應(yīng)用安全和數(shù)據(jù)安全的兩位一體,保護(hù)好重要數(shù)據(jù)。
責(zé)任編輯:黎陽錦
-
發(fā)電電力輔助服務(wù)營銷決策模型
2019-06-24電力輔助服務(wù)營銷 -
電力線路安全工作的組織措施和技術(shù)措施分別是什么?
-
兩會保電進(jìn)行時丨陜西電力部署6項重點任務(wù)
-
發(fā)電電力輔助服務(wù)營銷決策模型
2019-06-24電力輔助服務(wù)營銷 -
繞過安卓SSL驗證證書的四種方式
-
網(wǎng)絡(luò)何以可能
2017-02-24網(wǎng)絡(luò)
-
Windows 10首發(fā) 四大安全提升
-
超級安卓漏洞 “寄生獸”影響數(shù)千萬手機(jī)應(yīng)用
-
航空公司首出現(xiàn)操作系統(tǒng)被黑
2015-06-23航空公司