可是,就在我身邊坐著的安全測試人員馬上跳了出來:“這個提示信息需要改!敏感信息暴露了!”看著我一臉茫然,這位安全測試人員告訴我,通過我們的提示信息,惡意的系統使用者可以推測出哪些用戶名已經存在于系統中,然后利用這些用戶名可以再進行密碼的暴力破解,縮小破解的范圍。所以,這個信息雖然為合法用戶提供了便利,也為不懷好意的系統使用者提供了 便利。而往往這種便利為惡意的系統使用者帶來的好處遠大于給合法用戶帶來的好處。
這個經歷讓我受震動的同時,也意識到以前可能很多安全漏洞已經擺在我的面前,我卻沒有看出來,因為我把它們過濾了。事實證明,在后來經歷的不同項目中,而當我轉換了視角,有些安全漏洞不需要我去找,而是自己跑到我眼前來的。真是得來全不費功夫。
為了能以不同的視角來觀察軟件,我們必須改變我們所模擬的對象。這也是一個讓我們刻意練習轉換視角的有效方法。
我們在做非安全測試的時候通常把自己想象成一個合法用戶,然后開始驗證系統是否能完成預設的目標。比如對于一個網上商城,我們會驗證系統是否能讓用戶完成商品的瀏覽與購買,我們也會測試一些異常的行為,比如購買的商品數量不是數字而是一串無意義的字母時,目的是看系統是否能比較優雅的做出回應。我們這么測試的目的往往是為了確保用戶誤操作以后還能夠繼續他們的購買,或者說不要給系統造成什么嚴重的傷害。
如果要做安全測試,我們則必須去模擬系統的另一類使用者-惡意用戶。他們的目的是為了尋找系統中可鉆的漏洞。比如同樣是一個網上商城,惡意用戶的目標之一就是要想辦法以較少的錢,甚至不付錢就能拿到商品。所以,如果惡意用戶進行了“誤操作”,他們不會停留在“誤操作”,而是通過“誤操作”來看系統是否給自己提供更多的線索。
所以,我們轉換我們測試時所模擬的對象,把思維從一個合法用戶的視角中拉出來,轉換成一個惡意用戶。這需要一點時間,就如同之前看到的畫,如果我們一開始看到的是人臉,要想下一次第一眼看到的是花瓶,我們需要時間來刻意練習。
原文轉自:http://www.infoq.com/cn/articles/to-test-colleagues-let-us-do-a-safety-test