首先,改變安全測試的視角。我認為,如果我們想做好安全測試,我們必須首先改變查看軟件的視角,無論是有完整的堆棧工作經驗還是只有一部分技術專長。例如,讓我們看一下同一幅畫。許多人第一眼看到兩張臉,但是許多人看到一個大花瓶。這是由不同的視角造成的。當我第一次接觸安全測試時,我深深地感受到了這一點。當時,我還在測試一個網絡應用程序的帳戶登錄功能。當我們嘗試通過鍵入不正確的登錄名登錄時,計算機瀏覽器上的消息是“此登錄名將不可用”。當我們嘗試正確的登錄名和不正確的登錄密碼時,消息提示會變成“不正確的登錄密碼。”我對這個明顯的錯誤提示非常滿意。想象一下,如果我是一個真正的終端產品,這個信息內容會幫助我縮小糾錯范圍,提高工作效率,這是非常好的。然而,蹲在我旁邊的安全測試工程師立即跳了出來:“這個消息表明,它必須改變!敏感信息內容暴露了!”看到我一臉茫然,安全測試工程師告訴我,根據我們的信息,系統軟件的有意用戶可以推斷出系統軟件中已經存在什么登錄名,然后用這個登錄名對登錄密碼進行暴力破解,從而縮小了解密的范圍。因此,該信息內容不僅為合理合法的用戶提供了方便,也為系統軟件的惡意用戶提供了方便。通常,這種便利對系統軟件的有意用戶的好處遠遠高于對合理合法用戶的好處。這次親身經歷不僅讓我震驚,也讓我意識到很多安全系統的漏洞以前就已經擺在我的眼前,但是我沒有看到它們,因為我想得太多了。事實上,在我們親身經歷的不同新項目中,當我們改變視角時,我不需要尋找一些安全系統漏洞,而只需要進入我的視野。這一切都很容易得到。其次,改變測試中的模擬目標,這樣我們可以從不同的角度觀察軟件。我們必須改變我們模擬的模擬目標。這也是我們一起練習換角度的合理方式。當我們進行非安全測試時,我們通常認為自己是一個合理合法的客戶,然后我們才開始驗證系統軟件是否能夠達到預設的總體目標。例如,對于一個網上商城系統,我們將認證系統軟件是否允許客戶訪問和購買產品,我們還將測試一些異常的個人行為,比如購買的產品總數是否不是一個大數字,而是一串沒有意義的英文字母,看看系統軟件能否給出一個優雅的回答。我們測試的目的通常是
行業資訊