什麼是安全測試?一文教會你如何開展系統安全測試…

博為峰網校發表於2022-05-31

軟體測試是對專案研發過程產物(文件、程式碼、程式等)進行審查,保障產品質量的過程。軟體測試從測試內容上可以分為功能測試、效能測試、安全測試、相容性測試等等。其中,安全測試是當今網際網路產品的一項重要測試。那麼,什麼是安全測試?應該如何開展安全測試呢? 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~

一、安全測試的前世今生

1945年12月, 在賓夕法尼亞大學摩爾電氣工程學院,佔地1500 平方英尺,重達30噸的世界上第一臺全電子數字計算機ENIAC誕生。不過,那時的計算機輸入還是卡片帶,談不上程式語言。隨著第一代電子的計算機誕生,出現了機器語言和組合語言。當時程式設計僅被少數人和科學家所能駕馭,程式還不復雜,沒有測試的概念。隨著程式碼規模、複雜度的不斷提升,一部分人開始思考如何驗證程式的正確性。1957年Charles baker在他的新書中對除錯和測試進行了區分。至此軟體測試誕生,並發展壯大成一門新的重要學科。隨著計算機應用數量、規模、成本、複雜性的大幅提升以及經濟風險的大大增加,軟體測試的重要性日益突出。

1994年10月,全球資訊網聯盟在麻省理工學院電腦科學實驗室成立,標誌著世界進入互聯互通時代。全球資訊網的出現使得世界上任何地方的任何一個人都可以透過網路訪問任意一個聯網程式,這極大提升了程式的普及和使用範圍。同時,也使得程式容易遭受到更多的攻擊和破壞。隨著系統安全形勢的日益嚴峻,軟體安全測試應運而生。

縱觀計算機行業發展史,我們不難發現計算機處理能力的提升催生了程式語言的出現,程式語言的發展促使了軟體測試的誕生,全球資訊網(WWW)的普及又觸發了安全測試的興起。所以,事務的誕生和發展都是形勢發展到某一階段的產物。那麼,安全測試的未來將如何呢?

根據工信部安全中心釋出的《2021年網路安全半年形勢分析》報告顯示,當前網路安全形勢嚴峻,全球勒索軟體攻擊事件數量增長明顯,大規模資料洩露事件不斷湧現。2021年3月,微軟Exchanger Server電子郵件伺服器的安全漏洞導致全球範圍內大量企業、政府部門被感染。2021年5月,美國最大的輸油管道公司Colonial Pipeline遭受勒索攻擊,導致美國東海岸燃油輸送線路大面積停運。2021年6月,富士通的專案資訊共享攻擊ProjectWEB被攻擊,導致多個政府部門敏感資料洩露。諸如此類,還有facebook的使用者資料洩露、萬豪資訊洩露、震網病毒、委內瑞拉全國斷網等等。

從這些事件中,我們不難發現隨著數字時代的深入和萬物互聯的加深,不法分子也加速向線上轉移,初步形成了專業化、規模化和產業化的網路黑灰產業。各種駭客組織的趨理性攻擊越來越明顯,網路安全防護形勢日益嚴峻。大視角看,世界主要國家都將網路安全作為國家安全的戰略重點,紛紛出現各類綜合性網路安全檔案,不斷加碼資料安全和供應鏈安全的要求,對各行業的網路安全水平提出了更多更細緻的要求。在這種大環境下,各公司為了滿足各類監管要求、行業標準,確保自身系統的安全可靠,勢必會不斷加大安全領域的投入。安全測試隨著也將迎來一波大的發展,安全測試技能將會受到越來越多用人公司的青睞和追捧。

二、認識和開展安全測試

世界上沒有絕對的安全,只有相對的安全。系統安全也是如此,攻破系統的成本大於攻破系統的收益,則認為系統是安全的,這個安全就是相對安全。有人說不對啊,我建個區域網,禁止外網訪問,那我是不是就是絕對安全?網路隔離確實是一種行之有效的安全防護方式,但是這種安全也是相對的,不是絕對安全。比如:銀行的核心繫統都要求專網連線,網際網路邏輯隔離。軍網系統通常也是內部獨立部署,甚至會做網路物理隔離。這種就一定安全嗎,駭客確實無法透過常規的網路手段入侵系統,但是不要忘了還有間諜、內部人員被收買脅迫等情況,只要攻擊者認為攻擊收益非常大,大到願意擔負任意成本,那麼在時間上這個系統終歸一日會被透過某種方式攻破,所以安全都是相對的。

既然系統沒有絕對安全,那麼系統安全是不是就不重要了。當然不是,安全是產品的根基,一個易燃的汽車無論效能多麼出眾,設計多麼美觀,你都不會購買使用,畢竟它不安全。但是,你現在購買或者乘坐的汽車都存在一定機率的自燃問題,相關事故在新聞中也屢有報導。但是,你不會因此拒絕購買或使用汽車,因為汽車自燃的機率非常非常低,這種風險遠小於給你帶來的便利。基於這個安全前提,你才會考慮購買和使用汽車。

系統安全也是從這個思路出發,構建一個相對安全的系統。安全測試的思想就是驗證系統的相對安全程度,提升系統的被攻破成本。從主動性上,安全測試可以分為主動防禦檢查和滲透性測試,其中滲透性測試又可分為基於規則的安全掃描和人工滲透測試。測試人員可從上述三個方面著手,組織開展系統安全測試。

2.1主動防禦檢查的思想是紮緊籬笆,高築圍牆,提高滲透攻擊的成本。如系統登陸功能,本質是完成使用者輸入賬號密碼和資料庫系統中記錄的賬號密碼匹配。若匹配成功,則登陸成功,若匹配失敗,則登陸失敗。一條資料庫查詢語句就能實現上述功能。但是,正確的登陸功能卻不能這麼簡單設計,因為太簡單了,破解成本太低,攻擊者的一波遍歷探索,系統可能就被攻破了。這樣的系統是不夠安全的,使用者也無法放心使用。從主動防禦的思想出發,開發者應主動增加攻擊者的破解成本。

比如:增加圖片驗證碼,避免攻擊者使用自動工具遍歷嘗試。模糊登陸錯誤提示資訊,不告訴攻擊者是賬號錯誤還是密碼錯誤,提高撞庫成功的難度。連續錯誤登陸五次,賬戶自動鎖定,減少攻擊者試錯次數。規定密碼必須是數字、字母和特殊字元的混合,增加攻擊者暴力破解的難度。諸如此類,透過提升安全標準,提高系統被攻破的成本,從而打消攻擊者的攻擊意圖,使其知難而退。

那麼開發人員應該給系統增加哪些安全檢驗呢?或者說測試人員應該從那些方面檢查系統是否具備應有的安全檢驗以及安全檢驗的程度是否滿足當前系統的安全需要?《資訊保安技術 網路安全等級保護基本要求》、《資訊系統等級保護安全設計技術要求》、《資訊保安等級保護管理辦法》等國家安全標準檔案對安全設計標準都有詳細的要求,測試人員可以從中選擇適合自己系統的安全設計標準,對照系統進行檢查。

最後:

可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。

這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2898257/,如需轉載,請註明出處,否則將追究法律責任。

相關文章