您現在的位置是:首頁 > 寵物首頁寵物

安全左移Shift-Left

由 明天有霧Foggy 發表于 寵物2022-12-27
簡介作為迴應,開發團隊已經開始將安全測試儘可能地向左移動,以便儘快地檢測和修復缺陷、漏洞和威脅

create後面加do嗎

由於在當今競爭激烈的環境下開發和交付高質量、安全的軟體所面臨的挑戰越來越大,

軟體安全

測試已經在軟體開發過程中

逐漸

左移。敏捷

迭代

DevOps 就是為了滿足這些需求而建立的。

在這篇文章中,我們將

介紹

DevOps管道中的shift-left

(左移)

實踐的基本情況,並討論如何在開源安全性和遵從性測試中進行

shift-left實踐。

安全左移Shift-Left

1. 什麼是shift-left

傳統上,典型的開發和質量保證週期是圍繞

基線水平

設定

的。開發人員將在

基線

上工作,完成後,它將傳遞給

QA 團隊,QA 團隊將測試該

基線

,並將結果返回給開發團隊進行修復。然後這個迴圈會在必要的時候重複。

如今,軟體開發行業已經認識到,修復

在早期過程

中檢測到的

bug 更容易、更

廉價

。在軟體開發生命週期

(SDLC)的早期

左移

測試的新策略已經被引入,以幫助儘早識別問題。早期檢測加速了採取糾正步驟的過程,從而減少了修復這些問題的時間和成本。向左移動意味著儘早進行測試,或者在

DevOps 管道中向左移動流程。

2. shift-left和shift-right

將開發生命週期想象成一條線或一個連續體,開始流程在左邊,完成流程

——

軟體或應用程式的釋出

——

在右邊,以及中間的所有各個階段,如下圖所示。

安全左移Shift-Left

傳統上,安全性測試要等到大部分開發工作完成之後,在過程的右邊,如上所述。

這樣做的問題是,如果發現任何問題,流程必須回到開始時修改程式碼庫、元件和引起關注的依賴項,然後再進行測試。如果問題仍然存在,這整個過程必須重新開始。

作為迴應,開發團隊已經開始將安全測試儘可能地向左移動,以便儘快地檢測和修復缺陷、漏洞和威脅。這種轉變使開發團隊能夠更早地測試程式碼,更快地接收和處理反饋,審查結果,並更容易地進行更改。最終,向左移動可以降低開發成本,加快上市時間,減少錯誤。

相反,

shift-right 測試是指在開發過程的右側進行後期生產測試。Shift-right 測試使團隊能夠測試一個功能齊全的應用程式並觀察使用者行為。這有助於提高軟體質量,特別是在效能和可用性方面。

3. shift-left和devops

左移

DevOps 方法的一個關鍵部分,它要求儘早且經常地對軟體進行測試。Shift left將測試整合到您的 DevOps 管道中,以便在缺陷更容易和更便宜的時候及早發現它們。測試、反饋和修訂是每天持續進行的。像其他 DevOps 流程一樣,這促進了敏捷性,並讓專案團隊擴充套件他們的工作以提高生產力。

延遲檢測問題的成本可能非常高。根據

IBM 最新的《2022年資料洩露成本報告》,資料洩露的平均成本從2021年的424萬美元上升到2022年的435萬美元,這是該報告18年曆史上的最高平均總成本,比2020年的386萬美元上升了12。7% 。這甚至還不包括開會(或錯過釋出日期)的壓力。隨著軟體開發階段的進展,解決任何未發現的錯誤的成本也會上升,通常是指數級的。

左移是關於在軟體開發過程中儘可能早地發現儘可能多的問題,因此修復它們的成本是可以控制的。透過經常進行測試,您的團隊和涉眾可以確保對程式碼的當前狀態有更好的可見性和控制,並在整個專案中做出明智的決策。但是,以傳統方式進行的向左移動測試今天就足夠了嗎?

4. 開源檢測左移

最初,

shift-left 測試的重點是測試專有程式碼。但是開源和第三方元件怎麼辦呢?你什麼時候檢查你的軟體專案不包含有問題的許可證或過時

易受攻擊的開源元件版本?

開源元件已經成為當今軟體產品的基本構件,幾乎所有的商業軟體公司都在大規模地使用它們。因此,在

shift-left實踐中包含開源安全性和遵從性測試是至關重要的。

這需要應用

DevOps 策略,透過將軟體

成分

分析

(SCA)工具整合到編碼和構建過程中來開放原始碼安全性和遵從性管理,以便儘早且經常地測試開放原始碼元件。

5. 安全檢測左移

當涉及到安全性測試時,開源安全性不同於專有程式碼。

開源

問題是由一個大型的、積極的、有能力的和堅定的社群檢測出來的,這個社群不斷地檢測和釋出新的開源漏洞。

僅在

2021年,就在開源元件中檢測到了近10,000個已知的安全漏洞。開放原始碼脆弱性的不斷增加促使更多地使用自動檢測和補救工具,這些工具符合“左移”戰略,並在開發過程中儘早測試開放原始碼元件。

6. 安全左移工具

有各種各樣的工具可以幫助轉移安全性。每種方法都有自己的優點,可以部署它們來相互補充,以加強程式碼庫、軟體、應用程式元件和依賴關係的安全性。這類工具主要有

靜態應用程式系統測試

(SAST)測試應用程式的專有原始碼以檢測漏洞。當代碼是靜態的時候,它會分析程式碼ーー靜止的時候而不是活動的時候。但是,您也可以對正在執行的程式碼執行 SAST 掃描。像

Codesense

這樣的新一代

SAST 工具還允許使用者自動修復缺陷和漏洞。

動態應用程式安全性測試

(DAST)測試程式碼是否存在執行時漏洞和 SQL 注入等安全問題。DAST 在 SAST 之後沿 SDLC 線進行。它透過在測試環境中模擬對應用程式的外部攻擊來檢查漏洞,但是不提供對應用程式程式碼的可見性。

互動式應用程式安全測試

(IAST)尋求結合 SAST 和 DAST 的優點。與 DAST 類似,測試發生在應用程式在 QA 或測試環境中執行時,但是 IAST 可以識別出有問題的程式碼行,並通知開發人員立即進行修復。

軟體組合分析

(SCA)掃描開原始碼、元件和依賴關係,尋找構成風險的缺陷和漏洞,並儘可能無縫地自動修復它們,而不會中斷開發人員的工作流。

例如,

UniSCA。

執行時應用程式自我保護

(RASP)從內部實時檢測攻擊,並透過響應特定條件自動重新配置程式碼來防止這些攻擊。RASP 掃描只有在應用程式開始執行時才會發生。他們分析應用程式在其上下文中的行為,並保護應用程式免受越來越多的威脅,如 SQL/命令注入、跨網站指令碼(XSS)、資料溢位、帳戶接管、安全機器人和掃描器等。

7. 左移自動化

除了使團隊能夠更早地進行測試之外,

左移

還使他們能夠經常進行測試,甚至在某些情況下能夠持續進行測試。這種迭代方法有助於實現自動化,現在有一些工具可以提供自動化測試,因為它們將自動化測試轉移到

SDLC 的開始部分。

自動化正變得越來越重要,以確保團隊不會被開發人員啟動的每個新特性和應用程式中的元件和依賴性的手工測試和補救弄得不知所措。

它從開發人員那裡減輕了這種負擔,同時維護並經常改進了保護軟體和應用程式所需的檢測、優先順序排序和補救功能。

自動化左移有一些顯著的好處。首先,消除人為錯誤。其次,自動化允許同時執行多個測試,因此意味著可以測試大量的元件和依賴項。第三,透過移除這項耗時的手工任務,自動化可以讓開發人員專注於他們最擅長的事情ーー開發新的應用程式和改進現有的應用程式ーー從而提高生產率。這種生產力會進一步提高,因為會出現更少的生產問題,程式碼庫中保留的缺陷也會更少。最終,這意味著您可以加速軟體和應用程式的交付,但是這樣做更安全,更有信心,而不會增加任何缺陷、漏洞或任何其他問題的風險。

8. 左移的好處

更安全,更自信

向左移動的安全性提供了在

SDLC 中增加和重複測試的潛力和機會。這使得安全性更徹底、更健壯,並使您對程式碼庫、軟體和應用程式更有信心。當您向左移動時,您可以越來越確定您運送的是安全、高質量的軟體和應用程式。

簡單高效

當在

SDLC 中較早地檢測到 bug 時,它們更容易修復。當測試向左移動時,可以在問題升級之前發現和解決問題,這樣就可以在它們引起問題之前抓住它們。這也意味著它們在生產完成之前就被解決了,這意味著修復缺陷和漏洞需要更長的時間,並且需要更多的時間和資源。因此,您可以更加自信地認為您的產品可以以儘可能及時和儘可能高效的方式交付。

③提高質量

你越早發現並修復問題,它們帶來的風險就越小,造成損害的可能性也就越小。因此,您的輸出質量得到了提高。因此,更嚴格和更早的測試可以為使用者提供更好、更可靠和更穩定的最終產品。

④降低成本

由於向左移動使得發現和應對威脅變得更加容易和有效,這最終意味著需要更少的資源和更少的時間來補救這些威脅。這降低了開發的總體成本。

9. 實施全面的左移策略

Shift-left 測試是一個成熟的 DevSecOps 程式的重要組成部分,它已經遠遠超出了早期的 QA 測試。為了確保軟體產品的安全性,同時跟上緊湊的交付期限,還必須在應用程式安全實踐中實現 shift-left 方法。

隨著我們的軟體開發系統變得更加複雜和分層,跨越微服務、雲和容器

(僅舉幾個平臺的例子) ,一個堅實的向左轉移戰略必須解決所有平臺和語言的問題。

這需要採用自動化的測試工具,這些工具可以很容易地在開發過程的早期整合,但這還不夠。確保這些工具由所有團隊實現是至關重要的。這意味著這些工具需要無縫地適應開發和

DevOps 環境,以便它們不會中斷或延遲開發。

有效的左移測試戰略的另一個重要方面是確保早期的脆弱性優先化和補救。當組織投資於各種各樣的自動化測試工具時,選擇那些超越漏洞檢測並交付優先順序和補救的工具是非常重要的。否則,你的左移策略是不完整的,給你留下一個不斷擴大的漏洞警報清單。