首页
/
每日頭條
/
科技
/
軟件測試中安全測試包括哪些方面
軟件測試中安全測試包括哪些方面
更新时间:2024-07-31 07:12:46

摘要:如何做好安全測試,我們重點從應用程序安全測試AST、軟件組成分析SCA和滲透測試三個方面來看一下。

本文分享自華為雲社區《DevSecOps研發安全實踐——測試篇-雲社區-華為雲》,作者:華為雲PaaS小助手 。

前言

随着DevOps的發展,DevOps大幅提升了企業應用疊代的速度。但同時,安全如果不能跟上步伐,不僅會抵消DevOps變革帶來的提升,拖慢企業數字化轉型進程,還會導緻漏洞與風險不約而至。所以安全能力在全球範圍内受到的重視越來越高,軟件開發内生的安全性成為評價企業DevOps成熟度水平的重要指标。2012年,Gartner提出了DevSecOps的理念,将安全防護流程有機地融入傳統的 DevOps 流程中,為研發安全提供強有力保證,安全工具支撐研發階段安全要求落地。

安全測試的重要性

軟件測試是軟件開發生命周期必不可少的一環,是重要的組成部分。測試有多種形式,按照測試類型,可以分為界面類測試、功能測試、性能測試、文檔測試等。傳統的功能測試和非功能測試能夠通過某種形式隐式發現程序中的某些漏洞,如密碼格式驗證,但是這些測試并不是專門尋找安全缺陷的,也不夠全面,無法保證應用程序或服務已經通過了全面的安全漏洞測試。安全測試可以測試軟件在遭到沒有授權的内部或者外部用戶的攻擊/惡意破壞時如何進行處理,能夠保證軟件和數據的安全。

在Forrester 2020年發布的調查報告統計《 The State Of Application Security, 2020》中顯示,在 480家全球企業已經确認的外部攻擊中,針對Web應用程序是位于首位,占比39%,攻擊 Web 應用程序主要指基于程序的 SQL 注入、跨站腳本或者遠程文件包含攻擊。針對軟件漏洞攻擊占比30%,主要指對于安全漏洞的利用攻擊。

軟件測試中安全測試包括哪些方面(想要做好軟件測試)1

安全測試是 DevSecOps 實踐的關鍵部分,軟件程序經過各種方法的測試以保證質量。安全測試不僅應涉及軟件程序,還應關注端到端管道、實時生産系統、軟件基礎設施、數據庫以及中間件,以降低任一環節的安全攻擊風險。安全測試是一個專業領域,擁有自己的一套工具和實踐,旨在暴露這些漏洞。

如何做好安全測試

如何做好安全測試,我們重點從應用程序安全測試AST、軟件組成分析SCA和滲透測試三個方面來看一下。

應用程序安全測試AST

在前面的攻擊對象統計數據中可見,應用程序仍然是主要的攻擊對象,應用程序是客戶和核心業務功能之間的網關。客戶使用應用程序訪問企業提供的服務或購買産品,因此它為企業及其客戶提供了最大的安全風險。同時随着全球疫情的存在,遠程辦公形式的興起,使得企業對應用程序的依賴更強,所以應用程序的安全至關重要,在安全測試中,應用程序安全測試也是首當其沖,目前業界常用的技術主要分為靜态應用程序安全測試SAST、動态應用程序安全測試DAST、交互式應用程序安全測試IAST三類。

靜态應用程序安全測試SAST

靜态應用程序安全測試(Static Application Security Testing),是通過檢查應用程序的源代碼來發現程序代碼存在安全漏洞的測試方法。有些工具也會依賴于編譯過程甚至是二進制文件,通過一些抽象語法樹、控制流分析及污點追蹤等技術手段來提升檢測覆蓋度和準确度。SAST是一種白盒測試方式,常見的工具有Coverity、Checkmarx、FindBugs、 CodeQL和ShiftLeft inspect。

SAST工具有出色的代碼覆蓋率,能夠發現代碼中更多更全的漏洞類型,使用SAST 可以低成本防禦隐藏在源代碼中的一些常見安全缺陷,公開的漏洞,如OWASP TOP10。同時問題點可以定位到具體代碼行便于修複。但是使用SAST,難逃誤報率這個問題,誤報會降低工具的實用性,工程師可能需要花費更多的時間來清除誤報而不是漏洞,好在大多數SAST 工具都為工程師提供了配置掃描儀以減少報告的誤報數量的方法。

動态應用程序安全測試DAST

動态應用程序安全測試(Dynamic Application Security Testing),是在不需要系統源碼的情況下,通過模拟攻擊者的行為構造特定的輸入給到應用程序,分析應用程序的行為和反應,從而确定該應用是否存在某些類型的安全漏洞。常見的工具如針對Web應用商業和開源的AWVS,還有一些針對電腦或終端AppSCAn等。

DAST是從攻擊者視角出發,複制了真實的攻擊,如果成功,證明了應用程序中漏洞的可利用性,因此誤報的數量遠低于SAST,準确性非常高,工程師可以專注于修複真正的漏洞,而不是花時間驗證它們。DAST是非常可靠的漏洞檢測技術,可以發現大量的真實安全漏洞。DAST采用攻擊特征庫來做漏洞發現與驗證,能發現大部分的高風險問題,因此是業界Web安全測試使用非常普遍的一種安全測試方案。

DAST是一種黑盒測試形式,在DAST測試過程中,主要以功能為主,不需要具備編程能力,不用了解應用程序的内部邏輯結構,模糊測試是DAST測試中常用的一種方式,通過故意向應用程序引入不正确格式或随機數據誘發程序故障。模糊測試策略的制定,以應用程序的預期用途,以及應用程序的功能和設計規範為基礎。

DAST除了可以掃描應用程序本身之外,還可以掃描發現第三方開源組件、第三方框架的漏洞。許多DAST工具可以跨多種語言和框架工作,與 SAST工具相比,可以提供更大的應用程序覆蓋範圍。但這需要付出代價:當發現漏洞時,通常很難準确指出在源代碼中應用修複的位置。

配置 DAST 需要高級安全知識,才能根據目标應用程序的潛在攻擊面正确設置測試。工程師必須能夠配置動态測試工具以獲得最準确的結果。他們還需要在運行時将其集成到應用程序中,它更适合 CI/CD 流水線,在其中可以執行運行時分析。Stuart Gunter 高度評價 DAST 作為自動化測試工具。如果使用得當,其低誤報輸出和接近手動滲透測試的動作可以産生出色的結果。

交互式應用程序安全測試IAST

交互式應用程序安全測試(Interactive Application Security Testing),由Gartner公司在2012年提出,是一種運行時檢測工具,依賴于應用程序在被監控時的活動,可監控流經應用程序的流量,以确定底層源代碼是否容易被利用。IAST監控正在運行的應用程序的數據流以确定是否存在保護數據的安全控制。例如,它會檢測一個字符串是否通過了驗證方法,或者密碼是否在源頭加密并保持加密,直到它退出正在運行的應用程序。因為它是在運行時觀察數據的行為,而不是對單個組件如何在本地管理數據進行假設,所以IAST 很少誤報。同時IAST 工具能夠讀取和理解底層源代碼,因此它們可以定位和報告程序員應該關注的代碼行,以修複掃描識别出的漏洞。

盡管 IAST 使用起來簡單,但它也有與 DAST 相同的限制--它需要一個正在運行的應用程序來執行測試,這意味着最好将它集成到 CI/CD流。并且如果在測試期間執行的功能測試未覆蓋100%的底層源代碼,則安全測試代碼覆蓋率也将低于100%。

自動化應用程序安全測試的三種方法:靜态、動态和交互,這些都在成功的 DevSecOps 框架中發揮作用,決定将哪些集成到價值流中取決于許多因素。 SAST最容易在源代碼中找到的缺陷-- 但由于缺乏上下文,它會産生大量的誤報,用 DAST 或 IAST(或兩者)補充 SAST 是不錯的方法。

軟件組成分析SCA

應用程序成為外部攻擊的主要對象,其中的一個原因就是開源軟件的使用不斷增多,為了加快開發速度,開發者會大量複用成熟的組件、庫等代碼,組織機構對開源和第三方組件的使用,從而使更多的API 暴露在外。組織的代碼庫包含不是由開發人員編寫的代碼。不知道它是否經過安全測試,或者它是否包含惡意代碼或惡意軟件。更糟糕的是,許多這些開源庫依賴于其他開源庫來提供更多功能。這意味着在組織的應用程序中存在 OSS 的依賴鍊。根據 Synopsys 的說法,開源占應用程序代碼庫的 70%,這意味着組織的大多數應用程序不是由組織的工程師編寫的,面臨的挑戰在于了解這些依賴項是否安全,如果不安全,如何确保它們安全。

盡管應用程序安全測試可以識别依賴代碼中的一些漏洞,但不太可能識别出與它們相關的所有問題。已知漏洞可能會記錄在通用漏洞數據庫中,一些開源提供商也維護自己的漏洞數據庫。必須根據這些數據庫檢查應用程序依賴性并解決與易受攻擊的組件相關的任何風險。有許多軟件組合分析工具可用于執行此任務,每個工具都有自己的優點和缺點。在基本級别,它們都提供了漏洞的詳細信息和降低風險的建議,例如升級到組件的安全版本或完全使用不同的組件。

通常安全測試階段進行二次SCA,首次則在軟件開發的早期階段。因為在開發過程中更新第三方庫比在生産環境中更新成本更低,在生産環境中,修複成本更高。

滲透測試

上面講到的AST應用程序測試和SCA軟件組件分析,在研發安全時間過程中都是以自動化形式存在,盡管價值流中有很多層自動化測試,但它不可能 100% 安全,作為自動化測試的有效補充,手工安全測試不必可少,在一些受監管的行業部門中,必須由經認可的第三方對組織的在線産品或服務進行滲透測試。通常,這些滲透測試是在預生産環境中進行的,它們也可以在實時系統上進行。

國家網絡安全中心(NCSC)将滲透測試定義為“對計算機網絡或系統的授權測試,旨在尋找安全漏洞”。滲透測試是一種有效的測試方法,是安全人員模拟黑客進入系統的測試方法,他對執行測試的人要求很高,能力強的測試者能夠發現有價值的安全性漏洞,而不具備很強攻擊能力的測試者就無法有效發現系統中的安全性漏洞,因此很難被大規模使用。

滲透測試的過程不具有可重複的特點(主要依賴于測試者的經驗,類似調試),所以腳本化、自動化的滲透測試想法不可行,完全自動化的工具通常隻能發現那些可以被用标準方式發現的特定安全漏洞,如簡單的SQL注入。在滲透測試期間,授權測試人員嘗試使用攻擊者使用的相同技術和工具,利用公開已知的漏洞和常見的錯誤配置,針對系統架構、應用程序、網絡層面漏洞進行滲透測試,根據行業特點與業務場景實施滲透測試,範圍應覆蓋重要安全風險點與重要業務系統,有明确的滲透測試計劃與管理機制。

在DevOps 中,一天可能會有多次發布。因此,在系統部署之前運行手動測試是不可行的。相反,手動滲透測試是作為年度審查的一部分進行的,以滿足監管要求,并作為一個驗證過程來突出自動化安全測試過程中的弱點。

華為雲安全開發實踐

華為雲主要從規範、方法和工具三個方面保證驗證階段的安全。

• 規範上制定各語言安全編碼規範、各測試設計規範、指南和測試指導;安全編譯選項技術規範、Fuzz安全測試指導;

• 方法上,遵循安全編譯選項、靜态分析、SCA ,TMBT安全測試設計、Web安全測試技術、通用組件安全測試、虛拟化安全測試方法、IoT安全測試、病毒掃描、Fuzz;

• 工具上,華為雲将客戶安全需求和業界标準作為檢查項,研發了自己專有的工具平台,SecSolar安全編碼檢查服務、SecGuard安全測試服務、SecFuzz,SecureCat 可以對業界主流的 OS 和 DB 的安全配置進行檢查。

華為雲的所有雲服務在發布前都需要經過多輪的安全測試。在Alpha 階段會進行認證、鑒權、 會話安全等微服務級功能和接口安全測試;Beta 階段通過對 API 和協議的 fuzzing 測試驗證服務集成;Gamma 階段進行數據庫安全等安全專項測試。在測試用例上,會覆蓋安全設計階段識别出的安全需求和攻擊者視角的滲透測試用例等。

後記

在安全測試方面,它與傳統的手動測試方法有所不同,盡可能采用自動化是其核心要求。通過持續集成流水線中的安全測試自動化,DevOps工程師可以以最小的安全風險快速交付功能。來自自動化測試的反饋循環允許工程師在特性出現在生産中之前識别和修複它們。當與有效的教育政策和良好的設計原則相結合時,安全測試自動化通過這些反饋循環增強了持續的學習,并提供了一種環境,在這種環境中,安全是軟件交付的核心,而不會對流程和客戶結果産生負面影響。

參考附錄

1.《華為雲安全白皮書》.華為技術有限公司

2.《研發運營安全白皮書》. 雲計算開源産業聯盟.

3.《DevSecOps領導者指南》格倫·威爾遜(GLENN WILSON)

4. 每天掃描超300億行 代碼,DevSecOps在華為的落地與實踐_DevOps

5. Forrester’s State Of Application Security Report, 2021: Key Takeaways

點擊下方,第一時間了解華為雲新鮮技術~

華為雲博客_大數據博客_AI博客_雲計算博客_開發者中心-華為雲

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
奔騰b70詳細測試
奔騰b70詳細測試
車子能給我們的出行帶來便捷的體驗,正因如此,如果車子在細節上能給用戶帶來貼心方便的設計,那麼将更有可能獲得消費群體的評說,接下來,妖姐就以2021款奔騰B701.5T自動馭享型車型為例,來看看車子的細節和産品力。在外觀方面,雨幕式中網面積大...
2024-07-31
vivo進不了系統
vivo進不了系統
vivo進不了系統?建議将手機連接充電器等待一段時間,然後再長按電源鍵30秒進行強制重啟,接下來我們就來聊聊關于vivo進不了系統?以下内容大家不妨參考一二希望能幫到您!vivo進不了系統建議将手機連接充電器等待一段時間,然後再長按電源鍵3...
2024-07-31
文件隻讀模式怎麼解除
文件隻讀模式怎麼解除
文件隻讀模式怎麼解除?首先打開一個隻讀模式的文檔,可以看到編輯菜單欄大都是灰色的,下面我們就來說一說關于文件隻讀模式怎麼解除?我們一起去了解并探讨一下這個問題吧!文件隻讀模式怎麼解除首先打開一個隻讀模式的文檔,可以看到編輯菜單欄大都是灰色的...
2024-07-31
最後生還者重制版與原版區别
最後生還者重制版與原版區别
IT之家6月10日消息,在淩晨的夏日遊戲節上,頑皮狗(NaughtyDog)聯席總裁尼爾・德拉克曼(NeilDruckmann)公布了《最後生還者(第一章)》PS5重制版并表示PC版遊戲正在開發中,預計9月2日登陸PS5。據公開資料,動作冒...
2024-07-31
蘋果12怎麼關機啊
蘋果12怎麼關機啊
有很多剛入手iPhone12的小夥伴不知道怎麼關機,小編就為大家帶來了iPhone12的關機方法以及教程,感興趣的朋友不要錯過了哦,快來看看吧。iPhone12關機方式1、iPhone12的電源鍵和“”音量鍵同時長按幾秒,就會彈出提示信息,...
2024-07-31
Copyright 2023-2024 - www.tftnews.com All Rights Reserved