今天,很多軟件并沒有經過專門的安全測試便運行在互聯網上,它們攜帶著各類安全漏洞直接暴露在公眾面前,其中一些漏洞甚至直指軟件所承載的核心敏感信息或業務邏輯。這些漏洞一旦被不懷好意者利用,很可能會給企業造成經濟損失,帶來負面聲譽影響的同時,還可能被起訴遭到罰款等等,細思極恐。其中的一部分原因是企業本身安全意識不強,但是很多時候雖然軟件企業已經開始意識到這些問題,卻苦于缺少專業的安全測試人員,他們不得不冒著極大的風險先上線賭一把運氣再說。
看到這里你可能會說:正是由于這樣的情況,所以我們才要去做安全測試啊!
我在這里先不評價這個想法對或不對。要想知道為什么,請繼續往下看。
我先來介紹一下神秘的安全測試:安全測試在軟件測試里面是一個很特別的科目(“工種”),每次一碰到這個科目,很多人都覺得這個科目應該全權交給神秘的安全測試人員來管。這一個觀念導致很多測試人員徘徊在安全測試的門口卻遲遲不進去。
安全測試是非常復雜的,相信大家都沒有異議。一個專業的安全測試專家在某種程度上來說是一個全棧工程師。所以,想要在安全測試上一夜成才很難。雖然,作為測試人員的我們卻有得天獨厚的優勢,使我們能夠在安全測試上快速起步,幫助團隊盡快展開預防并檢測安全漏洞的工作。
作為一個安全測試人員,你需要具備什么專業素養呢?
要使用別具一格的視角來審視需要測試的軟件
這種能力說難不難,說簡單卻絕不簡單。舉個栗子:假設你正在測試一個web應用用戶登錄界面,你輸入錯誤的用戶名時提示“該用戶名不存在”,你輸入正確的用戶名但是錯誤的密碼時提示“密碼輸入錯誤”。這時你沒有任何想法,一掠而過。但是作為一個安全測試員他會說:敏感信息暴露了,提示信息需要修改!為什么?!!因為通過我們的提示信息,惡意用戶可以推測出哪些用戶名已經存在于系統中,然后利用這些用戶名再進行密碼的暴力破解!
要改變測試中模擬的對象
軟件測試人員通常會模擬普通用戶的操作來測試軟件,而安全測試員則需要模擬hacker來測試軟件。這里說一些題外話,零幾年軟件測試崗位就開始出現了,大家有沒有想過那批最早從事軟件測試的人都去哪兒,干什么去了呢?
那時候軟件測試還沒有這么專業,測試人員大多什么都需要會一點兒,做這一行的都是真心喜歡測試的,鉆研技術的人也比較多。由于經常找BUG,對軟件的漏洞測試人員也一清二楚,早期的軟件測試人員有的做了“黑帽子”,有的做了“白帽子”。而安全測試員就是由白客發展而來的。
使用專用的測試工具
在具體做安全測試的時候我們會發現并不是那么容易去模擬惡意用戶的行為。畢竟系統的前端會給我們很多的屏障。而且惡意用戶可不總都是從系統前門進去的。這時候,使用一些工具,比如OWASP Zap、Burp suite等是非常有幫助的。我們可以在系統界面上執行功能測試的用例,用這些工具來獲取http請求,篡改后發送給后臺服務器。有了這些實用又比較容易上手的工具,就可以執行很多惡意用戶的操作場景了。
一般來說,具備以上三點你就可以開始進行初步安全測試了。
現在我們可以回到文章開始的地方。文章開頭的那個想法在讀完上面的內容之后你會發現,它是對又不對的,很矛盾。確實由于很多公司不注重安全或者由于成本原因舍棄了安全保障,往后會需要更多安全測試員去進行安全測試。但是一個沒有安全測試思考力的安全測試員他真的能勝任這份工作嗎?
然而現實是:
一個安全測試工程師曾告訴我:他們公司安全測試崗位和其他崗位的比例為1:500。為什么?因為大公司的程序都是由很牛逼的開發做出來的,本身就已經有一定的防御能力,漏洞也不多,安全測試員的工作就是找出可能存在安全隱患的地方然后再由開發補上。一定程度上來說軟件已經算是固如金湯了,一個hacker真想找出漏洞,花費的時間和精力絕對是要翻倍的。你覺得一個公司需要這么多安全測試工程師嗎?
現在的情況是大公司才需要安全測試保障程序安全。小公司的想法是只要實現了用戶需求就萬事大吉了,何必花費大成本去保障安全呢?
作為惡意用戶,即hacker,他會花時間去“黑”一個小公司?不會,因為那對于他來說根本沒挑戰,也沒意義。
說到這里,我終于可以說一句:不推薦大家去做安全測試。這是建立在上文的分析之后的出的結論。很多人可能覺得安全測試工程師很高大上,薪資也非常可觀。但是你也要看清行業的現實狀況,不要一頭霧水就扎進安全測試的圈子,到頭來芝麻和西瓜都丟了,不值得。
最后也要聲明一下,我絕不是反對大家做安全測試。如果你對安全測試很感興趣,也有安全測試工程師需要有的獨特的思考視角,能夠沉下心來認真學習。那我非常推薦你去做安全測試,因為那才是適合你的工作!那才能證明你的價值!那才Cool!
那么,你還會選擇去做安全測試工程師嗎?
所以說,你還會向安全測試工程師靠攏嗎?
-
測試工程師
+關注
關注
6文章
124瀏覽量
12431
發布評論請先 登錄
相關推薦
評論