軟件測試之產品安全性測試

發表于:2009-07-09來源:作者:點擊數: 標簽:軟件測試網站安全測試
軟件測試之產品安全性測試 網站安全測試 安全性測試是安全的軟件生命周期中一個重要的環節。 進行安全測試需要精湛的攻擊技術、敏銳的黑客思維和豐富的 開發 經驗。這些 測試人員 往往被稱作Tiger Team、Ethic Hacker、Penetration tester或者Pen-tester。大

軟件測試之產品安全性測試   網站安全測試

安全性測試是安全的軟件生命周期中一個重要的環節。

  進行安全測試需要精湛的攻擊技術、敏銳的黑客思維和豐富的開發經驗。這些測試人員往往被稱作Tiger Team、Ethic Hacker、Penetration tester或者Pen-tester。大型的軟件公司一般都有自己的產品安全部專職負責軟件的安全測試,有時也會雇傭來自于安全咨詢公司的安全專家實施攻擊測試。

  一次安全性測試實際上就是一輪多角度、全方位的攻擊。由于系統安全所特有的“木桶效應”,測試的全面性對安全測試人員的要求更高,他們不能像攻擊者那樣止步于一個漏洞,而是要搶在攻擊者之前盡可能多地找到產品中的“所有”漏洞,以減少產品遭到攻擊的可能性。與攻擊者比起來,安全測試人員也有一定優勢,就是他們能夠獲得更多的技術支持,比如來自開發團隊的技術文檔等。

  如果軟件生命周期中沒有安排安全性測試環節,也不用擔心這些漏洞發現不了——攻擊者會為您的產品做這類測試,只是測試的結果和攻擊代碼可能會直接向全世界公布出來,用0day曝光的方式毀掉公司的聲譽。

  普通的功能性測試的主要目的是“確保軟件能夠完成預先設計的功能”;而安全性測試的主要目的是“確保軟件不會去完成沒有預先設計的功能”。

  安全性測試非常靈活,需要像黑客一樣思考,有時甚至需要一點靈感,因此沒有固定的步驟可以遵循。這里給出一些通用的思路和方法,希望這些歸納出的攻擊思路能夠拋磚引玉,啟發您設計出恰當的測試方案。

 ?。?)畸形的文件結構:畸形的Word文檔結構、畸形的mp3文件結構等都可能觸發軟件中的漏洞。File Fuzz是測試這類漏洞的好方法。

 ?。?)畸形的數據包:軟件中存在客戶端和服務器端的時候,往往會遵守一定的協議進行通信。程序員在實現時往往會假定用戶總是使用官方的軟件,數據結構總是遵守預先設計的格式。試著自己實現一個偽造的客戶端,更改協議中的一些約定,向服務器發送畸形的數據包,也許能發現不少問題;反之,客戶端在受到“出乎意料”的服務器端的數據包時,也可能遇到問題。

 ?。?)用戶輸入的驗證:所有的用戶輸入都應該進行限制,如長字符串的截斷、轉義字符的過濾等。在Web應用中應該格外注意SQL注入和XSS注入問題,SQL命令、空格、引號等敏感字符都需要得到恰當的處理。

 ?。?)驗證資源之間的依賴關系:程序員往往會假設某個dll文件是存在的,某個注冊表項的值符合一定格式等。當這些依賴關系無法滿足時,軟件往往會做出意想不到的事情。例如,我曾遇到過某些軟件把身份驗證函數放在一個dll文件中,當程序找不到這個文件時,身份驗證過程將被跳過!

 ?。?)偽造程序輸入和輸出時使用的文件:包括dll文件、配置文件、數據文件、臨時文件等。檢查程序在使用這些外部的資源時是否采取了恰當的文件校驗機制。

 ?。?)古怪的路徑表達方式:有時軟件會禁止訪問某種資源,程序員在實現這種功能時可能會簡單地禁用該資源所在的路徑不被訪問。但是,Windows的路徑表示方式多種多樣,很容易漏掉一些路徑。例如,表17-3-1列出了一些對Windows XP下計算器程序訪問的路徑表達方式。

  表17-3-1 Windows XP下計算器程序訪問的路徑

訪問Windows XP下計算器程序的不同方式說明 C:\WINDOWS\system32\calc.exe 普通的絕對路徑 C:/WINDOWS/system32/calc.exe UNIX路徑格式 \\?\c:\WINDOWS\system32\calc.exe 通過瀏覽器或run訪問 file://C:\WINDOWS\system32\calc.exe 通過瀏覽器或run訪問 %windir%\system32\calc.exe 通過環境變量訪問 \\127.0.0.1\C$\WINDOWS\system32\calc.exe 需要共享C盤 C:\WINDOWS\..\WINDOWS\.\system32\calc.exe 路徑回溯 C:\WINDOWS\.\system32\calc.exe 路徑回溯

  在使用了UTF-8編碼之后的URL路徑更加五花八門,在做安全測試時應該確認被禁止使用的資源能夠徹底被禁用。

 ?。?)異常處理:確保系統的異常能夠得到恰當的處理。在Web應用中應當著重確保服務器不會把錯誤信息未經處理地顯示給客戶端,因為錯誤信息的直接反饋很可能會造成敏感信息泄露,為注入攻擊者提供深度入侵的線索。以我個人的經驗,沒有經過安全測試的網站很容易出現這個問題。

 ?。?)訪問控制與信息泄露:很多Web開發人員會假設用戶不知道Web目錄結構,并總是首先訪問Web根目錄下的 index頁面或者login頁面,所有的session控制都從這個默認頁面做起。一個攻擊者可能會嘗試直接訪問Web目錄下的任意文件,如果頁面重定向沒有做好,可能會引起攻擊者繞過驗證機制訪問未經許可的內容;如果路徑限制沒有做好,攻擊者甚至可以通過路徑回溯的方法訪問服務器上的任意文件。

 ?。?)對程序反匯編:檢查程序的PE文件中是否存有明文形式的密碼、序列號等敏感信息。

  由Mark Dowd、John McDonald、Justin Schuh合著的《The Art of Software Security Assessment》堪稱安全測試技術書籍的經典,此外微軟的Tom Gallagher、Bryan Jeffries和Lawrence Landauer合著的《Hunting Security Bugs》也是一本值得推薦的安全測試指導書籍??上У氖沁@兩本著作目前國內都還沒有引進,而50美元的價格也足以讓大多數讀者望而卻步。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97